@ncd-io/node-red-enterprise-sensors 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/WirelessGateway.js +795 -441
- package/package.json +1 -1
- package/wireless.html +100 -34
- package/wireless.js +41 -5
package/lib/WirelessGateway.js
CHANGED
|
@@ -62,7 +62,7 @@ module.exports = class WirelessSensor{
|
|
|
62
62
|
var new_mode = is_new;
|
|
63
63
|
var mode = (type == 'power_up') ? data.mode : ((type == 'sensor_data') ? 'RUN' : ((type == 'config_ack') ? 'ACK' : 'PGM'));
|
|
64
64
|
// #OTF
|
|
65
|
-
var otf_devices = [80,81,82,84,89,101,102,519,520];
|
|
65
|
+
var otf_devices = [78,79,80,81,82,84,89,91,101,102,519,520,521];
|
|
66
66
|
var device_type = msbLsb(frame.data[6], frame.data[7]);
|
|
67
67
|
// var device_type = frame.data[7];
|
|
68
68
|
|
|
@@ -214,7 +214,7 @@ module.exports = class WirelessSensor{
|
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
// #OTF
|
|
217
|
-
var otf_devices = [80,81,82,84,89,101,102,519,520];
|
|
217
|
+
var otf_devices = [78,79,80,81,82,84,89,91,101,102,519,520,521];
|
|
218
218
|
if(otf_devices.includes(parsed.sensor_type)){
|
|
219
219
|
// If the message says FLY and there is not FLY timer in progress.
|
|
220
220
|
if(payload[8] == 70 && payload[9] == 76 && payload[10] == 89) {
|
|
@@ -225,6 +225,9 @@ module.exports = class WirelessSensor{
|
|
|
225
225
|
|
|
226
226
|
// Sensor type 515 has a unique OTF that is indicated by a reserve byte value with MSb of 1
|
|
227
227
|
if(parsed.sensor_type == 515){
|
|
228
|
+
// MSb of reserve byte indicates sub-unit/ct firmware.
|
|
229
|
+
parsed.ct_firmware = payload[7] >> 4;
|
|
230
|
+
|
|
228
231
|
// If first bit in reserve is 1 AND current bank equals total banks
|
|
229
232
|
if(payload[7] & 1 && payload[8] == payload[9]){
|
|
230
233
|
this._emitter.emit('set_destination_address'+frame.mac, frame.mac);
|
|
@@ -722,22 +725,6 @@ module.exports = class WirelessSensor{
|
|
|
722
725
|
var packet = [244, 3, 0, 0, 0, scale];
|
|
723
726
|
return this.config_send(sensor_mac, packet);
|
|
724
727
|
}
|
|
725
|
-
config_set_impact_accel(sensor_mac, range){
|
|
726
|
-
var packet = [244, 1, 0, 0, 0, range];
|
|
727
|
-
return this.config_send(sensor_mac, packet);
|
|
728
|
-
}
|
|
729
|
-
config_set_impact_data_rate(sensor_mac, rate){
|
|
730
|
-
var packet = [244, 2, 0, 0, 0, rate];
|
|
731
|
-
return this.config_send(sensor_mac, packet);
|
|
732
|
-
}
|
|
733
|
-
config_set_impact_threshold(sensor_mac, threshold){
|
|
734
|
-
var packet = [244, 3, 0, 0, 0, threshold];
|
|
735
|
-
return this.config_send(sensor_mac, packet);
|
|
736
|
-
}
|
|
737
|
-
config_set_impact_duration(sensor_mac, duration){
|
|
738
|
-
var packet = [244, 4, 0, 0, 0, duration];
|
|
739
|
-
return this.config_send(sensor_mac, packet);
|
|
740
|
-
}
|
|
741
728
|
config_set_filtering(sensor_mac, enable){
|
|
742
729
|
var packet = [244, 2, 0, 0, 0, enable];
|
|
743
730
|
return this.config_send(sensor_mac, packet);
|
|
@@ -763,6 +750,53 @@ module.exports = class WirelessSensor{
|
|
|
763
750
|
return this.config_send(sensor_mac, packet);
|
|
764
751
|
}
|
|
765
752
|
|
|
753
|
+
config_set_acceleration_range_24(sensor_mac, value){
|
|
754
|
+
console.log('config_set_acceleration_range_24');
|
|
755
|
+
var packet = [244, 1, 0, 0, 0, value];
|
|
756
|
+
console.log(packet);
|
|
757
|
+
return this.config_send(sensor_mac, packet);
|
|
758
|
+
}
|
|
759
|
+
config_set_data_rate_24(sensor_mac, value){
|
|
760
|
+
console.log('config_set_data_rate_24');
|
|
761
|
+
var packet = [244, 2, 0, 0, 0, value];
|
|
762
|
+
console.log(packet);
|
|
763
|
+
return this.config_send(sensor_mac, packet);
|
|
764
|
+
}
|
|
765
|
+
config_set_threshold_24(sensor_mac, value){
|
|
766
|
+
console.log('config_set_threshold_24');
|
|
767
|
+
var packet = [244, 3, 0, 0, 0, value];
|
|
768
|
+
console.log(packet);
|
|
769
|
+
return this.config_send(sensor_mac, packet);
|
|
770
|
+
}
|
|
771
|
+
config_set_duration_24(sensor_mac, value){
|
|
772
|
+
console.log('config_set_duration_24');
|
|
773
|
+
var packet = [244, 4, 0, 0, 0, value];
|
|
774
|
+
console.log(packet);
|
|
775
|
+
return this.config_send(sensor_mac, packet);
|
|
776
|
+
}
|
|
777
|
+
config_set_interrupt_24(sensor_mac, value){
|
|
778
|
+
console.log('config_set_interrupt_24');
|
|
779
|
+
var packet = [244, 9, 0, 0, 0, value];
|
|
780
|
+
console.log(packet);
|
|
781
|
+
return this.config_send(sensor_mac, packet);
|
|
782
|
+
}
|
|
783
|
+
// config_set_impact_accel(sensor_mac, range){
|
|
784
|
+
// var packet = [244, 1, 0, 0, 0, range];
|
|
785
|
+
// return this.config_send(sensor_mac, packet);
|
|
786
|
+
// }
|
|
787
|
+
// config_set_impact_data_rate(sensor_mac, rate){
|
|
788
|
+
// var packet = [244, 2, 0, 0, 0, rate];
|
|
789
|
+
// return this.config_send(sensor_mac, packet);
|
|
790
|
+
// }
|
|
791
|
+
// config_set_impact_threshold(sensor_mac, threshold){
|
|
792
|
+
// var packet = [244, 3, 0, 0, 0, threshold];
|
|
793
|
+
// return this.config_send(sensor_mac, packet);
|
|
794
|
+
// }
|
|
795
|
+
// config_set_impact_duration(sensor_mac, duration){
|
|
796
|
+
// var packet = [244, 4, 0, 0, 0, duration];
|
|
797
|
+
// return this.config_send(sensor_mac, packet);
|
|
798
|
+
// }
|
|
799
|
+
|
|
766
800
|
config_set_sensor_forced_calibration(sensor_mac, value){
|
|
767
801
|
var packet = [244, 31, 0, 0, 0];
|
|
768
802
|
var cal_val = int2Bytes(value, 2);
|
|
@@ -993,6 +1027,13 @@ module.exports = class WirelessSensor{
|
|
|
993
1027
|
console.log(packet);
|
|
994
1028
|
return this.config_send(sensor_mac, packet);
|
|
995
1029
|
}
|
|
1030
|
+
config_set_sensor_boot_time_78(sensor_mac, value){
|
|
1031
|
+
console.log('config_set_sensor_boot_time_78');
|
|
1032
|
+
var packet = [244, 78, 0, 0, 0];
|
|
1033
|
+
packet.push(...value);
|
|
1034
|
+
console.log(packet);
|
|
1035
|
+
return this.config_send(sensor_mac, packet);
|
|
1036
|
+
}
|
|
996
1037
|
config_set_payload_length_80(sensor_mac, value){
|
|
997
1038
|
console.log('config_set_payload_length_80');
|
|
998
1039
|
var packet = [244, 79, 0, 0, 80, 68, value];
|
|
@@ -2216,25 +2257,42 @@ function sensor_types(parent){
|
|
|
2216
2257
|
},
|
|
2217
2258
|
'78': {
|
|
2218
2259
|
name: 'Oil Particulate Counter Sensor',
|
|
2219
|
-
parse: (d) => {
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2260
|
+
parse: (d, original_payload) => {
|
|
2261
|
+
if(original_payload[1] <= 3){
|
|
2262
|
+
return {
|
|
2263
|
+
ferro_particles_30_50_um: d.slice(0, 4).reduce(msbLsb)/100,
|
|
2264
|
+
ferro_particles_50_100_um: d.slice(4, 8).reduce(msbLsb)/100,
|
|
2265
|
+
ferro_particles_100_200_um: d.slice(8, 12).reduce(msbLsb)/100,
|
|
2266
|
+
ferro_particles_200_400_um: d.slice(12, 16).reduce(msbLsb)/100,
|
|
2267
|
+
ferro_particles_400_800_um: d.slice(16, 20).reduce(msbLsb)/100,
|
|
2268
|
+
ferro_particles_gt_800_um: d.slice(20, 24).reduce(msbLsb)/100,
|
|
2269
|
+
ferro_particles_total: d.slice(24, 28).reduce(msbLsb)/100,
|
|
2270
|
+
non_ferro_particles_120_200_um: d.slice(28, 32).reduce(msbLsb)/100,
|
|
2271
|
+
non_ferro_particles_200_400_um: d.slice(32, 36).reduce(msbLsb)/100,
|
|
2272
|
+
non_ferro_particles_400_800_um: d.slice(36, 40).reduce(msbLsb)/100
|
|
2273
|
+
};
|
|
2274
|
+
}else{
|
|
2275
|
+
return {
|
|
2276
|
+
ferro_particles_30_50_um: d.slice(0, 4).reduce(msbLsb)/100,
|
|
2277
|
+
ferro_particles_50_100_um: d.slice(4, 8).reduce(msbLsb)/100,
|
|
2278
|
+
ferro_particles_100_200_um: d.slice(8, 12).reduce(msbLsb)/100,
|
|
2279
|
+
ferro_particles_200_400_um: d.slice(12, 16).reduce(msbLsb)/100,
|
|
2280
|
+
ferro_particles_400_800_um: d.slice(16, 20).reduce(msbLsb)/100,
|
|
2281
|
+
ferro_particles_gt_800_um: d.slice(20, 24).reduce(msbLsb)/100,
|
|
2282
|
+
ferro_particles_total: d.slice(24, 28).reduce(msbLsb)/100,
|
|
2283
|
+
non_ferro_particles_120_200_um: d.slice(28, 32).reduce(msbLsb)/100,
|
|
2284
|
+
non_ferro_particles_200_400_um: d.slice(32, 36).reduce(msbLsb)/100,
|
|
2285
|
+
non_ferro_particles_400_800_um: d.slice(36, 40).reduce(msbLsb)/100,
|
|
2286
|
+
non_ferro_particles_800_1600_um: d.slice(40, 44).reduce(msbLsb)/100,
|
|
2287
|
+
non_ferro_particles_gt_1600_um: d.slice(44, 48).reduce(msbLsb)/100,
|
|
2288
|
+
non_ferro_particles_total: d.slice(48, 52).reduce(msbLsb)/100,
|
|
2289
|
+
ferro_particles_total_24h: d.slice(52, 56).reduce(msbLsb)/100,
|
|
2290
|
+
non_ferro_particles_total_24h: d.slice(56, 60).reduce(msbLsb)/100,
|
|
2291
|
+
ferro_concentration: d.slice(60, 64).reduce(msbLsb)/100,
|
|
2292
|
+
non_ferro_concentration: d.slice(64, 68).reduce(msbLsb)/100,
|
|
2293
|
+
flow: d.slice(68, 72).reduce(msbLsb)/100,
|
|
2294
|
+
};
|
|
2295
|
+
}
|
|
2238
2296
|
}
|
|
2239
2297
|
},
|
|
2240
2298
|
'79': {
|
|
@@ -2271,93 +2329,148 @@ function sensor_types(parent){
|
|
|
2271
2329
|
var current_packet = payload[16];
|
|
2272
2330
|
var sdata_start = 17;
|
|
2273
2331
|
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
if(this.hasOwnProperty('failure_no')){
|
|
2288
|
-
this.failure_no = this.failure_no + 1;
|
|
2289
|
-
}
|
|
2290
|
-
else{
|
|
2291
|
-
this.failure_no = 1;
|
|
2292
|
-
}
|
|
2293
|
-
if(this.hasOwnProperty('failure_no')){
|
|
2294
|
-
console.log('####falure no');
|
|
2295
|
-
console.log(this.failure_no);
|
|
2296
|
-
}
|
|
2297
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
2298
|
-
delete globalDevices[deviceAddr];
|
|
2299
|
-
if(current_packet != 1){
|
|
2300
|
-
return;
|
|
2301
|
-
} else{
|
|
2302
|
-
|
|
2303
|
-
var mode = payload[8];
|
|
2304
|
-
var odr = payload[9];
|
|
2305
|
-
var en_axis = payload[10] & 7;
|
|
2306
|
-
var fsr = payload[10] >> 5;
|
|
2307
|
-
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
switch(odr){
|
|
2311
|
-
case 6:
|
|
2312
|
-
odr = 50;
|
|
2313
|
-
break;
|
|
2314
|
-
case 7:
|
|
2315
|
-
odr = 100;
|
|
2316
|
-
break;
|
|
2317
|
-
case 8:
|
|
2318
|
-
odr = 200;
|
|
2319
|
-
break;
|
|
2320
|
-
case 9:
|
|
2321
|
-
odr = 400;
|
|
2322
|
-
break;
|
|
2323
|
-
case 10:
|
|
2324
|
-
odr = 800;
|
|
2325
|
-
break;
|
|
2326
|
-
case 11:
|
|
2327
|
-
odr = 1600;
|
|
2328
|
-
break;
|
|
2329
|
-
case 12:
|
|
2330
|
-
odr = 3200;
|
|
2331
|
-
break;
|
|
2332
|
-
case 13:
|
|
2333
|
-
odr = 6400;
|
|
2334
|
-
break;
|
|
2335
|
-
case 14:
|
|
2336
|
-
odr = 12800;
|
|
2337
|
-
break;
|
|
2338
|
-
case 15:
|
|
2339
|
-
odr = 25600;
|
|
2340
|
-
break;
|
|
2341
|
-
default:
|
|
2342
|
-
odr = 0;
|
|
2332
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
2333
|
+
if(expected_packets != 1){
|
|
2334
|
+
// 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
|
|
2335
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
2336
|
+
console.log('-----');
|
|
2337
|
+
console.log('bad packet breakdown deleting stream');
|
|
2338
|
+
console.log(current_packet);
|
|
2339
|
+
console.log(expected_packets);
|
|
2340
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
2341
|
+
console.log(current_packet == 1);
|
|
2342
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
2343
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2344
|
+
this.failure_no = this.failure_no + 1;
|
|
2343
2345
|
}
|
|
2346
|
+
else{
|
|
2347
|
+
this.failure_no = 1;
|
|
2348
|
+
}
|
|
2349
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2350
|
+
console.log('####falure no');
|
|
2351
|
+
console.log(this.failure_no);
|
|
2352
|
+
}
|
|
2353
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
2354
|
+
delete globalDevices[deviceAddr];
|
|
2355
|
+
if(current_packet != 1){
|
|
2356
|
+
return;
|
|
2357
|
+
} else{
|
|
2358
|
+
|
|
2359
|
+
var mode = payload[8];
|
|
2360
|
+
var odr = payload[9];
|
|
2361
|
+
var en_axis = payload[10] & 7;
|
|
2362
|
+
var fsr = payload[10] >> 5;
|
|
2363
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
switch(odr){
|
|
2367
|
+
case 6:
|
|
2368
|
+
odr = 50;
|
|
2369
|
+
break;
|
|
2370
|
+
case 7:
|
|
2371
|
+
odr = 100;
|
|
2372
|
+
break;
|
|
2373
|
+
case 8:
|
|
2374
|
+
odr = 200;
|
|
2375
|
+
break;
|
|
2376
|
+
case 9:
|
|
2377
|
+
odr = 400;
|
|
2378
|
+
break;
|
|
2379
|
+
case 10:
|
|
2380
|
+
odr = 800;
|
|
2381
|
+
break;
|
|
2382
|
+
case 11:
|
|
2383
|
+
odr = 1600;
|
|
2384
|
+
break;
|
|
2385
|
+
case 12:
|
|
2386
|
+
odr = 3200;
|
|
2387
|
+
break;
|
|
2388
|
+
case 13:
|
|
2389
|
+
odr = 6400;
|
|
2390
|
+
break;
|
|
2391
|
+
case 14:
|
|
2392
|
+
odr = 12800;
|
|
2393
|
+
break;
|
|
2394
|
+
case 15:
|
|
2395
|
+
odr = 25600;
|
|
2396
|
+
break;
|
|
2397
|
+
default:
|
|
2398
|
+
odr = 0;
|
|
2399
|
+
}
|
|
2344
2400
|
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2401
|
+
globalDevices[deviceAddr] = {
|
|
2402
|
+
// stream_size: expected_packets,
|
|
2403
|
+
data: {},
|
|
2404
|
+
odr: odr,
|
|
2405
|
+
mo: mode,
|
|
2406
|
+
en_axis: en_axis,
|
|
2407
|
+
fsr: fsr,
|
|
2408
|
+
hour: hour,
|
|
2409
|
+
minute: minute,
|
|
2410
|
+
device_temp: device_temp,
|
|
2411
|
+
}
|
|
2412
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2413
|
+
return;
|
|
2355
2414
|
}
|
|
2415
|
+
}
|
|
2416
|
+
else{
|
|
2356
2417
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2357
|
-
return;
|
|
2358
2418
|
}
|
|
2359
2419
|
}
|
|
2360
2420
|
else{
|
|
2421
|
+
var mode = payload[8];
|
|
2422
|
+
var odr = payload[9];
|
|
2423
|
+
var en_axis = payload[10] & 7;
|
|
2424
|
+
var fsr = payload[10] >> 5;
|
|
2425
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
switch(odr){
|
|
2429
|
+
case 6:
|
|
2430
|
+
odr = 50;
|
|
2431
|
+
break;
|
|
2432
|
+
case 7:
|
|
2433
|
+
odr = 100;
|
|
2434
|
+
break;
|
|
2435
|
+
case 8:
|
|
2436
|
+
odr = 200;
|
|
2437
|
+
break;
|
|
2438
|
+
case 9:
|
|
2439
|
+
odr = 400;
|
|
2440
|
+
break;
|
|
2441
|
+
case 10:
|
|
2442
|
+
odr = 800;
|
|
2443
|
+
break;
|
|
2444
|
+
case 11:
|
|
2445
|
+
odr = 1600;
|
|
2446
|
+
break;
|
|
2447
|
+
case 12:
|
|
2448
|
+
odr = 3200;
|
|
2449
|
+
break;
|
|
2450
|
+
case 13:
|
|
2451
|
+
odr = 6400;
|
|
2452
|
+
break;
|
|
2453
|
+
case 14:
|
|
2454
|
+
odr = 12800;
|
|
2455
|
+
break;
|
|
2456
|
+
case 15:
|
|
2457
|
+
odr = 25600;
|
|
2458
|
+
break;
|
|
2459
|
+
default:
|
|
2460
|
+
odr = 0;
|
|
2461
|
+
}
|
|
2462
|
+
|
|
2463
|
+
globalDevices[deviceAddr] = {
|
|
2464
|
+
// stream_size: expected_packets,
|
|
2465
|
+
data: {},
|
|
2466
|
+
odr: odr,
|
|
2467
|
+
mo: mode,
|
|
2468
|
+
en_axis: en_axis,
|
|
2469
|
+
fsr: fsr,
|
|
2470
|
+
hour: hour,
|
|
2471
|
+
minute: minute,
|
|
2472
|
+
device_temp: device_temp,
|
|
2473
|
+
}
|
|
2361
2474
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2362
2475
|
}
|
|
2363
2476
|
|
|
@@ -2832,93 +2945,148 @@ function sensor_types(parent){
|
|
|
2832
2945
|
var current_packet = payload[16];
|
|
2833
2946
|
var sdata_start = 17;
|
|
2834
2947
|
|
|
2835
|
-
if(globalDevices.hasOwnProperty(deviceAddr)){
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
this.failure_no
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
2856
|
-
delete globalDevices[deviceAddr];
|
|
2857
|
-
if(current_packet != 1){
|
|
2858
|
-
return;
|
|
2859
|
-
} else{
|
|
2860
|
-
|
|
2861
|
-
var mode = payload[8];
|
|
2862
|
-
var odr = payload[9];
|
|
2863
|
-
var en_axis = payload[10] & 7;
|
|
2864
|
-
var fsr = payload[10] >> 5;
|
|
2865
|
-
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
switch(odr){
|
|
2869
|
-
case 6:
|
|
2870
|
-
odr = 50;
|
|
2871
|
-
break;
|
|
2872
|
-
case 7:
|
|
2873
|
-
odr = 100;
|
|
2874
|
-
break;
|
|
2875
|
-
case 8:
|
|
2876
|
-
odr = 200;
|
|
2877
|
-
break;
|
|
2878
|
-
case 9:
|
|
2879
|
-
odr = 400;
|
|
2880
|
-
break;
|
|
2881
|
-
case 10:
|
|
2882
|
-
odr = 800;
|
|
2883
|
-
break;
|
|
2884
|
-
case 11:
|
|
2885
|
-
odr = 1600;
|
|
2886
|
-
break;
|
|
2887
|
-
case 12:
|
|
2888
|
-
odr = 3200;
|
|
2889
|
-
break;
|
|
2890
|
-
case 13:
|
|
2891
|
-
odr = 6400;
|
|
2892
|
-
break;
|
|
2893
|
-
case 14:
|
|
2894
|
-
odr = 12800;
|
|
2895
|
-
break;
|
|
2896
|
-
case 15:
|
|
2897
|
-
odr = 25600;
|
|
2898
|
-
break;
|
|
2899
|
-
default:
|
|
2900
|
-
odr = 0;
|
|
2948
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
2949
|
+
if(expected_packets != 1){
|
|
2950
|
+
// 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
|
|
2951
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
2952
|
+
console.log('-----');
|
|
2953
|
+
console.log('bad packet breakdown deleting stream');
|
|
2954
|
+
console.log(current_packet);
|
|
2955
|
+
console.log(expected_packets);
|
|
2956
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
2957
|
+
console.log(current_packet == 1);
|
|
2958
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
2959
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2960
|
+
this.failure_no = this.failure_no + 1;
|
|
2961
|
+
}
|
|
2962
|
+
else{
|
|
2963
|
+
this.failure_no = 1;
|
|
2964
|
+
}
|
|
2965
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2966
|
+
console.log('####falure no');
|
|
2967
|
+
console.log(this.failure_no);
|
|
2901
2968
|
}
|
|
2969
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
2970
|
+
delete globalDevices[deviceAddr];
|
|
2971
|
+
if(current_packet != 1){
|
|
2972
|
+
return;
|
|
2973
|
+
} else{
|
|
2974
|
+
var mode = payload[8];
|
|
2975
|
+
var odr = payload[9];
|
|
2976
|
+
var en_axis = payload[10] & 7;
|
|
2977
|
+
var fsr = payload[10] >> 5;
|
|
2978
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2979
|
+
|
|
2980
|
+
switch(odr){
|
|
2981
|
+
case 6:
|
|
2982
|
+
odr = 50;
|
|
2983
|
+
break;
|
|
2984
|
+
case 7:
|
|
2985
|
+
odr = 100;
|
|
2986
|
+
break;
|
|
2987
|
+
case 8:
|
|
2988
|
+
odr = 200;
|
|
2989
|
+
break;
|
|
2990
|
+
case 9:
|
|
2991
|
+
odr = 400;
|
|
2992
|
+
break;
|
|
2993
|
+
case 10:
|
|
2994
|
+
odr = 800;
|
|
2995
|
+
break;
|
|
2996
|
+
case 11:
|
|
2997
|
+
odr = 1600;
|
|
2998
|
+
break;
|
|
2999
|
+
case 12:
|
|
3000
|
+
odr = 3200;
|
|
3001
|
+
break;
|
|
3002
|
+
case 13:
|
|
3003
|
+
odr = 6400;
|
|
3004
|
+
break;
|
|
3005
|
+
case 14:
|
|
3006
|
+
odr = 12800;
|
|
3007
|
+
break;
|
|
3008
|
+
case 15:
|
|
3009
|
+
odr = 25600;
|
|
3010
|
+
break;
|
|
3011
|
+
default:
|
|
3012
|
+
odr = 0;
|
|
3013
|
+
}
|
|
2902
3014
|
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
3015
|
+
globalDevices[deviceAddr] = {
|
|
3016
|
+
// stream_size: expected_packets,
|
|
3017
|
+
data: {},
|
|
3018
|
+
odr: odr,
|
|
3019
|
+
mo: mode,
|
|
3020
|
+
en_axis: en_axis,
|
|
3021
|
+
fsr: fsr,
|
|
3022
|
+
hour: hour,
|
|
3023
|
+
minute: minute,
|
|
3024
|
+
device_temp: device_temp,
|
|
3025
|
+
}
|
|
3026
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3027
|
+
return;
|
|
2913
3028
|
}
|
|
3029
|
+
}
|
|
3030
|
+
else{
|
|
2914
3031
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2915
|
-
return;
|
|
2916
3032
|
}
|
|
2917
3033
|
}
|
|
2918
3034
|
else{
|
|
3035
|
+
var mode = payload[8];
|
|
3036
|
+
var odr = payload[9];
|
|
3037
|
+
var en_axis = payload[10] & 7;
|
|
3038
|
+
var fsr = payload[10] >> 5;
|
|
3039
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3040
|
+
|
|
3041
|
+
|
|
3042
|
+
switch(odr){
|
|
3043
|
+
case 6:
|
|
3044
|
+
odr = 50;
|
|
3045
|
+
break;
|
|
3046
|
+
case 7:
|
|
3047
|
+
odr = 100;
|
|
3048
|
+
break;
|
|
3049
|
+
case 8:
|
|
3050
|
+
odr = 200;
|
|
3051
|
+
break;
|
|
3052
|
+
case 9:
|
|
3053
|
+
odr = 400;
|
|
3054
|
+
break;
|
|
3055
|
+
case 10:
|
|
3056
|
+
odr = 800;
|
|
3057
|
+
break;
|
|
3058
|
+
case 11:
|
|
3059
|
+
odr = 1600;
|
|
3060
|
+
break;
|
|
3061
|
+
case 12:
|
|
3062
|
+
odr = 3200;
|
|
3063
|
+
break;
|
|
3064
|
+
case 13:
|
|
3065
|
+
odr = 6400;
|
|
3066
|
+
break;
|
|
3067
|
+
case 14:
|
|
3068
|
+
odr = 12800;
|
|
3069
|
+
break;
|
|
3070
|
+
case 15:
|
|
3071
|
+
odr = 25600;
|
|
3072
|
+
break;
|
|
3073
|
+
default:
|
|
3074
|
+
odr = 0;
|
|
3075
|
+
}
|
|
3076
|
+
|
|
3077
|
+
globalDevices[deviceAddr] = {
|
|
3078
|
+
// stream_size: expected_packets,
|
|
3079
|
+
data: {},
|
|
3080
|
+
odr: odr,
|
|
3081
|
+
mo: mode,
|
|
3082
|
+
en_axis: en_axis,
|
|
3083
|
+
fsr: fsr,
|
|
3084
|
+
hour: hour,
|
|
3085
|
+
minute: minute,
|
|
3086
|
+
device_temp: device_temp,
|
|
3087
|
+
}
|
|
2919
3088
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2920
3089
|
}
|
|
2921
|
-
|
|
2922
3090
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
2923
3091
|
var raw_data = new Array();
|
|
2924
3092
|
|
|
@@ -3049,7 +3217,6 @@ function sensor_types(parent){
|
|
|
3049
3217
|
return;
|
|
3050
3218
|
}
|
|
3051
3219
|
}else{
|
|
3052
|
-
|
|
3053
3220
|
var mode = payload[8];
|
|
3054
3221
|
var odr = payload[9];
|
|
3055
3222
|
var en_axis = payload[10] & 7;
|
|
@@ -3577,93 +3744,150 @@ function sensor_types(parent){
|
|
|
3577
3744
|
var current_packet = payload[16];
|
|
3578
3745
|
var sdata_start = 17;
|
|
3579
3746
|
|
|
3580
|
-
if(globalDevices.hasOwnProperty(deviceAddr)){
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
this.failure_no
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
if(this.hasOwnProperty('failure_no')){
|
|
3597
|
-
console.log('####falure no');
|
|
3598
|
-
console.log(this.failure_no);
|
|
3599
|
-
}
|
|
3600
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
3601
|
-
delete globalDevices[deviceAddr];
|
|
3602
|
-
if(current_packet != 1){
|
|
3603
|
-
return;
|
|
3604
|
-
} else{
|
|
3605
|
-
|
|
3606
|
-
var mode = payload[8];
|
|
3607
|
-
var odr = payload[9];
|
|
3608
|
-
var en_axis = payload[10] & 7;
|
|
3609
|
-
var fsr = payload[10] >> 5;
|
|
3610
|
-
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
switch(odr){
|
|
3614
|
-
case 6:
|
|
3615
|
-
odr = 50;
|
|
3616
|
-
break;
|
|
3617
|
-
case 7:
|
|
3618
|
-
odr = 100;
|
|
3619
|
-
break;
|
|
3620
|
-
case 8:
|
|
3621
|
-
odr = 200;
|
|
3622
|
-
break;
|
|
3623
|
-
case 9:
|
|
3624
|
-
odr = 400;
|
|
3625
|
-
break;
|
|
3626
|
-
case 10:
|
|
3627
|
-
odr = 800;
|
|
3628
|
-
break;
|
|
3629
|
-
case 11:
|
|
3630
|
-
odr = 1600;
|
|
3631
|
-
break;
|
|
3632
|
-
case 12:
|
|
3633
|
-
odr = 3200;
|
|
3634
|
-
break;
|
|
3635
|
-
case 13:
|
|
3636
|
-
odr = 6400;
|
|
3637
|
-
break;
|
|
3638
|
-
case 14:
|
|
3639
|
-
odr = 12800;
|
|
3640
|
-
break;
|
|
3641
|
-
case 15:
|
|
3642
|
-
odr = 25600;
|
|
3643
|
-
break;
|
|
3644
|
-
default:
|
|
3645
|
-
odr = 0;
|
|
3747
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
3748
|
+
if(expected_packets != 1){
|
|
3749
|
+
// 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
|
|
3750
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
3751
|
+
console.log('-----');
|
|
3752
|
+
console.log('bad packet breakdown deleting stream');
|
|
3753
|
+
console.log(current_packet);
|
|
3754
|
+
console.log(expected_packets);
|
|
3755
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
3756
|
+
console.log(current_packet == 1);
|
|
3757
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
3758
|
+
if(this.hasOwnProperty('failure_no')){
|
|
3759
|
+
this.failure_no = this.failure_no + 1;
|
|
3760
|
+
}
|
|
3761
|
+
else{
|
|
3762
|
+
this.failure_no = 1;
|
|
3646
3763
|
}
|
|
3764
|
+
if(this.hasOwnProperty('failure_no')){
|
|
3765
|
+
console.log('####falure no');
|
|
3766
|
+
console.log(this.failure_no);
|
|
3767
|
+
}
|
|
3768
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
3769
|
+
delete globalDevices[deviceAddr];
|
|
3770
|
+
if(current_packet != 1){
|
|
3771
|
+
return;
|
|
3772
|
+
} else{
|
|
3773
|
+
|
|
3774
|
+
var mode = payload[8];
|
|
3775
|
+
var odr = payload[9];
|
|
3776
|
+
var en_axis = payload[10] & 7;
|
|
3777
|
+
var fsr = payload[10] >> 5;
|
|
3778
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3779
|
+
|
|
3780
|
+
|
|
3781
|
+
switch(odr){
|
|
3782
|
+
case 6:
|
|
3783
|
+
odr = 50;
|
|
3784
|
+
break;
|
|
3785
|
+
case 7:
|
|
3786
|
+
odr = 100;
|
|
3787
|
+
break;
|
|
3788
|
+
case 8:
|
|
3789
|
+
odr = 200;
|
|
3790
|
+
break;
|
|
3791
|
+
case 9:
|
|
3792
|
+
odr = 400;
|
|
3793
|
+
break;
|
|
3794
|
+
case 10:
|
|
3795
|
+
odr = 800;
|
|
3796
|
+
break;
|
|
3797
|
+
case 11:
|
|
3798
|
+
odr = 1600;
|
|
3799
|
+
break;
|
|
3800
|
+
case 12:
|
|
3801
|
+
odr = 3200;
|
|
3802
|
+
break;
|
|
3803
|
+
case 13:
|
|
3804
|
+
odr = 6400;
|
|
3805
|
+
break;
|
|
3806
|
+
case 14:
|
|
3807
|
+
odr = 12800;
|
|
3808
|
+
break;
|
|
3809
|
+
case 15:
|
|
3810
|
+
odr = 25600;
|
|
3811
|
+
break;
|
|
3812
|
+
default:
|
|
3813
|
+
odr = 0;
|
|
3814
|
+
}
|
|
3647
3815
|
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3816
|
+
globalDevices[deviceAddr] = {
|
|
3817
|
+
// stream_size: expected_packets,
|
|
3818
|
+
data: {},
|
|
3819
|
+
odr: odr,
|
|
3820
|
+
mo: mode,
|
|
3821
|
+
en_axis: en_axis,
|
|
3822
|
+
fsr: fsr,
|
|
3823
|
+
hour: hour,
|
|
3824
|
+
minute: minute,
|
|
3825
|
+
device_temp: device_temp,
|
|
3826
|
+
}
|
|
3827
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3828
|
+
return;
|
|
3658
3829
|
}
|
|
3830
|
+
}
|
|
3831
|
+
else{
|
|
3659
3832
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3660
|
-
return;
|
|
3661
3833
|
}
|
|
3662
3834
|
}
|
|
3663
3835
|
else{
|
|
3836
|
+
var mode = payload[8];
|
|
3837
|
+
var odr = payload[9];
|
|
3838
|
+
var en_axis = payload[10] & 7;
|
|
3839
|
+
var fsr = payload[10] >> 5;
|
|
3840
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3841
|
+
|
|
3842
|
+
|
|
3843
|
+
switch(odr){
|
|
3844
|
+
case 6:
|
|
3845
|
+
odr = 50;
|
|
3846
|
+
break;
|
|
3847
|
+
case 7:
|
|
3848
|
+
odr = 100;
|
|
3849
|
+
break;
|
|
3850
|
+
case 8:
|
|
3851
|
+
odr = 200;
|
|
3852
|
+
break;
|
|
3853
|
+
case 9:
|
|
3854
|
+
odr = 400;
|
|
3855
|
+
break;
|
|
3856
|
+
case 10:
|
|
3857
|
+
odr = 800;
|
|
3858
|
+
break;
|
|
3859
|
+
case 11:
|
|
3860
|
+
odr = 1600;
|
|
3861
|
+
break;
|
|
3862
|
+
case 12:
|
|
3863
|
+
odr = 3200;
|
|
3864
|
+
break;
|
|
3865
|
+
case 13:
|
|
3866
|
+
odr = 6400;
|
|
3867
|
+
break;
|
|
3868
|
+
case 14:
|
|
3869
|
+
odr = 12800;
|
|
3870
|
+
break;
|
|
3871
|
+
case 15:
|
|
3872
|
+
odr = 25600;
|
|
3873
|
+
break;
|
|
3874
|
+
default:
|
|
3875
|
+
odr = 0;
|
|
3876
|
+
}
|
|
3877
|
+
|
|
3878
|
+
globalDevices[deviceAddr] = {
|
|
3879
|
+
// stream_size: expected_packets,
|
|
3880
|
+
data: {},
|
|
3881
|
+
odr: odr,
|
|
3882
|
+
mo: mode,
|
|
3883
|
+
en_axis: en_axis,
|
|
3884
|
+
fsr: fsr,
|
|
3885
|
+
hour: hour,
|
|
3886
|
+
minute: minute,
|
|
3887
|
+
device_temp: device_temp,
|
|
3888
|
+
}
|
|
3664
3889
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3665
3890
|
}
|
|
3666
|
-
|
|
3667
3891
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
3668
3892
|
var raw_data = new Array();
|
|
3669
3893
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -4136,96 +4360,150 @@ function sensor_types(parent){
|
|
|
4136
4360
|
var current_packet = payload[16];
|
|
4137
4361
|
var sdata_start = 17;
|
|
4138
4362
|
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
this.failure_no
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
console.log('####falure no');
|
|
4160
|
-
console.log(this.failure_no);
|
|
4161
|
-
}
|
|
4162
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
4163
|
-
delete globalDevices[deviceAddr];
|
|
4164
|
-
if(current_packet != 1){
|
|
4165
|
-
return;
|
|
4166
|
-
} else{
|
|
4167
|
-
|
|
4168
|
-
var mode = payload[8];
|
|
4169
|
-
var odr = payload[9];
|
|
4170
|
-
var en_axis = payload[10] & 7;
|
|
4171
|
-
var fsr = payload[10] >> 5;
|
|
4172
|
-
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
switch(odr){
|
|
4176
|
-
case 6:
|
|
4177
|
-
odr = 50;
|
|
4178
|
-
break;
|
|
4179
|
-
case 7:
|
|
4180
|
-
odr = 100;
|
|
4181
|
-
break;
|
|
4182
|
-
case 8:
|
|
4183
|
-
odr = 200;
|
|
4184
|
-
break;
|
|
4185
|
-
case 9:
|
|
4186
|
-
odr = 400;
|
|
4187
|
-
break;
|
|
4188
|
-
case 10:
|
|
4189
|
-
odr = 800;
|
|
4190
|
-
break;
|
|
4191
|
-
case 11:
|
|
4192
|
-
odr = 1600;
|
|
4193
|
-
break;
|
|
4194
|
-
case 12:
|
|
4195
|
-
odr = 3200;
|
|
4196
|
-
break;
|
|
4197
|
-
case 13:
|
|
4198
|
-
odr = 6400;
|
|
4199
|
-
break;
|
|
4200
|
-
case 14:
|
|
4201
|
-
odr = 12800;
|
|
4202
|
-
break;
|
|
4203
|
-
case 15:
|
|
4204
|
-
odr = 25600;
|
|
4205
|
-
break;
|
|
4206
|
-
default:
|
|
4207
|
-
odr = 0;
|
|
4363
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
4364
|
+
if(expected_packets != 1){
|
|
4365
|
+
// 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
|
|
4366
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
4367
|
+
console.log('-----');
|
|
4368
|
+
console.log('bad packet breakdown deleting stream');
|
|
4369
|
+
console.log(current_packet);
|
|
4370
|
+
console.log(expected_packets);
|
|
4371
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
4372
|
+
console.log(current_packet == 1);
|
|
4373
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
4374
|
+
if(this.hasOwnProperty('failure_no')){
|
|
4375
|
+
this.failure_no = this.failure_no + 1;
|
|
4376
|
+
}
|
|
4377
|
+
else{
|
|
4378
|
+
this.failure_no = 1;
|
|
4379
|
+
}
|
|
4380
|
+
if(this.hasOwnProperty('failure_no')){
|
|
4381
|
+
console.log('####falure no');
|
|
4382
|
+
console.log(this.failure_no);
|
|
4208
4383
|
}
|
|
4384
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
4385
|
+
delete globalDevices[deviceAddr];
|
|
4386
|
+
if(current_packet != 1){
|
|
4387
|
+
return;
|
|
4388
|
+
} else{
|
|
4389
|
+
|
|
4390
|
+
var mode = payload[8];
|
|
4391
|
+
var odr = payload[9];
|
|
4392
|
+
var en_axis = payload[10] & 7;
|
|
4393
|
+
var fsr = payload[10] >> 5;
|
|
4394
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4395
|
+
|
|
4396
|
+
|
|
4397
|
+
switch(odr){
|
|
4398
|
+
case 6:
|
|
4399
|
+
odr = 50;
|
|
4400
|
+
break;
|
|
4401
|
+
case 7:
|
|
4402
|
+
odr = 100;
|
|
4403
|
+
break;
|
|
4404
|
+
case 8:
|
|
4405
|
+
odr = 200;
|
|
4406
|
+
break;
|
|
4407
|
+
case 9:
|
|
4408
|
+
odr = 400;
|
|
4409
|
+
break;
|
|
4410
|
+
case 10:
|
|
4411
|
+
odr = 800;
|
|
4412
|
+
break;
|
|
4413
|
+
case 11:
|
|
4414
|
+
odr = 1600;
|
|
4415
|
+
break;
|
|
4416
|
+
case 12:
|
|
4417
|
+
odr = 3200;
|
|
4418
|
+
break;
|
|
4419
|
+
case 13:
|
|
4420
|
+
odr = 6400;
|
|
4421
|
+
break;
|
|
4422
|
+
case 14:
|
|
4423
|
+
odr = 12800;
|
|
4424
|
+
break;
|
|
4425
|
+
case 15:
|
|
4426
|
+
odr = 25600;
|
|
4427
|
+
break;
|
|
4428
|
+
default:
|
|
4429
|
+
odr = 0;
|
|
4430
|
+
}
|
|
4209
4431
|
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4432
|
+
globalDevices[deviceAddr] = {
|
|
4433
|
+
// stream_size: expected_packets,
|
|
4434
|
+
data: {},
|
|
4435
|
+
odr: odr,
|
|
4436
|
+
mo: mode,
|
|
4437
|
+
en_axis: en_axis,
|
|
4438
|
+
fsr: fsr,
|
|
4439
|
+
hour: hour,
|
|
4440
|
+
minute: minute,
|
|
4441
|
+
device_temp: device_temp,
|
|
4442
|
+
}
|
|
4443
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4444
|
+
return;
|
|
4220
4445
|
}
|
|
4446
|
+
}
|
|
4447
|
+
else{
|
|
4221
4448
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4222
|
-
return;
|
|
4223
4449
|
}
|
|
4224
4450
|
}
|
|
4225
4451
|
else{
|
|
4452
|
+
var mode = payload[8];
|
|
4453
|
+
var odr = payload[9];
|
|
4454
|
+
var en_axis = payload[10] & 7;
|
|
4455
|
+
var fsr = payload[10] >> 5;
|
|
4456
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4457
|
+
|
|
4458
|
+
|
|
4459
|
+
switch(odr){
|
|
4460
|
+
case 6:
|
|
4461
|
+
odr = 50;
|
|
4462
|
+
break;
|
|
4463
|
+
case 7:
|
|
4464
|
+
odr = 100;
|
|
4465
|
+
break;
|
|
4466
|
+
case 8:
|
|
4467
|
+
odr = 200;
|
|
4468
|
+
break;
|
|
4469
|
+
case 9:
|
|
4470
|
+
odr = 400;
|
|
4471
|
+
break;
|
|
4472
|
+
case 10:
|
|
4473
|
+
odr = 800;
|
|
4474
|
+
break;
|
|
4475
|
+
case 11:
|
|
4476
|
+
odr = 1600;
|
|
4477
|
+
break;
|
|
4478
|
+
case 12:
|
|
4479
|
+
odr = 3200;
|
|
4480
|
+
break;
|
|
4481
|
+
case 13:
|
|
4482
|
+
odr = 6400;
|
|
4483
|
+
break;
|
|
4484
|
+
case 14:
|
|
4485
|
+
odr = 12800;
|
|
4486
|
+
break;
|
|
4487
|
+
case 15:
|
|
4488
|
+
odr = 25600;
|
|
4489
|
+
break;
|
|
4490
|
+
default:
|
|
4491
|
+
odr = 0;
|
|
4492
|
+
}
|
|
4493
|
+
|
|
4494
|
+
globalDevices[deviceAddr] = {
|
|
4495
|
+
// stream_size: expected_packets,
|
|
4496
|
+
data: {},
|
|
4497
|
+
odr: odr,
|
|
4498
|
+
mo: mode,
|
|
4499
|
+
en_axis: en_axis,
|
|
4500
|
+
fsr: fsr,
|
|
4501
|
+
hour: hour,
|
|
4502
|
+
minute: minute,
|
|
4503
|
+
device_temp: device_temp,
|
|
4504
|
+
}
|
|
4226
4505
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4227
4506
|
}
|
|
4228
|
-
|
|
4229
4507
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
4230
4508
|
var raw_data = new Array();
|
|
4231
4509
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -4697,6 +4975,14 @@ function sensor_types(parent){
|
|
|
4697
4975
|
};
|
|
4698
4976
|
}
|
|
4699
4977
|
},
|
|
4978
|
+
'91': {
|
|
4979
|
+
name: 'Wireless Air Velocity Sensor HVAC',
|
|
4980
|
+
parse: (d) => {
|
|
4981
|
+
return {
|
|
4982
|
+
velocity_mps: signInt(msbLsb(d[0], d[1]), 16) / 1000
|
|
4983
|
+
};
|
|
4984
|
+
}
|
|
4985
|
+
},
|
|
4700
4986
|
'92': {
|
|
4701
4987
|
name: 'Sound Sensor',
|
|
4702
4988
|
parse: (d) => {
|
|
@@ -4855,7 +5141,7 @@ function sensor_types(parent){
|
|
|
4855
5141
|
// 0x01 (Success + OTF) ,
|
|
4856
5142
|
// 0x02 (Error + no OTF),
|
|
4857
5143
|
// 0x03 (Error + OTF)
|
|
4858
|
-
if(d[7]>1){
|
|
5144
|
+
if(d[7] & 15 > 1){
|
|
4859
5145
|
console.log('!-----!');
|
|
4860
5146
|
console.log('515 Error Detected');
|
|
4861
5147
|
console.log(d[7]);
|
|
@@ -4980,100 +5266,158 @@ function sensor_types(parent){
|
|
|
4980
5266
|
var current_packet = payload[20];
|
|
4981
5267
|
var sdata_start = 21;
|
|
4982
5268
|
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
this.failure_no
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
console.log('####falure no');
|
|
5004
|
-
console.log(this.failure_no);
|
|
5005
|
-
}
|
|
5006
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
5007
|
-
delete globalDevices[deviceAddr];
|
|
5008
|
-
if(current_packet != 1){
|
|
5009
|
-
return;
|
|
5010
|
-
} else{
|
|
5011
|
-
|
|
5012
|
-
var mode = payload[8];
|
|
5013
|
-
var odr = payload[9];
|
|
5014
|
-
var en_axis = payload[10] & 7;
|
|
5015
|
-
var fsr = payload[10] >> 5;
|
|
5016
|
-
var device_temp = signInt(msbLsb(payload[13], payload[14]))/100;
|
|
5017
|
-
var adc_1_raw = msbLsb(payload[15], payload[16]);
|
|
5018
|
-
var adc_2_raw = msbLsb(payload[17], payload[18]);
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
switch(odr){
|
|
5022
|
-
case 6:
|
|
5023
|
-
odr = 50;
|
|
5024
|
-
break;
|
|
5025
|
-
case 7:
|
|
5026
|
-
odr = 100;
|
|
5027
|
-
break;
|
|
5028
|
-
case 8:
|
|
5029
|
-
odr = 200;
|
|
5030
|
-
break;
|
|
5031
|
-
case 9:
|
|
5032
|
-
odr = 400;
|
|
5033
|
-
break;
|
|
5034
|
-
case 10:
|
|
5035
|
-
odr = 800;
|
|
5036
|
-
break;
|
|
5037
|
-
case 11:
|
|
5038
|
-
odr = 1600;
|
|
5039
|
-
break;
|
|
5040
|
-
case 12:
|
|
5041
|
-
odr = 3200;
|
|
5042
|
-
break;
|
|
5043
|
-
case 13:
|
|
5044
|
-
odr = 6400;
|
|
5045
|
-
break;
|
|
5046
|
-
case 14:
|
|
5047
|
-
odr = 12800;
|
|
5048
|
-
break;
|
|
5049
|
-
case 15:
|
|
5050
|
-
odr = 25600;
|
|
5051
|
-
break;
|
|
5052
|
-
default:
|
|
5053
|
-
odr = 0;
|
|
5269
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
5270
|
+
if(expected_packets != 1){
|
|
5271
|
+
// 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
|
|
5272
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
5273
|
+
console.log('-----');
|
|
5274
|
+
console.log('bad packet breakdown deleting stream');
|
|
5275
|
+
console.log(current_packet);
|
|
5276
|
+
console.log(expected_packets);
|
|
5277
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
5278
|
+
console.log(current_packet == 1);
|
|
5279
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
5280
|
+
if(this.hasOwnProperty('failure_no')){
|
|
5281
|
+
this.failure_no = this.failure_no + 1;
|
|
5282
|
+
}
|
|
5283
|
+
else{
|
|
5284
|
+
this.failure_no = 1;
|
|
5285
|
+
}
|
|
5286
|
+
if(this.hasOwnProperty('failure_no')){
|
|
5287
|
+
console.log('####falure no');
|
|
5288
|
+
console.log(this.failure_no);
|
|
5054
5289
|
}
|
|
5290
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
5291
|
+
delete globalDevices[deviceAddr];
|
|
5292
|
+
if(current_packet != 1){
|
|
5293
|
+
return;
|
|
5294
|
+
} else{
|
|
5295
|
+
|
|
5296
|
+
var mode = payload[8];
|
|
5297
|
+
var odr = payload[9];
|
|
5298
|
+
var en_axis = payload[10] & 7;
|
|
5299
|
+
var fsr = payload[10] >> 5;
|
|
5300
|
+
var device_temp = signInt(msbLsb(payload[13], payload[14]))/100;
|
|
5301
|
+
var adc_1_raw = msbLsb(payload[15], payload[16]);
|
|
5302
|
+
var adc_2_raw = msbLsb(payload[17], payload[18]);
|
|
5303
|
+
|
|
5304
|
+
|
|
5305
|
+
switch(odr){
|
|
5306
|
+
case 6:
|
|
5307
|
+
odr = 50;
|
|
5308
|
+
break;
|
|
5309
|
+
case 7:
|
|
5310
|
+
odr = 100;
|
|
5311
|
+
break;
|
|
5312
|
+
case 8:
|
|
5313
|
+
odr = 200;
|
|
5314
|
+
break;
|
|
5315
|
+
case 9:
|
|
5316
|
+
odr = 400;
|
|
5317
|
+
break;
|
|
5318
|
+
case 10:
|
|
5319
|
+
odr = 800;
|
|
5320
|
+
break;
|
|
5321
|
+
case 11:
|
|
5322
|
+
odr = 1600;
|
|
5323
|
+
break;
|
|
5324
|
+
case 12:
|
|
5325
|
+
odr = 3200;
|
|
5326
|
+
break;
|
|
5327
|
+
case 13:
|
|
5328
|
+
odr = 6400;
|
|
5329
|
+
break;
|
|
5330
|
+
case 14:
|
|
5331
|
+
odr = 12800;
|
|
5332
|
+
break;
|
|
5333
|
+
case 15:
|
|
5334
|
+
odr = 25600;
|
|
5335
|
+
break;
|
|
5336
|
+
default:
|
|
5337
|
+
odr = 0;
|
|
5338
|
+
}
|
|
5055
5339
|
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5340
|
+
globalDevices[deviceAddr] = {
|
|
5341
|
+
// stream_size: expected_packets,
|
|
5342
|
+
data: {},
|
|
5343
|
+
odr: odr,
|
|
5344
|
+
mo: mode,
|
|
5345
|
+
en_axis: en_axis,
|
|
5346
|
+
fsr: fsr,
|
|
5347
|
+
hour: hour,
|
|
5348
|
+
minute: minute,
|
|
5349
|
+
adc_1_raw: adc_1_raw,
|
|
5350
|
+
adc_2_raw: adc_2_raw,
|
|
5351
|
+
device_temp: device_temp,
|
|
5352
|
+
}
|
|
5353
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5354
|
+
return;
|
|
5068
5355
|
}
|
|
5356
|
+
}
|
|
5357
|
+
else{
|
|
5069
5358
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5070
|
-
return;
|
|
5071
5359
|
}
|
|
5072
5360
|
}
|
|
5073
5361
|
else{
|
|
5362
|
+
var mode = payload[8];
|
|
5363
|
+
var odr = payload[9];
|
|
5364
|
+
var en_axis = payload[10] & 7;
|
|
5365
|
+
var fsr = payload[10] >> 5;
|
|
5366
|
+
var device_temp = signInt(msbLsb(payload[13], payload[14]))/100;
|
|
5367
|
+
var adc_1_raw = msbLsb(payload[15], payload[16]);
|
|
5368
|
+
var adc_2_raw = msbLsb(payload[17], payload[18]);
|
|
5369
|
+
|
|
5370
|
+
|
|
5371
|
+
switch(odr){
|
|
5372
|
+
case 6:
|
|
5373
|
+
odr = 50;
|
|
5374
|
+
break;
|
|
5375
|
+
case 7:
|
|
5376
|
+
odr = 100;
|
|
5377
|
+
break;
|
|
5378
|
+
case 8:
|
|
5379
|
+
odr = 200;
|
|
5380
|
+
break;
|
|
5381
|
+
case 9:
|
|
5382
|
+
odr = 400;
|
|
5383
|
+
break;
|
|
5384
|
+
case 10:
|
|
5385
|
+
odr = 800;
|
|
5386
|
+
break;
|
|
5387
|
+
case 11:
|
|
5388
|
+
odr = 1600;
|
|
5389
|
+
break;
|
|
5390
|
+
case 12:
|
|
5391
|
+
odr = 3200;
|
|
5392
|
+
break;
|
|
5393
|
+
case 13:
|
|
5394
|
+
odr = 6400;
|
|
5395
|
+
break;
|
|
5396
|
+
case 14:
|
|
5397
|
+
odr = 12800;
|
|
5398
|
+
break;
|
|
5399
|
+
case 15:
|
|
5400
|
+
odr = 25600;
|
|
5401
|
+
break;
|
|
5402
|
+
default:
|
|
5403
|
+
odr = 0;
|
|
5404
|
+
}
|
|
5405
|
+
|
|
5406
|
+
globalDevices[deviceAddr] = {
|
|
5407
|
+
// stream_size: expected_packets,
|
|
5408
|
+
data: {},
|
|
5409
|
+
odr: odr,
|
|
5410
|
+
mo: mode,
|
|
5411
|
+
en_axis: en_axis,
|
|
5412
|
+
fsr: fsr,
|
|
5413
|
+
hour: hour,
|
|
5414
|
+
minute: minute,
|
|
5415
|
+
adc_1_raw: adc_1_raw,
|
|
5416
|
+
adc_2_raw: adc_2_raw,
|
|
5417
|
+
device_temp: device_temp,
|
|
5418
|
+
}
|
|
5074
5419
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5075
5420
|
}
|
|
5076
|
-
|
|
5077
5421
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
5078
5422
|
var raw_data = new Array();
|
|
5079
5423
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -5562,6 +5906,16 @@ function sensor_types(parent){
|
|
|
5562
5906
|
}
|
|
5563
5907
|
}
|
|
5564
5908
|
},
|
|
5909
|
+
'521': {
|
|
5910
|
+
name: 'Type 520 - 6 Channel Current Temperature and Humidity',
|
|
5911
|
+
parse: (payload, parsed) => {
|
|
5912
|
+
return {
|
|
5913
|
+
lux_1: payload.slice(0, 2).reduce(msbLsb)/100,
|
|
5914
|
+
lux_2: payload.slice(2, 4).reduce(msbLsb)/100,
|
|
5915
|
+
lux_3: payload.slice(4, 6).reduce(msbLsb)/100
|
|
5916
|
+
}
|
|
5917
|
+
}
|
|
5918
|
+
},
|
|
5565
5919
|
'10000': {
|
|
5566
5920
|
name: '4-Relay',
|
|
5567
5921
|
parse: (d) => {
|