From d1bd7347ab8b865797eb51139163082db062721e Mon Sep 17 00:00:00 2001 From: Ivan Mikhaylov Date: Mon, 1 Aug 2022 11:41:57 -0400 Subject: [PATCH] mraa-gpio-led: add led This patch introduces LED node in GPIO category. Signed-off-by: zengchao Signed-off-by: Jan Kiszka Signed-off-by: Ivan Mikhaylov --- hardware/intel/mraa-gpio-led.html | 77 +++++++++++++++++++++++++++++ hardware/intel/mraa-gpio-led.js | 82 +++++++++++++++++++++++++++++++ hardware/intel/package.json | 3 +- 3 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 hardware/intel/mraa-gpio-led.html create mode 100644 hardware/intel/mraa-gpio-led.js diff --git a/hardware/intel/mraa-gpio-led.html b/hardware/intel/mraa-gpio-led.html new file mode 100644 index 00000000..66c0c19c --- /dev/null +++ b/hardware/intel/mraa-gpio-led.html @@ -0,0 +1,77 @@ + + + + + + diff --git a/hardware/intel/mraa-gpio-led.js b/hardware/intel/mraa-gpio-led.js new file mode 100644 index 00000000..d809c64d --- /dev/null +++ b/hardware/intel/mraa-gpio-led.js @@ -0,0 +1,82 @@ +module.exports = function(RED) { + var m = require('mraa'); + function LEDNode(n) { + RED.nodes.createNode(this, n); + this.pin = Number(n.pin); + this.led0 = new m.Led(0); /*user-led1-green*/ + this.led1 = new m.Led(1); /*user-led1-red*/ + this.led2 = new m.Led(2); /*user-led2-green*/ + this.led3 = new m.Led(3); /*user-led2-red*/ + this.on("input", function(msg) { + if (msg.payload == "1") { + switch(this.pin) + { + case 0: /*User0 Led Green*/ + this.led0.setBrightness(1); + break; + case 1: /*User0 Led Red*/ + this.led1.setBrightness(1); + break; + case 2: /*User0 Orange*/ + this.led0.setBrightness(1); + this.led1.setBrightness(1); + break; + case 3: /*User1 Led Green*/ + this.led2.setBrightness(1); + break; + case 4: /*User1 Led Red*/ + this.led3.setBrightness(1); + break; + case 5: /*User1 Orange*/ + this.led2.setBrightness(1); + this.led3.setBrightness(1); + break; + default: + break; + } + } + else { + switch(this.pin) + { + case 0: /*User1 Led Green*/ + this.led0.setBrightness(0); + break; + case 1: /*User1 Led Red*/ + this.led1.setBrightness(0); + break; + case 2: /*User1 Orange*/ + this.led0.setBrightness(0); + this.led1.setBrightness(0); + break; + case 3: /*User2 Led Green*/ + this.led2.setBrightness(0); + break; + case 4: /*User2 Led Red*/ + this.led3.setBrightness(0); + break; + case 5: /*User2 Orange*/ + this.led2.setBrightness(0); + this.led3.setBrightness(0); + break; + default: + break; + } + } + }); + this.on('close', function() { + this.led0.close(); + this.led1.close(); + this.led2.close(); + this.led3.close(); + }); + } + RED.nodes.registerType("mraa-gpio-led", LEDNode); + + RED.httpAdmin.get('/mraa-gpio/:id', RED.auth.needsPermission('mraa-gpio.read'), function(req,res) { + res.json(m.getPlatformType()); + }); + + RED.httpAdmin.get('/mraa-version/:id', RED.auth.needsPermission('mraa-version.read'), function(req,res) { + res.json(m.getVersion()); + }); +} diff --git a/hardware/intel/package.json b/hardware/intel/package.json index 0d1c7d5b..0af217e7 100644 --- a/hardware/intel/package.json +++ b/hardware/intel/package.json @@ -16,7 +16,8 @@ "mraa-gpio-ain": "mraa-gpio-ain.js", "mraa-gpio-din": "mraa-gpio-din.js", "mraa-gpio-dout": "mraa-gpio-dout.js", - "mraa-gpio-pwm": "mraa-gpio-pwm.js" + "mraa-gpio-pwm": "mraa-gpio-pwm.js", + "mraa-gpio-led": "mraa-gpio-led.js" } }, "author": {