Simple example that shows how to embed a JavaScript interpreter and expose some mbed system functions to JS allowing a simple JavaScript program to blink a led.

Dependencies:   mbed v7

Files at this revision

API Documentation at this revision

Comitter:
mmikulicic
Date:
Thu Oct 13 09:01:59 2016 +0000
Commit message:
Example

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
v7.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r ca3d04aad28e main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Oct 13 09:01:59 2016 +0000
@@ -0,0 +1,32 @@
+#include "mbed.h"
+
+#include "v7.h"
+
+DigitalOut led_green(LED1);
+
+enum v7_err js_set_led(struct v7 *v7, v7_val_t *res) {
+    led_green = !v7_get_bool(v7, v7_arg(v7, 0));
+    return V7_OK;
+}
+
+enum v7_err js_wait(struct v7 *v7, v7_val_t *res) {
+    wait(v7_get_double(v7, v7_arg(v7, 0)));
+    return V7_OK;
+}    
+
+int main() {  
+    struct v7 *v7 = v7_create();
+
+    v7_set_method(v7, v7_get_global(v7), "setLed", &js_set_led);
+    v7_set_method(v7, v7_get_global(v7), "wait", &js_wait);
+
+  v7_exec(v7,
+          "while(true) {" \
+          "  setLed(false);" \
+          "  wait(0.2); " \
+          "  setLed(true);" \
+          "  wait(0.8); " \
+          "}",
+          NULL);
+
+}
diff -r 000000000000 -r ca3d04aad28e mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Oct 13 09:01:59 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/25aea2a3f4e3
\ No newline at end of file
diff -r 000000000000 -r ca3d04aad28e v7.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/v7.lib	Thu Oct 13 09:01:59 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/teams/Cesanta/code/v7/#2bce515c5f0b