WASM Interpreter functional
This commit is contained in:
parent
4f4b6ca253
commit
148de04e6f
@ -266,6 +266,8 @@ class WASMFX {
|
|||||||
uint32_t now();
|
uint32_t now();
|
||||||
uint32_t speed();
|
uint32_t speed();
|
||||||
uint32_t intensity();
|
uint32_t intensity();
|
||||||
|
uint32_t len();
|
||||||
|
void set(uint32_t i, uint32_t r, uint32_t g, uint32_t b);
|
||||||
};
|
};
|
||||||
|
|
||||||
//wled_eeprom.cpp
|
//wled_eeprom.cpp
|
||||||
|
174
wled00/wasm.cpp
174
wled00/wasm.cpp
@ -9,81 +9,26 @@
|
|||||||
#define WASM_MEMORY_LIMIT 4096
|
#define WASM_MEMORY_LIMIT 4096
|
||||||
|
|
||||||
unsigned char app_wasm[] = {
|
unsigned char app_wasm[] = {
|
||||||
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x03, 0x60,
|
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x03, 0x60,
|
||||||
0x00, 0x00, 0x60, 0x02, 0x7f, 0x7f, 0x00, 0x60, 0x01, 0x7f, 0x01, 0x7f,
|
0x00, 0x01, 0x7f, 0x60, 0x04, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x60, 0x00,
|
||||||
0x02, 0x11, 0x01, 0x07, 0x61, 0x72, 0x64, 0x75, 0x69, 0x6e, 0x6f, 0x05,
|
0x00, 0x02, 0x2b, 0x04, 0x03, 0x6c, 0x65, 0x64, 0x03, 0x6e, 0x6f, 0x77,
|
||||||
0x70, 0x72, 0x69, 0x6e, 0x74, 0x00, 0x01, 0x03, 0x06, 0x05, 0x02, 0x01,
|
0x00, 0x00, 0x03, 0x6c, 0x65, 0x64, 0x03, 0x6c, 0x65, 0x6e, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x05, 0x03, 0x01, 0x00, 0x01, 0x06, 0x06, 0x01, 0x7f,
|
0x03, 0x6c, 0x65, 0x64, 0x03, 0x73, 0x65, 0x74, 0x00, 0x01, 0x03, 0x6c,
|
||||||
0x01, 0x41, 0x00, 0x0b, 0x07, 0x0f, 0x02, 0x02, 0x66, 0x78, 0x00, 0x04,
|
0x65, 0x64, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x00, 0x00, 0x03, 0x02,
|
||||||
0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x02, 0x00, 0x08, 0x01, 0x05,
|
0x01, 0x02, 0x05, 0x03, 0x01, 0x00, 0x00, 0x07, 0x0f, 0x02, 0x02, 0x66,
|
||||||
0x0a, 0xaf, 0x05, 0x05, 0xb1, 0x01, 0x01, 0x06, 0x7f, 0x20, 0x00, 0x41,
|
0x78, 0x00, 0x04, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x02, 0x00,
|
||||||
0xec, 0xff, 0xff, 0xff, 0x03, 0x4b, 0x04, 0x40, 0x00, 0x0b, 0x20, 0x00,
|
0x0a, 0x45, 0x01, 0x43, 0x01, 0x04, 0x7f, 0x10, 0x00, 0x41, 0x02, 0x76,
|
||||||
0x41, 0x10, 0x6a, 0x22, 0x01, 0x41, 0xfc, 0xff, 0xff, 0xff, 0x03, 0x4b,
|
0x21, 0x00, 0x10, 0x01, 0x21, 0x02, 0x03, 0x40, 0x20, 0x01, 0x20, 0x02,
|
||||||
0x04, 0x40, 0x00, 0x0b, 0x23, 0x00, 0x21, 0x05, 0x23, 0x00, 0x41, 0x04,
|
0x49, 0x04, 0x40, 0x20, 0x01, 0x20, 0x00, 0x41, 0xff, 0x01, 0x71, 0x22,
|
||||||
0x6a, 0x22, 0x03, 0x20, 0x01, 0x41, 0x13, 0x6a, 0x41, 0x70, 0x71, 0x41,
|
0x03, 0x20, 0x03, 0x41, 0x01, 0x76, 0x41, 0x00, 0x10, 0x02, 0x20, 0x00,
|
||||||
0x04, 0x6b, 0x22, 0x06, 0x6a, 0x22, 0x01, 0x3f, 0x00, 0x22, 0x04, 0x41,
|
0x10, 0x03, 0x41, 0x04, 0x76, 0x41, 0x01, 0x6a, 0x6a, 0x21, 0x00, 0x20,
|
||||||
0x10, 0x74, 0x41, 0x0f, 0x6a, 0x41, 0x70, 0x71, 0x22, 0x02, 0x4b, 0x04,
|
0x01, 0x41, 0x01, 0x6a, 0x21, 0x01, 0x0c, 0x01, 0x0b, 0x0b, 0x0b, 0x00,
|
||||||
0x40, 0x20, 0x04, 0x20, 0x01, 0x20, 0x02, 0x6b, 0x41, 0xff, 0xff, 0x03,
|
|
||||||
0x6a, 0x41, 0x80, 0x80, 0x7c, 0x71, 0x41, 0x10, 0x76, 0x22, 0x02, 0x20,
|
|
||||||
0x02, 0x20, 0x04, 0x48, 0x1b, 0x40, 0x00, 0x41, 0x00, 0x48, 0x04, 0x40,
|
|
||||||
0x20, 0x02, 0x40, 0x00, 0x41, 0x00, 0x48, 0x04, 0x40, 0x00, 0x0b, 0x0b,
|
|
||||||
0x0b, 0x20, 0x01, 0x24, 0x00, 0x20, 0x05, 0x20, 0x06, 0x36, 0x02, 0x00,
|
|
||||||
0x20, 0x03, 0x41, 0x04, 0x6b, 0x22, 0x01, 0x41, 0x00, 0x36, 0x02, 0x04,
|
|
||||||
0x20, 0x01, 0x41, 0x00, 0x36, 0x02, 0x08, 0x20, 0x01, 0x41, 0x00, 0x36,
|
|
||||||
0x02, 0x0c, 0x20, 0x01, 0x20, 0x00, 0x36, 0x02, 0x10, 0x20, 0x03, 0x41,
|
|
||||||
0x10, 0x6a, 0x0b, 0xbc, 0x02, 0x01, 0x03, 0x7f, 0x41, 0xa0, 0x08, 0x21,
|
|
||||||
0x02, 0x20, 0x00, 0x41, 0x01, 0x74, 0x41, 0xa0, 0x08, 0x6a, 0x21, 0x03,
|
|
||||||
0x20, 0x01, 0x21, 0x00, 0x03, 0x40, 0x20, 0x02, 0x20, 0x03, 0x49, 0x04,
|
|
||||||
0x40, 0x20, 0x02, 0x2f, 0x01, 0x00, 0x22, 0x01, 0x41, 0x80, 0x01, 0x49,
|
|
||||||
0x04, 0x7f, 0x20, 0x00, 0x20, 0x01, 0x3a, 0x00, 0x00, 0x20, 0x00, 0x41,
|
|
||||||
0x01, 0x6a, 0x05, 0x20, 0x01, 0x41, 0x80, 0x10, 0x49, 0x04, 0x7f, 0x20,
|
|
||||||
0x00, 0x20, 0x01, 0x41, 0x06, 0x76, 0x41, 0xc0, 0x01, 0x72, 0x20, 0x01,
|
|
||||||
0x41, 0x3f, 0x71, 0x41, 0x80, 0x01, 0x72, 0x41, 0x08, 0x74, 0x72, 0x3b,
|
|
||||||
0x01, 0x00, 0x20, 0x00, 0x41, 0x02, 0x6a, 0x05, 0x20, 0x01, 0x41, 0x80,
|
|
||||||
0xf0, 0x03, 0x71, 0x41, 0x80, 0xb0, 0x03, 0x46, 0x04, 0x40, 0x20, 0x03,
|
|
||||||
0x20, 0x02, 0x41, 0x02, 0x6a, 0x4b, 0x41, 0x00, 0x20, 0x01, 0x41, 0x80,
|
|
||||||
0xb8, 0x03, 0x49, 0x1b, 0x04, 0x40, 0x20, 0x02, 0x2f, 0x01, 0x02, 0x22,
|
|
||||||
0x04, 0x41, 0x80, 0xf8, 0x03, 0x71, 0x41, 0x80, 0xb8, 0x03, 0x46, 0x04,
|
|
||||||
0x40, 0x20, 0x00, 0x20, 0x01, 0x41, 0xff, 0x07, 0x71, 0x41, 0x0a, 0x74,
|
|
||||||
0x41, 0x80, 0x80, 0x04, 0x6a, 0x20, 0x04, 0x41, 0xff, 0x07, 0x71, 0x72,
|
|
||||||
0x22, 0x01, 0x41, 0x3f, 0x71, 0x41, 0x80, 0x01, 0x72, 0x41, 0x18, 0x74,
|
|
||||||
0x20, 0x01, 0x41, 0x06, 0x76, 0x41, 0x3f, 0x71, 0x41, 0x80, 0x01, 0x72,
|
|
||||||
0x41, 0x10, 0x74, 0x72, 0x20, 0x01, 0x41, 0x0c, 0x76, 0x41, 0x3f, 0x71,
|
|
||||||
0x41, 0x80, 0x01, 0x72, 0x41, 0x08, 0x74, 0x72, 0x20, 0x01, 0x41, 0x12,
|
|
||||||
0x76, 0x41, 0xf0, 0x01, 0x72, 0x72, 0x36, 0x02, 0x00, 0x20, 0x00, 0x41,
|
|
||||||
0x04, 0x6a, 0x21, 0x00, 0x20, 0x02, 0x41, 0x04, 0x6a, 0x21, 0x02, 0x0c,
|
|
||||||
0x06, 0x0b, 0x0b, 0x0b, 0x20, 0x00, 0x20, 0x01, 0x41, 0x0c, 0x76, 0x41,
|
|
||||||
0xe0, 0x01, 0x72, 0x20, 0x01, 0x41, 0x06, 0x76, 0x41, 0x3f, 0x71, 0x41,
|
|
||||||
0x80, 0x01, 0x72, 0x41, 0x08, 0x74, 0x72, 0x3b, 0x01, 0x00, 0x20, 0x00,
|
|
||||||
0x20, 0x01, 0x41, 0x3f, 0x71, 0x41, 0x80, 0x01, 0x72, 0x3a, 0x00, 0x02,
|
|
||||||
0x20, 0x00, 0x41, 0x03, 0x6a, 0x0b, 0x0b, 0x21, 0x00, 0x20, 0x02, 0x41,
|
|
||||||
0x02, 0x6a, 0x21, 0x02, 0x0c, 0x01, 0x0b, 0x0b, 0x0b, 0xae, 0x01, 0x01,
|
|
||||||
0x04, 0x7f, 0x41, 0xa0, 0x08, 0x21, 0x01, 0x41, 0x9c, 0x08, 0x28, 0x02,
|
|
||||||
0x00, 0x41, 0xa0, 0x08, 0x6a, 0x21, 0x02, 0x03, 0x40, 0x20, 0x01, 0x20,
|
|
||||||
0x02, 0x49, 0x04, 0x40, 0x20, 0x01, 0x2f, 0x01, 0x00, 0x22, 0x03, 0x41,
|
|
||||||
0x80, 0x01, 0x49, 0x04, 0x7f, 0x20, 0x00, 0x41, 0x01, 0x6a, 0x05, 0x20,
|
|
||||||
0x03, 0x41, 0x80, 0x10, 0x49, 0x04, 0x7f, 0x20, 0x00, 0x41, 0x02, 0x6a,
|
|
||||||
0x05, 0x20, 0x02, 0x20, 0x01, 0x41, 0x02, 0x6a, 0x4b, 0x41, 0x00, 0x20,
|
|
||||||
0x03, 0x41, 0x80, 0xf8, 0x03, 0x71, 0x41, 0x80, 0xb0, 0x03, 0x46, 0x1b,
|
|
||||||
0x04, 0x40, 0x20, 0x01, 0x2f, 0x01, 0x02, 0x41, 0x80, 0xf8, 0x03, 0x71,
|
|
||||||
0x41, 0x80, 0xb8, 0x03, 0x46, 0x04, 0x40, 0x20, 0x00, 0x41, 0x04, 0x6a,
|
|
||||||
0x21, 0x00, 0x20, 0x01, 0x41, 0x04, 0x6a, 0x21, 0x01, 0x0c, 0x05, 0x0b,
|
|
||||||
0x0b, 0x20, 0x00, 0x41, 0x03, 0x6a, 0x0b, 0x0b, 0x21, 0x00, 0x20, 0x01,
|
|
||||||
0x41, 0x02, 0x6a, 0x21, 0x01, 0x0c, 0x01, 0x0b, 0x0b, 0x20, 0x00, 0x10,
|
|
||||||
0x01, 0x21, 0x00, 0x41, 0x9c, 0x08, 0x28, 0x02, 0x00, 0x41, 0x01, 0x76,
|
|
||||||
0x20, 0x00, 0x10, 0x02, 0x20, 0x00, 0x20, 0x00, 0x41, 0x14, 0x6b, 0x28,
|
|
||||||
0x02, 0x10, 0x10, 0x00, 0x0b, 0x04, 0x00, 0x10, 0x03, 0x0b, 0x07, 0x00,
|
|
||||||
0x41, 0xcc, 0x08, 0x24, 0x00, 0x0b, 0x0b, 0x3f, 0x02, 0x00, 0x41, 0x8c,
|
|
||||||
0x08, 0x0b, 0x01, 0x3c, 0x00, 0x41, 0x98, 0x08, 0x0b, 0x31, 0x01, 0x00,
|
|
||||||
0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x48, 0x00, 0x65, 0x00, 0x6c, 0x00,
|
|
||||||
0x6c, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x57, 0x00, 0x4c, 0x00, 0x45, 0x00,
|
|
||||||
0x44, 0x00, 0x20, 0x00, 0x66, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x6d, 0x00,
|
|
||||||
0x20, 0x00, 0x57, 0x00, 0x41, 0x00, 0x53, 0x00, 0x4d, 0x00, 0x21, 0x00,
|
|
||||||
0x20, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70,
|
0x20, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70,
|
||||||
0x69, 0x6e, 0x67, 0x55, 0x52, 0x4c, 0x0e, 0x2e, 0x2f, 0x61, 0x70, 0x70,
|
0x69, 0x6e, 0x67, 0x55, 0x52, 0x4c, 0x0e, 0x2e, 0x2f, 0x61, 0x70, 0x70,
|
||||||
0x2e, 0x77, 0x61, 0x73, 0x6d, 0x2e, 0x6d, 0x61, 0x70
|
0x2e, 0x77, 0x61, 0x73, 0x6d, 0x2e, 0x6d, 0x61, 0x70
|
||||||
};
|
};
|
||||||
unsigned int app_wasm_len = 873;
|
unsigned int app_wasm_len = 201;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -107,9 +52,9 @@ m3ApiRawFunction(m3_arduino_delay)
|
|||||||
m3ApiGetArg (uint32_t, ms)
|
m3ApiGetArg (uint32_t, ms)
|
||||||
|
|
||||||
// You can also trace API calls
|
// You can also trace API calls
|
||||||
//Serial.print("api: delay "); Serial.println(ms);
|
Serial.print("api: delay "); Serial.println(ms);
|
||||||
|
|
||||||
delay(ms);
|
//delay(ms);
|
||||||
|
|
||||||
m3ApiSuccess();
|
m3ApiSuccess();
|
||||||
}
|
}
|
||||||
@ -169,17 +114,17 @@ m3ApiRawFunction(m3_led_now) {
|
|||||||
|
|
||||||
m3ApiRawFunction(m3_led_speed) {
|
m3ApiRawFunction(m3_led_speed) {
|
||||||
m3ApiReturnType(uint32_t)
|
m3ApiReturnType(uint32_t)
|
||||||
m3ApiReturn(0);//strip._segments[strip._segment_index].speed);
|
m3ApiReturn(wasmfx.speed());//strip._segments[strip._segment_index].speed);
|
||||||
}
|
}
|
||||||
|
|
||||||
m3ApiRawFunction(m3_led_intensity) {
|
m3ApiRawFunction(m3_led_intensity) {
|
||||||
m3ApiReturnType(uint32_t)
|
m3ApiReturnType(uint32_t)
|
||||||
m3ApiReturn(0);//strip._segments[strip._segment_index].intensity);
|
m3ApiReturn(wasmfx.intensity());//strip._segments[strip._segment_index].intensity);
|
||||||
}
|
}
|
||||||
|
|
||||||
m3ApiRawFunction(m3_led_len) {
|
m3ApiRawFunction(m3_led_len) {
|
||||||
m3ApiReturnType(uint32_t)
|
m3ApiReturnType(uint32_t)
|
||||||
m3ApiReturn(0);//strip._virtualSegmentLength);
|
m3ApiReturn(wasmfx.len());//strip._virtualSegmentLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
m3ApiRawFunction(m3_led_fill) {
|
m3ApiRawFunction(m3_led_fill) {
|
||||||
@ -192,9 +137,11 @@ m3ApiRawFunction(m3_led_fill) {
|
|||||||
|
|
||||||
m3ApiRawFunction(m3_led_set) {
|
m3ApiRawFunction(m3_led_set) {
|
||||||
m3ApiGetArg (uint32_t, index)
|
m3ApiGetArg (uint32_t, index)
|
||||||
m3ApiGetArg (uint32_t, color)
|
m3ApiGetArg (uint32_t, r)
|
||||||
|
m3ApiGetArg (uint32_t, g)
|
||||||
|
m3ApiGetArg (uint32_t, b)
|
||||||
|
|
||||||
strip.setPixelColor(index, color);
|
strip.setPixelColor(index, r,g,b);
|
||||||
|
|
||||||
m3ApiSuccess();
|
m3ApiSuccess();
|
||||||
}
|
}
|
||||||
@ -230,7 +177,7 @@ M3Result LinkArduino (IM3Runtime runtime)
|
|||||||
m3_LinkRawFunction (module, led, "intensity", "i()", &m3_led_intensity);
|
m3_LinkRawFunction (module, led, "intensity", "i()", &m3_led_intensity);
|
||||||
m3_LinkRawFunction (module, led, "len", "i()", &m3_led_len);
|
m3_LinkRawFunction (module, led, "len", "i()", &m3_led_len);
|
||||||
m3_LinkRawFunction (module, led, "fill", "v(i)", &m3_led_fill);
|
m3_LinkRawFunction (module, led, "fill", "v(i)", &m3_led_fill);
|
||||||
m3_LinkRawFunction (module, led, "set", "v(ii)", &m3_led_set);
|
m3_LinkRawFunction (module, led, "set", "v(iiii)",&m3_led_set);
|
||||||
m3_LinkRawFunction (module, led, "rgb", "i(iii)", &m3_led_rgb);
|
m3_LinkRawFunction (module, led, "rgb", "i(iii)", &m3_led_rgb);
|
||||||
|
|
||||||
return m3Err_none;
|
return m3Err_none;
|
||||||
@ -242,62 +189,48 @@ M3Result LinkArduino (IM3Runtime runtime)
|
|||||||
|
|
||||||
#define FATAL(func, msg) { Serial.print("Fatal: " func " "); Serial.println(msg); return; }
|
#define FATAL(func, msg) { Serial.print("Fatal: " func " "); Serial.println(msg); return; }
|
||||||
|
|
||||||
|
M3Result result;
|
||||||
|
IM3Environment env;
|
||||||
|
IM3Runtime runtime;
|
||||||
|
IM3Module module;
|
||||||
|
IM3Function fu;
|
||||||
|
|
||||||
void wasm_task(void*)
|
void wasm_task(void*)
|
||||||
{
|
{
|
||||||
M3Result result = m3Err_none;
|
result = m3Err_none;
|
||||||
|
|
||||||
IM3Environment env = m3_NewEnvironment ();
|
env = m3_NewEnvironment ();
|
||||||
if (!env) FATAL("NewEnv", "failed");
|
if (!env) FATAL("NewEnv", "failed");
|
||||||
|
|
||||||
IM3Runtime runtime = m3_NewRuntime (env, WASM_STACK_SLOTS, NULL);
|
runtime = m3_NewRuntime (env, WASM_STACK_SLOTS, NULL);
|
||||||
if (!runtime) FATAL("NewRt", "failed");
|
if (!runtime) FATAL("NewRt", "failed");
|
||||||
|
|
||||||
#ifdef WASM_MEMORY_LIMIT
|
#ifdef WASM_MEMORY_LIMIT
|
||||||
runtime->memoryLimit = WASM_MEMORY_LIMIT;
|
runtime->memoryLimit = WASM_MEMORY_LIMIT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
IM3Module module;
|
|
||||||
result = m3_ParseModule (env, &module, app_wasm, app_wasm_len);
|
result = m3_ParseModule (env, &module, app_wasm, app_wasm_len);
|
||||||
if (result) FATAL("ParseModule", result);
|
if (result) FATAL("Prs", result);
|
||||||
|
|
||||||
result = m3_LoadModule (runtime, module);
|
result = m3_LoadModule (runtime, module);
|
||||||
if (result) FATAL("LoadModule", result);
|
if (result) FATAL("Load", result);
|
||||||
|
|
||||||
result = LinkArduino (runtime);
|
result = LinkArduino (runtime);
|
||||||
if (result) FATAL("LinkArd", result);
|
if (result) FATAL("Lnk", result);
|
||||||
|
|
||||||
IM3Function f;
|
result = m3_FindFunction (&fu, runtime, "fx");
|
||||||
result = m3_FindFunction (&f, runtime, "fx");
|
if (result) FATAL("Func", result);
|
||||||
if (result) FATAL("FindFunc", result);
|
|
||||||
|
|
||||||
Serial.println("Run WASM...");
|
Serial.println(F("WASM init success!"));
|
||||||
|
|
||||||
result = m3_CallV (f);
|
|
||||||
|
|
||||||
// Should not arrive here
|
// Should not arrive here
|
||||||
|
|
||||||
if (result) {
|
|
||||||
M3ErrorInfo info;
|
|
||||||
m3_GetErrorInfo (runtime, &info);
|
|
||||||
Serial.print("Err: ");
|
|
||||||
Serial.print(result);
|
|
||||||
Serial.print(" (");
|
|
||||||
Serial.print(info.message);
|
|
||||||
Serial.println(")");
|
|
||||||
if (info.file && strlen(info.file) && info.line) {
|
|
||||||
Serial.print("At ");
|
|
||||||
Serial.print(info.file);
|
|
||||||
Serial.print(":");
|
|
||||||
Serial.println(info.line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//while (true) {}
|
//while (true) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wasmInit()
|
void wasmInit()
|
||||||
{
|
{
|
||||||
Serial.println("\nWasm3 v" M3_VERSION " (" M3_ARCH "), build " __DATE__ " " __TIME__);
|
//Serial.println("\nWasm3 v" M3_VERSION " (" M3_ARCH "), build " __DATE__ " " __TIME__);
|
||||||
/*
|
/*
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
// On ESP32, we can launch in a separate thread
|
// On ESP32, we can launch in a separate thread
|
||||||
@ -310,5 +243,28 @@ void wasmInit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void wasmRun() {
|
void wasmRun() {
|
||||||
|
if (result) {
|
||||||
|
//Serial.println(F("You fucked up... Majorly..."));
|
||||||
|
Serial.println("If only...");
|
||||||
|
//Serial.println("That could save us🥺");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = m3_CallV (fu);
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
M3ErrorInfo info;
|
||||||
|
m3_GetErrorInfo (runtime, &info);
|
||||||
|
Serial.print("Err: ");
|
||||||
|
Serial.print(result);
|
||||||
|
Serial.print(" (");
|
||||||
|
Serial.print(info.message);
|
||||||
|
Serial.println(")");
|
||||||
|
if (info.file && strlen(info.file) && info.line) {
|
||||||
|
Serial.print("At ");
|
||||||
|
Serial.print(info.file);
|
||||||
|
Serial.print(":");
|
||||||
|
Serial.println(info.line);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -11,3 +11,7 @@ uint32_t WASMFX::speed() {
|
|||||||
uint32_t WASMFX::intensity() {
|
uint32_t WASMFX::intensity() {
|
||||||
return strip._segments[strip._segment_index].intensity;
|
return strip._segments[strip._segment_index].intensity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t WASMFX::len() {
|
||||||
|
return strip._virtualSegmentLength;
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
/*#pragma once
|
|
||||||
#include "wled.h"
|
|
||||||
|
|
||||||
class WASMFX {
|
|
||||||
public:
|
|
||||||
void init() {
|
|
||||||
wasmInit();
|
|
||||||
}
|
|
||||||
|
|
||||||
void run() {
|
|
||||||
wasmRun();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t now();
|
|
||||||
uint32_t speed();
|
|
||||||
uint32_t intensity();
|
|
||||||
};*/
|
|
Loading…
Reference in New Issue
Block a user