node-red-contrib-antenna-genius 0.2.2-beta → 0.2.6-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ module.exports = (RED) => {
5
5
  constructor(config) {
6
6
  RED.nodes.createNode(this, config);
7
7
 
8
- var node = this;
8
+ let node = this;
9
9
  this.bandNameA = "";
10
10
  this.bandNameB = "";
11
11
  this.server = RED.nodes.getNode(config.server);
@@ -32,6 +32,7 @@ module.exports = (RED) => {
32
32
  }
33
33
  else {
34
34
  this.status({ fill: "red", shape: "ring", text: "topic is not set" });
35
+ this.server.forceUpdate();
35
36
  }
36
37
  if(done) {
37
38
  done();
@@ -3,7 +3,7 @@ module.exports = (RED) => {
3
3
  constructor(config) {
4
4
  RED.nodes.createNode(this, config);
5
5
 
6
- var node = this;
6
+ let node = this;
7
7
  this.antennaNumber = config.antennaNb;
8
8
  this.radioA = {
9
9
  selected: false,
@@ -29,7 +29,7 @@ module.exports = (RED) => {
29
29
  this.status({ fill: "red", shape: "ring", text: "disconnected" });
30
30
  });
31
31
 
32
- this.server.updatesEventEmitter.on("status", () => {
32
+ this.server.updatesEventEmitter.on("status", (forceUpdate) => {
33
33
 
34
34
  let maxNumberOfAntennas = this.server.status.stackReach * 8;
35
35
  if(this.antennaNumber < 1 || this.antennaNumber > maxNumberOfAntennas || this.antennaNumber > this.server.antennas.length) {
@@ -37,7 +37,8 @@ module.exports = (RED) => {
37
37
  return;
38
38
  }
39
39
 
40
- let changed = false;
40
+ let changed = forceUpdate;
41
+
41
42
  // Selected?
42
43
  let radioAselected = this.antennaNumber == this.server.status.portA_antenna;
43
44
  if (radioAselected != this.radioA.selected) {
@@ -3,7 +3,7 @@ module.exports = (RED) => {
3
3
  constructor(config) {
4
4
  RED.nodes.createNode(this, config);
5
5
 
6
- var node = this;
6
+ let node = this;
7
7
  this.bandNameA = "";
8
8
  this.bandNameB = "";
9
9
  this.server = RED.nodes.getNode(config.server);
@@ -18,7 +18,7 @@ module.exports = (RED) => {
18
18
  this.status({ fill: "red", shape: "ring", text: "disconnected" });
19
19
  });
20
20
 
21
- this.server.updatesEventEmitter.on("status", () => {
21
+ this.server.updatesEventEmitter.on("status", (forceUpdate) => {
22
22
  let bandIndexA = this.server.status.portA_band;
23
23
  let bandIndexB = this.server.status.portB_band;
24
24
 
@@ -39,7 +39,7 @@ module.exports = (RED) => {
39
39
  let bandNameA = this.server.bands[bandIndexA].band_name;
40
40
  let bandNameB = this.server.bands[bandIndexB].band_name;
41
41
 
42
- let changed = false;
42
+ let changed = forceUpdate;
43
43
  if (bandNameA !== this.bandNameA) {
44
44
  changed = true;
45
45
  this.bandNameA = bandNameA;
@@ -22,6 +22,7 @@ module.exports = (RED) => {
22
22
  this.bands = [];
23
23
  this.interval = null;
24
24
  this.timer = null;
25
+ this.refresh = -1;
25
26
 
26
27
  this.updatesEventEmitter = new UpdatesEventEmitter();
27
28
  this.updatesEventEmitter.setMaxListeners(0);
@@ -65,7 +66,7 @@ module.exports = (RED) => {
65
66
  packet = await promiseClient.read();
66
67
  this.info = Utils.decode(packet);
67
68
 
68
- var numAntennas = 8 * this.status.stackReach;
69
+ let numAntennas = 8 * this.status.stackReach;
69
70
  for (let index = 1; index <= numAntennas; ++index) {
70
71
  let command = Utils.encode(0, 0, 412, 0, index.toString());
71
72
  await promiseClient.write(command);
@@ -88,7 +89,8 @@ module.exports = (RED) => {
88
89
  let decoded = Utils.decode(packet);
89
90
  if(decoded.command == 401) {
90
91
  this.status = { ...this.status, ...Utils.decode(packet) };
91
- this.updatesEventEmitter.emit("status");
92
+ this.refresh = (this.refresh + 1) % 1500;
93
+ this.updatesEventEmitter.emit("status", this.refresh == 0);
92
94
  }
93
95
  });
94
96
 
@@ -98,6 +100,7 @@ module.exports = (RED) => {
98
100
  this.client.write(command);
99
101
  }, 400);
100
102
 
103
+ this.forceUpdate();
101
104
  this.updatesEventEmitter.emit("connected");
102
105
  })
103
106
 
@@ -111,6 +114,7 @@ module.exports = (RED) => {
111
114
  this.autoConnect = false;
112
115
  this.connected = false;
113
116
  this.client.end();
117
+ this.forceUpdate();
114
118
  done();
115
119
  });
116
120
  }
@@ -120,6 +124,10 @@ module.exports = (RED) => {
120
124
  this.client.connect(this.port, this.host);
121
125
  }
122
126
  }
127
+
128
+ forceUpdate() {
129
+ this.refresh = -1;
130
+ }
123
131
  }
124
132
 
125
133
  RED.nodes.registerType("antenna-genius-server",AntennaGeniusServerNode);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red-contrib-antenna-genius",
3
- "version": "0.2.2-beta",
3
+ "version": "0.2.6-beta",
4
4
  "description": "Antenna Genius Control and Monitoring Nodes",
5
5
  "keywords": [
6
6
  "node-red"
@@ -20,7 +20,7 @@ describe('antenna-genius-activate-antenna Node', () => {
20
20
 
21
21
  it('should be loaded', done => {
22
22
  helper.load(nodes, flow, () => {
23
- var n2 = helper.getNode("n2");
23
+ let n2 = helper.getNode("n2");
24
24
  expect(n2).toBeDefined();
25
25
  done();
26
26
  });
@@ -28,7 +28,7 @@ describe('antenna-genius-activate-antenna Node', () => {
28
28
 
29
29
  it('should have properties', done => {
30
30
  helper.load(nodes, flow, () => {
31
- var n2 = helper.getNode("n2");
31
+ let n2 = helper.getNode("n2");
32
32
  expect(n2).toHaveProperty('name', 'test name');
33
33
  done();
34
34
  });
@@ -36,7 +36,7 @@ describe('antenna-genius-activate-antenna Node', () => {
36
36
 
37
37
  it('should not provide connected status', done => {
38
38
  helper.load(nodes, flow, () => {
39
- var n2 = helper.getNode("n2");
39
+ let n2 = helper.getNode("n2");
40
40
  n2.server.updatesEventEmitter.emit("connected");
41
41
  expect(n2.status.notCalled).toBeTruthy();
42
42
  done();
@@ -45,7 +45,7 @@ describe('antenna-genius-activate-antenna Node', () => {
45
45
 
46
46
  it('should provide connected status', done => {
47
47
  helper.load(nodes, flow, () => {
48
- var n2 = helper.getNode("n2");
48
+ let n2 = helper.getNode("n2");
49
49
  n2.server.info = { name: "Name" };
50
50
  n2.server.updatesEventEmitter.emit("connected");
51
51
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name" })).toBeTruthy();
@@ -55,7 +55,7 @@ describe('antenna-genius-activate-antenna Node', () => {
55
55
 
56
56
  it('should provide disconnected status', done => {
57
57
  helper.load(nodes, flow, () => {
58
- var n2 = helper.getNode("n2");
58
+ let n2 = helper.getNode("n2");
59
59
  n2.server.info = { name: "Name" };
60
60
  n2.server.updatesEventEmitter.emit("closed");
61
61
  expect(n2.status.calledOnceWithExactly({ fill: "red", shape: "ring", text: "disconnected" })).toBeTruthy();
@@ -65,7 +65,7 @@ describe('antenna-genius-activate-antenna Node', () => {
65
65
 
66
66
  it('should provide for invalid input', done => {
67
67
  helper.load(nodes, flow, () => {
68
- var n2 = helper.getNode("n2");
68
+ let n2 = helper.getNode("n2");
69
69
  n2.server.info = { name: "Name" };
70
70
  n2.receive({ payload: true });
71
71
  n2.on("call:status", call => {
@@ -77,7 +77,7 @@ describe('antenna-genius-activate-antenna Node', () => {
77
77
 
78
78
  it('should provide for valid input', done => {
79
79
  helper.load(nodes, flow, () => {
80
- var n2 = helper.getNode("n2");
80
+ let n2 = helper.getNode("n2");
81
81
  n2.server.info = { name: "Name" };
82
82
  n2.receive({ payload: true, topic: "1;1" });
83
83
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name" })).toBeTruthy();
@@ -18,7 +18,7 @@ describe('antenna-genius-antenna-status Node', () => {
18
18
 
19
19
  it('should be loaded', done => {
20
20
  helper.load(nodes, flow, () => {
21
- var n2 = helper.getNode("n2");
21
+ let n2 = helper.getNode("n2");
22
22
  expect(n2).toBeDefined();
23
23
  done();
24
24
  });
@@ -26,7 +26,7 @@ describe('antenna-genius-antenna-status Node', () => {
26
26
 
27
27
  it('should have properties', done => {
28
28
  helper.load(nodes, flow, () => {
29
- var n2 = helper.getNode("n2");
29
+ let n2 = helper.getNode("n2");
30
30
  expect(n2).toHaveProperty('name', 'test name');
31
31
  expect(n2).toHaveProperty('antennaNumber', 2);
32
32
  done();
@@ -35,7 +35,7 @@ describe('antenna-genius-antenna-status Node', () => {
35
35
 
36
36
  it('should not provide connected status', done => {
37
37
  helper.load(nodes, flow, () => {
38
- var n2 = helper.getNode("n2");
38
+ let n2 = helper.getNode("n2");
39
39
  n2.server.updatesEventEmitter.emit("connected");
40
40
  expect(n2.status.notCalled).toBeTruthy();
41
41
  done();
@@ -44,7 +44,7 @@ describe('antenna-genius-antenna-status Node', () => {
44
44
 
45
45
  it('should provide connected status', done => {
46
46
  helper.load(nodes, flow, () => {
47
- var n2 = helper.getNode("n2");
47
+ let n2 = helper.getNode("n2");
48
48
  n2.server.info = { name: "Name" };
49
49
  n2.server.updatesEventEmitter.emit("connected");
50
50
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name" })).toBeTruthy();
@@ -54,7 +54,7 @@ describe('antenna-genius-antenna-status Node', () => {
54
54
 
55
55
  it('should provide disconnected status', done => {
56
56
  helper.load(nodes, flow, () => {
57
- var n2 = helper.getNode("n2");
57
+ let n2 = helper.getNode("n2");
58
58
  n2.server.info = { name: "Name" };
59
59
  n2.server.updatesEventEmitter.emit("closed");
60
60
  expect(n2.status.calledOnceWithExactly({ fill: "red", shape: "ring", text: "disconnected" })).toBeTruthy();
@@ -64,15 +64,15 @@ describe('antenna-genius-antenna-status Node', () => {
64
64
 
65
65
  it('should provide A port output with valid input', done => {
66
66
  helper.load(nodes, flow, () => {
67
- var n2 = helper.getNode("n2");
67
+ let n2 = helper.getNode("n2");
68
68
  n2.server.info = { name: "Name" };
69
69
  n2.server.status = { portA_antenna: 1, portA_band: 0, portB_antenna: 2, portB_band: 1 };
70
70
  n2.server.antennas = [{ antenna_name: "Antenna0", antenna_bands: [1, 1] }, { antenna_name: "Antenna1", antenna_bands: [1, 1] }];
71
- n2.server.updatesEventEmitter.emit("status");
71
+ n2.server.updatesEventEmitter.emit("status", false);
72
72
  expect(n2.send.calledOnce).toBeTruthy();
73
73
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name - Antenna1" })).toBeTruthy();
74
74
 
75
- var n3 = helper.getNode("n3");
75
+ let n3 = helper.getNode("n3");
76
76
  n3.on("input", (msg) => {
77
77
  try {
78
78
  expect(msg).toHaveProperty("payload", {
@@ -93,15 +93,15 @@ describe('antenna-genius-antenna-status Node', () => {
93
93
 
94
94
  it('should provide B port output with valid input', done => {
95
95
  helper.load(nodes, flow, () => {
96
- var n2 = helper.getNode("n2");
96
+ let n2 = helper.getNode("n2");
97
97
  n2.server.info = { name: "Name" };
98
98
  n2.server.status = { portA_antenna: 1, portA_band: 0, portB_antenna: 2, portB_band: 1 };
99
99
  n2.server.antennas = [{ antenna_name: "Antenna0", antenna_bands: [1, 1] }, { antenna_name: "Antenna1", antenna_bands: [1, 1] }];
100
- n2.server.updatesEventEmitter.emit("status");
100
+ n2.server.updatesEventEmitter.emit("status", false);
101
101
  expect(n2.send.calledOnce).toBeTruthy();
102
102
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name - Antenna1" })).toBeTruthy();
103
103
 
104
- var n4 = helper.getNode("n4");
104
+ let n4 = helper.getNode("n4");
105
105
  n4.on("input", (msg) => {
106
106
  try {
107
107
  expect(msg).toHaveProperty("payload", {
@@ -21,7 +21,7 @@ describe('antenna-genius-band-labels Node', () => {
21
21
 
22
22
  it('should be loaded', done => {
23
23
  helper.load(nodes, flow, () => {
24
- var n2 = helper.getNode("n2");
24
+ let n2 = helper.getNode("n2");
25
25
  expect(n2).toBeDefined();
26
26
  done();
27
27
  });
@@ -29,7 +29,7 @@ describe('antenna-genius-band-labels Node', () => {
29
29
 
30
30
  it('should have properties', done => {
31
31
  helper.load(nodes, flow, () => {
32
- var n2 = helper.getNode("n2");
32
+ let n2 = helper.getNode("n2");
33
33
  expect(n2).toHaveProperty('name', 'test name');
34
34
  done();
35
35
  });
@@ -38,8 +38,8 @@ describe('antenna-genius-band-labels Node', () => {
38
38
 
39
39
  it('should provide no output with no input', done => {
40
40
  helper.load(nodes, flow, () => {
41
- var n2 = helper.getNode("n2");
42
- n2.server.updatesEventEmitter.emit("status");
41
+ let n2 = helper.getNode("n2");
42
+ n2.server.updatesEventEmitter.emit("status", false);
43
43
  expect(n2.send.notCalled).toBeTruthy();
44
44
  done();
45
45
  });
@@ -47,9 +47,9 @@ describe('antenna-genius-band-labels Node', () => {
47
47
 
48
48
  it('should provide no output with no band definitions', done => {
49
49
  helper.load(nodes, flow, () => {
50
- var n2 = helper.getNode("n2");
50
+ let n2 = helper.getNode("n2");
51
51
  n2.server.status = { portA_band: 0, portB_band: 1 };
52
- n2.server.updatesEventEmitter.emit("status");
52
+ n2.server.updatesEventEmitter.emit("status", false);
53
53
  expect(n2.send.notCalled).toBeTruthy();
54
54
  done();
55
55
  });
@@ -57,12 +57,12 @@ describe('antenna-genius-band-labels Node', () => {
57
57
 
58
58
  it('should provide output', done => {
59
59
  helper.load(nodes, flow, () => {
60
- var n2 = helper.getNode("n2");
60
+ let n2 = helper.getNode("n2");
61
61
  n2.server.status = { portA_band: 0, portB_band: 1 };
62
62
  n2.server.bands = [{ band_name: "bandA" }, { band_name: "bandB" }];
63
63
  n2.server.info = { name: "Name" };
64
64
 
65
- var n3 = helper.getNode("n3");
65
+ let n3 = helper.getNode("n3");
66
66
  n3.on("input", (msg) => {
67
67
  try {
68
68
  expect(msg).toHaveProperty("payload", { bandLabelA: "bandA", bandLabelB: "bandB" });
@@ -74,13 +74,13 @@ describe('antenna-genius-band-labels Node', () => {
74
74
  }
75
75
  });
76
76
 
77
- n2.server.updatesEventEmitter.emit("status");
77
+ n2.server.updatesEventEmitter.emit("status", false);
78
78
  });
79
79
  });
80
80
 
81
81
  it('should not provide connected status', done => {
82
82
  helper.load(nodes, flow, () => {
83
- var n2 = helper.getNode("n2");
83
+ let n2 = helper.getNode("n2");
84
84
  n2.server.updatesEventEmitter.emit("connected");
85
85
  expect(n2.status.notCalled).toBeTruthy();
86
86
  done();
@@ -89,7 +89,7 @@ describe('antenna-genius-band-labels Node', () => {
89
89
 
90
90
  it('should provide connected status', done => {
91
91
  helper.load(nodes, flow, () => {
92
- var n2 = helper.getNode("n2");
92
+ let n2 = helper.getNode("n2");
93
93
  n2.server.info = { name: "Name" };
94
94
  n2.server.updatesEventEmitter.emit("connected");
95
95
  expect(n2.status.calledOnceWithExactly({ fill: "green", shape: "dot", text: "Name" })).toBeTruthy();
@@ -99,7 +99,7 @@ describe('antenna-genius-band-labels Node', () => {
99
99
 
100
100
  it('should provide disconnected status', done => {
101
101
  helper.load(nodes, flow, () => {
102
- var n2 = helper.getNode("n2");
102
+ let n2 = helper.getNode("n2");
103
103
  n2.server.info = { name: "Name" };
104
104
  n2.server.updatesEventEmitter.emit("closed");
105
105
  expect(n2.status.calledOnceWithExactly({ fill: "red", shape: "ring", text: "disconnected" })).toBeTruthy();
@@ -7,22 +7,22 @@ describe('antenna-genius-server Node', () => {
7
7
  });
8
8
 
9
9
  it('should be loaded', done => {
10
- var flow = [
10
+ let flow = [
11
11
  { id: "n1", type: "antenna-genius-server", name: "test name", host: "localhost", port: 9007, disabledColor: "Black", activeColor: "Green", selectedColor: "Blue", autoConnect: false},
12
12
  ];
13
13
  helper.load(serverNode, flow, () => {
14
- var n1 = helper.getNode("n1");
14
+ let n1 = helper.getNode("n1");
15
15
  expect(n1).toBeDefined();
16
16
  done();
17
17
  });
18
18
  });
19
19
 
20
20
  it('should have properties', done => {
21
- var flow = [
21
+ let flow = [
22
22
  { id: "n1", type: "antenna-genius-server", name: "test name", host: "localhost", port: 9007, disabledColor: "Black", activeColor: "Green", selectedColor: "Blue", autoConnect: false},
23
23
  ];
24
24
  helper.load(serverNode, flow, () => {
25
- var n1 = helper.getNode("n1");
25
+ let n1 = helper.getNode("n1");
26
26
  expect(n1).toHaveProperty('name', 'test name');
27
27
  expect(n1).toHaveProperty('host', 'localhost');
28
28
  expect(n1).toHaveProperty('port', 9007);