JS: Add extra SDK feature strings

This commit is contained in:
Willy-JL
2024-11-02 04:34:23 +00:00
parent 48aceffe9b
commit 67d9f5b44a
11 changed files with 92 additions and 5 deletions

View File

@@ -1,3 +1,6 @@
// Script cannot work without blebeacon module so check before
checkSdkFeatures(["blebeacon"]);
let blebeacon = require("blebeacon");
// Stop if previous background beacon is active

View File

@@ -1,3 +1,6 @@
// Script cannot work without i2c module so check before
checkSdkFeatures(["i2c"]);
// Connect an 24C32N EEPROM to the I2C bus of the board. SDA=pin 15, SCL=pin 16, VCC=pin 9, GND=pin 8.
let i2c = require("i2c");

View File

@@ -1,3 +1,6 @@
// Script cannot work without spi module so check before
checkSdkFeatures(["spi"]);
// Connect a w25q32 SPI device to the Flipper Zero.
// D1=pin 2 (MOSI), SLK=pin 5 (SCK), GND=pin 8 (GND), D0=pin 3 (MISO), CS=pin 4 (CS), VCC=pin 9 (3V3)
let spi = require("spi");

View File

@@ -26,4 +26,16 @@ storage.remove(path);
print("Done")
// You don't need to close the file after each operation, this is just to show some different ways to use the API
// There's also many more functions and options, check type definitions in firmware repo
// There's also many more functions and options, check type definitions in firmware repo
// There is also virtual API, which is not available in all firmwares
// Allows you to mount disk images (like mass storage) and read/modify their contents
// If you want to use this as an optional feature, not essential to your script:
// if (doesSdkSupport(["storage-virtual"])) {
// storage.virtualInit("/ext/disk_image.img");
// storage.virtualMount();
// // Read/modify data from /mnt filesystem
// storage.virtualQuit();
// }
// If instead virtual API is essential to your script, put this near beginning of script:
// checkSdkFeatures(["storage-virtual"]);

View File

@@ -1,3 +1,6 @@
// Script cannot work without subghz module so check before
checkSdkFeatures(["subghz"]);
let subghz = require("subghz");
subghz.setup();

View File

@@ -1,12 +1,39 @@
// Script cannot work without usbdisk module so check before
checkSdkFeatures(["usbdisk"]);
let usbdisk = require("usbdisk");
// print("Creating image...");
// usbdisk.createImage("/ext/apps_data/mass_storage/128MB.img", 128 * 1024 * 1024);
let storage = require("storage");
let imagePath = "/ext/apps_data/mass_storage/128MB.img";
let imageSize = 128 * 1024 * 1024;
let imageExisted = storage.fileExists(imagePath);
if (imageExisted) {
print("Disk image '128MB' already exists");
} else {
// CreateImage isn't necessary to overall function, check when its used not at script start
if (doesSdkSupport(["usbdisk-createimage"])) {
print("Creating disk image '128MB'...");
usbdisk.createImage(imagePath, imageSize);
} else {
die("Disk image '128MB' not present, can't auto-create");
}
}
print("Starting UsbDisk...");
usbdisk.start("/ext/apps_data/mass_storage/128MB.img");
print("Started, waiting until ejected...");
while (!usbdisk.wasEjected()) {
delay(1000);
}
print("Ejected, stopping UsbDisk...");
usbdisk.stop();
if (!imageExisted) {
print("Removing disk image...");
storage.remove(imagePath);
}
print("Done");

View File

@@ -1,3 +1,6 @@
// Script cannot work without widget module so check before
checkSdkFeatures(["widget"]);
let widget = require("widget");
let demo_seconds = 30;
@@ -34,8 +37,12 @@ widget.addDot(102, 44);
widget.addDot(104, 43);
// add an icon (x, y, icon)
widget.addIcon(100, 50, "ButtonUp_7x4");
widget.addIcon(100, 55, "ButtonDown_7x4");
// not available in all firmwares, but not essential for this script's
// functionality, so we just check at runtime and use it if it is available
if (doesSdkSupport(["widget-addicon"])) {
widget.addIcon(100, 50, "ButtonUp_7x4");
widget.addIcon(100, 55, "ButtonDown_7x4");
}
// add a glyph (x, y, glyph)
widget.addGlyph(115, 50, "#".charCodeAt(0));