Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nathanaël Lécaudé 2018-01-03 15:22:36 -05:00
commit 072d4911dd
8 changed files with 76 additions and 6 deletions

View File

@ -1,6 +1,6 @@
{
"name" : "node-red-node-rbe",
"version" : "0.1.13",
"version" : "0.1.14",
"description" : "A Node-RED node that provides report-by-exception (RBE) and deadband capability.",
"dependencies" : {
},

View File

@ -41,6 +41,9 @@
<dt class="optional">topic <span class="property-type">string</span>
</dt>
<dd>if specified the function will work on a per topic basis.</dd>
<dt class="optional">reset<span class="property-type">any</span></dt>
<dd>if set clears the stored value for the specified msg.topic, or
all topics if msg.topic is not specified.</dd>
</dl>
<h3>Outputs</h3>
<dl class="message-properties">

View File

@ -18,6 +18,12 @@ module.exports = function(RED) {
node.previous = {};
this.on("input",function(msg) {
if (msg.hasOwnProperty("reset")) {
if (msg.hasOwnProperty("topic") && (typeof msg.topic === "string") && (msg.topic !== "")) {
delete node.previous[msg.topic];
}
else { node.previous = {}; }
}
if (msg.hasOwnProperty("payload")) {
var t = msg.topic || "_no_topic";
if ((this.func === "rbe") || (this.func === "rbei")) {

View File

@ -115,7 +115,7 @@ WeMoNG.prototype.start = function start() {
//console.log("searching");
var _wemo = this;
_wemo.setMaxListeners(0);
_wemo._client = new Client();
_wemo._client = new Client({'explicitSocketBind': true});
_wemo._client.setMaxListeners(0);
_wemo._client.on('response', function (headers, statusCode, rinfo) {
var location = url.parse(headers.LOCATION);

View File

@ -1,6 +1,6 @@
{
"name": "node-red-node-wemo",
"version": "0.1.13",
"version": "0.1.14",
"description": "Input and Output nodes for Belkin WeMo devices",
"repository": "https://github.com/node-red/node-red-nodes/tree/master/hardware",
"main": "WeMoNG.js",
@ -19,7 +19,7 @@
},
"license": "APACHE-2.0",
"dependencies": {
"node-ssdp": "~2.9.1",
"node-ssdp": "~3.2.5",
"request": "~2.74.0",
"xml2js": "~0.4.13",
"util": "~0.10.3",

View File

@ -11,7 +11,7 @@
"split": "入力の分割方法",
"deliver": "分割後の配信データ",
"output": "出力",
"serial": "シリアル",
"serial": "serial",
"none": "なし"
},
"placeholder": {

View File

@ -1,6 +1,6 @@
{
"name" : "node-red-node-serialport",
"version" : "0.6.1",
"version" : "0.6.2",
"description" : "Node-RED nodes to talk to serial ports",
"dependencies" : {
"serialport" : "^6.0.4"

View File

@ -102,6 +102,67 @@ describe('rbe node', function() {
});
});
it('should send output if queue is reset (rbe)', function(done) {
var flow = [{"id":"n1", "type":"rbe", func:"rbe", gap:"0", wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(testNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
var c = 0;
n2.on("input", function(msg) {
if (c === 0) {
msg.should.have.a.property("payload", "a");
c+=1;
}
else if (c === 1) {
msg.should.have.a.property("payload", "b");
c+=1;
}
else if (c === 2) {
msg.should.have.a.property("payload", "a");
c+=1;
}
else if (c === 3) {
msg.should.have.a.property("payload", "b");
c+=1;
}
else if (c === 4) {
msg.should.have.a.property("payload", "b");
c+=1;
}
else if (c === 5) {
msg.should.have.a.property("payload", "b");
c+=1;
}
else if (c === 6) {
msg.should.have.a.property("payload", "a");
c+=1;
}
else {
msg.should.have.a.property("payload", "c");
done();
}
});
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {reset:true}); // reset all
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {topic:"b", reset:""}); // reset b
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {reset:""}); // reset all
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {topic:"c"}); // don't reset a non topic
n1.emit("input", {topic:"b", payload:"b"});
n1.emit("input", {topic:"a", payload:"a"});
n1.emit("input", {topic:"c", payload:"c"});
});
});
it('should only send output if x away from original value (deadbandEq)', function(done) {
var flow = [{"id":"n1", "type":"rbe", func:"deadbandEq", gap:"10", inout:"out", wires:[["n2"]] },
{id:"n2", type:"helper"} ];