@ncd-io/node-red-enterprise-sensors 1.0.7 → 1.0.9

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.
@@ -142,13 +142,13 @@ module.exports = class WirelessSensor{
142
142
  }
143
143
  }
144
144
  // #OTF
145
- var otf_devices = [23,26,33,39,45,48,52,58,74,76,78,79,80,81,82,84,88,89,90,91,101,102,105,106,107,108,110,111,112,114,180,181,519,520,521,531,535,537,538,539,540,1010,1011];
145
+ var otf_devices = [23,26,32,33,39,44,45,48,52,53,58,74,76,78,79,80,81,82,84,88,89,90,91,101,102,105,106,107,108,110,111,112,114,180,181,202,519,520,521,531,535,537,538,539,540,1010,1011];
146
146
  var device_type = msbLsb(frame.data[6], frame.data[7]);
147
147
  // var device_type = frame.data[7];
148
148
 
149
149
  if(mode == "RUN"){
150
150
  if(frame.data[9] == 70 && frame.data[10] == 76 && frame.data[11] == 89) {
151
- var broadcast_otf_devices = [101,102];
151
+ var broadcast_otf_devices = [101,102,202];
152
152
  mode = "FLY";
153
153
  }
154
154
  }
@@ -294,7 +294,7 @@ module.exports = class WirelessSensor{
294
294
  };
295
295
 
296
296
  // #OTF
297
- var otf_devices = [23,26,33,39,45,48,52,58,74,76,78,79,80,81,82,84,88,89,90,91,101,102,105,106,107,108,110,111,112,114,180,181,519,520,521,531,535,537,538,539,540,1010,1011];
297
+ var otf_devices = [23,26,32,33,39,44,45,48,52,53,58,74,76,78,79,80,81,82,84,88,89,90,91,101,102,105,106,107,108,110,111,112,114,180,181,202,519,520,521,531,535,537,538,539,540,1010,1011];
298
298
  if(otf_devices.includes(parsed.sensor_type)){
299
299
  // If the message says FLY and there is not FLY timer in progress.
300
300
  if(payload[8] == 70 && payload[9] == 76 && payload[10] == 89) {
@@ -712,7 +712,7 @@ module.exports = class WirelessSensor{
712
712
  data: payload.slice(8)
713
713
  };
714
714
  // #OTF
715
- }else if(parsed.sensor_type == 33 || parsed.sensor_type == 80 || parsed.sensor_type == 81 || parsed.sensor_type == 82 || parsed.sensor_type == 84 || parsed.sensor_type == 180 || parsed.sensor_type == 181 || parsed.sensor_type == 515 || parsed.sensor_type == 519 || parsed.sensor_type == 531 || parsed.sensor_type == 537 || parsed.sensor_type == 538){
715
+ }else if(parsed.sensor_type == 33 || parsed.sensor_type == 80 || parsed.sensor_type == 81 || parsed.sensor_type == 82 || parsed.sensor_type == 84 || parsed.sensor_type == 110 || parsed.sensor_type == 111 || parsed.sensor_type == 112 || parsed.sensor_type == 114 || parsed.sensor_type == 180 || parsed.sensor_type == 181 || parsed.sensor_type == 515 || parsed.sensor_type == 519 || parsed.sensor_type == 531 || parsed.sensor_type == 537 || parsed.sensor_type == 538){
716
716
  parsed.sensor_data = this.sensor_types[parsed.sensor_type].parse(payload, parsed, frame.mac);
717
717
  if(!parsed.sensor_data){
718
718
  return;
@@ -1031,6 +1031,12 @@ module.exports = class WirelessSensor{
1031
1031
  console.log(packet);
1032
1032
  return this.config_send(sensor_mac, packet);
1033
1033
  }
1034
+ config_set_sampling_interval_202(sensor_mac, sampling_interval){
1035
+ console.log('config_set_sampling_interval_202');
1036
+ var packet = [244, 0, 0, 0, 0, sampling_interval];
1037
+ console.log(packet);
1038
+ return this.config_send(sensor_mac, packet);
1039
+ }
1034
1040
  config_get_sampling_interval_101(sensor_mac, sampling_interval){
1035
1041
  console.log('config_get_sampling_interval_101');
1036
1042
  var packet = [244, 79, 0, 0, 101, 7];
@@ -1172,6 +1178,15 @@ module.exports = class WirelessSensor{
1172
1178
  delete this.fly_101_in_progress;
1173
1179
  return this.config_send(sensor_mac, packet);
1174
1180
  }
1181
+ config_set_rtc_202(sensor_mac){
1182
+ console.log('config_set_rtc_202');
1183
+ console.log(sensor_mac);
1184
+ var date = new Date();
1185
+ var packet = [244, 8, 0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds()];
1186
+ console.log(packet);
1187
+ delete this.fly_101_in_progress;
1188
+ return this.config_send(sensor_mac, packet);
1189
+ }
1175
1190
  config_set_roll_threshold_47(sensor_mac, threshold){
1176
1191
  console.log('config_set_roll_threshold_47');
1177
1192
  var packet = [244, 1, 0, 0, 47, 0, threshold];
@@ -1196,9 +1211,9 @@ module.exports = class WirelessSensor{
1196
1211
  console.log(packet);
1197
1212
  return this.config_send(sensor_mac, packet);
1198
1213
  }
1199
- config_clear_timers_108(sensor_mac){
1214
+ config_set_clear_timers_108(sensor_mac, value){
1200
1215
  console.log('config_clear_timers_108');
1201
- var packet = [244, 36, 0, 0, 0, 7];
1216
+ var packet = [244, 36, 0, 0, 0, value];
1202
1217
  console.log(packet);
1203
1218
  return this.config_send(sensor_mac, packet);
1204
1219
  }
@@ -1240,6 +1255,45 @@ module.exports = class WirelessSensor{
1240
1255
  console.log(packet);
1241
1256
  return this.config_send(sensor_mac, packet);
1242
1257
  }
1258
+ config_set_qos_108(sensor_mac, value){
1259
+ console.log('config_set_qos_108');
1260
+ var packet = [247, 52, 0, 0, 0, value];
1261
+ console.log(packet);
1262
+ return this.config_send(sensor_mac, packet);
1263
+ }
1264
+ config_set_deactivate_activate_accelero_108(sensor_mac, value){
1265
+ console.log('config_set_deactivate_activate_accelero_108');
1266
+ var packet = [244, 37, 0, 0, 0, value];
1267
+ console.log(packet);
1268
+ return this.config_send(sensor_mac, packet);
1269
+ }
1270
+ config_set_reset_timeout_108(sensor_mac, value){
1271
+ console.log('config_set_deactivate_activate_accelero_108');
1272
+ var packet = [244, 49, 0, 0, 0];
1273
+ let timeout = int2Bytes((value), 2);
1274
+ packet.push(...timeout);
1275
+ console.log(packet);
1276
+ return this.config_send(sensor_mac, packet);
1277
+ }
1278
+ config_set_reset_mode_to_disabled_108(sensor_mac, value){
1279
+ console.log('config_set_reset_mode_to_disabled_108');
1280
+ var packet = [244, 51, 0, 0, 0, value];
1281
+ console.log(packet);
1282
+ return this.config_send(sensor_mac, packet);
1283
+ }
1284
+ config_set_rtc_108(sensor_mac){
1285
+ console.log('config_set_rtc_108');
1286
+ var date = new Date();
1287
+ var packet = [244, 53, 0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds()];
1288
+ console.log(packet);
1289
+ return this.config_send(sensor_mac, packet);
1290
+ }
1291
+ config_set_rtc_interval_108(sensor_mac, value){
1292
+ console.log('config_set_rtc_interval_108');
1293
+ var packet = [244, 55, 0, 0, 0, value];
1294
+ console.log(packet);
1295
+ return this.config_send(sensor_mac, packet);
1296
+ }
1243
1297
  config_set_sensor_boot_time_420ma(sensor_mac, value){
1244
1298
  console.log('sensor_boot_time_420ma');
1245
1299
  var packet = [244, 68, 0, 0, 45, value];
@@ -1410,11 +1464,11 @@ module.exports = class WirelessSensor{
1410
1464
  console.log(packet);
1411
1465
  return this.config_send(sensor_mac, packet);
1412
1466
  }
1413
- config_set_auto_raw_destination_110(sensor_mac, value){
1467
+ config_set_auto_raw_destination_110(sensor_mac, modem_mac){
1414
1468
  console.log('config_set_auto_raw_destination_110');
1415
1469
  var packet = [244, 79, 0, 0, 80, 72];
1416
- let value_dest = int2Bytes((value), 4);
1417
- packet.push(...value_dest);
1470
+ let bytes = int2Bytes((modem_mac), 4);
1471
+ packet.push(...bytes);
1418
1472
  console.log(packet);
1419
1473
  return this.config_send(sensor_mac, packet);
1420
1474
  }
@@ -1563,6 +1617,26 @@ module.exports = class WirelessSensor{
1563
1617
  console.log(packet);
1564
1618
  return this.config_send(sensor_mac, packet);
1565
1619
  }
1620
+ config_set_fly_interval_110(sensor_mac, value){
1621
+ console.log('config_set_fly_interval');
1622
+ var packet = [244, 79, 0, 0, 101, 81];
1623
+ let value_ = int2Bytes((value), 2);
1624
+ packet.push(...value_);
1625
+ console.log(packet);
1626
+ return this.config_send(sensor_mac, packet);
1627
+ }
1628
+ config_set_scd_skip_samples_44(sensor_mac, value){
1629
+ console.log('config_set_scd_skip_samples');
1630
+ var packet = [244, 34, 0, 0, 53, value];
1631
+ console.log(packet);
1632
+ return this.config_send(sensor_mac, packet);
1633
+ }
1634
+ config_set_sps_skip_samples_32(sensor_mac, value){
1635
+ console.log('config_set_scd_skip_samples');
1636
+ var packet = [244, 32, 0, 0, 53, value];
1637
+ console.log(packet);
1638
+ return this.config_send(sensor_mac, packet);
1639
+ }
1566
1640
  config_get_delay(sensor_mac){
1567
1641
  return new Promise((fulfill, reject) => {
1568
1642
  this.config_send(sensor_mac, [247, 21, 0, 0, 0]).then((res) => {
@@ -2293,11 +2367,11 @@ function sensor_types(parent){
2293
2367
  }
2294
2368
  },
2295
2369
  '19': {
2296
- name: '2-channel 24-bit Current Monitor',
2370
+ name: '2-Channel Current Monitor',
2297
2371
  parse: (d) => {
2298
2372
  return {
2299
2373
  channel_1: d.slice(0, 3).reduce(msbLsb),
2300
- channel_2: d.slice(4, 7).reduce(msbLsb),
2374
+ channel_2: d.slice(4, 7).reduce(msbLsb)
2301
2375
  };
2302
2376
  }
2303
2377
  },
@@ -2381,7 +2455,7 @@ function sensor_types(parent){
2381
2455
  }
2382
2456
  },
2383
2457
  '28': {
2384
- 'name': '24-Bit 3-Channel Current Monitor',
2458
+ 'name': '3-Phase Current Sensor',
2385
2459
  parse: (d) => {
2386
2460
  return {
2387
2461
  channel_1: d.slice(0, 3).reduce(msbLsb),
@@ -2672,12 +2746,8 @@ function sensor_types(parent){
2672
2746
  return {
2673
2747
  adc1: adc1,
2674
2748
  adc2: adc2,
2675
- mA1: adc1 * 0.0006863,
2676
- mA2: adc2 * 0.0006863,
2677
- byteOne: d[0],
2678
- byteTwo: d[1],
2679
- byteThree: d[2],
2680
- byteFour: d[3]
2749
+ mA1: parseFloat((adc1 * 0.0006863).toFixed(2)),
2750
+ mA2: parseFloat((adc2 * 0.0006863).toFixed(2))
2681
2751
  };
2682
2752
  },
2683
2753
  'parse_fly': (frame) => {
@@ -2758,12 +2828,8 @@ function sensor_types(parent){
2758
2828
  return {
2759
2829
  adc1: adc1,
2760
2830
  adc2: adc2,
2761
- VDC1: adc1 * 0.00034122,
2762
- VDC2: adc2 * 0.00034122,
2763
- byteOne: d[0],
2764
- byteTwo: d[1],
2765
- byteThree: d[2],
2766
- byteFour: d[3]
2831
+ VDC1: parseFloat((adc1 * 0.00034122).toFixed(2)),
2832
+ VDC2: parseFloat((adc2 * 0.00034122).toFixed(2))
2767
2833
  };
2768
2834
  }
2769
2835
  },
@@ -3612,7 +3678,6 @@ function sensor_types(parent){
3612
3678
  'mode': frame_data.mode,
3613
3679
  'odr_1': frame_data.odr_1+'Hz',
3614
3680
  'sampling_duration_1': frame_data.sampling_duration_1,
3615
- 'sampling_duration_2': frame_data.sampling_duration_2,
3616
3681
  'filter_status': frame_data.filter_status,
3617
3682
  'lpf_coeff_1': frame_data.lpf_coeff_1,
3618
3683
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -3632,7 +3697,6 @@ function sensor_types(parent){
3632
3697
  'mode': frame[16],
3633
3698
  'odr_1': frame[17],
3634
3699
  'sampling_duration_1': frame[19],
3635
- 'sampling_duration_2': frame[20],
3636
3700
  'filter_status': frame[21],
3637
3701
  'lpf_coeff_1': frame[22],
3638
3702
  'hpf_coeff_1': frame[24],
@@ -4420,6 +4484,10 @@ function sensor_types(parent){
4420
4484
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
4421
4485
  'hpf_coeff_1': frame_data.hpf_coeff_1,
4422
4486
  'hpf_freq_1': frame_data.hpf_freq_1+'Hz',
4487
+ 'lpf_coeff_2': frame_data.lpf_coeff_2,
4488
+ 'lpf_freq_2': frame_data.lpf_freq_2+'Hz',
4489
+ 'hpf_coeff_2': frame_data.hpf_coeff_2,
4490
+ 'hpf_freq_2': frame_data.hpf_freq_2+'Hz',
4423
4491
  'sampling_interval': frame_data.sampling_interval,
4424
4492
  'on_request_timeout': frame_data.on_request_timeout,
4425
4493
  'deadband': frame_data.deadband,
@@ -4438,7 +4506,9 @@ function sensor_types(parent){
4438
4506
  'sampling_duration_2': frame[20],
4439
4507
  'filter_status': frame[21],
4440
4508
  'lpf_coeff_1': frame[22],
4509
+ 'lpf_coeff_2': frame[23],
4441
4510
  'hpf_coeff_1': frame[24],
4511
+ 'hpf_coeff_2': frame[25],
4442
4512
  'sampling_interval': frame[26],
4443
4513
  'on_request_timeout': frame[27],
4444
4514
  'deadband': frame[28],
@@ -5039,7 +5109,6 @@ function sensor_types(parent){
5039
5109
  'mode': frame_data.mode,
5040
5110
  'odr_1': frame_data.odr_1+'Hz',
5041
5111
  'sampling_duration_1': frame_data.sampling_duration_1,
5042
- 'sampling_duration_2': frame_data.sampling_duration_2,
5043
5112
  'filter_status': frame_data.filter_status,
5044
5113
  'lpf_coeff_1': frame_data.lpf_coeff_1,
5045
5114
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -5055,7 +5124,6 @@ function sensor_types(parent){
5055
5124
  'mode': frame[16],
5056
5125
  'odr_1': frame[17],
5057
5126
  'sampling_duration_1': frame[19],
5058
- 'sampling_duration_2': frame[20],
5059
5127
  'filter_status': frame[21],
5060
5128
  'lpf_coeff_1': frame[22],
5061
5129
  'hpf_coeff_1': frame[24],
@@ -5650,7 +5718,6 @@ function sensor_types(parent){
5650
5718
  'mode': frame_data.mode,
5651
5719
  'odr_1': frame_data.odr_1+'Hz',
5652
5720
  'sampling_duration_1': frame_data.sampling_duration_1,
5653
- 'sampling_duration_2': frame_data.sampling_duration_2,
5654
5721
  'filter_status': frame_data.filter_status,
5655
5722
  'lpf_coeff_1': frame_data.lpf_coeff_1,
5656
5723
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -5670,7 +5737,6 @@ function sensor_types(parent){
5670
5737
  'mode': frame[16],
5671
5738
  'odr_1': frame[17],
5672
5739
  'sampling_duration_1': frame[19],
5673
- 'sampling_duration_2': frame[20],
5674
5740
  'filter_status': frame[21],
5675
5741
  'lpf_coeff_1': frame[22],
5676
5742
  'hpf_coeff_1': frame[24],
@@ -5693,6 +5759,44 @@ function sensor_types(parent){
5693
5759
  ma: d.slice(2, 4).reduce(msbLsb) / 100,
5694
5760
  db: d.slice(4, 6).reduce(msbLsb) / 100
5695
5761
  };
5762
+ },
5763
+ 'parse_fly': (frame) => {
5764
+ let frame_data = {};
5765
+ switch(frame[16]){
5766
+ case 0:
5767
+ frame_data.fsr = "+-0.256 V";
5768
+ break;
5769
+ case 1:
5770
+ frame_data.fsr = "+-0.512 V";
5771
+ break;
5772
+ case 2:
5773
+ frame_data.fsr = "+-1.024 V";
5774
+ break;
5775
+ case 3:
5776
+ frame_data.fsr = "+-2.048 V";
5777
+ break;
5778
+ case 4:
5779
+ frame_data.fsr = "+-4.096 V";
5780
+ break;
5781
+ case 5:
5782
+ frame_data.fsr = "+-6.144 V";
5783
+ break;
5784
+ }
5785
+ return {
5786
+ 'firmware': frame[2],
5787
+ 'report_rate': frame.slice(12, 16).reduce(msbLsb),
5788
+ 'fsr':frame_data.fsr,
5789
+ 'boot_up_time': frame[17],
5790
+ 'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
5791
+ 'machine_values': {
5792
+ 'firmware': frame[2],
5793
+ 'report_rate': frame.slice(12, 16),
5794
+ 'fsr':frame[16],
5795
+ 'boot_up_time': frame[17],
5796
+ 'adc_pin_reading': frame.slice(18, 20),
5797
+ 'frame': frame
5798
+ }
5799
+ }
5696
5800
  }
5697
5801
  },
5698
5802
  '89': {
@@ -5706,6 +5810,44 @@ function sensor_types(parent){
5706
5810
  c2_ma: d.slice(8, 10).reduce(msbLsb) / 100,
5707
5811
  c2_db: d.slice(10, 12).reduce(msbLsb) / 100
5708
5812
  };
5813
+ },
5814
+ 'parse_fly': (frame) => {
5815
+ let frame_data = {};
5816
+ switch(frame[16]){
5817
+ case 0:
5818
+ frame_data.fsr = "+-0.256 V";
5819
+ break;
5820
+ case 1:
5821
+ frame_data.fsr = "+-0.512 V";
5822
+ break;
5823
+ case 2:
5824
+ frame_data.fsr = "+-1.024 V";
5825
+ break;
5826
+ case 3:
5827
+ frame_data.fsr = "+-2.048 V";
5828
+ break;
5829
+ case 4:
5830
+ frame_data.fsr = "+-4.096 V";
5831
+ break;
5832
+ case 5:
5833
+ frame_data.fsr = "+-6.144 V";
5834
+ break;
5835
+ }
5836
+ return {
5837
+ 'firmware': frame[2],
5838
+ 'report_rate': frame.slice(12, 16).reduce(msbLsb),
5839
+ 'fsr':frame_data.fsr,
5840
+ 'boot_up_time': frame[17],
5841
+ 'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
5842
+ 'machine_values': {
5843
+ 'firmware': frame[2],
5844
+ 'report_rate': frame.slice(12, 16),
5845
+ 'fsr':frame[16],
5846
+ 'boot_up_time': frame[17],
5847
+ 'adc_pin_reading': frame.slice(18, 20),
5848
+ 'frame': frame
5849
+ }
5850
+ }
5709
5851
  }
5710
5852
  },
5711
5853
  '90': {
@@ -5808,25 +5950,78 @@ function sensor_types(parent){
5808
5950
  '108': {
5809
5951
  name: 'Machine Uptime Monitoring Sensor',
5810
5952
  parse: (d, payload) => {
5953
+ let firmware = payload[1];
5811
5954
  if(payload[7] & 2 != 0){
5812
5955
  console.log('Error found');
5813
5956
  // parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
5814
5957
  let error = {error: 'Error found, Acclerometer Probe may be unattached'};
5815
5958
  return error;
5816
5959
  }
5960
+ if(firmware > 5){
5961
+ return {
5962
+ digital_input_counter: d.slice(0, 4).reduce(msbLsb),
5963
+ digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
5964
+ ct_input_counter: d.slice(8, 12).reduce(msbLsb),
5965
+ ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
5966
+ opto_input_counter: d.slice(16, 20).reduce(msbLsb),
5967
+ opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
5968
+ accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
5969
+ accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
5970
+ magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
5971
+ magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
5972
+ input_di: d[40] & 1 ? 1 : 0,
5973
+ input_ct: d[40] & 2 ? 1 : 0,
5974
+ input_opto: d[40] & 4 ? 1 : 0,
5975
+ input_acc: d[40] & 8 ? 1 : 0,
5976
+ input_mag: d[40] & 16 ? 1 : 0,
5977
+ report_type: d[41],
5978
+ rtc: [
5979
+ String(d[42]).padStart(2, '0'),
5980
+ String(d[43]).padStart(2, '0'),
5981
+ String(d[44]).padStart(2, '0')
5982
+ ].join(':')
5983
+ };
5984
+ }else{
5985
+ return {
5986
+ digital_input_counter: d.slice(0, 4).reduce(msbLsb),
5987
+ digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
5988
+ ct_input_counter: d.slice(8, 12).reduce(msbLsb),
5989
+ ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
5990
+ opto_input_counter: d.slice(16, 20).reduce(msbLsb),
5991
+ opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
5992
+ accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
5993
+ accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
5994
+ magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
5995
+ magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
5996
+ input_di: d[40] & 1 ? 1 : 0,
5997
+ input_ct: d[40] & 2 ? 1 : 0,
5998
+ input_opto: d[40] & 4 ? 1 : 0,
5999
+ input_acc: d[40] & 8 ? 1 : 0,
6000
+ input_mag: d[40] & 16 ? 1 : 0
6001
+ };
6002
+ }
6003
+ },
6004
+ 'parse_fly': (frame) => {
5817
6005
  return {
5818
- digital_input_counter: d.slice(0, 4).reduce(msbLsb),
5819
- digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
5820
- ct_input_counter: d.slice(8, 12).reduce(msbLsb),
5821
- ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
5822
- opto_input_counter: d.slice(16, 20).reduce(msbLsb),
5823
- opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
5824
- accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
5825
- accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
5826
- magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
5827
- magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
5828
- io_states: d[40]
5829
- };
6006
+ 'firmware': frame[2],
6007
+ 'report_rate': frame.slice(12, 16).reduce(msbLsb).toString() + "sec.",
6008
+ 'accelerometer_threshold': (frame[16]* 32).toString() + "mg.",
6009
+ 'debouncing_timeout': frame[17].toString() + "sec.",
6010
+ 'accelero_active_state': frame[18],
6011
+ 'digital_inputs_active_edge': frame.slice(19, 22).reduce(msbLsb),
6012
+ 'counter_threshold': frame.slice(22, 26).reduce(msbLsb).toString() + "sec.",
6013
+ 'trasnmit_on_change_status': frame[26],
6014
+ 'machine_values': {
6015
+ 'firmware': frame[2],
6016
+ 'report_rate': frame.slice(12, 16),
6017
+ 'accelerometer_threshold': frame[16],
6018
+ 'debouncing_timeout': frame[17],
6019
+ 'accelero_active_state': frame[18],
6020
+ 'digital_inputs_active_edge': frame.slice(19, 22),
6021
+ 'counter_threshold': frame.slice(22, 26),
6022
+ 'trasnmit_on_change_status': frame[26]
6023
+ }
6024
+ }
5830
6025
  }
5831
6026
  },
5832
6027
  '110': {
@@ -6167,7 +6362,7 @@ function sensor_types(parent){
6167
6362
  return;
6168
6363
  }
6169
6364
  }
6170
- else if(payload[8] === 0 || payload[8] === 2){
6365
+ else if(payload[8] === 0 || payload[8] === 2 || payload[8] === 3){
6171
6366
  // mode byte most significant bit will indicate fft data.
6172
6367
  // console.log(d);
6173
6368
  var odr;
@@ -6412,7 +6607,6 @@ function sensor_types(parent){
6412
6607
  'mode': frame_data.mode,
6413
6608
  'odr_1': frame_data.odr_1+'Hz',
6414
6609
  'sampling_duration_1': frame_data.sampling_duration_1,
6415
- 'sampling_duration_2': frame_data.sampling_duration_2,
6416
6610
  'filter_status': frame_data.filter_status,
6417
6611
  'lpf_coeff_1': frame_data.lpf_coeff_1,
6418
6612
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -6428,7 +6622,6 @@ function sensor_types(parent){
6428
6622
  'mode': frame[16],
6429
6623
  'odr_1': frame[17],
6430
6624
  'sampling_duration_1': frame[19],
6431
- 'sampling_duration_2': frame[20],
6432
6625
  'filter_status': frame[21],
6433
6626
  'lpf_coeff_1': frame[22],
6434
6627
  'hpf_coeff_1': frame[24],
@@ -6792,7 +6985,7 @@ function sensor_types(parent){
6792
6985
  return;
6793
6986
  }
6794
6987
  }
6795
- else if(payload[8] === 0 || payload[8] === 2){
6988
+ else if(payload[8] === 0 || payload[8] === 2 || payload[8] === 3){
6796
6989
  // mode byte most significant bit will indicate fft data.
6797
6990
  // console.log(d);
6798
6991
  var odr1;
@@ -7584,7 +7777,7 @@ function sensor_types(parent){
7584
7777
  return;
7585
7778
  }
7586
7779
  }
7587
- else if(payload[8] === 0 || payload[8] === 2){
7780
+ else if(payload[8] === 0 || payload[8] === 2 || payload[8] === 3){
7588
7781
  // mode byte most significant bit will indicate fft data.
7589
7782
  // console.log(d);
7590
7783
  var odr;
@@ -7830,7 +8023,6 @@ function sensor_types(parent){
7830
8023
  'mode': frame_data.mode,
7831
8024
  'odr_1': frame_data.odr_1+'Hz',
7832
8025
  'sampling_duration_1': frame_data.sampling_duration_1,
7833
- 'sampling_duration_2': frame_data.sampling_duration_2,
7834
8026
  'filter_status': frame_data.filter_status,
7835
8027
  'lpf_coeff_1': frame_data.lpf_coeff_1,
7836
8028
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -7846,7 +8038,6 @@ function sensor_types(parent){
7846
8038
  'mode': frame[16],
7847
8039
  'odr_1': frame[17],
7848
8040
  'sampling_duration_1': frame[19],
7849
- 'sampling_duration_2': frame[20],
7850
8041
  'filter_status': frame[21],
7851
8042
  'lpf_coeff_1': frame[22],
7852
8043
  'hpf_coeff_1': frame[24],
@@ -8195,7 +8386,7 @@ function sensor_types(parent){
8195
8386
  return;
8196
8387
  }
8197
8388
  }
8198
- else if(payload[8] === 0 || payload[8] === 2){
8389
+ else if(payload[8] === 0 || payload[8] === 2 || payload[8] === 3){
8199
8390
  // mode byte most significant bit will indicate fft data.
8200
8391
  // console.log(d);
8201
8392
  var odr;
@@ -8440,7 +8631,6 @@ function sensor_types(parent){
8440
8631
  'mode': frame_data.mode,
8441
8632
  'odr_1': frame_data.odr_1+'Hz',
8442
8633
  'sampling_duration_1': frame_data.sampling_duration_1,
8443
- 'sampling_duration_2': frame_data.sampling_duration_2,
8444
8634
  'filter_status': frame_data.filter_status,
8445
8635
  'lpf_coeff_1': frame_data.lpf_coeff_1,
8446
8636
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -8456,7 +8646,6 @@ function sensor_types(parent){
8456
8646
  'mode': frame[16],
8457
8647
  'odr_1': frame[17],
8458
8648
  'sampling_duration_1': frame[19],
8459
- 'sampling_duration_2': frame[20],
8460
8649
  'filter_status': frame[21],
8461
8650
  'lpf_coeff_1': frame[22],
8462
8651
  'hpf_coeff_1': frame[24],
@@ -8473,25 +8662,19 @@ function sensor_types(parent){
8473
8662
  name: 'C1D2 One Channel Vibration Plus',
8474
8663
  parse: (payload, parsed, mac) => {
8475
8664
  return parent.sensor_types[80].parse(payload, parsed, mac);
8476
- }
8477
- },
8478
- '181': {
8479
- name: 'C1D2 Two Channel Vibration Plus',
8480
- parse: (payload, parsed, mac) => {
8481
- return parent.sensor_types[81].parse(payload, parsed, mac);
8482
- }
8483
- },
8484
- '180': {
8485
- name: 'C1D2 One Channel Vibration Plus',
8486
- parse: (payload, parsed, mac) => {
8487
- return parent.sensor_types[80].parse(payload, parsed, mac);
8488
- }
8665
+ },
8666
+ parse_fly: (payload, parsed, mac) => {
8667
+ return parent.sensor_types[80].parse_fly(payload, parsed, mac);
8668
+ },
8489
8669
  },
8490
8670
  '181': {
8491
8671
  name: 'C1D2 Two Channel Vibration Plus',
8492
8672
  parse: (payload, parsed, mac) => {
8493
8673
  return parent.sensor_types[81].parse(payload, parsed, mac);
8494
- }
8674
+ },
8675
+ parse_fly: (payload, parsed, mac) => {
8676
+ return parent.sensor_types[81].parse_fly(payload, parsed, mac);
8677
+ },
8495
8678
  },
8496
8679
  '200': {
8497
8680
  name: '4-20mA Pass Through',
@@ -8503,19 +8686,12 @@ function sensor_types(parent){
8503
8686
  adc1: adc1,
8504
8687
  adc2: adc2,
8505
8688
  dac1: dac1,
8506
- mA1: adc1/100.00,
8689
+ mA1: parseFloat((adc1/100.00).toFixed(2)),
8507
8690
  raw_adc: adc2,
8508
- raw_dac: dac1,
8509
- byteOne: d[0],
8510
- byteTwo: d[1],
8511
- byteThree: d[2],
8512
- byteFour: d[3],
8513
- byteFive: d[4],
8514
- byteSix: d[5]
8691
+ raw_dac: dac1
8515
8692
  };
8516
8693
  }
8517
8694
  },
8518
-
8519
8695
  '202': {
8520
8696
  name: 'Wireless Weather Station',
8521
8697
  parse: (d) => {
@@ -8529,6 +8705,17 @@ function sensor_types(parent){
8529
8705
  };
8530
8706
  }
8531
8707
  },
8708
+ '217': {
8709
+ name: 'Wireless Weight Scale',
8710
+ parse: (d) => {
8711
+ let units;
8712
+ d[0] ? units = "Kg" : units = "Lbs"
8713
+ return {
8714
+ unit: units,
8715
+ weight: signInt(d.slice(1, 4).reduce(msbLsb)) * 100
8716
+ };
8717
+ }
8718
+ },
8532
8719
  '502': {
8533
8720
  name: 'Custom Environmental Sensor',
8534
8721
  parse: (d, full) => {
@@ -9339,7 +9526,6 @@ function sensor_types(parent){
9339
9526
  'mode': frame_data.mode,
9340
9527
  'odr_1': frame_data.odr_1+'Hz',
9341
9528
  'sampling_duration_1': frame_data.sampling_duration_1,
9342
- 'sampling_duration_2': frame_data.sampling_duration_2,
9343
9529
  'filter_status': frame_data.filter_status,
9344
9530
  'lpf_coeff_1': frame_data.lpf_coeff_1,
9345
9531
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -9355,7 +9541,6 @@ function sensor_types(parent){
9355
9541
  'mode': frame[16],
9356
9542
  'odr_1': frame[17],
9357
9543
  'sampling_duration_1': frame[19],
9358
- 'sampling_duration_2': frame[20],
9359
9544
  'filter_status': frame[21],
9360
9545
  'lpf_coeff_1': frame[22],
9361
9546
  'hpf_coeff_1': frame[24],
@@ -10223,7 +10408,6 @@ function sensor_types(parent){
10223
10408
  'mode': frame_data.mode,
10224
10409
  'odr_1': frame_data.odr_1+'Hz',
10225
10410
  'sampling_duration_1': frame_data.sampling_duration_1,
10226
- 'sampling_duration_2': frame_data.sampling_duration_2,
10227
10411
  'filter_status': frame_data.filter_status,
10228
10412
  'lpf_coeff_1': frame_data.lpf_coeff_1,
10229
10413
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -10239,7 +10423,6 @@ function sensor_types(parent){
10239
10423
  'mode': frame[16],
10240
10424
  'odr_1': frame[17],
10241
10425
  'sampling_duration_1': frame[19],
10242
- 'sampling_duration_2': frame[20],
10243
10426
  'filter_status': frame[21],
10244
10427
  'lpf_coeff_1': frame[22],
10245
10428
  'hpf_coeff_1': frame[24],
@@ -10834,7 +11017,6 @@ function sensor_types(parent){
10834
11017
  'mode': frame_data.mode,
10835
11018
  'odr_1': frame_data.odr_1+'Hz',
10836
11019
  'sampling_duration_1': frame_data.sampling_duration_1,
10837
- 'sampling_duration_2': frame_data.sampling_duration_2,
10838
11020
  'filter_status': frame_data.filter_status,
10839
11021
  'lpf_coeff_1': frame_data.lpf_coeff_1,
10840
11022
  'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
@@ -10850,7 +11032,6 @@ function sensor_types(parent){
10850
11032
  'mode': frame[16],
10851
11033
  'odr_1': frame[17],
10852
11034
  'sampling_duration_1': frame[19],
10853
- 'sampling_duration_2': frame[20],
10854
11035
  'filter_status': frame[21],
10855
11036
  'lpf_coeff_1': frame[22],
10856
11037
  'hpf_coeff_1': frame[24],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ncd-io/node-red-enterprise-sensors",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {