====== fs ======
Объект реализует работу с SD-картами. Класс написан по аналогии с модулем ''fs'' Node.js. Ввиду ограничений платформы, реализовать асинхронные обращения к карте памяти невозможно — все методы работают в синхронном режиме. Для подключения модуля, необходимо воспользоваться командой ''var fs = require('fs')''.
Если вам необходимо обрабатывать файлы большого размера, следует использовать класс [[File]]. Этот класс поддерживает блочное чтение файлов, что позволит избежать ошибки нехватки памяти.
func:: fs.appendFileSync(fileName, data)
Дописывает в конец файла ''fileName'' данные ''data''. Возвращает ''true'' при успешной записи или ''false'', если запись не удалась.
func:: fs.appendFile(fileName, data)
Дописывает в конец файла ''fileName'' данные ''data''. Возвращает ''true'' при успешной записи или ''false'', если запись не удалась. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции ''fs.appendFileSync''.
func:: fs.pipe(source, destination, options)
func:: fs.readdirSync([path])
Возвращает содержимое каталога ''path'' в виде массива. Если параметр ''path'' не передан — выводится информация о корневом каталоге.
// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
// Подключаем объект работы с файловой системой
var fs = require("fs");
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
// Выводим список файлов в корне карты
print(fs.readdirSync());
/*
[
"System Volume Information",
"CXT.TXT",
"1.wav",
"index.htm",
"headers.htm",
"http.htm",
"htmll.htm",
"index2.htm",
"index3.htm",
"index4.htm",
"index5.htm",
"index6.htm",
"index7.htm",
"index8.htm",
"index9.htm",
"indexP2.htm",
"indexP1.htm",
"indexP3.htm",
"Arduino.raw"
]
*/
func:: fs.readdir([path])
Возвращает содержимое каталога ''path'' в виде массива. Если параметр ''path'' не передан — выводится информация о корневом каталоге. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции ''fs.readdirSync''.
func:: fs.readFileSync(fileName)
Функция возвращает содержимое файла ''fileName'' или ошибку. Учтите, размер возвращенных данных может занять всю память! Для работы с большими данными используйте класс [[File]].
// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
// Подключаем объект работы с файловой системой
var fs = require("fs");
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
// Выводим список файлов в корне карты
var files = fs.readdirSync();
// Выводим информацию, хранящуюся в 3-м файле
print(fs.readFileSync(files[2]));
/*
Пример вывода:
test
*/
func:: fs.readFile(fileName)
Возвращает содержимое файла ''fileName'' или ошибку. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции ''fs.readFileSync''.
func:: fs.statSync(fileName)
Возвращает объект со свойствами содержащими информацию о файле ''fileName''. Объект имеет свойства:
* ''size'' — размер в байтах
* ''dir'' — путь к файлу
* ''mtime'' — объект [[Date]], содержащий время создания файла
// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
// Подключаем объект работы с файловой системой
var fs = require("fs");
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
// Выводим список файлов в корне карты
var files = fs.readdirSync();
// Выводим информацию о 3-м файле
print(fs.statSync(files[2]));
/*
Пример выводимой информации
{ "size": 131103, "dir": false,
"mtime": { "ms": 949366800000 }
}
*/
func:: fs.unlinkSync(fileName)
Удаляет файл ''fileName'' и возвращает ''true'' при удачном удалении или ''false'', если удаление не произошло.
func:: fs.unlink(fileName)
Удаляет файл ''fileName'' и возвращает ''true'' при удачном удалении или ''false'', если удаление не произошло. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции ''fs.unlinkSync''.
func:: fs.writeFileSync(fileName, data)
Записывает в файл ''fileName'' данных из параметра ''data''. Если файл существует — он будет перезаписан. Возвращает ''true'' в случае успешной записи или ошибку.
// Настаиваем SPI2
SPI2.setup({mosi:B15, miso:B14, sck:B13});
// Подключаем объект работы с файловой системой
var fs = require("fs");
// Подключаем SD-карту
E.connectSDCard(SPI2, P4 /*CS*/);
// Выводим список файлов в корне карты
var files = fs.readdirSync();
// Выводим информацию о записи в файл данных
print(fs.writeFileSync(files[2], 'new data'));
/*
Пример вывода:
true - если запись была успешной
*/
func:: fs.writeFile(fileName, data)
Записывает в файл ''fileName'' данных из параметра ''data''. Так как асинхронность не поддерживается из-за аппаратных ограничений, работает аналогично функции ''fs.writeFileSync''.