@ncd-io/node-red-enterprise-sensors 0.1.13 → 0.1.15

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncd-io/node-red-enterprise-sensors",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/wireless.html CHANGED
@@ -337,6 +337,9 @@
337
337
  mid_calibration_420ma:{value: 68724, validate: NCD_validators.number_range(0, 4294967295)},
338
338
  high_calibration_420ma_active:{value:""},
339
339
  high_calibration_420ma:{value: 68714, validate: NCD_validators.number_range(0, 4294967295)},
340
+
341
+ thermocouple_type_23_active:{value:""},
342
+ thermocouple_type_23:{value: 0},
340
343
  },
341
344
  inputs: 0,
342
345
  outputs: 1,
@@ -427,6 +430,7 @@
427
430
  "96": "96 - 16-Bit 1-Channel 0-48VDC Receiver",
428
431
  "101": "101 - Pro Vibration",
429
432
  "102": "102 - Strain Gauge",
433
+ "107": "107 - 4 Channel 4-20mA Receiver",
430
434
  "200": "200 - 4-20mA Pass Through",
431
435
  "202": "202 - Weather Station",
432
436
  "502": "502 - C_50-27",
@@ -440,6 +444,7 @@
440
444
  "521": "521 - Custom 3 Channel Light Sensor",
441
445
  "524": "524 - SDI Multi Soil Probe",
442
446
  "531": "531 - Custom Noise Sensor",
447
+ "537": "537 - Custom Standalone Smart Vibration Sensor",
443
448
  "10000": "10000 - 4-Channel Relay",
444
449
  "10006": "10006 - 4-Channel 4-20 mA Input",
445
450
  "10007": "10007 - 4-Channel Current Monitor",
@@ -676,6 +681,7 @@
676
681
  <option value="96">96 - 16-Bit 1-Channel 0-48VDC Receiver</option>
677
682
  <option value="101">101 - Pro Vibration</option>
678
683
  <option value="102">102 - Strain Gauge</option>
684
+ <option value="107">107 - 4 Channel 4-20mA Receiver</option>
679
685
  <option value="200">200 - 4-20mA Pass Through</option>
680
686
  <option value="202">202 - Weather Station</option>
681
687
  <option value="502">502 - C_50-27</option>
@@ -689,6 +695,7 @@
689
695
  <option value="521">521 - Custom 3 Channel Light Sensor</option>
690
696
  <option value="524">524 - SDI Multi Soil Probe</option>
691
697
  <option value="531">531 - Custom Noise Sensor</option>
698
+ <option value="537">537 - Custom Standalone Smart Vibration Sensor</option>
692
699
  <option value="10000">10000 - 4-Channel Relay</option>
693
700
  <option value="10006">10006 - 4-Channel 4-20 mA Input</option>
694
701
  <option value="10007">10007 - 4-Channel Current Monitor</option>
@@ -702,7 +709,7 @@
702
709
  <label for="node-input-auto_config"><i class="icon-tag"></i> Auto Config</label>
703
710
  <input class="section-control" type="checkbox" id="node-input-auto_config" value="1">
704
711
  </div>
705
- <div class="form-row ncd-dependent" data-sensor-26 data-sensor-45 data-sensor-48 data-sensor-78 data-sensor-79 data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-88 data-sensor-89 data-sensor-91 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-520 data-sensor-521>
712
+ <div class="form-row ncd-dependent" data-sensor-23 data-sensor-26 data-sensor-39 data-sensor-45 data-sensor-48 data-sensor-52 data-sensor-78 data-sensor-79 data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-88 data-sensor-89 data-sensor-91 data-sensor-101 data-sensor-102 data-sensor-107 data-sensor-519 data-sensor-520 data-sensor-521 data-sensor-531 data-sensor-537>
706
713
  <hr>
707
714
  <label for="node-input-on_the_fly_enable"><i class="icon-tag"></i> OTF Config*</label>
708
715
  <input type="checkbox" id="node-input-on_the_fly_enable" value="1">
@@ -1032,7 +1039,7 @@
1032
1039
  </div>
1033
1040
  </div>
1034
1041
 
1035
- <div class="ncd-dependent" data-sensor-84 data-sensor-519>
1042
+ <div class="ncd-dependent" data-sensor-84 data-sensor-519 data-sensor-537>
1036
1043
  <hr>
1037
1044
  <div class="form-row ncd-active-check">
1038
1045
  <strong>LED Alert Mode</strong>
@@ -1094,7 +1101,7 @@
1094
1101
  </div>
1095
1102
  </div>
1096
1103
 
1097
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
1104
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
1098
1105
  <hr>
1099
1106
  <div class="form-row ncd-active-check">
1100
1107
  <strong>Mode</strong>
@@ -1138,7 +1145,7 @@
1138
1145
  </div>
1139
1146
  </div>
1140
1147
 
1141
- <div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519>
1148
+ <div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-537>
1142
1149
  <hr>
1143
1150
  <div class="form-row ncd-active-check">
1144
1151
  <strong>Set Sampling Duration 1= 50msec, 2= 100msec</strong>
@@ -1153,7 +1160,7 @@
1153
1160
  </div>
1154
1161
  </div>
1155
1162
 
1156
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519>
1163
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-537>
1157
1164
  <hr>
1158
1165
  <div class="form-row ncd-active-check">
1159
1166
  <strong>Sampling Interval</strong>
@@ -1254,7 +1261,7 @@
1254
1261
  </div>
1255
1262
  </div>
1256
1263
  </div>
1257
- <div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-102 data-sensor-519>
1264
+ <div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-102 data-sensor-519 data-sensor-537>
1258
1265
  <hr>
1259
1266
  <div class="form-row ncd-active-check">
1260
1267
  <strong>Output Data Rate</strong>
@@ -1305,7 +1312,7 @@
1305
1312
  </div>
1306
1313
  </div>
1307
1314
  </div>
1308
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
1315
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
1309
1316
  <div class="form-row ncd-active-check">
1310
1317
  <strong>Set Filtering</strong>
1311
1318
  <div>
@@ -1432,7 +1439,7 @@
1432
1439
  </div>
1433
1440
  </div>
1434
1441
 
1435
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
1442
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
1436
1443
  <div class="form-row ncd-active-check">
1437
1444
  <strong>Full Scale Range</strong>
1438
1445
  <div>
@@ -1469,7 +1476,7 @@
1469
1476
  </div>
1470
1477
  </div>
1471
1478
  </div>
1472
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-519>
1479
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-519 data-sensor-537>
1473
1480
  <div class="form-row ncd-active-check">
1474
1481
  <strong>Set Dead Band in mg</strong>
1475
1482
  <div>
@@ -1512,7 +1519,7 @@
1512
1519
  </div>
1513
1520
  </div>
1514
1521
 
1515
- <div class="ncd-dependent" data-sensor-14 data-sensor-45 data-sensor-48 data-sensor-52 data-sensor-88 data-sensor-89>
1522
+ <div class="ncd-dependent" data-sensor-14 data-sensor-45 data-sensor-48 data-sensor-52 data-sensor-88 data-sensor-89 data-sensor-107>
1516
1523
  <div class="form-row ncd-active-check">
1517
1524
  <strong>Sensor Boot Time</strong>
1518
1525
  <p class="caption">
@@ -1547,7 +1554,7 @@
1547
1554
  </div>
1548
1555
  </div>
1549
1556
 
1550
- <div class="ncd-dependent" data-sensor-3 data-sensor-14 data-sensor-45 data-sensor-48 data-sensor-52 data-sensor-88 data-sensor-89 data-sensor-200>
1557
+ <div class="ncd-dependent" data-sensor-3 data-sensor-14 data-sensor-45 data-sensor-48 data-sensor-52 data-sensor-88 data-sensor-89 data-sensor-107 data-sensor-200>
1551
1558
  <div class="form-row ncd-active-check">
1552
1559
  <strong>Low Calibration Point</strong>
1553
1560
  <div>
@@ -1683,7 +1690,7 @@
1683
1690
  </div>
1684
1691
  </div>
1685
1692
  </div>
1686
- <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
1693
+ <div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
1687
1694
  <hr>
1688
1695
  <div class="form-row ncd-active-check">
1689
1696
  <strong>Payload Length</strong>
@@ -1702,6 +1709,29 @@
1702
1709
  </div>
1703
1710
  </div>
1704
1711
  </div>
1712
+ <div class="ncd-dependent" data-sensor-23>
1713
+ <hr>
1714
+ <div class="form-row ncd-active-check">
1715
+ <strong>Thermocouple Type</strong>
1716
+ <div>
1717
+ <label for="node-input-thermocouple_type_23_active">Active:</label>
1718
+ <input type="checkbox" id="node-input-thermocouple_type_23_active" class="ncd-config-toggle" data-target-id="node-input-thermocouple_type_23" value="1">
1719
+ </div>
1720
+ <div>
1721
+ <label for="node-input-thermocouple_type_23"><i class="icon-tag"></i>Value:</label>
1722
+ <select id="node-input-thermocouple_type_23">
1723
+ <option selected="selected" value="0">K </option>
1724
+ <option value="16">J Type</option>
1725
+ <option value="32">T Type</option>
1726
+ <option value="48">N Type</option>
1727
+ <option value="64">S Type</option>
1728
+ <option value="80">E Type</option>
1729
+ <option value="96">B Type</option>
1730
+ <option value="112">R Type</option>
1731
+ </select>
1732
+ </div>
1733
+ </div>
1734
+ </div>
1705
1735
  <div class="ncd-dependent" data-sensor-46>
1706
1736
  <hr>
1707
1737
  <div class="form-row ncd-active-check">
package/wireless.js CHANGED
@@ -151,7 +151,41 @@ module.exports = function(RED) {
151
151
  };
152
152
 
153
153
  node.on('input', function(msg){
154
- node.gateway.control_send(msg.payload.address, msg.payload.data, msg.payload.options).then().catch(console.log);
154
+ switch(msg.topic){
155
+ case "route_trace":
156
+ var opts = {trace:1};
157
+ node.gateway.route_discover(msg.payload.address,opts).then().catch(console.log);
158
+ break;
159
+ case "link_test":
160
+ node.gateway.link_test(msg.payload.source_address,msg.payload.destination_address,msg.payload.options);
161
+ break;
162
+ case "fft_request":
163
+ break;
164
+ case "fidelity_test":
165
+ break;
166
+ default:
167
+ const byteArrayToHexString = byteArray => Array.from(msg.payload.address, byte => ('0' + (byte & 0xFF).toString(16)).slice(-2)).join('');
168
+ node.gateway.control_send(msg.payload.address, msg.payload.data, msg.payload.options).then().catch(console.log);
169
+ }
170
+
171
+
172
+ // console.log("input triggered, topic:"+msg.topic);
173
+ // if(msg.topic == "transmit"){
174
+ // const byteArrayToHexString = byteArray => Array.from(msg.payload.address, byte => ('0' + (byte & 0xFF).toString(16)).slice(-2)).join('');
175
+ // node.gateway.control_send(msg.payload.address, msg.payload.data, msg.payload.options).then().catch(console.log);
176
+ // }
177
+ // if(msg.topic == "route_trace"){
178
+ // var opts = {trace:1};
179
+ // node.gateway.route_discover(msg.payload.address,opts).then().catch(console.log);
180
+ // }
181
+ // if(msg.topic == "link_test"){
182
+ // node.gateway.link_test(msg.payload.source_address,msg.payload.destination_address,msg.payload.options);
183
+ // }
184
+ // if(msg.topic == "fft_request"){
185
+
186
+ // }
187
+ // if(msg.topic == "fidelity_test"){
188
+ // }
155
189
  });
156
190
 
157
191
  node.gateway.on('sensor_data', (d) => {
@@ -167,6 +201,14 @@ module.exports = function(RED) {
167
201
  msg1 = {topic:'somethingTopic',payload:"something"};
168
202
  node.send([null,{topic: 'unknown_data', payload:d, time: Date.now()}]);
169
203
  });
204
+ node.gateway.on("route_info",(d)=>{
205
+ msg1 = {topic:"route_info",payload:d};
206
+ node.send(msg1);
207
+ });
208
+ node.gateway.on("link_info",(d)=>{
209
+ msg1 = {topic:"link_info",payload:d};
210
+ node.send(msg1);
211
+ });
170
212
 
171
213
  node.set_status();
172
214
  node._gateway_node.on('mode_change', (mode) => {
@@ -315,7 +357,7 @@ module.exports = function(RED) {
315
357
  setTimeout(() => {
316
358
  var tout = setTimeout(() => {
317
359
  node.status(modes.PGM_ERR);
318
- node.send({topic: 'Config Results', payload: success, time: Date.now()});
360
+ node.send({topic: 'Config Results', payload: success, time: Date.now(), addr: sensor.mac});
319
361
  }, 60000);
320
362
  node.status(modes.PGM_NOW);
321
363
  if(parseInt(config.sensor_type) >= 10000){
@@ -432,6 +474,10 @@ module.exports = function(RED) {
432
474
  promises.high_calibration_420ma = node.config_gateway.config_set_high_calibration_420ma(mac, parseInt(config.high_calibration_420ma));
433
475
  }
434
476
  break;
477
+ case 23:
478
+ if(config.thermocouple_type_23_active){
479
+ promises.thermocouple_type_23 = node.config_gateway.config_set_thermocouple_type_23(mac, parseInt(config.thermocouple_type_23));
480
+ }
435
481
  case 24:
436
482
  if(config.impact_accel_active){
437
483
  promises.impact_accel = node.config_gateway.config_set_acceleration_range_24(mac, parseInt(config.impact_accel));
@@ -811,6 +857,20 @@ module.exports = function(RED) {
811
857
  // }
812
858
  // promises.set_rtc_101 = node.config_gateway.config_set_rtc_101(mac);
813
859
  break;
860
+ case 107:
861
+ if(config.sensor_boot_time_420ma_active){
862
+ promises.sensor_boot_time_420ma = node.config_gateway.config_set_sensor_boot_time_420ma(mac, parseInt(config.sensor_boot_time_420ma));
863
+ }
864
+ if(config.low_calibration_420ma_active){
865
+ promises.low_calibration_420ma = node.config_gateway.config_set_low_calibration_420ma(mac, parseInt(config.low_calibration_420ma));
866
+ }
867
+ if(config.mid_calibration_420ma_active){
868
+ promises.mid_calibration_420ma = node.config_gateway.config_set_mid_calibration_420ma(mac, parseInt(config.mid_calibration_420ma));
869
+ }
870
+ if(config.high_calibration_420ma_active){
871
+ promises.high_calibration_420ma = node.config_gateway.config_set_high_calibration_420ma(mac, parseInt(config.high_calibration_420ma));
872
+ }
873
+ break;
814
874
  case 200:
815
875
  if(config.low_calibration_420ma_active){
816
876
  promises.low_calibration_420ma = node.config_gateway.config_set_low_calibration_420ma(mac, parseInt(config.low_calibration_420ma));
@@ -894,6 +954,62 @@ module.exports = function(RED) {
894
954
  promises.set_rtc_101 = node.config_gateway.config_set_rtc_101(mac);
895
955
  }
896
956
  break;
957
+ case 537:
958
+ if(config.output_data_rate_101_active){
959
+ promises.output_data_rate_101 = node.config_gateway.config_set_output_data_rate_101(mac, parseInt(config.output_data_rate_101));
960
+ }
961
+ if(config.sampling_duration_101_active){
962
+ promises.sampling_duration_101 = node.config_gateway.config_set_sampling_duration_101(mac, parseInt(config.sampling_duration_101));
963
+ }
964
+ if(config.x_axis_101 || config.y_axis_101 || config.z_axis_101){
965
+ promises.axis_enabled_101 = node.config_gateway.config_set_axis_enabled_101(mac, config.x_axis_101, config.y_axis_101, config.z_axis_101);
966
+ }
967
+ if(config.sampling_interval_101_active){
968
+ promises.sampling_interval_101 = node.config_gateway.config_set_sampling_interval_101(mac, parseInt(config.sampling_interval_101));
969
+ }
970
+ if(config.full_scale_range_101_active){
971
+ promises.full_scale_range_101 = node.config_gateway.config_set_full_scale_range_101(mac, parseInt(config.full_scale_range_101));
972
+ }
973
+ if(config.mode_80_active){
974
+ promises.mode = node.config_gateway.config_set_operation_mode_80(mac, parseInt(config.mode_80));
975
+ }
976
+ if(config.filter_80_active){
977
+ promises.filter = node.config_gateway.config_set_filters_80(mac, parseInt(config.filter_80));
978
+ }
979
+ if(config.low_pass_filter_80_active){
980
+ promises.low_pass_filter = node.config_gateway.config_set_low_pass_filter_80(mac, parseInt(config.low_pass_filter_80));
981
+ }
982
+ if(config.high_pass_filter_80_active){
983
+ promises.high_pass_filter = node.config_gateway.config_set_high_pass_filter_80(mac, parseInt(config.high_pass_filter_80));
984
+ }
985
+ if(config.measurement_mode_80_active){
986
+ promises.measurement_mode = node.config_gateway.config_set_measurement_mode_80(mac, parseInt(config.measurement_mode_80));
987
+ }
988
+ if(config.on_request_timeout_80_active){
989
+ promises.on_request_timeout = node.config_gateway.config_set_filters_80(mac, parseInt(config.on_request_timeout_80));
990
+ }
991
+ if(config.deadband_80_active){
992
+ promises.deadband = node.config_gateway.config_set_deadband_80(mac, parseInt(config.deadband_80));
993
+ }
994
+ if(config.led_alert_mode_84_active){
995
+ promises.led_alert_mode_84 = node.config_gateway.config_set_led_alert_mode_84(mac, parseInt(config.led_alert_mode_84));
996
+ }
997
+ if(config.led_accelerometer_threshold_84_active){
998
+ promises.led_accelerometer_threshold_84 = node.config_gateway.config_set_led_accelerometer_threshold_84(mac, parseInt(config.led_accelerometer_threshold_84));
999
+ }
1000
+ if(config.led_velocity_threshold_84_active){
1001
+ promises.led_velocity_threshold_84 = node.config_gateway.config_set_led_velocity_threshold_84(mac, parseInt(config.led_velocity_threshold_84));
1002
+ }
1003
+ if(config.acceleration_interrupt_threshold_84_active){
1004
+ promises.acceleration_interrupt_threshold_84 = node.config_gateway.config_set_acceleration_interrupt_threshold_84(mac, parseInt(config.acceleration_interrupt_threshold_84));
1005
+ }
1006
+ if(config.payload_length_80_active){
1007
+ promises.payload_length_80 = node.config_gateway.config_set_payload_length_80(mac, parseInt(config.payload_length_80));
1008
+ }
1009
+ if(config.set_rtc_101){
1010
+ promises.set_rtc_101 = node.config_gateway.config_set_rtc_101(mac);
1011
+ }
1012
+ break;
897
1013
  }
898
1014
  }
899
1015
  // These sensors listed in original_otf_devices use a different OTF code.
@@ -925,7 +1041,7 @@ module.exports = function(RED) {
925
1041
  if(name != 'finish') success[name] = true;
926
1042
  else{
927
1043
  // #OTF
928
- node.send({topic: 'Config Results', payload: success, time: Date.now()});
1044
+ node.send({topic: 'Config Results', payload: success, time: Date.now(), addr: mac});
929
1045
  top_fulfill(success);
930
1046
  }
931
1047
  }).catch((err) => {