mirror of
https://github.com/node-red/node-red-nodes.git
synced 2023-10-10 13:36:58 +02:00
SenseHAT: accept number payload as text message
This commit is contained in:
parent
a2915b9a97
commit
a3e2365ab9
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name" : "node-red-node-pi-sense-hat",
|
"name" : "node-red-node-pi-sense-hat",
|
||||||
"version" : "0.0.3",
|
"version" : "0.0.4",
|
||||||
"description" : "A Node-RED node to interact with a Raspberry Pi Sense HAT",
|
"description" : "A Node-RED node to interact with a Raspberry Pi Sense HAT",
|
||||||
"repository" : {
|
"repository" : {
|
||||||
"type":"git",
|
"type":"git",
|
||||||
|
@ -231,12 +231,38 @@ module.exports = function(RED) {
|
|||||||
node.on("close", function(done) {
|
node.on("close", function(done) {
|
||||||
HAT.close(this,done);
|
HAT.close(this,done);
|
||||||
});
|
});
|
||||||
|
var handleTextMessage = function(line,msg) {
|
||||||
|
var textCol = colours.getRGB(msg.color);
|
||||||
|
var backCol = colours.getRGB(msg.background);
|
||||||
|
var speed = null;
|
||||||
|
if (!isNaN(msg.speed)) {
|
||||||
|
speed = msg.speed;
|
||||||
|
}
|
||||||
|
var command = "T";
|
||||||
|
if (textCol) {
|
||||||
|
command += textCol;
|
||||||
|
if (backCol) {
|
||||||
|
command += ","+backCol;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (speed) {
|
||||||
|
var s = parseInt(speed);
|
||||||
|
if (s >= 1 && s <= 5) {
|
||||||
|
s = 0.1 + (3-s)*0.03;
|
||||||
|
}
|
||||||
|
command = command + ((command.length === 1)?"":",") + s;
|
||||||
|
}
|
||||||
|
command += ":" + line;
|
||||||
|
return command;
|
||||||
|
}
|
||||||
|
|
||||||
node.on("input",function(msg) {
|
node.on("input",function(msg) {
|
||||||
var command;
|
var command;
|
||||||
var parts;
|
var parts;
|
||||||
var col;
|
var col;
|
||||||
if (typeof msg.payload === 'string') {
|
if (typeof msg.payload === 'number') {
|
||||||
|
HAT.send(handleTextMessage(""+msg.payload,msg));
|
||||||
|
} else if (typeof msg.payload === 'string') {
|
||||||
var lines = msg.payload.split("\n");
|
var lines = msg.payload.split("\n");
|
||||||
lines.forEach(function(line) {
|
lines.forEach(function(line) {
|
||||||
command = null;
|
command = null;
|
||||||
@ -300,27 +326,7 @@ module.exports = function(RED) {
|
|||||||
} else if (/^F(H|V)$/i.test(line)) {
|
} else if (/^F(H|V)$/i.test(line)) {
|
||||||
command = line.toUpperCase();
|
command = line.toUpperCase();
|
||||||
} else {
|
} else {
|
||||||
var textCol = colours.getRGB(msg.color);
|
command = handleTextMessage(line,msg);
|
||||||
var backCol = colours.getRGB(msg.background);
|
|
||||||
var speed = null;
|
|
||||||
if (!isNaN(msg.speed)) {
|
|
||||||
speed = msg.speed;
|
|
||||||
}
|
|
||||||
command = "T";
|
|
||||||
if (textCol) {
|
|
||||||
command += textCol;
|
|
||||||
if (backCol) {
|
|
||||||
command += ","+backCol;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (speed) {
|
|
||||||
var s = parseInt(speed);
|
|
||||||
if (s >= 1 && s <= 5) {
|
|
||||||
s = 0.1 + (3-s)*0.03;
|
|
||||||
}
|
|
||||||
command = command + ((command.length === 1)?"":",") + s;
|
|
||||||
}
|
|
||||||
command += ":" + line;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (command) {
|
if (command) {
|
||||||
|
@ -89,9 +89,11 @@ class ScrollThread(threading.Thread):
|
|||||||
try:
|
try:
|
||||||
SH.show_message(self.message,text_colour=self.fcol,back_colour=self.bcol,scroll_speed=self.speed)
|
SH.show_message(self.message,text_colour=self.fcol,back_colour=self.bcol,scroll_speed=self.speed)
|
||||||
except:
|
except:
|
||||||
SH.set_rotation(old_rotation,False)
|
try:
|
||||||
SH.clear(self.bcol);
|
SH.set_rotation(old_rotation,False)
|
||||||
pass
|
SH.clear(self.bcol);
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def interrupt(self):
|
def interrupt(self):
|
||||||
if not self.isAlive():
|
if not self.isAlive():
|
||||||
|
Loading…
Reference in New Issue
Block a user