Fix serial port add char logic

to close #450
This commit is contained in:
Dave Conway-Jones
2018-06-02 13:24:57 +01:00
parent 4d0360d94a
commit 997458c78e
4 changed files with 28 additions and 37 deletions

View File

@@ -36,9 +36,13 @@ module.exports = function(RED) {
this.serialConfig.stopbits,
this.serialConfig.newline);
node.addCh = "";
if (node.serialConfig.addchar == "true" || node.serialConfig.addchar === true) {
node.addCh = this.serialConfig.newline.replace("\\n","\n").replace("\\r","\r").replace("\\t","\t").replace("\\e","\e").replace("\\f","\f").replace("\\0","\0"); // jshint ignore:line
if (node.serialConfig.newline.substr(0,2) == "0x") {
node.addCh = new Buffer([parseInt(node.serialConfig.newline)]);
}
else {
node.addCh = new Buffer(node.serialConfig.newline.replace("\\n","\n").replace("\\r","\r").replace("\\t","\t").replace("\\e","\e").replace("\\f","\f").replace("\\0","\0")); // jshint ignore:line
}
node.on("input",function(msg) {
if (msg.hasOwnProperty("payload")) {
var payload = msg.payload;
@@ -49,10 +53,10 @@ module.exports = function(RED) {
else {
payload = payload.toString();
}
if (node.out === "char") { payload += node.addCh; }
if ((node.serialConfig.out === "char") && (node.serialConfig.addchar === true)) { payload += node.addCh; }
}
else if ((node.addCh !== "") && (node.out === "char")) {
payload = Buffer.concat([payload,new Buffer(node.addCh)]);
else if ((node.serialConfig.out === "char") && (node.serialConfig.addchar === true) && (node.addCh !== "")) {
payload = Buffer.concat([payload,node.addCh]);
}
node.port.write(payload,function(err,res) {
if (err) {