@ncd-io/node-red-enterprise-sensors 1.4.6 → 1.4.7
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/lib/WirelessGateway.js +36 -856
- package/package.json +1 -1
- package/wireless.html +2 -33
package/lib/WirelessGateway.js
CHANGED
|
@@ -13480,279 +13480,6 @@ function sensor_types(parent){
|
|
|
13480
13480
|
}
|
|
13481
13481
|
}
|
|
13482
13482
|
},
|
|
13483
|
-
'119': {
|
|
13484
|
-
name: 'Wireless Machine Run Time Hour Meter',
|
|
13485
|
-
parse: (d, payload) => {
|
|
13486
|
-
let firmware = payload[1];
|
|
13487
|
-
if(payload[7] & 2 != 0){
|
|
13488
|
-
console.log('Error found');
|
|
13489
|
-
// parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
13490
|
-
let error = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
13491
|
-
return error;
|
|
13492
|
-
}
|
|
13493
|
-
let report_type = "Regular";
|
|
13494
|
-
switch(d[17]){
|
|
13495
|
-
case 0:
|
|
13496
|
-
report_type = "Regular";
|
|
13497
|
-
break;
|
|
13498
|
-
case 1:
|
|
13499
|
-
report_type = "Shift end";
|
|
13500
|
-
break;
|
|
13501
|
-
case 2:
|
|
13502
|
-
report_type = "Interrupt";
|
|
13503
|
-
break;
|
|
13504
|
-
case 3:
|
|
13505
|
-
report_type = "Threshold";
|
|
13506
|
-
break;
|
|
13507
|
-
}
|
|
13508
|
-
if ((payload[7] & 4) != 0) {
|
|
13509
|
-
return {
|
|
13510
|
-
raw_data: "Enabled",
|
|
13511
|
-
accelerometer_counter: d.slice(0, 4).reduce(msbLsb),
|
|
13512
|
-
accelerometer_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
13513
|
-
magnetometer_counter: d.slice(8, 12).reduce(msbLsb),
|
|
13514
|
-
magnetometer_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
13515
|
-
input_acc: d[16] & 8 ? 1 : 0,
|
|
13516
|
-
input_mag: d[16] & 16 ? 1 : 0,
|
|
13517
|
-
report_type: report_type,
|
|
13518
|
-
rtc: [
|
|
13519
|
-
String(d[18]).padStart(2, '0'),
|
|
13520
|
-
String(d[19]).padStart(2, '0'),
|
|
13521
|
-
String(d[20]).padStart(2, '0')
|
|
13522
|
-
].join(':'),
|
|
13523
|
-
'temperature': d.slice(21, 23).reduce(msbLsb)/100,
|
|
13524
|
-
'accelero_sample_1':{
|
|
13525
|
-
x:[signInt(d.slice(23, 25).reduce(msbLsb),16)/100],
|
|
13526
|
-
y:[signInt(d.slice(25, 27).reduce(msbLsb),16)/100],
|
|
13527
|
-
z:[signInt(d.slice(27, 29).reduce(msbLsb),16)/100]
|
|
13528
|
-
},
|
|
13529
|
-
'accelero_sample_2':{
|
|
13530
|
-
x:[signInt(d.slice(29, 31).reduce(msbLsb),16)/100],
|
|
13531
|
-
y:[signInt(d.slice(31, 33).reduce(msbLsb),16)/100],
|
|
13532
|
-
z:[signInt(d.slice(33, 35).reduce(msbLsb),16)/100]
|
|
13533
|
-
},
|
|
13534
|
-
'accelero_sample_3':{
|
|
13535
|
-
x:[signInt(d.slice(35, 37).reduce(msbLsb),16)/100],
|
|
13536
|
-
y:[signInt(d.slice(37, 39).reduce(msbLsb),16)/100],
|
|
13537
|
-
z:[signInt(d.slice(39, 41).reduce(msbLsb),16)/100]
|
|
13538
|
-
},
|
|
13539
|
-
'accelero_sample_4':{
|
|
13540
|
-
x:[signInt(d.slice(41, 43).reduce(msbLsb),16)/100],
|
|
13541
|
-
y:[signInt(d.slice(43, 45).reduce(msbLsb),16)/100],
|
|
13542
|
-
z:[signInt(d.slice(45, 47).reduce(msbLsb),16)/100]
|
|
13543
|
-
},
|
|
13544
|
-
'accelero_sample_5':{
|
|
13545
|
-
x:[signInt(d.slice(47, 49).reduce(msbLsb),16)/100],
|
|
13546
|
-
y:[signInt(d.slice(49, 51).reduce(msbLsb),16)/100],
|
|
13547
|
-
z:[signInt(d.slice(51, 53).reduce(msbLsb),16)/100]
|
|
13548
|
-
},
|
|
13549
|
-
'accelero_sample_6':{
|
|
13550
|
-
x:[signInt(d.slice(53, 55).reduce(msbLsb),16)/100],
|
|
13551
|
-
y:[signInt(d.slice(55, 57).reduce(msbLsb),16)/100],
|
|
13552
|
-
z:[signInt(d.slice(57, 59).reduce(msbLsb),16)/100]
|
|
13553
|
-
},
|
|
13554
|
-
'accelero_sample_7':{
|
|
13555
|
-
x:[signInt(d.slice(59, 61).reduce(msbLsb),16)/100],
|
|
13556
|
-
y:[signInt(d.slice(61, 63).reduce(msbLsb),16)/100],
|
|
13557
|
-
z:[signInt(d.slice(63, 65).reduce(msbLsb),16)/100]
|
|
13558
|
-
},
|
|
13559
|
-
'accelero_sample_8':{
|
|
13560
|
-
x:[signInt(d.slice(65, 67).reduce(msbLsb),16)/100],
|
|
13561
|
-
y:[signInt(d.slice(67, 69).reduce(msbLsb),16)/100],
|
|
13562
|
-
z:[signInt(d.slice(69, 71).reduce(msbLsb),16)/100]
|
|
13563
|
-
},
|
|
13564
|
-
'accelero_sample_9':{
|
|
13565
|
-
x:[signInt(d.slice(71, 73).reduce(msbLsb),16)/100],
|
|
13566
|
-
y:[signInt(d.slice(73, 75).reduce(msbLsb),16)/100],
|
|
13567
|
-
z:[signInt(d.slice(75, 77).reduce(msbLsb),16)/100]
|
|
13568
|
-
},
|
|
13569
|
-
'accelero_sample_10':{
|
|
13570
|
-
x:[signInt(d.slice(77, 79).reduce(msbLsb),16)/100],
|
|
13571
|
-
y:[signInt(d.slice(79, 81).reduce(msbLsb),16)/100],
|
|
13572
|
-
z:[signInt(d.slice(81, 83).reduce(msbLsb),16)/100]
|
|
13573
|
-
}
|
|
13574
|
-
};
|
|
13575
|
-
}else{
|
|
13576
|
-
return {
|
|
13577
|
-
raw_data: "Disabled",
|
|
13578
|
-
accelerometer_counter: d.slice(0, 4).reduce(msbLsb),
|
|
13579
|
-
accelerometer_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
13580
|
-
magnetometer_counter: d.slice(8, 12).reduce(msbLsb),
|
|
13581
|
-
magnetometer_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
13582
|
-
input_acc: d[16] & 8 ? 1 : 0,
|
|
13583
|
-
input_mag: d[16] & 16 ? 1 : 0,
|
|
13584
|
-
report_type: report_type,
|
|
13585
|
-
rtc: [
|
|
13586
|
-
String(d[18]).padStart(2, '0'),
|
|
13587
|
-
String(d[19]).padStart(2, '0'),
|
|
13588
|
-
String(d[20]).padStart(2, '0')
|
|
13589
|
-
].join(':'),
|
|
13590
|
-
'temperature': d.slice(21, 23).reduce(msbLsb)/100
|
|
13591
|
-
};
|
|
13592
|
-
}
|
|
13593
|
-
},
|
|
13594
|
-
'parse_fly': (frame) => {
|
|
13595
|
-
let reset_mode = "Disabled";
|
|
13596
|
-
switch(frame[35]){
|
|
13597
|
-
case 0:
|
|
13598
|
-
reset_mode = "Disabled";
|
|
13599
|
-
break;
|
|
13600
|
-
case 1:
|
|
13601
|
-
reset_mode = "Shift Ends";
|
|
13602
|
-
break;
|
|
13603
|
-
case 2:
|
|
13604
|
-
reset_mode = "Timeout";
|
|
13605
|
-
break;
|
|
13606
|
-
}
|
|
13607
|
-
let acc_odr = "10 Hz";
|
|
13608
|
-
switch(frame[37]){
|
|
13609
|
-
case 0:
|
|
13610
|
-
acc_odr = "10 Hz";
|
|
13611
|
-
break;
|
|
13612
|
-
case 1:
|
|
13613
|
-
acc_odr = "20 Hz";
|
|
13614
|
-
break;
|
|
13615
|
-
case 2:
|
|
13616
|
-
acc_odr = "50 Hz";
|
|
13617
|
-
break;
|
|
13618
|
-
case 3:
|
|
13619
|
-
acc_odr = "100 Hz";
|
|
13620
|
-
break;
|
|
13621
|
-
case 4:
|
|
13622
|
-
acc_odr = "200 Hz";
|
|
13623
|
-
break;
|
|
13624
|
-
case 5:
|
|
13625
|
-
acc_odr = "400 Hz";
|
|
13626
|
-
break;
|
|
13627
|
-
}
|
|
13628
|
-
let rtc_sampling_interval = "5 sec";
|
|
13629
|
-
switch(frame[36]){
|
|
13630
|
-
case 0:
|
|
13631
|
-
rtc_sampling_interval = "1 min";
|
|
13632
|
-
break;
|
|
13633
|
-
case 1:
|
|
13634
|
-
rtc_sampling_interval = "5 min";
|
|
13635
|
-
break;
|
|
13636
|
-
case 2:
|
|
13637
|
-
rtc_sampling_interval = "15 min";
|
|
13638
|
-
break;
|
|
13639
|
-
case 3:
|
|
13640
|
-
rtc_sampling_interval = "30 min";
|
|
13641
|
-
break;
|
|
13642
|
-
case 4:
|
|
13643
|
-
rtc_sampling_interval = "1 hour";
|
|
13644
|
-
break;
|
|
13645
|
-
case 5:
|
|
13646
|
-
rtc_sampling_interval = "2 hours";
|
|
13647
|
-
break;
|
|
13648
|
-
case 6:
|
|
13649
|
-
rtc_sampling_interval = "3 hours";
|
|
13650
|
-
break;
|
|
13651
|
-
case 7:
|
|
13652
|
-
rtc_sampling_interval = "6 hours";
|
|
13653
|
-
break;
|
|
13654
|
-
case 8:
|
|
13655
|
-
rtc_sampling_interval = "12 hours";
|
|
13656
|
-
break;
|
|
13657
|
-
case 9:
|
|
13658
|
-
rtc_sampling_interval = "5 sec";
|
|
13659
|
-
break;
|
|
13660
|
-
case 10:
|
|
13661
|
-
rtc_sampling_interval = "10 sec";
|
|
13662
|
-
break;
|
|
13663
|
-
case 11:
|
|
13664
|
-
rtc_sampling_interval = "15 sec";
|
|
13665
|
-
break;
|
|
13666
|
-
case 12:
|
|
13667
|
-
rtc_sampling_interval = "30 sec";
|
|
13668
|
-
break;
|
|
13669
|
-
}
|
|
13670
|
-
let acc_enabled_axis = 'Disabled All';
|
|
13671
|
-
switch(frame[40]){
|
|
13672
|
-
case 0:
|
|
13673
|
-
acc_enabled_axis = 'Disabled All';
|
|
13674
|
-
break;
|
|
13675
|
-
case 1:
|
|
13676
|
-
acc_enabled_axis = 'x axis';
|
|
13677
|
-
break;
|
|
13678
|
-
case 2:
|
|
13679
|
-
acc_enabled_axis = 'y axis';
|
|
13680
|
-
break;
|
|
13681
|
-
case 3:
|
|
13682
|
-
acc_enabled_axis = 'z axis';
|
|
13683
|
-
break;
|
|
13684
|
-
case 7:
|
|
13685
|
-
acc_enabled_axis = 'all axis';
|
|
13686
|
-
break;
|
|
13687
|
-
}
|
|
13688
|
-
return {
|
|
13689
|
-
'firmware': frame[2],
|
|
13690
|
-
'accelerometer_threshold': (frame[16]* 32) + " mg",
|
|
13691
|
-
'debouncing_timeout': frame.slice(17, 19).reduce(msbLsb) + " msec",
|
|
13692
|
-
'accelero_state': frame[19]? "Enabled": "Disabled",
|
|
13693
|
-
'counter_threshold': frame.slice(20, 24).reduce(msbLsb),
|
|
13694
|
-
'trasnmit_on_change_status': frame[24]? "Enabled": "Disabled",
|
|
13695
|
-
'Shift_end_1': [
|
|
13696
|
-
String(frame[25]).padStart(2, '0'),
|
|
13697
|
-
String(frame[26]).padStart(2, '0')
|
|
13698
|
-
].join(':'),
|
|
13699
|
-
'Shift_end_2': [
|
|
13700
|
-
String(frame[27]).padStart(2, '0'),
|
|
13701
|
-
String(frame[28]).padStart(2, '0')
|
|
13702
|
-
].join(':'),
|
|
13703
|
-
'Shift_end_3': [
|
|
13704
|
-
String(frame[29]).padStart(2, '0'),
|
|
13705
|
-
String(frame[30]).padStart(2, '0')
|
|
13706
|
-
].join(':'),
|
|
13707
|
-
'Shift_end_4': [
|
|
13708
|
-
String(frame[31]).padStart(2, '0'),
|
|
13709
|
-
String(frame[32]).padStart(2, '0')
|
|
13710
|
-
].join(':'),
|
|
13711
|
-
'reset_timeout': frame.slice(33, 35).reduce(msbLsb) + " min",
|
|
13712
|
-
'counter_reset_mode': reset_mode,
|
|
13713
|
-
'sampling_interval': rtc_sampling_interval,
|
|
13714
|
-
'acc_odr': acc_odr,
|
|
13715
|
-
'interrupt_timeout': frame.slice(38, 40).reduce(msbLsb) + ' msec',
|
|
13716
|
-
'acc_enabled_axis': acc_enabled_axis,
|
|
13717
|
-
'hardware_id': frame.slice(41, 44),
|
|
13718
|
-
'report_rate': frame.slice(44, 48).reduce(msbLsb) + " sec",
|
|
13719
|
-
'tx_life_counter': frame.slice(48, 52).reduce(msbLsb),
|
|
13720
|
-
'machine_values': {
|
|
13721
|
-
'firmware': frame[2],
|
|
13722
|
-
'accelerometer_threshold': (frame[16]* 32),
|
|
13723
|
-
'debouncing_timeout': frame.slice(17, 19),
|
|
13724
|
-
'accelero_state': frame[19],
|
|
13725
|
-
'counter_threshold': frame.slice(20, 24),
|
|
13726
|
-
'trasnmit_on_change_status': frame[24],
|
|
13727
|
-
'Shift_end_1': [
|
|
13728
|
-
frame[25],
|
|
13729
|
-
frame[26]
|
|
13730
|
-
],
|
|
13731
|
-
'Shift_end_2': [
|
|
13732
|
-
frame[27],
|
|
13733
|
-
frame[28]
|
|
13734
|
-
],
|
|
13735
|
-
'Shift_end_3': [
|
|
13736
|
-
frame[29],
|
|
13737
|
-
frame[30]
|
|
13738
|
-
],
|
|
13739
|
-
'Shift_end_4': [
|
|
13740
|
-
frame[31],
|
|
13741
|
-
frame[32]
|
|
13742
|
-
],
|
|
13743
|
-
'reset_timeout': frame.slice(33, 35),
|
|
13744
|
-
'counter_reset_mode': frame[35],
|
|
13745
|
-
'sampling_interval': frame[36],
|
|
13746
|
-
'acc_odr': frame[37],
|
|
13747
|
-
'interrupt_timeout': frame.slice(38, 40),
|
|
13748
|
-
'acc_enabled_axis': frame[40],
|
|
13749
|
-
'hardware_id': frame.slice(41, 44),
|
|
13750
|
-
'report_rate': frame.slice(44, 48),
|
|
13751
|
-
'tx_life_counter': frame.slice(48, 52)
|
|
13752
|
-
}
|
|
13753
|
-
}
|
|
13754
|
-
}
|
|
13755
|
-
},
|
|
13756
13483
|
'120': {
|
|
13757
13484
|
name: 'Wireless H2S Sensor',
|
|
13758
13485
|
parse: (d) => {
|
|
@@ -14508,9 +14235,43 @@ function sensor_types(parent){
|
|
|
14508
14235
|
}
|
|
14509
14236
|
}
|
|
14510
14237
|
},
|
|
14511
|
-
'
|
|
14512
|
-
name: '
|
|
14238
|
+
'180': {
|
|
14239
|
+
name: 'C1D2 One Channel Vibration Plus',
|
|
14240
|
+
parse: (payload, parsed, mac) => {
|
|
14241
|
+
return parent.sensor_types[80].parse(payload, parsed, mac);
|
|
14242
|
+
},
|
|
14243
|
+
parse_fly: (payload, parsed, mac) => {
|
|
14244
|
+
return parent.sensor_types[80].parse_fly(payload, parsed, mac);
|
|
14245
|
+
},
|
|
14246
|
+
},
|
|
14247
|
+
'181': {
|
|
14248
|
+
name: 'C1D2 Two Channel Vibration Plus',
|
|
14249
|
+
parse: (payload, parsed, mac) => {
|
|
14250
|
+
return parent.sensor_types[81].parse(payload, parsed, mac);
|
|
14251
|
+
},
|
|
14252
|
+
parse_fly: (payload, parsed, mac) => {
|
|
14253
|
+
return parent.sensor_types[81].parse_fly(payload, parsed, mac);
|
|
14254
|
+
},
|
|
14255
|
+
},
|
|
14256
|
+
'200': {
|
|
14257
|
+
name: '4-20mA Pass Through',
|
|
14513
14258
|
parse: (d) => {
|
|
14259
|
+
var adc1 = signInt(d.slice(0, 2).reduce(msbLsb));
|
|
14260
|
+
var adc2 = signInt(d.slice(2, 4).reduce(msbLsb));
|
|
14261
|
+
var dac1 = signInt(d.slice(4, 6).reduce(msbLsb));
|
|
14262
|
+
return {
|
|
14263
|
+
adc1: adc1,
|
|
14264
|
+
adc2: adc2,
|
|
14265
|
+
dac1: dac1,
|
|
14266
|
+
mA1: parseFloat((adc1/100.00).toFixed(2)),
|
|
14267
|
+
raw_adc: adc2,
|
|
14268
|
+
raw_dac: dac1
|
|
14269
|
+
};
|
|
14270
|
+
}
|
|
14271
|
+
},
|
|
14272
|
+
'202': {
|
|
14273
|
+
name: 'Wireless Weather Station',
|
|
14274
|
+
parse: (payload, parsed, mac) => {
|
|
14514
14275
|
return {
|
|
14515
14276
|
Temp: signInt(payload.slice(8, 12).reduce(msbLsb), 32) / 100,
|
|
14516
14277
|
Humid: signInt(payload.slice(12, 16).reduce(msbLsb), 32) / 100,
|
|
@@ -14619,587 +14380,6 @@ function sensor_types(parent){
|
|
|
14619
14380
|
}
|
|
14620
14381
|
}
|
|
14621
14382
|
},
|
|
14622
|
-
'270': {
|
|
14623
|
-
name: 'Custom Salinity DO sensor',
|
|
14624
|
-
parse: (d) => {
|
|
14625
|
-
return {
|
|
14626
|
-
sensor_status: d[0],
|
|
14627
|
-
do_temperature_1: d.slice(1, 3).reduce(msbLsb) / 100,
|
|
14628
|
-
do_temperature_2: d.slice(3, 5).reduce(msbLsb) / 100,
|
|
14629
|
-
do_temperature_3: d.slice(5, 7).reduce(msbLsb) / 100,
|
|
14630
|
-
do_temperature_4: d.slice(7, 9).reduce(msbLsb) / 100,
|
|
14631
|
-
ec_temperature_1: d.slice(9, 11).reduce(msbLsb) / 100,
|
|
14632
|
-
ec_temperature_2: d.slice(11, 13).reduce(msbLsb) / 100,
|
|
14633
|
-
ec_temperature_3: d.slice(13, 15).reduce(msbLsb) / 100,
|
|
14634
|
-
ec_temperature_4: d.slice(15, 17).reduce(msbLsb) / 100,
|
|
14635
|
-
do_saturation_perc_1: d.slice(17, 19).reduce(msbLsb) / 100,
|
|
14636
|
-
do_saturation_perc_2: d.slice(19, 21).reduce(msbLsb) / 100,
|
|
14637
|
-
do_saturation_perc_3: d.slice(21, 23).reduce(msbLsb) / 100,
|
|
14638
|
-
do_saturation_perc_4: d.slice(23, 25).reduce(msbLsb) / 100,
|
|
14639
|
-
do_ppm_1: d.slice(25, 27).reduce(msbLsb) / 100,
|
|
14640
|
-
do_ppm_2: d.slice(27, 29).reduce(msbLsb) / 100,
|
|
14641
|
-
do_ppm_3: d.slice(29, 31).reduce(msbLsb) / 100,
|
|
14642
|
-
do_ppm_4: d.slice(31, 33).reduce(msbLsb) / 100,
|
|
14643
|
-
do_mgl_1: d.slice(33, 35).reduce(msbLsb) / 100,
|
|
14644
|
-
do_mgl_2: d.slice(35, 37).reduce(msbLsb) / 100,
|
|
14645
|
-
do_mgl_3: d.slice(37, 39).reduce(msbLsb) / 100,
|
|
14646
|
-
do_mgl_4: d.slice(39, 41).reduce(msbLsb) / 100,
|
|
14647
|
-
ec_conductivity_1: d.slice(41, 43).reduce(msbLsb) / 100,
|
|
14648
|
-
ec_conductivity_2: d.slice(43, 45).reduce(msbLsb) / 100,
|
|
14649
|
-
ec_conductivity_3: d.slice(45, 47).reduce(msbLsb) / 100,
|
|
14650
|
-
ec_conductivity_4: d.slice(47, 49).reduce(msbLsb) / 100,
|
|
14651
|
-
ec_salinity_ppt_1: d.slice(49, 57).reduce(msbLsb) / 100,
|
|
14652
|
-
ec_salinity_ppt_2: d.slice(57, 65).reduce(msbLsb) / 100,
|
|
14653
|
-
ec_salinity_ppt_3: d.slice(65, 73).reduce(msbLsb) / 100,
|
|
14654
|
-
ec_salinity_ppt_4: d.slice(73, 81).reduce(msbLsb) / 100,
|
|
14655
|
-
ec_tds_1: d.slice(81, 85).reduce(msbLsb) / 100,
|
|
14656
|
-
ec_tds_2: d.slice(85, 89).reduce(msbLsb) / 100,
|
|
14657
|
-
ec_tds_3: d.slice(89, 93).reduce(msbLsb) / 100,
|
|
14658
|
-
ec_tds_4: d.slice(93, 97).reduce(msbLsb) / 100
|
|
14659
|
-
};
|
|
14660
|
-
},
|
|
14661
|
-
'parse_fly': (frame) => {
|
|
14662
|
-
let frame_data = {};
|
|
14663
|
-
switch(frame[12]){
|
|
14664
|
-
case 0:
|
|
14665
|
-
frame_data.flow_unit = 'cm³/s';
|
|
14666
|
-
break;
|
|
14667
|
-
case 1:
|
|
14668
|
-
frame_data.flow_unit = 'cm³/min';
|
|
14669
|
-
break;
|
|
14670
|
-
case 2:
|
|
14671
|
-
frame_data.flow_unit = 'cm³/h';
|
|
14672
|
-
break;
|
|
14673
|
-
case 3:
|
|
14674
|
-
frame_data.flow_unit = 'cm³/d';
|
|
14675
|
-
break;
|
|
14676
|
-
case 4:
|
|
14677
|
-
frame_data.flow_unit = 'dm³/s';
|
|
14678
|
-
break;
|
|
14679
|
-
case 5:
|
|
14680
|
-
frame_data.flow_unit = 'dm³/min';
|
|
14681
|
-
break;
|
|
14682
|
-
case 6:
|
|
14683
|
-
frame_data.flow_unit = 'dm³/h';
|
|
14684
|
-
break;
|
|
14685
|
-
case 7:
|
|
14686
|
-
frame_data.flow_unit = 'dm³/d';
|
|
14687
|
-
break;
|
|
14688
|
-
case 8:
|
|
14689
|
-
frame_data.flow_unit = 'm³/s';
|
|
14690
|
-
break;
|
|
14691
|
-
case 9:
|
|
14692
|
-
frame_data.flow_unit = 'm³/min';
|
|
14693
|
-
break;
|
|
14694
|
-
case 10:
|
|
14695
|
-
frame_data.flow_unit = 'm³/h';
|
|
14696
|
-
break;
|
|
14697
|
-
case 11:
|
|
14698
|
-
frame_data.flow_unit = 'm³/d';
|
|
14699
|
-
break;
|
|
14700
|
-
case 12:
|
|
14701
|
-
frame_data.flow_unit = 'ml/s';
|
|
14702
|
-
break;
|
|
14703
|
-
case 13:
|
|
14704
|
-
frame_data.flow_unit = 'ml/min';
|
|
14705
|
-
break;
|
|
14706
|
-
case 14:
|
|
14707
|
-
frame_data.flow_unit = 'ml/h';
|
|
14708
|
-
break;
|
|
14709
|
-
case 15:
|
|
14710
|
-
frame_data.flow_unit = 'ml/d';
|
|
14711
|
-
break;
|
|
14712
|
-
case 16:
|
|
14713
|
-
unitStrframe_data.flow_uniting = 'l/s';
|
|
14714
|
-
break;
|
|
14715
|
-
case 17:
|
|
14716
|
-
frame_data.flow_unit = 'l/min';
|
|
14717
|
-
break;
|
|
14718
|
-
case 18:
|
|
14719
|
-
frame_data.flow_unit = 'l/h';
|
|
14720
|
-
break;
|
|
14721
|
-
case 19:
|
|
14722
|
-
frame_data.flow_unit = 'l/d';
|
|
14723
|
-
break;
|
|
14724
|
-
case 20:
|
|
14725
|
-
frame_data.flow_unit = 'hl/s';
|
|
14726
|
-
break;
|
|
14727
|
-
case 21:
|
|
14728
|
-
frame_data.flow_unit = 'hl/min';
|
|
14729
|
-
break;
|
|
14730
|
-
case 22:
|
|
14731
|
-
frame_data.flow_unit = 'hl/h';
|
|
14732
|
-
break;
|
|
14733
|
-
case 23:
|
|
14734
|
-
frame_data.flow_unit = 'hl/d';
|
|
14735
|
-
break;
|
|
14736
|
-
case 24:
|
|
14737
|
-
frame_data.flow_unit = 'Ml/s';
|
|
14738
|
-
break;
|
|
14739
|
-
case 25:
|
|
14740
|
-
frame_data.flow_unit = 'Ml/min';
|
|
14741
|
-
break;
|
|
14742
|
-
case 26:
|
|
14743
|
-
frame_data.flow_unit = 'Ml/h';
|
|
14744
|
-
break;
|
|
14745
|
-
case 27:
|
|
14746
|
-
frame_data.flow_unit = 'Ml/d';
|
|
14747
|
-
break;
|
|
14748
|
-
|
|
14749
|
-
// US Customary & Imperial Flow Rates
|
|
14750
|
-
case 32:
|
|
14751
|
-
frame_data.flow_unit = 'af/s';
|
|
14752
|
-
break;
|
|
14753
|
-
case 33:
|
|
14754
|
-
frame_data.flow_unit = 'af/min';
|
|
14755
|
-
break;
|
|
14756
|
-
case 34:
|
|
14757
|
-
frame_data.flow_unit = 'af/h';
|
|
14758
|
-
break;
|
|
14759
|
-
case 35:
|
|
14760
|
-
frame_data.flow_unit = 'af/d';
|
|
14761
|
-
break;
|
|
14762
|
-
case 36:
|
|
14763
|
-
frame_data.flow_unit = 'ft³/s';
|
|
14764
|
-
break;
|
|
14765
|
-
case 37:
|
|
14766
|
-
frame_data.flow_unit = 'ft³/min';
|
|
14767
|
-
break;
|
|
14768
|
-
case 38:
|
|
14769
|
-
frame_data.flow_unit = 'ft³/h';
|
|
14770
|
-
break;
|
|
14771
|
-
case 39:
|
|
14772
|
-
frame_data.flow_unit = 'ft³/d';
|
|
14773
|
-
break;
|
|
14774
|
-
case 40:
|
|
14775
|
-
frame_data.flow_unit = 'fl oz/s (us)';
|
|
14776
|
-
break;
|
|
14777
|
-
case 41:
|
|
14778
|
-
frame_data.flow_unit = 'fl oz/min (us)';
|
|
14779
|
-
break;
|
|
14780
|
-
case 42:
|
|
14781
|
-
frame_data.flow_unit = 'fl oz/h (us)';
|
|
14782
|
-
break;
|
|
14783
|
-
case 43:
|
|
14784
|
-
frame_data.flow_unit = 'fl oz/d (us)';
|
|
14785
|
-
break;
|
|
14786
|
-
case 44:
|
|
14787
|
-
frame_data.flow_unit = 'gal/s (us)';
|
|
14788
|
-
break;
|
|
14789
|
-
case 45:
|
|
14790
|
-
frame_data.flow_unit = 'gal/min (us)';
|
|
14791
|
-
break;
|
|
14792
|
-
case 46:
|
|
14793
|
-
frame_data.flow_unit = 'gal/h (us)';
|
|
14794
|
-
break;
|
|
14795
|
-
case 47:
|
|
14796
|
-
frame_data.flow_unit = 'gal/d (us)';
|
|
14797
|
-
break;
|
|
14798
|
-
case 48:
|
|
14799
|
-
frame_data.flow_unit = 'Mgal/s (us)';
|
|
14800
|
-
break;
|
|
14801
|
-
case 49:
|
|
14802
|
-
frame_data.flow_unit = 'Mgal/min (us)';
|
|
14803
|
-
break;
|
|
14804
|
-
case 50:
|
|
14805
|
-
frame_data.flow_unit = 'Mgal/h (us)';
|
|
14806
|
-
break;
|
|
14807
|
-
case 51:
|
|
14808
|
-
frame_data.flow_unit = 'Mgal/d (us)';
|
|
14809
|
-
break;
|
|
14810
|
-
case 52:
|
|
14811
|
-
frame_data.flow_unit = 'bbl/s (us;liq.)';
|
|
14812
|
-
break;
|
|
14813
|
-
case 53:
|
|
14814
|
-
frame_data.flow_unit = 'bbl/min (us;liq.)';
|
|
14815
|
-
break;
|
|
14816
|
-
case 54:
|
|
14817
|
-
frame_data.flow_unit = 'bbl/h (us;liq.)';
|
|
14818
|
-
break;
|
|
14819
|
-
case 55:
|
|
14820
|
-
frame_data.flow_unit = 'bbl/d (us;liq.)';
|
|
14821
|
-
break;
|
|
14822
|
-
case 56:
|
|
14823
|
-
frame_data.flow_unit = 'bbl/s (us;beer)';
|
|
14824
|
-
break;
|
|
14825
|
-
case 57:
|
|
14826
|
-
frame_data.flow_unit = 'bbl/min (us;beer)';
|
|
14827
|
-
break;
|
|
14828
|
-
case 58:
|
|
14829
|
-
frame_data.flow_unit = 'bbl/h (us;beer)';
|
|
14830
|
-
break;
|
|
14831
|
-
case 59:
|
|
14832
|
-
frame_data.flow_unit = 'bbl/d (us;beer)';
|
|
14833
|
-
break;
|
|
14834
|
-
case 60:
|
|
14835
|
-
frame_data.flow_unit = 'bbl/s (us;oil)';
|
|
14836
|
-
break;
|
|
14837
|
-
case 61:
|
|
14838
|
-
frame_data.flow_unit = 'bbl/min (us;oil)';
|
|
14839
|
-
break;
|
|
14840
|
-
case 62:
|
|
14841
|
-
frame_data.flow_unit = 'bbl/h (us;oil)';
|
|
14842
|
-
break;
|
|
14843
|
-
case 63:
|
|
14844
|
-
frame_data.flow_unit = 'bbl/d (us;oil)';
|
|
14845
|
-
break;
|
|
14846
|
-
case 64:
|
|
14847
|
-
frame_data.flow_unit = 'bbl/s (us;tank)';
|
|
14848
|
-
break;
|
|
14849
|
-
case 65:
|
|
14850
|
-
frame_data.flow_unit = 'bbl/min (us;tank)';
|
|
14851
|
-
break;
|
|
14852
|
-
case 66:
|
|
14853
|
-
frame_data.flow_unit = 'bbl/h (us;tank)';
|
|
14854
|
-
break;
|
|
14855
|
-
case 67:
|
|
14856
|
-
frame_data.flow_unit = 'bbl/d (us;tank)';
|
|
14857
|
-
break;
|
|
14858
|
-
case 68:
|
|
14859
|
-
frame_data.flow_unit = 'gal/s (imp)';
|
|
14860
|
-
break;
|
|
14861
|
-
case 69:
|
|
14862
|
-
frame_data.flow_unit = 'gal/min (imp)';
|
|
14863
|
-
break;
|
|
14864
|
-
case 70:
|
|
14865
|
-
frame_data.flow_unit = 'gal/h (imp)';
|
|
14866
|
-
break;
|
|
14867
|
-
case 71:
|
|
14868
|
-
frame_data.flow_unit = 'gal/d (imp)';
|
|
14869
|
-
break;
|
|
14870
|
-
case 72:
|
|
14871
|
-
frame_data.flow_unit = 'Mgal/s (imp)';
|
|
14872
|
-
break;
|
|
14873
|
-
case 73:
|
|
14874
|
-
frame_data.flow_unit = 'Mgal/min (imp)';
|
|
14875
|
-
break;
|
|
14876
|
-
case 74:
|
|
14877
|
-
frame_data.flow_unit = 'Mgal/h (imp)';
|
|
14878
|
-
break;
|
|
14879
|
-
case 75:
|
|
14880
|
-
frame_data.flow_unit = 'Mgal/d (imp)';
|
|
14881
|
-
break;
|
|
14882
|
-
case 76:
|
|
14883
|
-
frame_data.flow_unit = 'bbl/s (imp;beer)';
|
|
14884
|
-
break;
|
|
14885
|
-
case 77:
|
|
14886
|
-
frame_data.flow_unit = 'bbl/min (imp;beer)';
|
|
14887
|
-
break;
|
|
14888
|
-
case 78:
|
|
14889
|
-
frame_data.flow_unit = 'bbl/h (imp;beer)';
|
|
14890
|
-
break;
|
|
14891
|
-
case 79:
|
|
14892
|
-
frame_data.flow_unit = 'bbl/d (imp;beer)';
|
|
14893
|
-
break;
|
|
14894
|
-
case 80:
|
|
14895
|
-
frame_data.flow_unit = 'bbl/s (imp;oil)';
|
|
14896
|
-
break;
|
|
14897
|
-
case 81:
|
|
14898
|
-
frame_data.flow_unit = 'bbl/min (imp;oil)';
|
|
14899
|
-
break;
|
|
14900
|
-
case 82:
|
|
14901
|
-
frame_data.flow_unit = 'bbl/h (imp;oil)';
|
|
14902
|
-
break;
|
|
14903
|
-
case 83:
|
|
14904
|
-
frame_data.flow_unit = 'bbl/d (imp;oil)';
|
|
14905
|
-
break;
|
|
14906
|
-
case 88:
|
|
14907
|
-
frame_data.flow_unit = 'kgal/s (us)';
|
|
14908
|
-
break;
|
|
14909
|
-
case 89:
|
|
14910
|
-
frame_data.flow_unit = 'kgal/min (us)';
|
|
14911
|
-
break;
|
|
14912
|
-
case 90:
|
|
14913
|
-
frame_data.flow_unit = 'kgal/h (us)';
|
|
14914
|
-
break;
|
|
14915
|
-
case 91:
|
|
14916
|
-
frame_data.flow_unit = 'kgal/d (us)';
|
|
14917
|
-
break;
|
|
14918
|
-
case 92:
|
|
14919
|
-
frame_data.flow_unit = 'MMft³/s';
|
|
14920
|
-
break;
|
|
14921
|
-
case 93:
|
|
14922
|
-
frame_data.flow_unit = 'MMft³/min';
|
|
14923
|
-
break;
|
|
14924
|
-
case 94:
|
|
14925
|
-
frame_data.flow_unit = 'MMft³/h';
|
|
14926
|
-
break;
|
|
14927
|
-
case 96:
|
|
14928
|
-
frame_data.flow_unit = 'Mft³/d';
|
|
14929
|
-
break;
|
|
14930
|
-
}
|
|
14931
|
-
switch(frame[13]){
|
|
14932
|
-
case 0:
|
|
14933
|
-
frame_data.pressure_unit = 'bar';
|
|
14934
|
-
break;
|
|
14935
|
-
case 1:
|
|
14936
|
-
frame_data.pressure_unit = 'psi a';
|
|
14937
|
-
break;
|
|
14938
|
-
case 2:
|
|
14939
|
-
frame_data.pressure_unit = 'bar g';
|
|
14940
|
-
break;
|
|
14941
|
-
case 3:
|
|
14942
|
-
frame_data.pressure_unit = 'psi g';
|
|
14943
|
-
break;
|
|
14944
|
-
case 4:
|
|
14945
|
-
frame_data.pressure_unit = 'Pa a';
|
|
14946
|
-
break;
|
|
14947
|
-
case 5:
|
|
14948
|
-
frame_data.pressure_unit = 'kPa a';
|
|
14949
|
-
break;
|
|
14950
|
-
case 6:
|
|
14951
|
-
frame_data.pressure_unit = 'MPa a';
|
|
14952
|
-
break;
|
|
14953
|
-
case 7:
|
|
14954
|
-
frame_data.pressure_unit = 'Pa g';
|
|
14955
|
-
break;
|
|
14956
|
-
case 8:
|
|
14957
|
-
frame_data.pressure_unit = 'kPa g';
|
|
14958
|
-
break;
|
|
14959
|
-
case 9:
|
|
14960
|
-
frame_data.pressure_unit = 'MPa g';
|
|
14961
|
-
break;
|
|
14962
|
-
}
|
|
14963
|
-
switch(frame[14]){
|
|
14964
|
-
case 1:
|
|
14965
|
-
frame_data.conductivity_unit = 'MS/m';
|
|
14966
|
-
break;
|
|
14967
|
-
case 2:
|
|
14968
|
-
frame_data.conductivity_unit = 'kS/m';
|
|
14969
|
-
break;
|
|
14970
|
-
case 3:
|
|
14971
|
-
frame_data.conductivity_unit = 'S/m';
|
|
14972
|
-
break;
|
|
14973
|
-
case 4:
|
|
14974
|
-
frame_data.conductivity_unit = 'S/cm';
|
|
14975
|
-
break;
|
|
14976
|
-
case 5:
|
|
14977
|
-
frame_data.conductivity_unit = 'mS/m';
|
|
14978
|
-
break;
|
|
14979
|
-
case 6:
|
|
14980
|
-
frame_data.conductivity_unit = 'mS/cm';
|
|
14981
|
-
break;
|
|
14982
|
-
case 7:
|
|
14983
|
-
frame_data.conductivity_unit = 'μS/m';
|
|
14984
|
-
break;
|
|
14985
|
-
case 8:
|
|
14986
|
-
frame_data.conductivity_unit = 'μS/cm';
|
|
14987
|
-
break;
|
|
14988
|
-
case 9:
|
|
14989
|
-
frame_data.conductivity_unit = 'μS/mm';
|
|
14990
|
-
break;
|
|
14991
|
-
case 10:
|
|
14992
|
-
frame_data.conductivity_unit = 'nS/cm';
|
|
14993
|
-
break;
|
|
14994
|
-
}
|
|
14995
|
-
|
|
14996
|
-
frame_data.totalizer_unit = [];
|
|
14997
|
-
|
|
14998
|
-
for (let index = 0; index < 3; index++) {
|
|
14999
|
-
switch(frame[index + 15]){
|
|
15000
|
-
case 0:
|
|
15001
|
-
frame_data.totalizer_unit[index] = 'cm³';
|
|
15002
|
-
break;
|
|
15003
|
-
case 1:
|
|
15004
|
-
frame_data.totalizer_unit[index] = 'dm³';
|
|
15005
|
-
break;
|
|
15006
|
-
case 2:
|
|
15007
|
-
frame_data.totalizer_unit[index] = 'm³';
|
|
15008
|
-
break;
|
|
15009
|
-
case 3:
|
|
15010
|
-
frame_data.totalizer_unit[index] = 'ml';
|
|
15011
|
-
break;
|
|
15012
|
-
case 4:
|
|
15013
|
-
frame_data.totalizer_unit[index] = 'l';
|
|
15014
|
-
break;
|
|
15015
|
-
case 5:
|
|
15016
|
-
frame_data.totalizer_unit[index] = 'hl';
|
|
15017
|
-
break;
|
|
15018
|
-
case 6:
|
|
15019
|
-
frame_data.totalizer_unit[index] = 'Ml Mega';
|
|
15020
|
-
break;
|
|
15021
|
-
case 8:
|
|
15022
|
-
frame_data.totalizer_unit[index] = 'af';
|
|
15023
|
-
break;
|
|
15024
|
-
case 9:
|
|
15025
|
-
frame_data.totalizer_unit[index] = 'ft³';
|
|
15026
|
-
break;
|
|
15027
|
-
case 10:
|
|
15028
|
-
frame_data.totalizer_unit[index] = 'fl oz (us)';
|
|
15029
|
-
break;
|
|
15030
|
-
case 11:
|
|
15031
|
-
frame_data.totalizer_unit[index] = 'gal (us)';
|
|
15032
|
-
break;
|
|
15033
|
-
case 12:
|
|
15034
|
-
frame_data.totalizer_unit[index] = 'Mgal (us)';
|
|
15035
|
-
break;
|
|
15036
|
-
case 13:
|
|
15037
|
-
frame_data.totalizer_unit[index] = 'bbl (us;liq.)';
|
|
15038
|
-
break;
|
|
15039
|
-
case 14:
|
|
15040
|
-
frame_data.totalizer_unit[index] = 'bbl (us;beer)';
|
|
15041
|
-
break;
|
|
15042
|
-
case 15:
|
|
15043
|
-
frame_data.totalizer_unit[index] = 'bbl (us;oil)';
|
|
15044
|
-
break;
|
|
15045
|
-
case 16:
|
|
15046
|
-
frame_data.totalizer_unit[index] = 'bbl (us;tank)';
|
|
15047
|
-
break;
|
|
15048
|
-
case 17:
|
|
15049
|
-
frame_data.totalizer_unit[index] = 'gal (imp)';
|
|
15050
|
-
break;
|
|
15051
|
-
case 18:
|
|
15052
|
-
frame_data.totalizer_unit[index] = 'Mgal (imp)';
|
|
15053
|
-
break;
|
|
15054
|
-
case 19:
|
|
15055
|
-
frame_data.totalizer_unit[index] = 'bbl (imp;beer)';
|
|
15056
|
-
break;
|
|
15057
|
-
case 20:
|
|
15058
|
-
frame_data.totalizer_unit[index] = 'bbl (imp;oil)';
|
|
15059
|
-
break;
|
|
15060
|
-
case 22:
|
|
15061
|
-
frame_data.totalizer_unit[index] = 'kgal (us)';
|
|
15062
|
-
break;
|
|
15063
|
-
case 23:
|
|
15064
|
-
frame_data.totalizer_unit[index] = 'Mft³';
|
|
15065
|
-
break;
|
|
15066
|
-
}
|
|
15067
|
-
|
|
15068
|
-
}
|
|
15069
|
-
return {
|
|
15070
|
-
'firmware': frame[2],
|
|
15071
|
-
'flow_unit': frame_data.flow_unit,
|
|
15072
|
-
'pressure_unit': frame_data.pressure_unit,
|
|
15073
|
-
'conductivity_unit': frame_data.conductivity_unit,
|
|
15074
|
-
'totalizer_1_unit': frame_data.totalizer_unit[0],
|
|
15075
|
-
'totalizer_2_unit': frame_data.totalizer_unit[1],
|
|
15076
|
-
'totalizer_3_unit': frame_data.totalizer_unit[2],
|
|
15077
|
-
'hardware_id': frame.slice(18, 21),
|
|
15078
|
-
'sample_rate': frame.slice(21, 25).reduce(msbLsb),
|
|
15079
|
-
'tx_life_counter': frame.slice(25, 29).reduce(msbLsb),
|
|
15080
|
-
'machine_values': {
|
|
15081
|
-
'firmware': frame[2],
|
|
15082
|
-
'flow_unit': frame[12],
|
|
15083
|
-
'pressure_unit': frame[13],
|
|
15084
|
-
'conductivity_unit': frame[14],
|
|
15085
|
-
'totalizer_1_unit': frame[15],
|
|
15086
|
-
'totalizer_2_unit': frame[16],
|
|
15087
|
-
'totalizer_3_unit': frame[17],
|
|
15088
|
-
'hardware_id': frame.slice(18, 21),
|
|
15089
|
-
'sample_rate': frame.slice(21, 25),
|
|
15090
|
-
'tx_life_counter': frame.slice(25, 29)
|
|
15091
|
-
}
|
|
15092
|
-
}
|
|
15093
|
-
}
|
|
15094
|
-
},
|
|
15095
|
-
'180': {
|
|
15096
|
-
name: 'C1D2 One Channel Vibration Plus',
|
|
15097
|
-
parse: (payload, parsed, mac) => {
|
|
15098
|
-
return parent.sensor_types[80].parse(payload, parsed, mac);
|
|
15099
|
-
},
|
|
15100
|
-
parse_fly: (payload, parsed, mac) => {
|
|
15101
|
-
return parent.sensor_types[80].parse_fly(payload, parsed, mac);
|
|
15102
|
-
},
|
|
15103
|
-
},
|
|
15104
|
-
'181': {
|
|
15105
|
-
name: 'C1D2 Two Channel Vibration Plus',
|
|
15106
|
-
parse: (payload, parsed, mac) => {
|
|
15107
|
-
return parent.sensor_types[81].parse(payload, parsed, mac);
|
|
15108
|
-
},
|
|
15109
|
-
parse_fly: (payload, parsed, mac) => {
|
|
15110
|
-
return parent.sensor_types[81].parse_fly(payload, parsed, mac);
|
|
15111
|
-
},
|
|
15112
|
-
},
|
|
15113
|
-
'200': {
|
|
15114
|
-
name: '4-20mA Pass Through',
|
|
15115
|
-
parse: (d) => {
|
|
15116
|
-
var adc1 = signInt(d.slice(0, 2).reduce(msbLsb));
|
|
15117
|
-
var adc2 = signInt(d.slice(2, 4).reduce(msbLsb));
|
|
15118
|
-
var dac1 = signInt(d.slice(4, 6).reduce(msbLsb));
|
|
15119
|
-
return {
|
|
15120
|
-
adc1: adc1,
|
|
15121
|
-
adc2: adc2,
|
|
15122
|
-
dac1: dac1,
|
|
15123
|
-
mA1: parseFloat((adc1/100.00).toFixed(2)),
|
|
15124
|
-
raw_adc: adc2,
|
|
15125
|
-
raw_dac: dac1
|
|
15126
|
-
};
|
|
15127
|
-
}
|
|
15128
|
-
},
|
|
15129
|
-
'202': {
|
|
15130
|
-
name: 'Wireless Weather Station',
|
|
15131
|
-
parse: (payload, parsed, mac) => {
|
|
15132
|
-
return {
|
|
15133
|
-
Temp: signInt(payload.slice(8, 12).reduce(msbLsb), 32) / 100,
|
|
15134
|
-
Humid: signInt(payload.slice(12, 16).reduce(msbLsb), 32) / 100,
|
|
15135
|
-
Pressure: signInt(payload.slice(16, 20).reduce(msbLsb), 32) / 100,
|
|
15136
|
-
WindSpd: signInt(payload.slice(20, 24).reduce(msbLsb),32) / 100,
|
|
15137
|
-
WindDir: signInt(payload.slice(24, 28).reduce(msbLsb),32) / 100,
|
|
15138
|
-
reserve: payload[7]
|
|
15139
|
-
};
|
|
15140
|
-
}
|
|
15141
|
-
},
|
|
15142
|
-
'211': {
|
|
15143
|
-
name: 'DO and Flow Sensor',
|
|
15144
|
-
parse: (payload, parsed, mac) => {
|
|
15145
|
-
if(payload[0] == 0){ // regular
|
|
15146
|
-
return {
|
|
15147
|
-
msg_type: 'regular',
|
|
15148
|
-
temperature: signInt(payload.slice(1, 3).reduce(msbLsb), 16),
|
|
15149
|
-
oxygen_saturation_percent: payload.slice(3, 7).reduce(msbLsb),
|
|
15150
|
-
oxygen_ppm: payload.slice(7, 11).reduce(msbLsb),
|
|
15151
|
-
oxygen_mg_l: payload.slice(11, 15).reduce(msbLsb)
|
|
15152
|
-
};
|
|
15153
|
-
}
|
|
15154
|
-
else{ // theshold
|
|
15155
|
-
let solenoid_status = payload[2];
|
|
15156
|
-
if(solenoid_status == 1){ // Solenoid On
|
|
15157
|
-
return {
|
|
15158
|
-
msg_type: 'threshold',
|
|
15159
|
-
solenoid_number: payload[1],
|
|
15160
|
-
solenoid_status: 'on',
|
|
15161
|
-
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
15162
|
-
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
15163
|
-
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
15164
|
-
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb),
|
|
15165
|
-
flow_rate: payload.slice(17, 21).reduce(msbLsb)
|
|
15166
|
-
};
|
|
15167
|
-
} else{ // Solenoid Off
|
|
15168
|
-
return {
|
|
15169
|
-
msg_type: 'threshold',
|
|
15170
|
-
solenoid_number: payload[1],
|
|
15171
|
-
solenoid_status: 'off',
|
|
15172
|
-
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
15173
|
-
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
15174
|
-
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
15175
|
-
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb)
|
|
15176
|
-
};
|
|
15177
|
-
}
|
|
15178
|
-
}
|
|
15179
|
-
},
|
|
15180
|
-
'parse_fly': (frame) => {
|
|
15181
|
-
return {
|
|
15182
|
-
'firmware': frame[2],
|
|
15183
|
-
'hardware_id': frame.slice(12, 15),
|
|
15184
|
-
'report_rate': frame.slice(15, 19).reduce(msbLsb) + "Sec",
|
|
15185
|
-
'tx_life_counter': frame.slice(19, 23).reduce(msbLsb),
|
|
15186
|
-
'machine_values': {
|
|
15187
|
-
'firmware': frame[2],
|
|
15188
|
-
'hardware_id': frame.slice(12, 15),
|
|
15189
|
-
'report_rate': frame.slice(15, 19),
|
|
15190
|
-
'tx_life_counter': frame.slice(19, 23)
|
|
15191
|
-
}
|
|
15192
|
-
}
|
|
15193
|
-
}
|
|
15194
|
-
},
|
|
15195
|
-
'217': {
|
|
15196
|
-
name: 'Wireless Weight Scale',
|
|
15197
|
-
parse: (d) => {
|
|
15198
|
-
return {
|
|
15199
|
-
weight: signInt(d.slice(0, 4).reduce(msbLsb)) / 100
|
|
15200
|
-
};
|
|
15201
|
-
}
|
|
15202
|
-
},
|
|
15203
14383
|
'270': {
|
|
15204
14384
|
name: 'Custom Salinity DO sensor',
|
|
15205
14385
|
parse: (d) => {
|
package/package.json
CHANGED
package/wireless.html
CHANGED
|
@@ -2688,24 +2688,7 @@
|
|
|
2688
2688
|
</div>
|
|
2689
2689
|
</div>
|
|
2690
2690
|
</div>
|
|
2691
|
-
<div class="ncd-dependent" data-sensor-108
|
|
2692
|
-
<div class="form-row ncd-active-check">
|
|
2693
|
-
<strong>Enable Accelerometer</strong>
|
|
2694
|
-
<p class="caption">
|
|
2695
|
-
This setting toggles the accelerometer sensor on or off. Disabling it is recommended for applications that does not require accelerometer.
|
|
2696
|
-
</p>
|
|
2697
|
-
<div>
|
|
2698
|
-
<label for="node-input-deactivate_activate_accelero_108_active">Active:</label>
|
|
2699
|
-
<input type="checkbox" id="node-input-deactivate_activate_accelero_108_active" class="ncd-config-toggle" data-target-id="node-input-deactivate_activate_accelero_108" value="1">
|
|
2700
|
-
</div>
|
|
2701
|
-
<div>
|
|
2702
|
-
<label for="node-input-deactivate_activate_accelero_108"><i class="icon-tag"></i>Value:</label>
|
|
2703
|
-
<select id="node-input-deactivate_activate_accelero_108">
|
|
2704
|
-
<option value="0">Disabled</option>
|
|
2705
|
-
<option value="1" selected>Enabled</option>
|
|
2706
|
-
</select>
|
|
2707
|
-
</div>
|
|
2708
|
-
</div>
|
|
2691
|
+
<div class="ncd-dependent" data-sensor-108>
|
|
2709
2692
|
<div class="form-row ncd-active-check">
|
|
2710
2693
|
<strong>Enable Accelerometer</strong>
|
|
2711
2694
|
<p class="caption">
|
|
@@ -2740,20 +2723,6 @@
|
|
|
2740
2723
|
</select>
|
|
2741
2724
|
</div>
|
|
2742
2725
|
</div>
|
|
2743
|
-
<div class="form-row ncd-active-check">
|
|
2744
|
-
<strong>Set Accelerometer Threshold</strong>
|
|
2745
|
-
<p class="caption">
|
|
2746
|
-
Sets the threshold in multiples of 32mg in which an uptime will be detected. A value of 1 = 32mg, a value of 2 = 64mg etc.
|
|
2747
|
-
</p>
|
|
2748
|
-
<div>
|
|
2749
|
-
<label for="node-input-accelerometer_threshold_108_active">Active:</label>
|
|
2750
|
-
<input type="checkbox" id="node-input-accelerometer_threshold_108_active" class="ncd-config-toggle" data-target-id="node-input-accelerometer_threshold_108" value="1">
|
|
2751
|
-
</div>
|
|
2752
|
-
<div>
|
|
2753
|
-
<label for="node-input-accelerometer_threshold_108"><i class="icon-tag"></i>Value:</label>
|
|
2754
|
-
<input type="text" id="node-input-accelerometer_threshold_108" placeholder="10" value="10">
|
|
2755
|
-
</div>
|
|
2756
|
-
</div>
|
|
2757
2726
|
</div>
|
|
2758
2727
|
<div class="ncd-dependent" data-sensor-108 data-sensor-119>
|
|
2759
2728
|
<div class="form-row ncd-active-check">
|
|
@@ -3606,7 +3575,7 @@
|
|
|
3606
3575
|
</div>
|
|
3607
3576
|
</div>
|
|
3608
3577
|
</div>
|
|
3609
|
-
<div class="ncd-dependent" data-sensor-110 data-sensor-111 data-sensor-112 data-sensor-114
|
|
3578
|
+
<div class="ncd-dependent" data-sensor-110 data-sensor-111 data-sensor-112 data-sensor-114>
|
|
3610
3579
|
<div class="form-row ncd-active-check">
|
|
3611
3580
|
<strong>Probe 1: Sampling Duration</strong>
|
|
3612
3581
|
<p>
|