From ac3c6dc4f9a9070ebf5504bfb4771d9f4af94347 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Wed, 16 Oct 2024 01:07:03 +0300 Subject: [PATCH] move examples --- .../js_app/examples/apps/Scripts/gpio.js | 57 --------------- .../Scripts/{ => js_examples}/event_loop.js | 0 .../examples/apps/Scripts/js_examples/gpio.js | 73 +++++++++---------- .../apps/Scripts/{ => js_examples}/gui.js | 0 4 files changed, 34 insertions(+), 96 deletions(-) delete mode 100644 applications/system/js_app/examples/apps/Scripts/gpio.js rename applications/system/js_app/examples/apps/Scripts/{ => js_examples}/event_loop.js (100%) rename applications/system/js_app/examples/apps/Scripts/{ => js_examples}/gui.js (100%) diff --git a/applications/system/js_app/examples/apps/Scripts/gpio.js b/applications/system/js_app/examples/apps/Scripts/gpio.js deleted file mode 100644 index f3b4bc121..000000000 --- a/applications/system/js_app/examples/apps/Scripts/gpio.js +++ /dev/null @@ -1,57 +0,0 @@ -let eventLoop = require("event_loop"); -let gpio = require("gpio"); - -// initialize pins -let led = gpio.get("pc3"); // same as `gpio.get(7)` -let pot = gpio.get("pc0"); // same as `gpio.get(16)` -let button = gpio.get("pc1"); // same as `gpio.get(15)` -led.init({ direction: "out", outMode: "push_pull" }); -pot.init({ direction: "in", inMode: "analog" }); -button.init({ direction: "in", pull: "up", inMode: "interrupt", edge: "falling" }); - -// blink led -print("Commencing blinking (PC3)"); -eventLoop.subscribe(eventLoop.timer("periodic", 1000), function (_, _item, led, state) { - led.write(state); - return [led, !state]; -}, led, true); - -// read potentiometer when button is pressed -print("Press the button (PC1)"); -eventLoop.subscribe(button.interrupt(), function (_, _item, pot) { - print("PC0 is at", pot.read_analog(), "mV"); -}, pot); - -// the program will just exit unless this is here -eventLoop.run(); - -// possible pins https://docs.flipper.net/gpio-and-modules#miFsS -// "PA7" aka 2 -// "PA6" aka 3 -// "PA4" aka 4 -// "PB3" aka 5 -// "PB2" aka 6 -// "PC3" aka 7 -// "PA14" aka 10 -// "PA13" aka 12 -// "PB6" aka 13 -// "PB7" aka 14 -// "PC1" aka 15 -// "PC0" aka 16 -// "PB14" aka 17 - -// possible modes -// { direction: "out", outMode: "push_pull" } -// { direction: "out", outMode: "open_drain" } -// { direction: "out", outMode: "push_pull", altFn: true } -// { direction: "out", outMode: "open_drain", altFn: true } -// { direction: "in", inMode: "analog" } -// { direction: "in", inMode: "plain_digital" } -// { direction: "in", inMode: "interrupt", edge: "rising" } -// { direction: "in", inMode: "interrupt", edge: "falling" } -// { direction: "in", inMode: "interrupt", edge: "both" } -// { direction: "in", inMode: "event", edge: "rising" } -// { direction: "in", inMode: "event", edge: "falling" } -// { direction: "in", inMode: "event", edge: "both" } -// all variants support an optional `pull` field which can either be undefined, -// "up" or "down" diff --git a/applications/system/js_app/examples/apps/Scripts/event_loop.js b/applications/system/js_app/examples/apps/Scripts/js_examples/event_loop.js similarity index 100% rename from applications/system/js_app/examples/apps/Scripts/event_loop.js rename to applications/system/js_app/examples/apps/Scripts/js_examples/event_loop.js diff --git a/applications/system/js_app/examples/apps/Scripts/js_examples/gpio.js b/applications/system/js_app/examples/apps/Scripts/js_examples/gpio.js index 02b55a3ad..f3b4bc121 100644 --- a/applications/system/js_app/examples/apps/Scripts/js_examples/gpio.js +++ b/applications/system/js_app/examples/apps/Scripts/js_examples/gpio.js @@ -1,31 +1,29 @@ +let eventLoop = require("event_loop"); let gpio = require("gpio"); // initialize pins -gpio.init("PC3", "outputPushPull", "up"); // pin, mode, pull -print("PC3 is initialized as outputPushPull with pull-up"); +let led = gpio.get("pc3"); // same as `gpio.get(7)` +let pot = gpio.get("pc0"); // same as `gpio.get(16)` +let button = gpio.get("pc1"); // same as `gpio.get(15)` +led.init({ direction: "out", outMode: "push_pull" }); +pot.init({ direction: "in", inMode: "analog" }); +button.init({ direction: "in", pull: "up", inMode: "interrupt", edge: "falling" }); -gpio.init("PC1", "input", "down"); // pin, mode, pull -print("PC1 is initialized as input with pull-down"); +// blink led +print("Commencing blinking (PC3)"); +eventLoop.subscribe(eventLoop.timer("periodic", 1000), function (_, _item, led, state) { + led.write(state); + return [led, !state]; +}, led, true); -// let led on PC3 blink -gpio.write("PC3", true); // high -delay(1000); -gpio.write("PC3", false); // low -delay(1000); -gpio.write("PC3", true); // high -delay(1000); -gpio.write("PC3", false); // low - -// read value from PC1 and write it to PC3 -while (true) { - let value = gpio.read("PC1"); - gpio.write("PC3", value); - - value ? print("PC1 is high") : print("PC1 is low"); - - delay(100); -} +// read potentiometer when button is pressed +print("Press the button (PC1)"); +eventLoop.subscribe(button.interrupt(), function (_, _item, pot) { + print("PC0 is at", pot.read_analog(), "mV"); +}, pot); +// the program will just exit unless this is here +eventLoop.run(); // possible pins https://docs.flipper.net/gpio-and-modules#miFsS // "PA7" aka 2 @@ -43,20 +41,17 @@ while (true) { // "PB14" aka 17 // possible modes -// "input" -// "outputPushPull" -// "outputOpenDrain" -// "altFunctionPushPull" -// "altFunctionOpenDrain" -// "analog" -// "interruptRise" -// "interruptFall" -// "interruptRiseFall" -// "eventRise" -// "eventFall" -// "eventRiseFall" - -// possible pull -// "no" -// "up" -// "down" \ No newline at end of file +// { direction: "out", outMode: "push_pull" } +// { direction: "out", outMode: "open_drain" } +// { direction: "out", outMode: "push_pull", altFn: true } +// { direction: "out", outMode: "open_drain", altFn: true } +// { direction: "in", inMode: "analog" } +// { direction: "in", inMode: "plain_digital" } +// { direction: "in", inMode: "interrupt", edge: "rising" } +// { direction: "in", inMode: "interrupt", edge: "falling" } +// { direction: "in", inMode: "interrupt", edge: "both" } +// { direction: "in", inMode: "event", edge: "rising" } +// { direction: "in", inMode: "event", edge: "falling" } +// { direction: "in", inMode: "event", edge: "both" } +// all variants support an optional `pull` field which can either be undefined, +// "up" or "down" diff --git a/applications/system/js_app/examples/apps/Scripts/gui.js b/applications/system/js_app/examples/apps/Scripts/js_examples/gui.js similarity index 100% rename from applications/system/js_app/examples/apps/Scripts/gui.js rename to applications/system/js_app/examples/apps/Scripts/js_examples/gui.js