Skip to content

martinwork/pxt-filesystem

This branch is 6 commits ahead of, 1 commit behind microsoft/pxt-filesystem:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

32f4c35 · Feb 17, 2019
Feb 17, 2019
May 30, 2017
Nov 2, 2016
May 23, 2018
Nov 2, 2016
Nov 6, 2018
Nov 6, 2018
Feb 17, 2019
Jul 18, 2018
Apr 20, 2017
Feb 17, 2019
Nov 6, 2018
Nov 6, 2018
Nov 2, 2016

Repository files navigation

File system driver Build Status

To use this package, go to https://makecode.microbit.org, click Extensions and search for filesystem.

~ hint

BETA - This package is still under development and subject to changes.

~

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.

Packages

No packages published

Languages

  • TypeScript 51.6%
  • C++ 48.4%