@ncd-io/node-red-enterprise-sensors 1.1.0 → 1.1.2
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 +892 -704
- package/package.json +2 -2
- package/wireless.html +368 -46
- package/wireless.js +197 -34
package/lib/WirelessGateway.js
CHANGED
|
@@ -141,7 +141,7 @@ module.exports = class WirelessSensor{
|
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
// #OTF
|
|
144
|
-
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];
|
|
144
|
+
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,97,98,101,102,105,106,107,108,110,111,112,114,118,180,181,202,519,520,521,531,535,537,538,539,540,1010,1011];
|
|
145
145
|
var device_type = msbLsb(frame.data[6], frame.data[7]);
|
|
146
146
|
// var device_type = frame.data[7];
|
|
147
147
|
|
|
@@ -150,6 +150,9 @@ module.exports = class WirelessSensor{
|
|
|
150
150
|
var broadcast_otf_devices = [101,102,202];
|
|
151
151
|
mode = "FLY";
|
|
152
152
|
}
|
|
153
|
+
if(frame.data[9] == 85 && frame.data[10] == 80 && frame.data[11] == 84 && frame.data[12] == 72 && frame.data[13] == 87 && frame.data[14] == 82 && frame.data[15] == 78) {
|
|
154
|
+
mode = "UPTHWRN";
|
|
155
|
+
}
|
|
153
156
|
}
|
|
154
157
|
if(mode == 'ACK'){
|
|
155
158
|
data.firmware_version = frame.data[5];
|
|
@@ -187,6 +190,7 @@ module.exports = class WirelessSensor{
|
|
|
187
190
|
type: data.sensor_type,
|
|
188
191
|
nodeId: data.nodeId,
|
|
189
192
|
mode: mode,
|
|
193
|
+
// data: data,
|
|
190
194
|
lastHeard: data.received
|
|
191
195
|
};
|
|
192
196
|
|
|
@@ -197,6 +201,8 @@ module.exports = class WirelessSensor{
|
|
|
197
201
|
// If we ever need to add any of the additional information of this packet we will need to rebuild to match
|
|
198
202
|
frame.data.splice(2,0,frame.data[5],0);
|
|
199
203
|
this.sensor_pool[frame.mac].reported_config = this.sensor_types[data.sensor_type].parse_fly(frame.data);
|
|
204
|
+
}else if(mode === 'ACK'){
|
|
205
|
+
this.sensor_pool[frame.mac].result = data.result;
|
|
200
206
|
}
|
|
201
207
|
var that = this;
|
|
202
208
|
|
|
@@ -218,7 +224,7 @@ module.exports = class WirelessSensor{
|
|
|
218
224
|
}).catch(console.log);
|
|
219
225
|
}
|
|
220
226
|
}
|
|
221
|
-
if(mode != 'FLY'){
|
|
227
|
+
if(mode != 'FLY' && mode !='UPTHWRN'){
|
|
222
228
|
var send_events = function(){
|
|
223
229
|
that._emitter.emit(type, data);
|
|
224
230
|
that._emitter.emit(type+'-'+data.sensor_type, data);
|
|
@@ -251,9 +257,10 @@ module.exports = class WirelessSensor{
|
|
|
251
257
|
nodeId: payload[0],
|
|
252
258
|
counter: payload[1],
|
|
253
259
|
sensor_type: msbLsb(payload[2], payload[3]),
|
|
260
|
+
result: payload[5],
|
|
254
261
|
data: payload.slice(6)
|
|
255
262
|
};
|
|
256
|
-
}
|
|
263
|
+
};
|
|
257
264
|
config_error(payload){
|
|
258
265
|
var errors = [
|
|
259
266
|
'Unknown',
|
|
@@ -293,7 +300,7 @@ module.exports = class WirelessSensor{
|
|
|
293
300
|
};
|
|
294
301
|
|
|
295
302
|
// #OTF
|
|
296
|
-
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];
|
|
303
|
+
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,97,98,101,102,105,106,107,108,110,111,112,114,118,180,181,202,519,520,521,531,535,537,538,539,540,1010,1011];
|
|
297
304
|
if(otf_devices.includes(parsed.sensor_type)){
|
|
298
305
|
// If the message says FLY and there is not FLY timer in progress.
|
|
299
306
|
if(payload[8] == 70 && payload[9] == 76 && payload[10] == 89) {
|
|
@@ -301,6 +308,10 @@ module.exports = class WirelessSensor{
|
|
|
301
308
|
return parsed;
|
|
302
309
|
}
|
|
303
310
|
}
|
|
311
|
+
if(frame.data[9] == 85 && frame.data[10] == 80 && frame.data[11] == 84 && frame.data[12] == 72 && frame.data[13] == 87 && frame.data[14] == 82 && frame.data[15] == 78) {
|
|
312
|
+
parsed.payload = "Upthwrn command";
|
|
313
|
+
return parsed;
|
|
314
|
+
}
|
|
304
315
|
|
|
305
316
|
// Sensor type 515 has a unique OTF that is indicated by a reserve byte value with MSb of 1
|
|
306
317
|
if(parsed.sensor_type == 515){
|
|
@@ -711,7 +722,7 @@ module.exports = class WirelessSensor{
|
|
|
711
722
|
data: payload.slice(8)
|
|
712
723
|
};
|
|
713
724
|
// #OTF
|
|
714
|
-
}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 == 202 || parsed.sensor_type == 515 || parsed.sensor_type == 519 || parsed.sensor_type == 531 || parsed.sensor_type == 537 || parsed.sensor_type == 538){
|
|
725
|
+
}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 == 97 || parsed.sensor_type == 98 || 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 == 202 || parsed.sensor_type == 515 || parsed.sensor_type == 519 || parsed.sensor_type == 531 || parsed.sensor_type == 537 || parsed.sensor_type == 538){
|
|
715
726
|
parsed.sensor_data = this.sensor_types[parsed.sensor_type].parse(payload, parsed, frame.mac);
|
|
716
727
|
if(!parsed.sensor_data){
|
|
717
728
|
return;
|
|
@@ -1150,9 +1161,15 @@ module.exports = class WirelessSensor{
|
|
|
1150
1161
|
console.log(packet);
|
|
1151
1162
|
return this.config_send(sensor_mac, packet);
|
|
1152
1163
|
}
|
|
1153
|
-
|
|
1154
|
-
console.log('
|
|
1155
|
-
var packet = [244, 79, 0, 0, 0, 60, value];
|
|
1164
|
+
config_set_acceleration_interrupt_threshold_p1_84(sensor_mac, value){
|
|
1165
|
+
console.log('config_set_acceleration_interrupt_threshold_p1_84');
|
|
1166
|
+
var packet = [244, 79, 0, 0, 0, 60, 1, value];
|
|
1167
|
+
console.log(packet);
|
|
1168
|
+
return this.config_send(sensor_mac, packet);
|
|
1169
|
+
}
|
|
1170
|
+
config_set_acceleration_interrupt_threshold_p2_84(sensor_mac, value){
|
|
1171
|
+
console.log('config_set_acceleration_interrupt_threshold_p2_84');
|
|
1172
|
+
var packet = [244, 79, 0, 0, 0, 60, 2, value];
|
|
1156
1173
|
console.log(packet);
|
|
1157
1174
|
return this.config_send(sensor_mac, packet);
|
|
1158
1175
|
}
|
|
@@ -1260,12 +1277,6 @@ module.exports = class WirelessSensor{
|
|
|
1260
1277
|
console.log(packet);
|
|
1261
1278
|
return this.config_send(sensor_mac, packet);
|
|
1262
1279
|
}
|
|
1263
|
-
config_set_qos_108(sensor_mac, value){
|
|
1264
|
-
console.log('config_set_qos_108');
|
|
1265
|
-
var packet = [247, 52, 0, 0, 0, value];
|
|
1266
|
-
console.log(packet);
|
|
1267
|
-
return this.config_send(sensor_mac, packet);
|
|
1268
|
-
}
|
|
1269
1280
|
config_set_deactivate_activate_accelero_108(sensor_mac, value){
|
|
1270
1281
|
console.log('config_set_deactivate_activate_accelero_108');
|
|
1271
1282
|
var packet = [244, 37, 0, 0, 0, value];
|
|
@@ -1399,6 +1410,36 @@ module.exports = class WirelessSensor{
|
|
|
1399
1410
|
console.log(packet);
|
|
1400
1411
|
return this.config_send(sensor_mac, packet);
|
|
1401
1412
|
}
|
|
1413
|
+
config_set_filter_thermocouple(sensor_mac, value){
|
|
1414
|
+
console.log('config_set_filter_thermocouple');
|
|
1415
|
+
let packet = [244, 85, 0, 0, 23, value];
|
|
1416
|
+
console.log(packet);
|
|
1417
|
+
return this.config_send(sensor_mac, packet);
|
|
1418
|
+
}
|
|
1419
|
+
config_set_cold_junction_thermocouple(sensor_mac, value){
|
|
1420
|
+
console.log('config_set_cold_junction_thermocouple');
|
|
1421
|
+
let packet = [244, 87, 0, 0, 23, value];
|
|
1422
|
+
console.log(packet);
|
|
1423
|
+
return this.config_send(sensor_mac, packet);
|
|
1424
|
+
}
|
|
1425
|
+
config_set_sample_resolution_thermocouple(sensor_mac, value){
|
|
1426
|
+
console.log('config_set_sample_resolution_thermocouple');
|
|
1427
|
+
let packet = [244, 89, 0, 0, 23, value];
|
|
1428
|
+
console.log(packet);
|
|
1429
|
+
return this.config_send(sensor_mac, packet);
|
|
1430
|
+
}
|
|
1431
|
+
config_set_number_of_samples_thermocouple(sensor_mac, value){
|
|
1432
|
+
console.log('config_set_number_of_samples_thermocouple');
|
|
1433
|
+
let packet = [244, 91, 0, 0, 23, value];
|
|
1434
|
+
console.log(packet);
|
|
1435
|
+
return this.config_send(sensor_mac, packet);
|
|
1436
|
+
}
|
|
1437
|
+
config_set_measurement_type_thermocouple(sensor_mac, value){
|
|
1438
|
+
console.log('config_set_number_of_samples_thermocouple');
|
|
1439
|
+
let packet = [244, 95, 0, 0, 23, value];
|
|
1440
|
+
console.log(packet);
|
|
1441
|
+
return this.config_send(sensor_mac, packet);
|
|
1442
|
+
}
|
|
1402
1443
|
config_set_debounce_time_2(sensor_mac, value){
|
|
1403
1444
|
console.log('config_set_debounce_time_2');
|
|
1404
1445
|
var packet = [244, 66, 0, 0, 2, value];
|
|
@@ -1503,7 +1544,7 @@ module.exports = class WirelessSensor{
|
|
|
1503
1544
|
}
|
|
1504
1545
|
config_set_auto_raw_interval_110(sensor_mac, value){
|
|
1505
1546
|
console.log('config_set_raw_interval_110');
|
|
1506
|
-
var packet = [244, 79, 0, 0, 80,
|
|
1547
|
+
var packet = [244, 79, 0, 0, 80, 70, value];
|
|
1507
1548
|
console.log(packet);
|
|
1508
1549
|
return this.config_send(sensor_mac, packet);
|
|
1509
1550
|
}
|
|
@@ -1515,9 +1556,9 @@ module.exports = class WirelessSensor{
|
|
|
1515
1556
|
console.log(packet);
|
|
1516
1557
|
return this.config_send(sensor_mac, packet);
|
|
1517
1558
|
}
|
|
1518
|
-
config_set_clear_probe_uptimers_110(sensor_mac
|
|
1559
|
+
config_set_clear_probe_uptimers_110(sensor_mac){
|
|
1519
1560
|
console.log('config_set_clear_probe_uptimers_110');
|
|
1520
|
-
var packet = [244, 79, 0, 0, 80,
|
|
1561
|
+
var packet = [244, 79, 0, 0, 80, 75];
|
|
1521
1562
|
console.log(packet);
|
|
1522
1563
|
return this.config_send(sensor_mac, packet);
|
|
1523
1564
|
}
|
|
@@ -1529,9 +1570,13 @@ module.exports = class WirelessSensor{
|
|
|
1529
1570
|
}
|
|
1530
1571
|
config_set_smart_threshold_110(sensor_mac, value){
|
|
1531
1572
|
console.log('config_set_smart_threshold_110');
|
|
1532
|
-
var packet = [244, 79, 0, 0, 101];
|
|
1533
|
-
|
|
1534
|
-
|
|
1573
|
+
var packet = [244, 79, 0, 0, 101, 78, 1, value];
|
|
1574
|
+
console.log(packet);
|
|
1575
|
+
return this.config_send(sensor_mac, packet);
|
|
1576
|
+
}
|
|
1577
|
+
config_set_smart_threshold_p2_110(sensor_mac, value){
|
|
1578
|
+
console.log('config_set_smart_threshold_p2_110');
|
|
1579
|
+
var packet = [244, 79, 0, 0, 101, 78, 2, value];
|
|
1535
1580
|
console.log(packet);
|
|
1536
1581
|
return this.config_send(sensor_mac, packet);
|
|
1537
1582
|
}
|
|
@@ -1706,6 +1751,72 @@ module.exports = class WirelessSensor{
|
|
|
1706
1751
|
console.log(packet);
|
|
1707
1752
|
return this.config_send(sensor_mac, packet);
|
|
1708
1753
|
}
|
|
1754
|
+
config_set_pressure_sensor_fs_ch1_118(sensor_mac, value){
|
|
1755
|
+
console.log('config_set_pressure_sensor_fs_ch1_118');
|
|
1756
|
+
var packet = [244, 64, 0, 0, 26, value];
|
|
1757
|
+
console.log(packet);
|
|
1758
|
+
return this.config_send(sensor_mac, packet);
|
|
1759
|
+
}
|
|
1760
|
+
config_set_pressure_sensor_fs_ch2_118(sensor_mac, value){
|
|
1761
|
+
console.log('config_set_pressure_sensor_fs_ch2_118');
|
|
1762
|
+
var packet = [244, 64, 0, 0, 118, value];
|
|
1763
|
+
console.log(packet);
|
|
1764
|
+
return this.config_send(sensor_mac, packet);
|
|
1765
|
+
}
|
|
1766
|
+
config_set_auto_check_interval_118(sensor_mac, value){
|
|
1767
|
+
console.log('config_set_auto_check_interval_118');
|
|
1768
|
+
var packet = [244, 66, 0, 0, 26];
|
|
1769
|
+
let value_ = int2Bytes((value), 2);
|
|
1770
|
+
packet.push(...value_);
|
|
1771
|
+
console.log(packet);
|
|
1772
|
+
return this.config_send(sensor_mac, packet);
|
|
1773
|
+
}
|
|
1774
|
+
config_set_press_auto_check_percent_118(sensor_mac, value){
|
|
1775
|
+
console.log('config_set_press_auto_check_percent_118');
|
|
1776
|
+
var packet = [244, 68, 0, 0, 26, value];
|
|
1777
|
+
console.log(packet);
|
|
1778
|
+
return this.config_send(sensor_mac, packet);
|
|
1779
|
+
}
|
|
1780
|
+
config_set_temp_auto_check_percent_118(sensor_mac, value){
|
|
1781
|
+
console.log('config_set_temp_auto_check_percent_118');
|
|
1782
|
+
var packet = [244, 70, 0, 0, 26, value];
|
|
1783
|
+
console.log(packet);
|
|
1784
|
+
return this.config_send(sensor_mac, packet);
|
|
1785
|
+
}
|
|
1786
|
+
config_set_raw_length_97(sensor_mac, value){
|
|
1787
|
+
console.log('config_set_raw_length_97');
|
|
1788
|
+
var packet = [244, 67, 0, 0, 0, value];
|
|
1789
|
+
console.log(packet);
|
|
1790
|
+
return this.config_send(sensor_mac, packet);
|
|
1791
|
+
}
|
|
1792
|
+
config_set_raw_timeout_97(sensor_mac, value){
|
|
1793
|
+
console.log('config_set_raw_timeout_97');
|
|
1794
|
+
var packet = [244, 71, 0, 0, 0, value];
|
|
1795
|
+
console.log(packet);
|
|
1796
|
+
return this.config_send(sensor_mac, packet);
|
|
1797
|
+
}
|
|
1798
|
+
config_set_fly_rate_97(sensor_mac, value){
|
|
1799
|
+
console.log('config_set_fly_rate_97');
|
|
1800
|
+
var packet = [244, 73, 0, 0, 0];
|
|
1801
|
+
let value_ = int2Bytes((value), 2);
|
|
1802
|
+
packet.push(...value_);
|
|
1803
|
+
console.log(packet);
|
|
1804
|
+
return this.config_send(sensor_mac, packet);
|
|
1805
|
+
}
|
|
1806
|
+
config_set_boot_up_time_97(sensor_mac, value){
|
|
1807
|
+
console.log('config_set_boot_up_time_97');
|
|
1808
|
+
var packet = [244, 51, 0, 0, 0];
|
|
1809
|
+
let value_ = int2Bytes((value), 2);
|
|
1810
|
+
packet.push(...value_);
|
|
1811
|
+
console.log(packet);
|
|
1812
|
+
return this.config_send(sensor_mac, packet);
|
|
1813
|
+
}
|
|
1814
|
+
config_set_mode_97(sensor_mac, value){
|
|
1815
|
+
console.log('config_set_mode_97');
|
|
1816
|
+
var packet = [244, 83, 0, 0, 0, value]
|
|
1817
|
+
console.log(packet);
|
|
1818
|
+
return this.config_send(sensor_mac, packet);
|
|
1819
|
+
}
|
|
1709
1820
|
config_get_delay(sensor_mac){
|
|
1710
1821
|
return new Promise((fulfill, reject) => {
|
|
1711
1822
|
this.config_send(sensor_mac, [247, 21, 0, 0, 0]).then((res) => {
|
|
@@ -1928,6 +2039,7 @@ module.exports = class WirelessSensor{
|
|
|
1928
2039
|
function pass(packet){
|
|
1929
2040
|
clearTimeout(tout);
|
|
1930
2041
|
that._emitter.removeListener('config_error-'+sensor_mac, fail);
|
|
2042
|
+
packet.sent = data;
|
|
1931
2043
|
fulfill(packet);
|
|
1932
2044
|
f();
|
|
1933
2045
|
};
|
|
@@ -1977,8 +2089,8 @@ module.exports = class WirelessSensor{
|
|
|
1977
2089
|
}
|
|
1978
2090
|
// var odr;
|
|
1979
2091
|
var odr = payload[8];
|
|
1980
|
-
var device_temp = msbLsb(payload[11], payload[12])/100;
|
|
1981
|
-
var probe_temp = msbLsb(payload[13], payload[14])/100;
|
|
2092
|
+
var device_temp = signInt((msbLsb(payload[11], payload[12])), 16)/100;
|
|
2093
|
+
var probe_temp = signInt((msbLsb(payload[13], payload[14])), 16)/100;
|
|
1982
2094
|
|
|
1983
2095
|
switch(odr){
|
|
1984
2096
|
case 6:
|
|
@@ -2026,7 +2138,8 @@ module.exports = class WirelessSensor{
|
|
|
2026
2138
|
var odr = payload[9];
|
|
2027
2139
|
var en_axis = payload[10] & 7;
|
|
2028
2140
|
var fsr = payload[10] >> 5;
|
|
2029
|
-
|
|
2141
|
+
|
|
2142
|
+
var device_temp = signInt((msbLsb(payload[13], payload[14])), 16)/100;
|
|
2030
2143
|
switch(odr){
|
|
2031
2144
|
case 0:
|
|
2032
2145
|
odr = 4000;
|
|
@@ -2076,7 +2189,7 @@ module.exports = class WirelessSensor{
|
|
|
2076
2189
|
device_temp: device_temp,
|
|
2077
2190
|
}
|
|
2078
2191
|
if(firmware > 0){
|
|
2079
|
-
var probe_temp = msbLsb(payload[15], payload[16])/100;
|
|
2192
|
+
var probe_temp = signInt((msbLsb(payload[15], payload[16])), 16)/100;
|
|
2080
2193
|
globalDevices[deviceAddr].probe_temp = probe_temp;
|
|
2081
2194
|
}
|
|
2082
2195
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -3113,20 +3226,78 @@ function sensor_types(parent){
|
|
|
3113
3226
|
}
|
|
3114
3227
|
},
|
|
3115
3228
|
'74': {
|
|
3116
|
-
name: 'Wireless Temp Humidity Pressure Air quality Sensor',
|
|
3117
|
-
parse: (d) => {
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3229
|
+
name: 'Wireless Temp Humidity Pressure Air quality Sensor V2',
|
|
3230
|
+
parse: (d, parsed) => {
|
|
3231
|
+
if(parsed[1] > 1){ // Firmware version
|
|
3232
|
+
return {
|
|
3233
|
+
temperature: signInt(d.slice(0, 2).reduce(msbLsb), 16) / 100,
|
|
3234
|
+
pressure: d.slice(2, 6).reduce(msbLsb) / 100,
|
|
3235
|
+
humidity: d.slice(6, 10).reduce(msbLsb) / 1000,
|
|
3236
|
+
resistance: d.slice(10, 14).reduce(msbLsb),
|
|
3237
|
+
iaq: d.slice(14, 16).reduce(msbLsb),
|
|
3238
|
+
co2_eqv: d.slice(16, 18).reduce(msbLsb),
|
|
3239
|
+
breath_voc: d.slice(18, 22).reduce(msbLsb) / 100,
|
|
3240
|
+
static_iaq: d.slice(22, 26).reduce(msbLsb) / 100,
|
|
3241
|
+
iaq_accuracy: d[26]
|
|
3242
|
+
};
|
|
3243
|
+
}
|
|
3244
|
+
else{
|
|
3245
|
+
return {
|
|
3246
|
+
temperature: signInt(d.slice(0, 2).reduce(msbLsb), 16) / 100,
|
|
3247
|
+
pressure: d.slice(2, 6).reduce(msbLsb) / 100,
|
|
3248
|
+
humidity: d.slice(6, 10).reduce(msbLsb) / 1000,
|
|
3249
|
+
resistance: d.slice(10, 14).reduce(msbLsb),
|
|
3250
|
+
iaq: d.slice(14, 16).reduce(msbLsb),
|
|
3251
|
+
co2_eqv: d.slice(16, 18).reduce(msbLsb),
|
|
3252
|
+
breath_voc: d.slice(18, 22).reduce(msbLsb)/ 100,
|
|
3253
|
+
static_iaq: (d.slice(22, 26).reverse()).reduce(msbLsb)/ 100,
|
|
3254
|
+
// TODO Check if the iaq_accuracy should still be d[27]
|
|
3255
|
+
iaq_accuracy: d[26]
|
|
3256
|
+
};
|
|
3257
|
+
}
|
|
3258
|
+
},
|
|
3259
|
+
'parse_fly': (frame) => {
|
|
3260
|
+
if(frame[2] > 2){
|
|
3261
|
+
return {
|
|
3262
|
+
'firmware': frame[2],
|
|
3263
|
+
'calibration_days': frame[12] + ' days',
|
|
3264
|
+
'sensor_update_rate':frame.slice(13, 15).reduce(msbLsb) + ' sec',
|
|
3265
|
+
'heater_duration': frame.slice(15, 17).reduce(msbLsb) + ' msec',
|
|
3266
|
+
'heater_temperature': frame.slice(17, 19).reduce(msbLsb) + ' °C',
|
|
3267
|
+
'hardware_id': frame.slice(19, 22),
|
|
3268
|
+
'report_rate': frame.slice(22, 26).reduce(msbLsb) + ' sec',
|
|
3269
|
+
'tx_counter': frame.slice(26, 30).reduce(msbLsb),
|
|
3270
|
+
'machine_values': {
|
|
3271
|
+
'firmware': frame[2],
|
|
3272
|
+
'calibration_days': frame[12],
|
|
3273
|
+
'sensor_update_rate':frame.slice(13, 15),
|
|
3274
|
+
'heater_duration': frame.slice(15, 17),
|
|
3275
|
+
'heater_temperature': frame.slice(17, 19),
|
|
3276
|
+
'hardware_id': frame.slice(19, 22),
|
|
3277
|
+
'report_rate': frame.slice(22, 26).reduce(msbLsb),
|
|
3278
|
+
'tx_counter': frame.slice(26, 30).reduce(msbLsb),
|
|
3279
|
+
|
|
3280
|
+
}
|
|
3281
|
+
};
|
|
3282
|
+
}
|
|
3283
|
+
else{
|
|
3284
|
+
return {
|
|
3285
|
+
'firmware': frame[2],
|
|
3286
|
+
'calibration_days': frame[12] + ' days',
|
|
3287
|
+
'sensor_update_rate':frame.slice(13, 15).reduce(msbLsb) + ' sec',
|
|
3288
|
+
'hardware_id': frame.slice(15, 18),
|
|
3289
|
+
'report_rate': frame.slice(18, 22).reduce(msbLsb) + ' sec',
|
|
3290
|
+
'tx_counter': frame.slice(22, 26).reduce(msbLsb),
|
|
3291
|
+
'machine_values': {
|
|
3292
|
+
'firmware': frame[2],
|
|
3293
|
+
'calibration_days': frame[12],
|
|
3294
|
+
'sensor_update_rate':frame.slice(13, 15),
|
|
3295
|
+
'hardware_id': frame.slice(15, 18),
|
|
3296
|
+
'report_rate': frame.slice(18, 22),
|
|
3297
|
+
'tx_counter': frame.slice(22, 26),
|
|
3298
|
+
}
|
|
3299
|
+
};
|
|
3300
|
+
}
|
|
3130
3301
|
}
|
|
3131
3302
|
},
|
|
3132
3303
|
'75': {
|
|
@@ -6036,167 +6207,36 @@ function sensor_types(parent){
|
|
|
6036
6207
|
};
|
|
6037
6208
|
}
|
|
6038
6209
|
},
|
|
6039
|
-
'
|
|
6040
|
-
name: '
|
|
6041
|
-
parse: (d, full)=>{
|
|
6042
|
-
return{
|
|
6043
|
-
mode: full[7] == 1? "raw" : "normal"
|
|
6044
|
-
};
|
|
6045
|
-
}
|
|
6046
|
-
},
|
|
6047
|
-
'105': {
|
|
6048
|
-
name: '1 Channel Automatic Luber With Ultrasound Vibration Sensor',
|
|
6049
|
-
parse: (d) => {
|
|
6050
|
-
return {
|
|
6051
|
-
raw_adc: d.slice(0, 2).reduce(msbLsb),
|
|
6052
|
-
ma: d.slice(2, 4).reduce(msbLsb) / 100,
|
|
6053
|
-
db: d.slice(4, 6).reduce(msbLsb) / 100
|
|
6054
|
-
};
|
|
6055
|
-
}
|
|
6056
|
-
},
|
|
6057
|
-
'106': {
|
|
6058
|
-
name: '2 Channel Automatic Luber With Ultrasound Vibration Sensor',
|
|
6059
|
-
parse: (d) => {
|
|
6060
|
-
return {
|
|
6061
|
-
c1_raw_adc: d.slice(0, 2).reduce(msbLsb),
|
|
6062
|
-
c1_ma: d.slice(2, 4).reduce(msbLsb) / 100,
|
|
6063
|
-
c1_db: d.slice(4, 6).reduce(msbLsb) / 100,
|
|
6064
|
-
c2_raw_adc: d.slice(6, 8).reduce(msbLsb),
|
|
6065
|
-
c2_ma: d.slice(8, 10).reduce(msbLsb) / 100,
|
|
6066
|
-
c2_db: d.slice(10, 12).reduce(msbLsb) / 100
|
|
6067
|
-
};
|
|
6068
|
-
}
|
|
6069
|
-
},
|
|
6070
|
-
'107': {
|
|
6071
|
-
name: '16-Bit 4-Channel 4-20mA',
|
|
6072
|
-
parse: (d) => {
|
|
6073
|
-
var adc1 = signInt(d.slice(0, 2).reduce(msbLsb));
|
|
6074
|
-
var adc2 = signInt(d.slice(2, 4).reduce(msbLsb));
|
|
6075
|
-
var adc3 = signInt(d.slice(4, 6).reduce(msbLsb));
|
|
6076
|
-
var adc4 = signInt(d.slice(6, 8).reduce(msbLsb));
|
|
6077
|
-
var ma1 = (signInt(d.slice(8, 10).reduce(msbLsb)))/100.0;
|
|
6078
|
-
var ma2 = (signInt(d.slice(10, 12).reduce(msbLsb)))/100.0;
|
|
6079
|
-
var ma3 = (signInt(d.slice(12, 14).reduce(msbLsb)))/100.0;
|
|
6080
|
-
var ma4 = (signInt(d.slice(14, 16).reduce(msbLsb)))/100.0;
|
|
6081
|
-
return {
|
|
6082
|
-
adc1: adc1,
|
|
6083
|
-
adc2: adc2,
|
|
6084
|
-
adc3: adc3,
|
|
6085
|
-
adc4: adc4,
|
|
6086
|
-
ma1: ma1,
|
|
6087
|
-
ma2: ma2,
|
|
6088
|
-
ma3: ma3,
|
|
6089
|
-
ma4: ma4
|
|
6090
|
-
};
|
|
6091
|
-
}
|
|
6092
|
-
},
|
|
6093
|
-
'108': {
|
|
6094
|
-
name: 'Machine Uptime Monitoring Sensor',
|
|
6095
|
-
parse: (d, payload) => {
|
|
6096
|
-
let firmware = payload[1];
|
|
6097
|
-
if(payload[7] & 2 != 0){
|
|
6098
|
-
console.log('Error found');
|
|
6099
|
-
// parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
6100
|
-
let error = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
6101
|
-
return error;
|
|
6102
|
-
}
|
|
6103
|
-
if(firmware > 4){
|
|
6104
|
-
let report_type = d[41]? "Shift": "Regular";
|
|
6105
|
-
return {
|
|
6106
|
-
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
6107
|
-
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
6108
|
-
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
6109
|
-
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
6110
|
-
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
6111
|
-
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
6112
|
-
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
6113
|
-
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
6114
|
-
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
6115
|
-
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
6116
|
-
input_di: d[40] & 1 ? 1 : 0,
|
|
6117
|
-
input_ct: d[40] & 2 ? 1 : 0,
|
|
6118
|
-
input_opto: d[40] & 4 ? 1 : 0,
|
|
6119
|
-
input_acc: d[40] & 8 ? 1 : 0,
|
|
6120
|
-
input_mag: d[40] & 16 ? 1 : 0,
|
|
6121
|
-
report_type: report_type,
|
|
6122
|
-
rtc: [
|
|
6123
|
-
String(d[42]).padStart(2, '0'),
|
|
6124
|
-
String(d[43]).padStart(2, '0'),
|
|
6125
|
-
String(d[44]).padStart(2, '0')
|
|
6126
|
-
].join(':')
|
|
6127
|
-
};
|
|
6128
|
-
}else{
|
|
6129
|
-
return {
|
|
6130
|
-
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
6131
|
-
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
6132
|
-
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
6133
|
-
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
6134
|
-
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
6135
|
-
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
6136
|
-
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
6137
|
-
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
6138
|
-
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
6139
|
-
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
6140
|
-
input_di: d[40] & 1 ? 1 : 0,
|
|
6141
|
-
input_ct: d[40] & 2 ? 1 : 0,
|
|
6142
|
-
input_opto: d[40] & 4 ? 1 : 0,
|
|
6143
|
-
input_acc: d[40] & 8 ? 1 : 0,
|
|
6144
|
-
input_mag: d[40] & 16 ? 1 : 0
|
|
6145
|
-
};
|
|
6146
|
-
}
|
|
6147
|
-
},
|
|
6148
|
-
'parse_fly': (frame) => {
|
|
6149
|
-
return {
|
|
6150
|
-
'firmware': frame[2],
|
|
6151
|
-
'report_rate': frame.slice(12, 16).reduce(msbLsb).toString() + "sec.",
|
|
6152
|
-
'accelerometer_threshold': (frame[16]* 32).toString() + "mg.",
|
|
6153
|
-
'debouncing_timeout': frame[17].toString() + "sec.",
|
|
6154
|
-
'accelero_active_state': frame[18],
|
|
6155
|
-
'digital_inputs_active_edge': frame.slice(19, 22).reduce(msbLsb),
|
|
6156
|
-
'counter_threshold': frame.slice(22, 26).reduce(msbLsb).toString() + "sec.",
|
|
6157
|
-
'trasnmit_on_change_status': frame[26],
|
|
6158
|
-
'machine_values': {
|
|
6159
|
-
'firmware': frame[2],
|
|
6160
|
-
'report_rate': frame.slice(12, 16),
|
|
6161
|
-
'accelerometer_threshold': frame[16],
|
|
6162
|
-
'debouncing_timeout': frame[17],
|
|
6163
|
-
'accelero_active_state': frame[18],
|
|
6164
|
-
'digital_inputs_active_edge': frame.slice(19, 22),
|
|
6165
|
-
'counter_threshold': frame.slice(22, 26),
|
|
6166
|
-
'trasnmit_on_change_status': frame[26]
|
|
6167
|
-
}
|
|
6168
|
-
}
|
|
6169
|
-
}
|
|
6170
|
-
},
|
|
6171
|
-
'110': {
|
|
6172
|
-
name: 'One Channel Vibration Plus v4',
|
|
6210
|
+
'97': {
|
|
6211
|
+
name: 'One channel Dynamic Ultrasound vibration Sensor',
|
|
6173
6212
|
parse: (payload, parsed, mac) => {
|
|
6174
|
-
if(payload[
|
|
6175
|
-
|
|
6176
|
-
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
if(payload[8] === 1){
|
|
6213
|
+
if (payload[8] === 1) { // raw
|
|
6214
|
+
var mode = payload[8];
|
|
6215
|
+
var sampling_frequency = payload.slice(9, 13).reduce(msbLsb);
|
|
6216
|
+
var sensor_index = payload[13];
|
|
6217
|
+
var gain_db = payload[14];
|
|
6181
6218
|
var deviceAddr = mac;
|
|
6182
|
-
var
|
|
6183
|
-
var
|
|
6184
|
-
var
|
|
6185
|
-
var expected_packets = payload[15];
|
|
6186
|
-
var current_packet = payload[16];
|
|
6187
|
-
var sdata_start = 17;
|
|
6219
|
+
var expected_packets = payload.slice(15, 17).reduce(msbLsb);
|
|
6220
|
+
var current_packet = payload.slice(17, 19).reduce(msbLsb);
|
|
6221
|
+
var sdata_start = 19;
|
|
6188
6222
|
|
|
6189
6223
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6190
|
-
if(expected_packets
|
|
6191
|
-
|
|
6192
|
-
|
|
6193
|
-
|
|
6194
|
-
|
|
6195
|
-
|
|
6224
|
+
// if(expected_packets == 1){
|
|
6225
|
+
// this.build_102_data(payload, deviceAddr, hour, minute, sdata_start, current_packet, firmware);
|
|
6226
|
+
// }
|
|
6227
|
+
|
|
6228
|
+
// if a packet is already stored with the same packet ID,
|
|
6229
|
+
// or if packet ID is 1,
|
|
6230
|
+
// or if current packet ID is not one more than last packet ID
|
|
6231
|
+
if(current_packet == 1 && expected_packets != 1) {
|
|
6232
|
+
if(current_packet in globalDevices[deviceAddr].data || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
6233
|
+
console.log('bad packet breakdown, deleting stream. Current packet:');
|
|
6234
|
+
console.log(current_packet);
|
|
6235
|
+
console.log('Total Expected Packets:');
|
|
6196
6236
|
console.log(expected_packets);
|
|
6197
|
-
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
6198
|
-
console.log(current_packet == 1);
|
|
6199
|
-
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
6237
|
+
// console.log(current_packet in globalDevices[deviceAddr].data && current_packet == 1 && expected_packets != 1);
|
|
6238
|
+
// console.log(current_packet == 1);
|
|
6239
|
+
// console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
6200
6240
|
if(this.hasOwnProperty('failure_no')){
|
|
6201
6241
|
this.failure_no = this.failure_no + 1;
|
|
6202
6242
|
}
|
|
@@ -6207,115 +6247,535 @@ function sensor_types(parent){
|
|
|
6207
6247
|
console.log('####falure no');
|
|
6208
6248
|
console.log(this.failure_no);
|
|
6209
6249
|
}
|
|
6210
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
6211
6250
|
delete globalDevices[deviceAddr];
|
|
6212
6251
|
if(current_packet != 1){
|
|
6213
6252
|
return;
|
|
6214
6253
|
} else{
|
|
6254
|
+
if(current_packet != 1){
|
|
6255
|
+
console.log('bad packet cleanup');
|
|
6256
|
+
return;
|
|
6257
|
+
}
|
|
6258
|
+
globalDevices[deviceAddr] = {
|
|
6259
|
+
// stream_size: expected_packets,
|
|
6260
|
+
data: {},
|
|
6261
|
+
}
|
|
6262
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6263
|
+
return;
|
|
6264
|
+
}
|
|
6265
|
+
}
|
|
6266
|
+
}
|
|
6267
|
+
if(expected_packets == 1){
|
|
6268
|
+
if(current_packet != 1){
|
|
6269
|
+
console.log('bad packet cleanup');
|
|
6270
|
+
return;
|
|
6271
|
+
}
|
|
6272
|
+
globalDevices[deviceAddr] = {
|
|
6273
|
+
// stream_size: expected_packets,
|
|
6274
|
+
data: {},
|
|
6275
|
+
}
|
|
6276
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6277
|
+
//return;
|
|
6278
|
+
} else{
|
|
6279
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6280
|
+
}
|
|
6281
|
+
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
6282
|
+
var raw_data = new Array();
|
|
6283
|
+
for(const packet in globalDevices[deviceAddr].data){
|
|
6284
|
+
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
6285
|
+
}
|
|
6286
|
+
var label = 0;
|
|
6287
|
+
// var fft = {
|
|
6288
|
+
// data: new Array()
|
|
6289
|
+
// // test: new Array()
|
|
6290
|
+
// };
|
|
6291
|
+
var fft = new Array();
|
|
6292
|
+
var adc = {};
|
|
6215
6293
|
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6294
|
+
for(var i = 0; i < raw_data.length; i+=2){
|
|
6295
|
+
label++;
|
|
6296
|
+
adc[label] = (raw_data[i]<<8)+(raw_data[i+1]);
|
|
6297
|
+
}
|
|
6298
|
+
// var data = globalDevices[deviceAddr];
|
|
6299
|
+
delete globalDevices[deviceAddr];
|
|
6300
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6301
|
+
console.log('####falure no');
|
|
6302
|
+
console.log(this.failure_no);
|
|
6303
|
+
}
|
|
6304
|
+
return{
|
|
6305
|
+
'mode': mode,
|
|
6306
|
+
'sampling_frequency': sampling_frequency,
|
|
6307
|
+
'sensor_index': sensor_index,
|
|
6308
|
+
'gain_db':gain_db,
|
|
6309
|
+
'adc':adc,
|
|
6310
|
+
'raw_data':raw_data
|
|
6311
|
+
}
|
|
6312
|
+
}
|
|
6313
|
+
else{
|
|
6314
|
+
return;
|
|
6315
|
+
}
|
|
6221
6316
|
|
|
6317
|
+
}else{
|
|
6318
|
+
if(current_packet != 1){
|
|
6319
|
+
console.log('bad packet cleanup');
|
|
6320
|
+
return;
|
|
6321
|
+
}
|
|
6322
|
+
globalDevices[deviceAddr] = {
|
|
6323
|
+
// stream_size: expected_packets,
|
|
6324
|
+
data: {},
|
|
6325
|
+
}
|
|
6326
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6327
|
+
return;
|
|
6328
|
+
}
|
|
6329
|
+
}
|
|
6330
|
+
else if(payload[8] === 0){ // processed mode
|
|
6331
|
+
return {
|
|
6332
|
+
mode: payload[8],
|
|
6333
|
+
sampling_frequency: payload.slice(9, 13).reduce(msbLsb),
|
|
6334
|
+
rms_mv: payload.slice(13, 17).reduce(msbLsb) / 1000,
|
|
6335
|
+
freq_1: payload.slice(17, 19).reduce(msbLsb),
|
|
6336
|
+
freq_2: payload.slice(19, 21).reduce(msbLsb),
|
|
6337
|
+
freq_3: payload.slice(21, 23).reduce(msbLsb),
|
|
6338
|
+
};
|
|
6339
|
+
}
|
|
6222
6340
|
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6341
|
+
},
|
|
6342
|
+
'parse_fly': (frame) => {
|
|
6343
|
+
let frame_data = {};
|
|
6344
|
+
frame_data.mode = frame[12] ? 'Raw':'Processed';
|
|
6345
|
+
switch(frame[13]){
|
|
6346
|
+
case 0:
|
|
6347
|
+
frame_data.raw_lenght = 55;
|
|
6348
|
+
break;
|
|
6349
|
+
case 1:
|
|
6350
|
+
frame_data.raw_lenght = 100;
|
|
6351
|
+
break;
|
|
6352
|
+
case 2:
|
|
6353
|
+
frame_data.raw_lenght = 150;
|
|
6354
|
+
break;
|
|
6355
|
+
case 3:
|
|
6356
|
+
frame_data.raw_lenght = 180;
|
|
6357
|
+
break;
|
|
6358
|
+
}
|
|
6359
|
+
return {
|
|
6360
|
+
'firmware': frame[2],
|
|
6361
|
+
'mode': frame_data.mode,
|
|
6362
|
+
'raw_length': frame_data.raw_lenght + " Bytes",
|
|
6363
|
+
'raw_on_request_timeout': frame[14] + " sec",
|
|
6364
|
+
'fly_rate': frame.slice(15, 17).reduce(msbLsb) + " min",
|
|
6365
|
+
'sensor_gain_db': frame[17] + " dB",
|
|
6366
|
+
'sensor_boot_time': frame[18] + " sec",
|
|
6367
|
+
'sampling_frequency': (frame.slice(19, 23).reverse()).reduce(msbLsb) + " Hz",
|
|
6368
|
+
'hardware_id': frame.slice(23, 26),
|
|
6369
|
+
'report_rate': frame.slice(26, 30).reduce(msbLsb),
|
|
6370
|
+
'tx_life_count': frame.slice(30, 34).reduce(msbLsb),
|
|
6371
|
+
'machine_values': {
|
|
6372
|
+
'firmware': frame[2],
|
|
6373
|
+
'mode':frame[12],
|
|
6374
|
+
'raw_lenght': frame[13],
|
|
6375
|
+
'raw_on_request_timeout': frame[14],
|
|
6376
|
+
'fly_rate': frame.slice(15, 17),
|
|
6377
|
+
'sensor_gain_db': frame[17],
|
|
6378
|
+
'sensor_boot_time': frame[18],
|
|
6379
|
+
'sampling_frequency': frame.slice(19, 23),
|
|
6380
|
+
'hardware_id': frame.slice(23, 26),
|
|
6381
|
+
'report_rate': frame.slice(26, 30),
|
|
6382
|
+
'tx_life_count': frame.slice(30, 34)
|
|
6383
|
+
}
|
|
6384
|
+
}
|
|
6385
|
+
}
|
|
6386
|
+
},
|
|
6387
|
+
'98': {
|
|
6388
|
+
name: 'Two channel Dynamic Ultrasound vibration Sensor',
|
|
6389
|
+
parse: (payload, parsed, mac) => {
|
|
6390
|
+
if (payload[8] === 1) { // raw
|
|
6391
|
+
var mode = payload[8];
|
|
6392
|
+
var sampling_frequency = payload.slice(9, 13).reduce(msbLsb);
|
|
6393
|
+
var sensor_index = payload[13];
|
|
6394
|
+
var gain_db = payload[14];
|
|
6395
|
+
var deviceAddr = mac;
|
|
6396
|
+
var expected_packets = payload.slice(15, 17).reduce(msbLsb);
|
|
6397
|
+
var current_packet = payload.slice(17, 19).reduce(msbLsb);
|
|
6398
|
+
var sdata_start = 19;
|
|
6399
|
+
|
|
6400
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6401
|
+
// if(expected_packets == 1){
|
|
6402
|
+
// this.build_102_data(payload, deviceAddr, hour, minute, sdata_start, current_packet, firmware);
|
|
6403
|
+
// }
|
|
6257
6404
|
|
|
6405
|
+
// if a packet is already stored with the same packet ID,
|
|
6406
|
+
// or if packet ID is 1,
|
|
6407
|
+
// or if current packet ID is not one more than last packet ID
|
|
6408
|
+
if(current_packet == 1 && expected_packets != 1) {
|
|
6409
|
+
if(current_packet in globalDevices[deviceAddr].data || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
6410
|
+
console.log('bad packet breakdown, deleting stream. Current packet:');
|
|
6411
|
+
console.log(current_packet);
|
|
6412
|
+
console.log('Total Expected Packets:');
|
|
6413
|
+
console.log(expected_packets);
|
|
6414
|
+
// console.log(current_packet in globalDevices[deviceAddr].data && current_packet == 1 && expected_packets != 1);
|
|
6415
|
+
// console.log(current_packet == 1);
|
|
6416
|
+
// console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
6417
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6418
|
+
this.failure_no = this.failure_no + 1;
|
|
6419
|
+
}
|
|
6420
|
+
else{
|
|
6421
|
+
this.failure_no = 1;
|
|
6422
|
+
}
|
|
6423
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6424
|
+
console.log('####falure no');
|
|
6425
|
+
console.log(this.failure_no);
|
|
6426
|
+
}
|
|
6427
|
+
delete globalDevices[deviceAddr];
|
|
6428
|
+
if(current_packet != 1){
|
|
6429
|
+
return;
|
|
6430
|
+
} else{
|
|
6431
|
+
if(current_packet != 1){
|
|
6432
|
+
console.log('bad packet cleanup');
|
|
6433
|
+
return;
|
|
6434
|
+
}
|
|
6258
6435
|
globalDevices[deviceAddr] = {
|
|
6259
6436
|
// stream_size: expected_packets,
|
|
6260
6437
|
data: {},
|
|
6261
|
-
odr: odr,
|
|
6262
|
-
mo: mode,
|
|
6263
|
-
en_axis: en_axis,
|
|
6264
|
-
fsr: fsr,
|
|
6265
|
-
hour: hour,
|
|
6266
|
-
minute: minute,
|
|
6267
|
-
device_temp: device_temp,
|
|
6268
6438
|
}
|
|
6269
6439
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6270
6440
|
return;
|
|
6271
6441
|
}
|
|
6272
6442
|
}
|
|
6273
|
-
|
|
6274
|
-
|
|
6443
|
+
}
|
|
6444
|
+
if(expected_packets == 1){
|
|
6445
|
+
if(current_packet != 1){
|
|
6446
|
+
console.log('bad packet cleanup');
|
|
6447
|
+
return;
|
|
6448
|
+
}
|
|
6449
|
+
globalDevices[deviceAddr] = {
|
|
6450
|
+
// stream_size: expected_packets,
|
|
6451
|
+
data: {},
|
|
6452
|
+
}
|
|
6453
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6454
|
+
//return;
|
|
6455
|
+
} else{
|
|
6456
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6457
|
+
}
|
|
6458
|
+
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
6459
|
+
var raw_data = new Array();
|
|
6460
|
+
for(const packet in globalDevices[deviceAddr].data){
|
|
6461
|
+
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
6462
|
+
}
|
|
6463
|
+
var label = 0;
|
|
6464
|
+
// var fft = {
|
|
6465
|
+
// data: new Array()
|
|
6466
|
+
// // test: new Array()
|
|
6467
|
+
// };
|
|
6468
|
+
var fft = new Array();
|
|
6469
|
+
var adc = {};
|
|
6470
|
+
|
|
6471
|
+
for(var i = 0; i < raw_data.length; i+=2){
|
|
6472
|
+
label++;
|
|
6473
|
+
adc[label] = (raw_data[i]<<8)+(raw_data[i+1]);
|
|
6474
|
+
}
|
|
6475
|
+
// var data = globalDevices[deviceAddr];
|
|
6476
|
+
delete globalDevices[deviceAddr];
|
|
6477
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6478
|
+
console.log('####falure no');
|
|
6479
|
+
console.log(this.failure_no);
|
|
6480
|
+
}
|
|
6481
|
+
return{
|
|
6482
|
+
'mode': mode,
|
|
6483
|
+
'sampling_frequency': sampling_frequency,
|
|
6484
|
+
'sensor_index': sensor_index,
|
|
6485
|
+
'gain_db':gain_db,
|
|
6486
|
+
'adc':adc,
|
|
6487
|
+
'raw_data':raw_data
|
|
6275
6488
|
}
|
|
6276
6489
|
}
|
|
6277
6490
|
else{
|
|
6278
|
-
|
|
6279
|
-
|
|
6280
|
-
|
|
6281
|
-
|
|
6282
|
-
|
|
6491
|
+
return;
|
|
6492
|
+
}
|
|
6493
|
+
|
|
6494
|
+
}else{
|
|
6495
|
+
if(current_packet != 1){
|
|
6496
|
+
console.log('bad packet cleanup');
|
|
6497
|
+
return;
|
|
6498
|
+
}
|
|
6499
|
+
globalDevices[deviceAddr] = {
|
|
6500
|
+
// stream_size: expected_packets,
|
|
6501
|
+
data: {},
|
|
6502
|
+
}
|
|
6503
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6504
|
+
return;
|
|
6505
|
+
}
|
|
6506
|
+
}
|
|
6507
|
+
else if(payload[8] === 0){ // processed mode
|
|
6508
|
+
return {
|
|
6509
|
+
mode: payload[8],
|
|
6510
|
+
sampling_frequency: payload.slice(9, 13).reduce(msbLsb),
|
|
6511
|
+
c1_rms_mv: payload.slice(13, 15).reduce(msbLsb) / 1000,
|
|
6512
|
+
c1_freq_1: payload.slice(15, 17).reduce(msbLsb),
|
|
6513
|
+
c1_freq_2: payload.slice(17, 19).reduce(msbLsb),
|
|
6514
|
+
c1_freq_3: payload.slice(19, 23).reduce(msbLsb),
|
|
6515
|
+
c2_rms_mv: payload.slice(23, 25).reduce(msbLsb) / 1000,
|
|
6516
|
+
c2_freq_1: payload.slice(25, 27).reduce(msbLsb),
|
|
6517
|
+
c2_freq_2: payload.slice(27, 30).reduce(msbLsb),
|
|
6518
|
+
c2_freq_3: payload.slice(30, 34).reduce(msbLsb)
|
|
6519
|
+
};
|
|
6520
|
+
}
|
|
6521
|
+
},
|
|
6522
|
+
'parse_fly': (frame) => {
|
|
6523
|
+
let frame_data = {};
|
|
6524
|
+
frame_data.mode = frame[12] ? 'Raw':'Processed';
|
|
6525
|
+
switch(frame[13]){
|
|
6526
|
+
case 0:
|
|
6527
|
+
frame_data.raw_lenght = 55;
|
|
6528
|
+
break;
|
|
6529
|
+
case 1:
|
|
6530
|
+
frame_data.raw_lenght = 100;
|
|
6531
|
+
break;
|
|
6532
|
+
case 2:
|
|
6533
|
+
frame_data.raw_lenght = 150;
|
|
6534
|
+
break;
|
|
6535
|
+
case 3:
|
|
6536
|
+
frame_data.raw_lenght = 180;
|
|
6537
|
+
break;
|
|
6538
|
+
}
|
|
6539
|
+
return {
|
|
6540
|
+
'firmware': frame[2],
|
|
6541
|
+
'mode': frame_data.mode,
|
|
6542
|
+
'raw_length': frame_data.raw_lenght + " Bytes",
|
|
6543
|
+
'raw_on_request_timeout': frame[14] + " sec",
|
|
6544
|
+
'fly_rate': frame.slice(15, 17).reduce(msbLsb) + " min",
|
|
6545
|
+
'c1_sensor_gain_db': frame[17] + " dB",
|
|
6546
|
+
'c1_sensor_boot_time': frame[18] + " sec",
|
|
6547
|
+
'c2_sensor_gain_db': frame[19] + " dB",
|
|
6548
|
+
'c2_sensor_boot_time': frame[20] + " sec",
|
|
6549
|
+
'sampling_frequency': (frame.slice(21, 25).reverse()).reduce(msbLsb) + " Hz",
|
|
6550
|
+
'hardware_id': frame.slice(25, 28),
|
|
6551
|
+
'report_rate': frame.slice(28, 32).reduce(msbLsb),
|
|
6552
|
+
'tx_life_count': frame.slice(32, 36).reduce(msbLsb),
|
|
6553
|
+
'machine_values': {
|
|
6554
|
+
'firmware': frame[2],
|
|
6555
|
+
'mode': frame[12],
|
|
6556
|
+
'raw_lenght': frame[13],
|
|
6557
|
+
'raw_on_request_timeout': frame[14],
|
|
6558
|
+
'fly_rate': frame.slice(15, 17),
|
|
6559
|
+
'c1_sensor_gain_db': frame[17],
|
|
6560
|
+
'c1_sensor_boot_time': frame[18],
|
|
6561
|
+
'c2_sensor_gain_db': frame[19],
|
|
6562
|
+
'c2_sensor_boot_time': frame[20],
|
|
6563
|
+
'sampling_frequency': frame.slice(21, 25),
|
|
6564
|
+
'hardware_id': frame.slice(25, 28),
|
|
6565
|
+
'report_rate': frame.slice(28, 32),
|
|
6566
|
+
'tx_life_count': frame.slice(32, 36)
|
|
6567
|
+
}
|
|
6568
|
+
}
|
|
6569
|
+
}
|
|
6570
|
+
},
|
|
6571
|
+
'101':{
|
|
6572
|
+
name: 'Pro Vibration',
|
|
6573
|
+
parse: (d, full)=>{
|
|
6574
|
+
return{
|
|
6575
|
+
mode: full[7] == 1? "raw" : "normal"
|
|
6576
|
+
};
|
|
6577
|
+
}
|
|
6578
|
+
},
|
|
6579
|
+
'105': {
|
|
6580
|
+
name: '1 Channel Automatic Luber With Ultrasound Vibration Sensor',
|
|
6581
|
+
parse: (d) => {
|
|
6582
|
+
return {
|
|
6583
|
+
raw_adc: d.slice(0, 2).reduce(msbLsb),
|
|
6584
|
+
ma: d.slice(2, 4).reduce(msbLsb) / 100,
|
|
6585
|
+
db: d.slice(4, 6).reduce(msbLsb) / 100
|
|
6586
|
+
};
|
|
6587
|
+
}
|
|
6588
|
+
},
|
|
6589
|
+
'106': {
|
|
6590
|
+
name: '2 Channel Automatic Luber With Ultrasound Vibration Sensor',
|
|
6591
|
+
parse: (d) => {
|
|
6592
|
+
return {
|
|
6593
|
+
c1_raw_adc: d.slice(0, 2).reduce(msbLsb),
|
|
6594
|
+
c1_ma: d.slice(2, 4).reduce(msbLsb) / 100,
|
|
6595
|
+
c1_db: d.slice(4, 6).reduce(msbLsb) / 100,
|
|
6596
|
+
c2_raw_adc: d.slice(6, 8).reduce(msbLsb),
|
|
6597
|
+
c2_ma: d.slice(8, 10).reduce(msbLsb) / 100,
|
|
6598
|
+
c2_db: d.slice(10, 12).reduce(msbLsb) / 100
|
|
6599
|
+
};
|
|
6600
|
+
}
|
|
6601
|
+
},
|
|
6602
|
+
'107': {
|
|
6603
|
+
name: '16-Bit 4-Channel 4-20mA',
|
|
6604
|
+
parse: (d) => {
|
|
6605
|
+
var adc1 = signInt(d.slice(0, 2).reduce(msbLsb));
|
|
6606
|
+
var adc2 = signInt(d.slice(2, 4).reduce(msbLsb));
|
|
6607
|
+
var adc3 = signInt(d.slice(4, 6).reduce(msbLsb));
|
|
6608
|
+
var adc4 = signInt(d.slice(6, 8).reduce(msbLsb));
|
|
6609
|
+
var ma1 = (signInt(d.slice(8, 10).reduce(msbLsb)))/100.0;
|
|
6610
|
+
var ma2 = (signInt(d.slice(10, 12).reduce(msbLsb)))/100.0;
|
|
6611
|
+
var ma3 = (signInt(d.slice(12, 14).reduce(msbLsb)))/100.0;
|
|
6612
|
+
var ma4 = (signInt(d.slice(14, 16).reduce(msbLsb)))/100.0;
|
|
6613
|
+
return {
|
|
6614
|
+
adc1: adc1,
|
|
6615
|
+
adc2: adc2,
|
|
6616
|
+
adc3: adc3,
|
|
6617
|
+
adc4: adc4,
|
|
6618
|
+
ma1: ma1,
|
|
6619
|
+
ma2: ma2,
|
|
6620
|
+
ma3: ma3,
|
|
6621
|
+
ma4: ma4
|
|
6622
|
+
};
|
|
6623
|
+
}
|
|
6624
|
+
},
|
|
6625
|
+
'108': {
|
|
6626
|
+
name: 'Machine Uptime Monitoring Sensor',
|
|
6627
|
+
parse: (d, payload) => {
|
|
6628
|
+
let firmware = payload[1];
|
|
6629
|
+
if(payload[7] & 2 != 0){
|
|
6630
|
+
console.log('Error found');
|
|
6631
|
+
// parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
6632
|
+
let error = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
6633
|
+
return error;
|
|
6634
|
+
}
|
|
6635
|
+
if(firmware > 4){
|
|
6636
|
+
let report_type = d[41]? "Shift": "Regular";
|
|
6637
|
+
return {
|
|
6638
|
+
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
6639
|
+
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
6640
|
+
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
6641
|
+
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
6642
|
+
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
6643
|
+
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
6644
|
+
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
6645
|
+
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
6646
|
+
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
6647
|
+
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
6648
|
+
input_di: d[40] & 1 ? 1 : 0,
|
|
6649
|
+
input_ct: d[40] & 2 ? 1 : 0,
|
|
6650
|
+
input_opto: d[40] & 4 ? 1 : 0,
|
|
6651
|
+
input_acc: d[40] & 8 ? 1 : 0,
|
|
6652
|
+
input_mag: d[40] & 16 ? 1 : 0,
|
|
6653
|
+
report_type: report_type,
|
|
6654
|
+
rtc: [
|
|
6655
|
+
String(d[42]).padStart(2, '0'),
|
|
6656
|
+
String(d[43]).padStart(2, '0'),
|
|
6657
|
+
String(d[44]).padStart(2, '0')
|
|
6658
|
+
].join(':')
|
|
6659
|
+
};
|
|
6660
|
+
}else{
|
|
6661
|
+
return {
|
|
6662
|
+
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
6663
|
+
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
6664
|
+
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
6665
|
+
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
6666
|
+
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
6667
|
+
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
6668
|
+
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
6669
|
+
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
6670
|
+
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
6671
|
+
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
6672
|
+
input_di: d[40] & 1 ? 1 : 0,
|
|
6673
|
+
input_ct: d[40] & 2 ? 1 : 0,
|
|
6674
|
+
input_opto: d[40] & 4 ? 1 : 0,
|
|
6675
|
+
input_acc: d[40] & 8 ? 1 : 0,
|
|
6676
|
+
input_mag: d[40] & 16 ? 1 : 0
|
|
6677
|
+
};
|
|
6678
|
+
}
|
|
6679
|
+
},
|
|
6680
|
+
'parse_fly': (frame) => {
|
|
6681
|
+
return {
|
|
6682
|
+
'firmware': frame[2],
|
|
6683
|
+
'report_rate': frame.slice(12, 16).reduce(msbLsb).toString() + "sec.",
|
|
6684
|
+
'accelerometer_threshold': (frame[16]* 32).toString() + "mg.",
|
|
6685
|
+
'debouncing_timeout': frame[17].toString() + "sec.",
|
|
6686
|
+
'accelero_active_state': frame[18],
|
|
6687
|
+
'digital_inputs_active_edge': frame.slice(19, 22).reduce(msbLsb),
|
|
6688
|
+
'counter_threshold': frame.slice(22, 26).reduce(msbLsb).toString() + "sec.",
|
|
6689
|
+
'trasnmit_on_change_status': frame[26],
|
|
6690
|
+
'machine_values': {
|
|
6691
|
+
'firmware': frame[2],
|
|
6692
|
+
'report_rate': frame.slice(12, 16),
|
|
6693
|
+
'accelerometer_threshold': frame[16],
|
|
6694
|
+
'debouncing_timeout': frame[17],
|
|
6695
|
+
'accelero_active_state': frame[18],
|
|
6696
|
+
'digital_inputs_active_edge': frame.slice(19, 22),
|
|
6697
|
+
'counter_threshold': frame.slice(22, 26),
|
|
6698
|
+
'trasnmit_on_change_status': frame[26]
|
|
6699
|
+
}
|
|
6700
|
+
}
|
|
6701
|
+
}
|
|
6702
|
+
},
|
|
6703
|
+
'110': {
|
|
6704
|
+
name: 'One Channel Vibration Plus v4',
|
|
6705
|
+
parse: (payload, parsed, mac) => {
|
|
6706
|
+
if(payload[7] >> 1 != 0){
|
|
6707
|
+
console.log('Error found');
|
|
6708
|
+
parsed.data = {error: 'Error found, Sensor Probe may be unattached'};
|
|
6709
|
+
return parsed;
|
|
6710
|
+
}
|
|
6283
6711
|
|
|
6712
|
+
if(payload[8] === 1){
|
|
6713
|
+
var deviceAddr = mac;
|
|
6714
|
+
var firmware = payload[1];
|
|
6715
|
+
var hour = payload[12];
|
|
6716
|
+
var minute = payload[13];
|
|
6717
|
+
var expected_packets = payload[16];
|
|
6718
|
+
var current_packet = payload[17];
|
|
6719
|
+
var sdata_start = 18;
|
|
6284
6720
|
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6300
|
-
|
|
6301
|
-
|
|
6302
|
-
|
|
6303
|
-
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
|
|
6721
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6722
|
+
if(expected_packets != 1){
|
|
6723
|
+
// if a packet is already stored with the same packet ID, or if packet ID is 1, or if current packet ID is not one more than last packet ID
|
|
6724
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
6725
|
+
console.log('-----');
|
|
6726
|
+
console.log('bad packet breakdown deleting stream');
|
|
6727
|
+
console.log(current_packet);
|
|
6728
|
+
console.log(expected_packets);
|
|
6729
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
6730
|
+
console.log(current_packet == 1);
|
|
6731
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
6732
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6733
|
+
this.failure_no = this.failure_no + 1;
|
|
6734
|
+
}
|
|
6735
|
+
else{
|
|
6736
|
+
this.failure_no = 1;
|
|
6737
|
+
}
|
|
6738
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6739
|
+
console.log('####falure no');
|
|
6740
|
+
console.log(this.failure_no);
|
|
6741
|
+
}
|
|
6742
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
6743
|
+
delete globalDevices[deviceAddr];
|
|
6744
|
+
if(current_packet != 1){
|
|
6745
|
+
return;
|
|
6746
|
+
} else{
|
|
6747
|
+
|
|
6748
|
+
var mode = payload[8];
|
|
6749
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
6750
|
+
var en_axis = payload[11] & 7;
|
|
6751
|
+
var fsr = payload[11] >> 5;
|
|
6752
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
6753
|
+
|
|
6754
|
+
globalDevices[deviceAddr] = {
|
|
6755
|
+
// stream_size: expected_packets,
|
|
6756
|
+
data: {},
|
|
6757
|
+
odr: odr,
|
|
6758
|
+
mo: mode,
|
|
6759
|
+
en_axis: en_axis,
|
|
6760
|
+
fsr: fsr,
|
|
6761
|
+
hour: hour,
|
|
6762
|
+
minute: minute,
|
|
6763
|
+
device_temp: device_temp,
|
|
6764
|
+
}
|
|
6765
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6766
|
+
return;
|
|
6767
|
+
}
|
|
6768
|
+
}
|
|
6769
|
+
else{
|
|
6770
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6318
6771
|
}
|
|
6772
|
+
}
|
|
6773
|
+
else{
|
|
6774
|
+
var mode = payload[8];
|
|
6775
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
6776
|
+
var en_axis = payload[11] & 7;
|
|
6777
|
+
var fsr = payload[11] >> 5;
|
|
6778
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
6319
6779
|
|
|
6320
6780
|
globalDevices[deviceAddr] = {
|
|
6321
6781
|
// stream_size: expected_packets,
|
|
@@ -6450,46 +6910,10 @@ function sensor_types(parent){
|
|
|
6450
6910
|
}else{
|
|
6451
6911
|
|
|
6452
6912
|
var mode = payload[8];
|
|
6453
|
-
var odr = payload[9]
|
|
6454
|
-
var en_axis = payload[
|
|
6455
|
-
var fsr = payload[
|
|
6456
|
-
var device_temp = msbLsb(payload[
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
switch(odr){
|
|
6460
|
-
case 6:
|
|
6461
|
-
odr = 50;
|
|
6462
|
-
break;
|
|
6463
|
-
case 7:
|
|
6464
|
-
odr = 100;
|
|
6465
|
-
break;
|
|
6466
|
-
case 8:
|
|
6467
|
-
odr = 200;
|
|
6468
|
-
break;
|
|
6469
|
-
case 9:
|
|
6470
|
-
odr = 400;
|
|
6471
|
-
break;
|
|
6472
|
-
case 10:
|
|
6473
|
-
odr = 800;
|
|
6474
|
-
break;
|
|
6475
|
-
case 11:
|
|
6476
|
-
odr = 1600;
|
|
6477
|
-
break;
|
|
6478
|
-
case 12:
|
|
6479
|
-
odr = 3200;
|
|
6480
|
-
break;
|
|
6481
|
-
case 13:
|
|
6482
|
-
odr = 6400;
|
|
6483
|
-
break;
|
|
6484
|
-
case 14:
|
|
6485
|
-
odr = 12800;
|
|
6486
|
-
break;
|
|
6487
|
-
case 15:
|
|
6488
|
-
odr = 25600;
|
|
6489
|
-
break;
|
|
6490
|
-
default:
|
|
6491
|
-
odr = 0;
|
|
6492
|
-
}
|
|
6913
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
6914
|
+
var en_axis = payload[11] & 7;
|
|
6915
|
+
var fsr = payload[11] >> 5;
|
|
6916
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
6493
6917
|
|
|
6494
6918
|
globalDevices[deviceAddr] = {
|
|
6495
6919
|
// stream_size: expected_packets,
|
|
@@ -6571,6 +6995,7 @@ function sensor_types(parent){
|
|
|
6571
6995
|
z_peak_one_Hz: payload.slice(48, 50).reduce(msbLsb),
|
|
6572
6996
|
z_peak_two_Hz: payload.slice(50, 52).reduce(msbLsb),
|
|
6573
6997
|
z_peak_three_Hz: payload.slice(52, 54).reduce(msbLsb),
|
|
6998
|
+
rpm: payload.slice(54, 56).reduce(msbLsb)
|
|
6574
6999
|
};
|
|
6575
7000
|
}
|
|
6576
7001
|
// else{
|
|
@@ -6794,11 +7219,11 @@ function sensor_types(parent){
|
|
|
6794
7219
|
if(payload[8] === 1){
|
|
6795
7220
|
var deviceAddr = mac;
|
|
6796
7221
|
var firmware = payload[1];
|
|
6797
|
-
var hour = payload[
|
|
6798
|
-
var minute = payload[
|
|
6799
|
-
var expected_packets = payload[
|
|
6800
|
-
var current_packet = payload[
|
|
6801
|
-
var sdata_start =
|
|
7222
|
+
var hour = payload[12];
|
|
7223
|
+
var minute = payload[13];
|
|
7224
|
+
var expected_packets = payload[16];
|
|
7225
|
+
var current_packet = payload[17];
|
|
7226
|
+
var sdata_start = 18;
|
|
6802
7227
|
|
|
6803
7228
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6804
7229
|
if(expected_packets != 1){
|
|
@@ -6827,45 +7252,10 @@ function sensor_types(parent){
|
|
|
6827
7252
|
return;
|
|
6828
7253
|
} else{
|
|
6829
7254
|
var mode = payload[8];
|
|
6830
|
-
var odr = payload[9]
|
|
6831
|
-
var en_axis = payload[
|
|
6832
|
-
var fsr = payload[
|
|
6833
|
-
var device_temp = msbLsb(payload[
|
|
6834
|
-
|
|
6835
|
-
switch(odr){
|
|
6836
|
-
case 6:
|
|
6837
|
-
odr = 50;
|
|
6838
|
-
break;
|
|
6839
|
-
case 7:
|
|
6840
|
-
odr = 100;
|
|
6841
|
-
break;
|
|
6842
|
-
case 8:
|
|
6843
|
-
odr = 200;
|
|
6844
|
-
break;
|
|
6845
|
-
case 9:
|
|
6846
|
-
odr = 400;
|
|
6847
|
-
break;
|
|
6848
|
-
case 10:
|
|
6849
|
-
odr = 800;
|
|
6850
|
-
break;
|
|
6851
|
-
case 11:
|
|
6852
|
-
odr = 1600;
|
|
6853
|
-
break;
|
|
6854
|
-
case 12:
|
|
6855
|
-
odr = 3200;
|
|
6856
|
-
break;
|
|
6857
|
-
case 13:
|
|
6858
|
-
odr = 6400;
|
|
6859
|
-
break;
|
|
6860
|
-
case 14:
|
|
6861
|
-
odr = 12800;
|
|
6862
|
-
break;
|
|
6863
|
-
case 15:
|
|
6864
|
-
odr = 25600;
|
|
6865
|
-
break;
|
|
6866
|
-
default:
|
|
6867
|
-
odr = 0;
|
|
6868
|
-
}
|
|
7255
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
7256
|
+
var en_axis = payload[11] & 7;
|
|
7257
|
+
var fsr = payload[11] >> 5;
|
|
7258
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
6869
7259
|
|
|
6870
7260
|
globalDevices[deviceAddr] = {
|
|
6871
7261
|
// stream_size: expected_packets,
|
|
@@ -6888,46 +7278,10 @@ function sensor_types(parent){
|
|
|
6888
7278
|
}
|
|
6889
7279
|
else{
|
|
6890
7280
|
var mode = payload[8];
|
|
6891
|
-
var odr = payload[9]
|
|
6892
|
-
var en_axis = payload[
|
|
6893
|
-
var fsr = payload[
|
|
6894
|
-
var device_temp = msbLsb(payload[
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
switch(odr){
|
|
6898
|
-
case 6:
|
|
6899
|
-
odr = 50;
|
|
6900
|
-
break;
|
|
6901
|
-
case 7:
|
|
6902
|
-
odr = 100;
|
|
6903
|
-
break;
|
|
6904
|
-
case 8:
|
|
6905
|
-
odr = 200;
|
|
6906
|
-
break;
|
|
6907
|
-
case 9:
|
|
6908
|
-
odr = 400;
|
|
6909
|
-
break;
|
|
6910
|
-
case 10:
|
|
6911
|
-
odr = 800;
|
|
6912
|
-
break;
|
|
6913
|
-
case 11:
|
|
6914
|
-
odr = 1600;
|
|
6915
|
-
break;
|
|
6916
|
-
case 12:
|
|
6917
|
-
odr = 3200;
|
|
6918
|
-
break;
|
|
6919
|
-
case 13:
|
|
6920
|
-
odr = 6400;
|
|
6921
|
-
break;
|
|
6922
|
-
case 14:
|
|
6923
|
-
odr = 12800;
|
|
6924
|
-
break;
|
|
6925
|
-
case 15:
|
|
6926
|
-
odr = 25600;
|
|
6927
|
-
break;
|
|
6928
|
-
default:
|
|
6929
|
-
odr = 0;
|
|
6930
|
-
}
|
|
7281
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
7282
|
+
var en_axis = payload[11] & 7;
|
|
7283
|
+
var fsr = payload[11] >> 5;
|
|
7284
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
6931
7285
|
|
|
6932
7286
|
globalDevices[deviceAddr] = {
|
|
6933
7287
|
// stream_size: expected_packets,
|
|
@@ -7073,46 +7427,10 @@ function sensor_types(parent){
|
|
|
7073
7427
|
}
|
|
7074
7428
|
}else{
|
|
7075
7429
|
var mode = payload[8];
|
|
7076
|
-
var odr = payload[9]
|
|
7077
|
-
var en_axis = payload[
|
|
7078
|
-
var fsr = payload[
|
|
7079
|
-
var device_temp = msbLsb(payload[
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
switch(odr){
|
|
7083
|
-
case 6:
|
|
7084
|
-
odr = 50;
|
|
7085
|
-
break;
|
|
7086
|
-
case 7:
|
|
7087
|
-
odr = 100;
|
|
7088
|
-
break;
|
|
7089
|
-
case 8:
|
|
7090
|
-
odr = 200;
|
|
7091
|
-
break;
|
|
7092
|
-
case 9:
|
|
7093
|
-
odr = 400;
|
|
7094
|
-
break;
|
|
7095
|
-
case 10:
|
|
7096
|
-
odr = 800;
|
|
7097
|
-
break;
|
|
7098
|
-
case 11:
|
|
7099
|
-
odr = 1600;
|
|
7100
|
-
break;
|
|
7101
|
-
case 12:
|
|
7102
|
-
odr = 3200;
|
|
7103
|
-
break;
|
|
7104
|
-
case 13:
|
|
7105
|
-
odr = 6400;
|
|
7106
|
-
break;
|
|
7107
|
-
case 14:
|
|
7108
|
-
odr = 12800;
|
|
7109
|
-
break;
|
|
7110
|
-
case 15:
|
|
7111
|
-
odr = 25600;
|
|
7112
|
-
break;
|
|
7113
|
-
default:
|
|
7114
|
-
odr = 0;
|
|
7115
|
-
}
|
|
7430
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
7431
|
+
var en_axis = payload[11] & 7;
|
|
7432
|
+
var fsr = payload[11] >> 5;
|
|
7433
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
7116
7434
|
|
|
7117
7435
|
globalDevices[deviceAddr] = {
|
|
7118
7436
|
// stream_size: expected_packets,
|
|
@@ -7237,6 +7555,7 @@ function sensor_types(parent){
|
|
|
7237
7555
|
z1_peak_one_Hz: payload.slice(48, 50).reduce(msbLsb),
|
|
7238
7556
|
z1_peak_two_Hz: payload.slice(50, 52).reduce(msbLsb),
|
|
7239
7557
|
z1_peak_three_Hz: payload.slice(52, 54).reduce(msbLsb),
|
|
7558
|
+
rpm_1: payload.slice(54, 56).reduce(msbLsb),
|
|
7240
7559
|
|
|
7241
7560
|
s2_odr: odr2,
|
|
7242
7561
|
s2_temperature: signInt(payload.slice(55, 57).reduce(msbLsb), 16) / 100,
|
|
@@ -7263,7 +7582,8 @@ function sensor_types(parent){
|
|
|
7263
7582
|
z2_displacement_mm: payload.slice(91, 93).reduce(msbLsb) / 100,
|
|
7264
7583
|
z2_peak_one_Hz: payload.slice(93, 95).reduce(msbLsb),
|
|
7265
7584
|
z2_peak_two_Hz: payload.slice(95, 97).reduce(msbLsb),
|
|
7266
|
-
z2_peak_three_Hz: payload.slice(97, 99).reduce(msbLsb)
|
|
7585
|
+
z2_peak_three_Hz: payload.slice(97, 99).reduce(msbLsb),
|
|
7586
|
+
rpm_2: payload.slice(99, 101).reduce(msbLsb)
|
|
7267
7587
|
};
|
|
7268
7588
|
}
|
|
7269
7589
|
// else{
|
|
@@ -7592,11 +7912,11 @@ function sensor_types(parent){
|
|
|
7592
7912
|
if(payload[8] === 1){
|
|
7593
7913
|
var deviceAddr = mac;
|
|
7594
7914
|
var firmware = payload[1];
|
|
7595
|
-
var hour = payload[
|
|
7596
|
-
var minute = payload[
|
|
7597
|
-
var expected_packets = payload[
|
|
7598
|
-
var current_packet = payload[
|
|
7599
|
-
var sdata_start =
|
|
7915
|
+
var hour = payload[12];
|
|
7916
|
+
var minute = payload[13];
|
|
7917
|
+
var expected_packets = payload[16];
|
|
7918
|
+
var current_packet = payload[17];
|
|
7919
|
+
var sdata_start = 18;
|
|
7600
7920
|
|
|
7601
7921
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
7602
7922
|
if(expected_packets != 1){
|
|
@@ -7619,53 +7939,17 @@ function sensor_types(parent){
|
|
|
7619
7939
|
console.log('####falure no');
|
|
7620
7940
|
console.log(this.failure_no);
|
|
7621
7941
|
}
|
|
7622
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
7623
|
-
delete globalDevices[deviceAddr];
|
|
7624
|
-
if(current_packet != 1){
|
|
7625
|
-
return;
|
|
7626
|
-
} else{
|
|
7627
|
-
|
|
7628
|
-
var mode = payload[8];
|
|
7629
|
-
var odr = payload[9]
|
|
7630
|
-
var en_axis = payload[
|
|
7631
|
-
var fsr = payload[
|
|
7632
|
-
var device_temp = msbLsb(payload[
|
|
7633
|
-
|
|
7634
|
-
|
|
7635
|
-
switch(odr){
|
|
7636
|
-
case 6:
|
|
7637
|
-
odr = 50;
|
|
7638
|
-
break;
|
|
7639
|
-
case 7:
|
|
7640
|
-
odr = 100;
|
|
7641
|
-
break;
|
|
7642
|
-
case 8:
|
|
7643
|
-
odr = 200;
|
|
7644
|
-
break;
|
|
7645
|
-
case 9:
|
|
7646
|
-
odr = 400;
|
|
7647
|
-
break;
|
|
7648
|
-
case 10:
|
|
7649
|
-
odr = 800;
|
|
7650
|
-
break;
|
|
7651
|
-
case 11:
|
|
7652
|
-
odr = 1600;
|
|
7653
|
-
break;
|
|
7654
|
-
case 12:
|
|
7655
|
-
odr = 3200;
|
|
7656
|
-
break;
|
|
7657
|
-
case 13:
|
|
7658
|
-
odr = 6400;
|
|
7659
|
-
break;
|
|
7660
|
-
case 14:
|
|
7661
|
-
odr = 12800;
|
|
7662
|
-
break;
|
|
7663
|
-
case 15:
|
|
7664
|
-
odr = 25600;
|
|
7665
|
-
break;
|
|
7666
|
-
default:
|
|
7667
|
-
odr = 0;
|
|
7668
|
-
}
|
|
7942
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
7943
|
+
delete globalDevices[deviceAddr];
|
|
7944
|
+
if(current_packet != 1){
|
|
7945
|
+
return;
|
|
7946
|
+
} else{
|
|
7947
|
+
|
|
7948
|
+
var mode = payload[8];
|
|
7949
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
7950
|
+
var en_axis = payload[11] & 7;
|
|
7951
|
+
var fsr = payload[11] >> 5;
|
|
7952
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
7669
7953
|
|
|
7670
7954
|
globalDevices[deviceAddr] = {
|
|
7671
7955
|
// stream_size: expected_packets,
|
|
@@ -7688,46 +7972,10 @@ function sensor_types(parent){
|
|
|
7688
7972
|
}
|
|
7689
7973
|
else{
|
|
7690
7974
|
var mode = payload[8];
|
|
7691
|
-
var odr = payload[9]
|
|
7692
|
-
var en_axis = payload[
|
|
7693
|
-
var fsr = payload[
|
|
7694
|
-
var device_temp = msbLsb(payload[
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
switch(odr){
|
|
7698
|
-
case 6:
|
|
7699
|
-
odr = 50;
|
|
7700
|
-
break;
|
|
7701
|
-
case 7:
|
|
7702
|
-
odr = 100;
|
|
7703
|
-
break;
|
|
7704
|
-
case 8:
|
|
7705
|
-
odr = 200;
|
|
7706
|
-
break;
|
|
7707
|
-
case 9:
|
|
7708
|
-
odr = 400;
|
|
7709
|
-
break;
|
|
7710
|
-
case 10:
|
|
7711
|
-
odr = 800;
|
|
7712
|
-
break;
|
|
7713
|
-
case 11:
|
|
7714
|
-
odr = 1600;
|
|
7715
|
-
break;
|
|
7716
|
-
case 12:
|
|
7717
|
-
odr = 3200;
|
|
7718
|
-
break;
|
|
7719
|
-
case 13:
|
|
7720
|
-
odr = 6400;
|
|
7721
|
-
break;
|
|
7722
|
-
case 14:
|
|
7723
|
-
odr = 12800;
|
|
7724
|
-
break;
|
|
7725
|
-
case 15:
|
|
7726
|
-
odr = 25600;
|
|
7727
|
-
break;
|
|
7728
|
-
default:
|
|
7729
|
-
odr = 0;
|
|
7730
|
-
}
|
|
7975
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
7976
|
+
var en_axis = payload[11] & 7;
|
|
7977
|
+
var fsr = payload[11] >> 5;
|
|
7978
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
7731
7979
|
|
|
7732
7980
|
globalDevices[deviceAddr] = {
|
|
7733
7981
|
// stream_size: expected_packets,
|
|
@@ -7865,46 +8113,10 @@ function sensor_types(parent){
|
|
|
7865
8113
|
}else{
|
|
7866
8114
|
|
|
7867
8115
|
var mode = payload[8];
|
|
7868
|
-
var odr = payload[9]
|
|
7869
|
-
var en_axis = payload[
|
|
7870
|
-
var fsr = payload[
|
|
7871
|
-
var device_temp = msbLsb(payload[
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
switch(odr){
|
|
7875
|
-
case 6:
|
|
7876
|
-
odr = 50;
|
|
7877
|
-
break;
|
|
7878
|
-
case 7:
|
|
7879
|
-
odr = 100;
|
|
7880
|
-
break;
|
|
7881
|
-
case 8:
|
|
7882
|
-
odr = 200;
|
|
7883
|
-
break;
|
|
7884
|
-
case 9:
|
|
7885
|
-
odr = 400;
|
|
7886
|
-
break;
|
|
7887
|
-
case 10:
|
|
7888
|
-
odr = 800;
|
|
7889
|
-
break;
|
|
7890
|
-
case 11:
|
|
7891
|
-
odr = 1600;
|
|
7892
|
-
break;
|
|
7893
|
-
case 12:
|
|
7894
|
-
odr = 3200;
|
|
7895
|
-
break;
|
|
7896
|
-
case 13:
|
|
7897
|
-
odr = 6400;
|
|
7898
|
-
break;
|
|
7899
|
-
case 14:
|
|
7900
|
-
odr = 12800;
|
|
7901
|
-
break;
|
|
7902
|
-
case 15:
|
|
7903
|
-
odr = 25600;
|
|
7904
|
-
break;
|
|
7905
|
-
default:
|
|
7906
|
-
odr = 0;
|
|
7907
|
-
}
|
|
8116
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
8117
|
+
var en_axis = payload[11] & 7;
|
|
8118
|
+
var fsr = payload[11] >> 5;
|
|
8119
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
7908
8120
|
|
|
7909
8121
|
globalDevices[deviceAddr] = {
|
|
7910
8122
|
// stream_size: expected_packets,
|
|
@@ -7987,6 +8199,7 @@ function sensor_types(parent){
|
|
|
7987
8199
|
z_peak_one_Hz: payload.slice(56, 58).reduce(msbLsb),
|
|
7988
8200
|
z_peak_two_Hz: payload.slice(58, 60).reduce(msbLsb),
|
|
7989
8201
|
z_peak_three_Hz: payload.slice(60, 62).reduce(msbLsb),
|
|
8202
|
+
rpm: payload.slice(62, 64).reduce(msbLsb)
|
|
7990
8203
|
};
|
|
7991
8204
|
}
|
|
7992
8205
|
// else{
|
|
@@ -8205,11 +8418,11 @@ function sensor_types(parent){
|
|
|
8205
8418
|
if(payload[8] === 1){
|
|
8206
8419
|
var deviceAddr = mac;
|
|
8207
8420
|
var firmware = payload[1];
|
|
8208
|
-
var hour = payload[
|
|
8209
|
-
var minute = payload[
|
|
8210
|
-
var expected_packets = payload[
|
|
8211
|
-
var current_packet = payload[
|
|
8212
|
-
var sdata_start =
|
|
8421
|
+
var hour = payload[12];
|
|
8422
|
+
var minute = payload[13];
|
|
8423
|
+
var expected_packets = payload[16];
|
|
8424
|
+
var current_packet = payload[17];
|
|
8425
|
+
var sdata_start = 18;
|
|
8213
8426
|
|
|
8214
8427
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
8215
8428
|
if(expected_packets != 1){
|
|
@@ -8239,46 +8452,10 @@ function sensor_types(parent){
|
|
|
8239
8452
|
} else{
|
|
8240
8453
|
|
|
8241
8454
|
var mode = payload[8];
|
|
8242
|
-
var odr = payload[9]
|
|
8243
|
-
var en_axis = payload[
|
|
8244
|
-
var fsr = payload[
|
|
8245
|
-
var device_temp = msbLsb(payload[
|
|
8246
|
-
|
|
8247
|
-
|
|
8248
|
-
switch(odr){
|
|
8249
|
-
case 6:
|
|
8250
|
-
odr = 50;
|
|
8251
|
-
break;
|
|
8252
|
-
case 7:
|
|
8253
|
-
odr = 100;
|
|
8254
|
-
break;
|
|
8255
|
-
case 8:
|
|
8256
|
-
odr = 200;
|
|
8257
|
-
break;
|
|
8258
|
-
case 9:
|
|
8259
|
-
odr = 400;
|
|
8260
|
-
break;
|
|
8261
|
-
case 10:
|
|
8262
|
-
odr = 800;
|
|
8263
|
-
break;
|
|
8264
|
-
case 11:
|
|
8265
|
-
odr = 1600;
|
|
8266
|
-
break;
|
|
8267
|
-
case 12:
|
|
8268
|
-
odr = 3200;
|
|
8269
|
-
break;
|
|
8270
|
-
case 13:
|
|
8271
|
-
odr = 6400;
|
|
8272
|
-
break;
|
|
8273
|
-
case 14:
|
|
8274
|
-
odr = 12800;
|
|
8275
|
-
break;
|
|
8276
|
-
case 15:
|
|
8277
|
-
odr = 25600;
|
|
8278
|
-
break;
|
|
8279
|
-
default:
|
|
8280
|
-
odr = 0;
|
|
8281
|
-
}
|
|
8455
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
8456
|
+
var en_axis = payload[11] & 7;
|
|
8457
|
+
var fsr = payload[11] >> 5;
|
|
8458
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
8282
8459
|
|
|
8283
8460
|
globalDevices[deviceAddr] = {
|
|
8284
8461
|
// stream_size: expected_packets,
|
|
@@ -8301,46 +8478,10 @@ function sensor_types(parent){
|
|
|
8301
8478
|
}
|
|
8302
8479
|
else{
|
|
8303
8480
|
var mode = payload[8];
|
|
8304
|
-
var odr = payload[9]
|
|
8305
|
-
var en_axis = payload[
|
|
8306
|
-
var fsr = payload[
|
|
8307
|
-
var device_temp = msbLsb(payload[
|
|
8308
|
-
|
|
8309
|
-
|
|
8310
|
-
switch(odr){
|
|
8311
|
-
case 6:
|
|
8312
|
-
odr = 50;
|
|
8313
|
-
break;
|
|
8314
|
-
case 7:
|
|
8315
|
-
odr = 100;
|
|
8316
|
-
break;
|
|
8317
|
-
case 8:
|
|
8318
|
-
odr = 200;
|
|
8319
|
-
break;
|
|
8320
|
-
case 9:
|
|
8321
|
-
odr = 400;
|
|
8322
|
-
break;
|
|
8323
|
-
case 10:
|
|
8324
|
-
odr = 800;
|
|
8325
|
-
break;
|
|
8326
|
-
case 11:
|
|
8327
|
-
odr = 1600;
|
|
8328
|
-
break;
|
|
8329
|
-
case 12:
|
|
8330
|
-
odr = 3200;
|
|
8331
|
-
break;
|
|
8332
|
-
case 13:
|
|
8333
|
-
odr = 6400;
|
|
8334
|
-
break;
|
|
8335
|
-
case 14:
|
|
8336
|
-
odr = 12800;
|
|
8337
|
-
break;
|
|
8338
|
-
case 15:
|
|
8339
|
-
odr = 25600;
|
|
8340
|
-
break;
|
|
8341
|
-
default:
|
|
8342
|
-
odr = 0;
|
|
8343
|
-
}
|
|
8481
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
8482
|
+
var en_axis = payload[11] & 7;
|
|
8483
|
+
var fsr = payload[11] >> 5;
|
|
8484
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
8344
8485
|
|
|
8345
8486
|
globalDevices[deviceAddr] = {
|
|
8346
8487
|
// stream_size: expected_packets,
|
|
@@ -8474,46 +8615,10 @@ function sensor_types(parent){
|
|
|
8474
8615
|
}else{
|
|
8475
8616
|
|
|
8476
8617
|
var mode = payload[8];
|
|
8477
|
-
var odr = payload[9]
|
|
8478
|
-
var en_axis = payload[
|
|
8479
|
-
var fsr = payload[
|
|
8480
|
-
var device_temp = msbLsb(payload[
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
switch(odr){
|
|
8484
|
-
case 6:
|
|
8485
|
-
odr = 50;
|
|
8486
|
-
break;
|
|
8487
|
-
case 7:
|
|
8488
|
-
odr = 100;
|
|
8489
|
-
break;
|
|
8490
|
-
case 8:
|
|
8491
|
-
odr = 200;
|
|
8492
|
-
break;
|
|
8493
|
-
case 9:
|
|
8494
|
-
odr = 400;
|
|
8495
|
-
break;
|
|
8496
|
-
case 10:
|
|
8497
|
-
odr = 800;
|
|
8498
|
-
break;
|
|
8499
|
-
case 11:
|
|
8500
|
-
odr = 1600;
|
|
8501
|
-
break;
|
|
8502
|
-
case 12:
|
|
8503
|
-
odr = 3200;
|
|
8504
|
-
break;
|
|
8505
|
-
case 13:
|
|
8506
|
-
odr = 6400;
|
|
8507
|
-
break;
|
|
8508
|
-
case 14:
|
|
8509
|
-
odr = 12800;
|
|
8510
|
-
break;
|
|
8511
|
-
case 15:
|
|
8512
|
-
odr = 25600;
|
|
8513
|
-
break;
|
|
8514
|
-
default:
|
|
8515
|
-
odr = 0;
|
|
8516
|
-
}
|
|
8618
|
+
var odr = msbLsb(payload[9], payload[10])
|
|
8619
|
+
var en_axis = payload[11] & 7;
|
|
8620
|
+
var fsr = payload[11] >> 5;
|
|
8621
|
+
var device_temp = msbLsb(payload[14], payload[15])/100;
|
|
8517
8622
|
|
|
8518
8623
|
globalDevices[deviceAddr] = {
|
|
8519
8624
|
// stream_size: expected_packets,
|
|
@@ -8595,6 +8700,7 @@ function sensor_types(parent){
|
|
|
8595
8700
|
z_peak_one_Hz: payload.slice(48, 50).reduce(msbLsb),
|
|
8596
8701
|
z_peak_two_Hz: payload.slice(50, 52).reduce(msbLsb),
|
|
8597
8702
|
z_peak_three_Hz: payload.slice(52, 54).reduce(msbLsb),
|
|
8703
|
+
rpm: payload.slice(54, 56).reduce(msbLsb) / 10
|
|
8598
8704
|
};
|
|
8599
8705
|
}
|
|
8600
8706
|
// else{
|
|
@@ -8801,7 +8907,89 @@ function sensor_types(parent){
|
|
|
8801
8907
|
}
|
|
8802
8908
|
}
|
|
8803
8909
|
},
|
|
8804
|
-
|
|
8910
|
+
'118': {
|
|
8911
|
+
name: 'Dual Pressure and Temperature Sensor',
|
|
8912
|
+
parse: (d) => {
|
|
8913
|
+
return{
|
|
8914
|
+
pressure_s1: signInt(d.slice(0, 4).reduce(msbLsb)) / 100,
|
|
8915
|
+
temperature_s1: signInt(d.slice(4, 6).reduce(msbLsb))/100,
|
|
8916
|
+
pressure_s2: signInt(d.slice(6, 10).reduce(msbLsb)) / 100,
|
|
8917
|
+
temperature_s2: signInt(d.slice(10, 12).reduce(msbLsb))/100
|
|
8918
|
+
};
|
|
8919
|
+
},
|
|
8920
|
+
'parse_fly': (frame) => {
|
|
8921
|
+
let psi_1;
|
|
8922
|
+
let psi_2;
|
|
8923
|
+
switch(frame[12]){
|
|
8924
|
+
case 0:
|
|
8925
|
+
psi_1 = "10 PSI"
|
|
8926
|
+
break;
|
|
8927
|
+
case 1:
|
|
8928
|
+
psi_1 = "20 PSI"
|
|
8929
|
+
break;
|
|
8930
|
+
case 2:
|
|
8931
|
+
psi_1 = "100 PSI"
|
|
8932
|
+
break;
|
|
8933
|
+
case 3:
|
|
8934
|
+
psi_1 = "500 PSI"
|
|
8935
|
+
break;
|
|
8936
|
+
case 4:
|
|
8937
|
+
psi_1 = "1000 PSI"
|
|
8938
|
+
break;
|
|
8939
|
+
case 5:
|
|
8940
|
+
psi_1 = "5000 PSI"
|
|
8941
|
+
break;
|
|
8942
|
+
case 6:
|
|
8943
|
+
psi_1 = "10000 PSI"
|
|
8944
|
+
break;
|
|
8945
|
+
}
|
|
8946
|
+
switch(frame[13]){
|
|
8947
|
+
case 0:
|
|
8948
|
+
psi_2 = "10 PSI"
|
|
8949
|
+
break;
|
|
8950
|
+
case 1:
|
|
8951
|
+
psi_2 = "20 PSI"
|
|
8952
|
+
break;
|
|
8953
|
+
case 2:
|
|
8954
|
+
psi_2 = "100 PSI"
|
|
8955
|
+
break;
|
|
8956
|
+
case 3:
|
|
8957
|
+
psi_2 = "500 PSI"
|
|
8958
|
+
break;
|
|
8959
|
+
case 4:
|
|
8960
|
+
psi_2 = "1000 PSI"
|
|
8961
|
+
break;
|
|
8962
|
+
case 5:
|
|
8963
|
+
psi_2 = "5000 PSI"
|
|
8964
|
+
break;
|
|
8965
|
+
case 6:
|
|
8966
|
+
psi_2 = "10000 PSI"
|
|
8967
|
+
break;
|
|
8968
|
+
}
|
|
8969
|
+
return {
|
|
8970
|
+
'firmware': frame[2],
|
|
8971
|
+
'sensor_1_fs': psi_1,
|
|
8972
|
+
'sensor_2_fs': psi_2,
|
|
8973
|
+
'auto_check_interval': frame.slice(14, 16).reduce(msbLsb) + " Sec.",
|
|
8974
|
+
'press_auto_check_percent': frame[17] + " %",
|
|
8975
|
+
'temp_auto_check_percent': frame[17] + " %",
|
|
8976
|
+
'hardware_id': frame.slice(18, 21),
|
|
8977
|
+
'sample_rate': frame.slice(21, 25).reduce(msbLsb) + " Sec.",
|
|
8978
|
+
'tx_life_counter': frame.slice(25, 29).reduce(msbLsb),
|
|
8979
|
+
'machine_values': {
|
|
8980
|
+
'firmware': frame[2],
|
|
8981
|
+
'sensor_1_fs': frame[12],
|
|
8982
|
+
'sensor_2_fs': frame[13],
|
|
8983
|
+
'auto_check_interval': frame.slice(14, 16),
|
|
8984
|
+
'press_auto_check_percent': frame[16],
|
|
8985
|
+
'temp_auto_check_percent': frame[17],
|
|
8986
|
+
'hardware_id': frame.slice(18, 21),
|
|
8987
|
+
'sample_rate': frame.slice(21, 25),
|
|
8988
|
+
'tx_life_counter': frame.slice(25, 29),
|
|
8989
|
+
}
|
|
8990
|
+
}
|
|
8991
|
+
}
|
|
8992
|
+
},
|
|
8805
8993
|
'180': {
|
|
8806
8994
|
name: 'C1D2 One Channel Vibration Plus',
|
|
8807
8995
|
parse: (payload, parsed, mac) => {
|