From 462ab255a16a6edf9473ddad0990f5c52baa7861 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:52:24 +0300 Subject: [PATCH] upd examples --- .../apps/Scripts/js_examples/blebeacon.js | 3 ++ .../examples/apps/Scripts/js_examples/i2c.js | 3 ++ .../examples/apps/Scripts/js_examples/spi.js | 6 +++- .../apps/Scripts/js_examples/subghz.js | 3 ++ .../apps/Scripts/js_examples/usbdisk.js | 29 +++++++++++++++++++ .../apps/Scripts/js_examples/widget.js | 11 ++++--- 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/blebeacon.js b/applications/system/js_app/examples/apps/Scripts/js_examples/blebeacon.js index 1187f1c20a..c1a6c1d165 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/blebeacon.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/blebeacon.js @@ -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 diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/i2c.js b/applications/system/js_app/examples/apps/Scripts/js_examples/i2c.js index 456b44ccda..5c71cfe4e9 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/i2c.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/i2c.js @@ -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"); diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/spi.js b/applications/system/js_app/examples/apps/Scripts/js_examples/spi.js index 810637b3bb..225b7b1391 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/spi.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/spi.js @@ -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"); @@ -5,8 +8,9 @@ let spi = require("spi"); // Display textbox so user can scroll to see all output. let eventLoop = require("event_loop"); let gui = require("gui"); +let textBoxView = require("gui/text_box"); let text = "SPI demo\n"; -let textBox = require("gui/text_box").makeWith({ +let textBox = textBoxView.makeWith({ focus: "end", font: "text", text: text, diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/subghz.js b/applications/system/js_app/examples/apps/Scripts/js_examples/subghz.js index b5e54bac67..d53635b503 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/subghz.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/subghz.js @@ -1,3 +1,6 @@ +// Script cannot work without subghz module so check before +checkSdkFeatures(["subghz"]); + let subghz = require("subghz"); subghz.setup(); diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/usbdisk.js b/applications/system/js_app/examples/apps/Scripts/js_examples/usbdisk.js index 7d148ab4cf..8bf78dde6e 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/usbdisk.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/usbdisk.js @@ -1,10 +1,39 @@ +// Script cannot work without usbdisk module so check before +checkSdkFeatures(["usbdisk"]); + let usbdisk = require("usbdisk"); +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"); \ No newline at end of file diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/widget.js b/applications/system/js_app/examples/apps/Scripts/js_examples/widget.js index 4ff11e4410..32ba96d1be 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/widget.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/widget.js @@ -1,17 +1,20 @@ +// Script cannot work without widget module so check before +checkSdkFeatures(["widget"]); + let widget = require("widget"); let demo_seconds = 30; -print("Loading file", __filepath); -print("From directory", __dirpath); +print("Loading file", __filename); +print("From directory", __dirname); // addText supports "Primary" and "Secondary" font sizes. widget.addText(10, 10, "Primary", "Example JS widget"); widget.addText(10, 20, "Secondary", "Example widget from JS!"); // load a Xbm file from the same directory as this script. -widget.addText(0, 30, "Secondary", __filepath); -let logo = widget.loadImageXbm(__dirpath + "/widget-js.fxbm"); +widget.addText(0, 30, "Secondary", __filename); +let logo = widget.loadImageXbm(__dirname + "/widget-js.fxbm"); // add a line (x1, y1, x2, y2) widget.addLine(10, 35, 120, 35);