From e1bff601d45fd418db343e8252cef25e5a3ddd40 Mon Sep 17 00:00:00 2001 From: Florian Geiselhart Date: Sun, 2 Jan 2022 18:05:24 +0100 Subject: [PATCH] Added setStrip method --- mjs_fs/api_neopixel.js | 9 +++++++++ src/mgos_neopixel.c | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/mjs_fs/api_neopixel.js b/mjs_fs/api_neopixel.js index ab68802..0bdc858 100644 --- a/mjs_fs/api_neopixel.js +++ b/mjs_fs/api_neopixel.js @@ -24,6 +24,7 @@ let NeoPixel = { _i: NeoPixel._c(pin, numPixels, order), setPixel: NeoPixel.setPixel, + setStrip: NeoPixel.setStrip, clear: NeoPixel.clear, show: NeoPixel.show, }); @@ -36,6 +37,13 @@ let NeoPixel = { NeoPixel._set(this._i, i, r, g, b); }, + // ## **`strip.setStrip(r, g, b)`** + // Set ALL pixel's RGB value. + // Note that this only affects in-memory value of the pixels. + setStrip: function(r, g, b) { + NeoPixel._setStrip(this._i, r, g, b); + }, + // ## **`strip.clear()`** // Clear in-memory values of the pixels. clear: function() { @@ -52,4 +60,5 @@ let NeoPixel = { _set: ffi('void mgos_neopixel_set(void *, int, int, int, int)'), _clear: ffi('void mgos_neopixel_clear(void *)'), _show: ffi('void mgos_neopixel_show(void *)'), + _setStrip: ffi('void mgos_neopixel_setStrip(void *, int, int, int)') }; diff --git a/src/mgos_neopixel.c b/src/mgos_neopixel.c index 31c92e3..bdf66a9 100644 --- a/src/mgos_neopixel.c +++ b/src/mgos_neopixel.c @@ -76,6 +76,13 @@ void mgos_neopixel_set(struct mgos_neopixel *np, int i, int r, int g, int b) { } } +void mgos_neopixel_setStrip(struct mgos_neopixel *np, int r, int g, int b) { + for (int i = 0; i < np->num_pixels; i++) + { + mgos_neopixel_set(np, i, r, g, b); + } +} + void mgos_neopixel_clear(struct mgos_neopixel *np) { memset(np->data, 0, np->num_pixels * NUM_CHANNELS); }