@amperka/card-reader

Библиотека для работы с SD картридером. Она почти полностью копирует библиотеку fs, но дополнительно предоставляет несколько удобных функций.

Функции модуля

connect(cs)

Возвращает новый объект CardReader для работы с SD картридером на пине cs. При этом задействуется интерфейс SPI2, для которого имеются отдельные тройка-разъёмы на Slot Shield и Troyka Shield.

connect({spi, cs})

Возвращает новый объект CardReader для работы с SD картридером по интерфейсу spi на пине cs.

CardReader

Класс-картридер. Для создания нового объекта, используйте функцию connect.

CardReader.appendFile(fileName, data)

Дописывает в конец файла fileName данные data. Возвращает true при успешной записи или false, если запись не удалась.

CardReader.readDir(path)

Возвращает содержимое каталога path в виде массива. Если параметр path не передан — выводится информация о корневом каталоге.

CardReader.readFile(fileName)

Функция возвращает содержимое файла fileName или ошибку. Учтите, размер возвращенных данных может занять всю память! Для работы с большими данными используйте класс File.

CardReader.stat(fileName)

Возвращает объект со свойствами содержащими информацию о файле fileName. Объект имеет свойства:

  • size — размер в байтах
  • dir — путь к файлу
  • mtime — объект Date, содержащий время создания файла

Удаляет файл fileName и возвращает true при удачном удалении или false, если удаление не произошло.

CardReader.writeFile(fileName, data)

Записывает в файл fileName данных из параметра data. Если файл существует — он будет перезаписан. Возвращает true в случае успешной записи или ошибку.

CardReader.readRandomFile(path)

Возвращает содержимое произвольного файла в папке path.

CardReader.isDirectory(fileName)

Возвращает true, если fileName является каталогом.

Пример

Возьмём дополнение «Интернет вещей» для набора «Йодо».

// Подключим SD картридер, кнопку и пьезопищалку.
var sdCard = require('@amperka/card-reader').connect(P8);
var player = require('@amperka/ringtone').create(A2);
var shuffle = require('@amperka/button').connect(P12);
 
// при клике на кнопку включаем произвольный файл
shuffle.on('click', function() {
  player.stop();
  var melody = sdCard.readRandomFile('/music');
  player.play(melody);
});
 
// при долгом нажатии останавливаем воспроизведение
shuffle.on('hold', function() {
  player.stop();
});