Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

File system driver Build Status

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.

You can’t perform that action at this time.