28e44bd91e | ||
---|---|---|
.vscode | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
LICENSE.txt | ||
README.md | ||
enums.d.ts | ||
files.cpp | ||
files.ts | ||
icon.png | ||
pxt.json | ||
shims.d.ts | ||
tests.ts | ||
tsconfig.json |
README.md
File system driver
To use this package, go to https://makecode.microbit.org, click Extensions
and search for filesystem.
~ hint
DEPRECATED - This package is no longer maintained or supported.
~
Usage
The package allows to read and write files to the @boardname@ flash.
~hint
The entire file system content is ERASED when a new .hex file is download onto the @boardname@.
~
Writing data
- append text and a new line character
files.appendLine("data.txt", "Hello");
- append text to the file
files.appendString("data.txt", "Hello");
- append a number (as text) to the file
files.appendNumber("data.txt", 42);
Reading data
- send the content of a file to serial
files.readToSerial("data.txt");
Settings
The package allows to save and load number settings based on the file system
- save setting value
files.settingsSaveNumber("calibrated", 1)
- read setting value
let calibrated = files.settingsReadNumber("calibrated");
File class
The File
class allows to keep a file instance open, manipulate the pointer position and read from the file.
- open, flush or close the file
let f = files.open("data.txt");
f.flush();
f.close();
- write strings or buffers
let f = files.open("data.txt");
f.writeString("yay");
- read data
let f = files.open("data.txt");
let buf = f.readBuffer(64);
let c = f.read();
- set the cursor position
let f = files.open("data.txt");
f.setPosition(42);
let pos = f.position();
Example: Writing accelerometer data
The following program allows to collect accelerometer data and save it in a data.csv
file.
When the user presses button A
, the @boardname@ pauses for 3 seconds, then starts collecting 720 acceleration samples.
Each sample is written to the file in a format that can be important by spreadsheet programs (CSV).
let file = "data.csv";
input.onButtonPressed(Button.A, () => {
basic.pause(3000);
files.remove(file);
files.appendLine(file, "Time\tAcceleration");
for (let i = 0; i < 100; ++i) {
let t = input.runningTime();
let ay = input.acceleration(Dimension.Y);
files.appendLine(file, t + "\t" + ay);
control.waitMicros(20);
}
});
input.onButtonPressed(Button.B, () => {
files.readToSerial(file);
basic.showString(":)")
})
Supported targets
- for PXT/ microbit
- for PXT/ calliope
License
MIT
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.