@ncd-io/node-red-enterprise-sensors 0.1.7 → 0.1.8
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 +759 -422
- 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];
|
|
@@ -2271,93 +2312,148 @@ function sensor_types(parent){
|
|
|
2271
2312
|
var current_packet = payload[16];
|
|
2272
2313
|
var sdata_start = 17;
|
|
2273
2314
|
|
|
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;
|
|
2315
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
2316
|
+
if(expected_packets != 1){
|
|
2317
|
+
// 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
|
|
2318
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
2319
|
+
console.log('-----');
|
|
2320
|
+
console.log('bad packet breakdown deleting stream');
|
|
2321
|
+
console.log(current_packet);
|
|
2322
|
+
console.log(expected_packets);
|
|
2323
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
2324
|
+
console.log(current_packet == 1);
|
|
2325
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
2326
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2327
|
+
this.failure_no = this.failure_no + 1;
|
|
2343
2328
|
}
|
|
2329
|
+
else{
|
|
2330
|
+
this.failure_no = 1;
|
|
2331
|
+
}
|
|
2332
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2333
|
+
console.log('####falure no');
|
|
2334
|
+
console.log(this.failure_no);
|
|
2335
|
+
}
|
|
2336
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
2337
|
+
delete globalDevices[deviceAddr];
|
|
2338
|
+
if(current_packet != 1){
|
|
2339
|
+
return;
|
|
2340
|
+
} else{
|
|
2341
|
+
|
|
2342
|
+
var mode = payload[8];
|
|
2343
|
+
var odr = payload[9];
|
|
2344
|
+
var en_axis = payload[10] & 7;
|
|
2345
|
+
var fsr = payload[10] >> 5;
|
|
2346
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2347
|
+
|
|
2348
|
+
|
|
2349
|
+
switch(odr){
|
|
2350
|
+
case 6:
|
|
2351
|
+
odr = 50;
|
|
2352
|
+
break;
|
|
2353
|
+
case 7:
|
|
2354
|
+
odr = 100;
|
|
2355
|
+
break;
|
|
2356
|
+
case 8:
|
|
2357
|
+
odr = 200;
|
|
2358
|
+
break;
|
|
2359
|
+
case 9:
|
|
2360
|
+
odr = 400;
|
|
2361
|
+
break;
|
|
2362
|
+
case 10:
|
|
2363
|
+
odr = 800;
|
|
2364
|
+
break;
|
|
2365
|
+
case 11:
|
|
2366
|
+
odr = 1600;
|
|
2367
|
+
break;
|
|
2368
|
+
case 12:
|
|
2369
|
+
odr = 3200;
|
|
2370
|
+
break;
|
|
2371
|
+
case 13:
|
|
2372
|
+
odr = 6400;
|
|
2373
|
+
break;
|
|
2374
|
+
case 14:
|
|
2375
|
+
odr = 12800;
|
|
2376
|
+
break;
|
|
2377
|
+
case 15:
|
|
2378
|
+
odr = 25600;
|
|
2379
|
+
break;
|
|
2380
|
+
default:
|
|
2381
|
+
odr = 0;
|
|
2382
|
+
}
|
|
2344
2383
|
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2384
|
+
globalDevices[deviceAddr] = {
|
|
2385
|
+
// stream_size: expected_packets,
|
|
2386
|
+
data: {},
|
|
2387
|
+
odr: odr,
|
|
2388
|
+
mo: mode,
|
|
2389
|
+
en_axis: en_axis,
|
|
2390
|
+
fsr: fsr,
|
|
2391
|
+
hour: hour,
|
|
2392
|
+
minute: minute,
|
|
2393
|
+
device_temp: device_temp,
|
|
2394
|
+
}
|
|
2395
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2396
|
+
return;
|
|
2355
2397
|
}
|
|
2398
|
+
}
|
|
2399
|
+
else{
|
|
2356
2400
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2357
|
-
return;
|
|
2358
2401
|
}
|
|
2359
2402
|
}
|
|
2360
2403
|
else{
|
|
2404
|
+
var mode = payload[8];
|
|
2405
|
+
var odr = payload[9];
|
|
2406
|
+
var en_axis = payload[10] & 7;
|
|
2407
|
+
var fsr = payload[10] >> 5;
|
|
2408
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2409
|
+
|
|
2410
|
+
|
|
2411
|
+
switch(odr){
|
|
2412
|
+
case 6:
|
|
2413
|
+
odr = 50;
|
|
2414
|
+
break;
|
|
2415
|
+
case 7:
|
|
2416
|
+
odr = 100;
|
|
2417
|
+
break;
|
|
2418
|
+
case 8:
|
|
2419
|
+
odr = 200;
|
|
2420
|
+
break;
|
|
2421
|
+
case 9:
|
|
2422
|
+
odr = 400;
|
|
2423
|
+
break;
|
|
2424
|
+
case 10:
|
|
2425
|
+
odr = 800;
|
|
2426
|
+
break;
|
|
2427
|
+
case 11:
|
|
2428
|
+
odr = 1600;
|
|
2429
|
+
break;
|
|
2430
|
+
case 12:
|
|
2431
|
+
odr = 3200;
|
|
2432
|
+
break;
|
|
2433
|
+
case 13:
|
|
2434
|
+
odr = 6400;
|
|
2435
|
+
break;
|
|
2436
|
+
case 14:
|
|
2437
|
+
odr = 12800;
|
|
2438
|
+
break;
|
|
2439
|
+
case 15:
|
|
2440
|
+
odr = 25600;
|
|
2441
|
+
break;
|
|
2442
|
+
default:
|
|
2443
|
+
odr = 0;
|
|
2444
|
+
}
|
|
2445
|
+
|
|
2446
|
+
globalDevices[deviceAddr] = {
|
|
2447
|
+
// stream_size: expected_packets,
|
|
2448
|
+
data: {},
|
|
2449
|
+
odr: odr,
|
|
2450
|
+
mo: mode,
|
|
2451
|
+
en_axis: en_axis,
|
|
2452
|
+
fsr: fsr,
|
|
2453
|
+
hour: hour,
|
|
2454
|
+
minute: minute,
|
|
2455
|
+
device_temp: device_temp,
|
|
2456
|
+
}
|
|
2361
2457
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2362
2458
|
}
|
|
2363
2459
|
|
|
@@ -2832,93 +2928,148 @@ function sensor_types(parent){
|
|
|
2832
2928
|
var current_packet = payload[16];
|
|
2833
2929
|
var sdata_start = 17;
|
|
2834
2930
|
|
|
2835
|
-
if(globalDevices.hasOwnProperty(deviceAddr)){
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
this.failure_no
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
if(this.hasOwnProperty('failure_no')){
|
|
2852
|
-
console.log('####falure no');
|
|
2853
|
-
console.log(this.failure_no);
|
|
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;
|
|
2931
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
2932
|
+
if(expected_packets != 1){
|
|
2933
|
+
// 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
|
|
2934
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
2935
|
+
console.log('-----');
|
|
2936
|
+
console.log('bad packet breakdown deleting stream');
|
|
2937
|
+
console.log(current_packet);
|
|
2938
|
+
console.log(expected_packets);
|
|
2939
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
2940
|
+
console.log(current_packet == 1);
|
|
2941
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
2942
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2943
|
+
this.failure_no = this.failure_no + 1;
|
|
2944
|
+
}
|
|
2945
|
+
else{
|
|
2946
|
+
this.failure_no = 1;
|
|
2901
2947
|
}
|
|
2948
|
+
if(this.hasOwnProperty('failure_no')){
|
|
2949
|
+
console.log('####falure no');
|
|
2950
|
+
console.log(this.failure_no);
|
|
2951
|
+
}
|
|
2952
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
2953
|
+
delete globalDevices[deviceAddr];
|
|
2954
|
+
if(current_packet != 1){
|
|
2955
|
+
return;
|
|
2956
|
+
} else{
|
|
2957
|
+
var mode = payload[8];
|
|
2958
|
+
var odr = payload[9];
|
|
2959
|
+
var en_axis = payload[10] & 7;
|
|
2960
|
+
var fsr = payload[10] >> 5;
|
|
2961
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
2962
|
+
|
|
2963
|
+
switch(odr){
|
|
2964
|
+
case 6:
|
|
2965
|
+
odr = 50;
|
|
2966
|
+
break;
|
|
2967
|
+
case 7:
|
|
2968
|
+
odr = 100;
|
|
2969
|
+
break;
|
|
2970
|
+
case 8:
|
|
2971
|
+
odr = 200;
|
|
2972
|
+
break;
|
|
2973
|
+
case 9:
|
|
2974
|
+
odr = 400;
|
|
2975
|
+
break;
|
|
2976
|
+
case 10:
|
|
2977
|
+
odr = 800;
|
|
2978
|
+
break;
|
|
2979
|
+
case 11:
|
|
2980
|
+
odr = 1600;
|
|
2981
|
+
break;
|
|
2982
|
+
case 12:
|
|
2983
|
+
odr = 3200;
|
|
2984
|
+
break;
|
|
2985
|
+
case 13:
|
|
2986
|
+
odr = 6400;
|
|
2987
|
+
break;
|
|
2988
|
+
case 14:
|
|
2989
|
+
odr = 12800;
|
|
2990
|
+
break;
|
|
2991
|
+
case 15:
|
|
2992
|
+
odr = 25600;
|
|
2993
|
+
break;
|
|
2994
|
+
default:
|
|
2995
|
+
odr = 0;
|
|
2996
|
+
}
|
|
2902
2997
|
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2998
|
+
globalDevices[deviceAddr] = {
|
|
2999
|
+
// stream_size: expected_packets,
|
|
3000
|
+
data: {},
|
|
3001
|
+
odr: odr,
|
|
3002
|
+
mo: mode,
|
|
3003
|
+
en_axis: en_axis,
|
|
3004
|
+
fsr: fsr,
|
|
3005
|
+
hour: hour,
|
|
3006
|
+
minute: minute,
|
|
3007
|
+
device_temp: device_temp,
|
|
3008
|
+
}
|
|
3009
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3010
|
+
return;
|
|
2913
3011
|
}
|
|
3012
|
+
}
|
|
3013
|
+
else{
|
|
2914
3014
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2915
|
-
return;
|
|
2916
3015
|
}
|
|
2917
3016
|
}
|
|
2918
3017
|
else{
|
|
3018
|
+
var mode = payload[8];
|
|
3019
|
+
var odr = payload[9];
|
|
3020
|
+
var en_axis = payload[10] & 7;
|
|
3021
|
+
var fsr = payload[10] >> 5;
|
|
3022
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3023
|
+
|
|
3024
|
+
|
|
3025
|
+
switch(odr){
|
|
3026
|
+
case 6:
|
|
3027
|
+
odr = 50;
|
|
3028
|
+
break;
|
|
3029
|
+
case 7:
|
|
3030
|
+
odr = 100;
|
|
3031
|
+
break;
|
|
3032
|
+
case 8:
|
|
3033
|
+
odr = 200;
|
|
3034
|
+
break;
|
|
3035
|
+
case 9:
|
|
3036
|
+
odr = 400;
|
|
3037
|
+
break;
|
|
3038
|
+
case 10:
|
|
3039
|
+
odr = 800;
|
|
3040
|
+
break;
|
|
3041
|
+
case 11:
|
|
3042
|
+
odr = 1600;
|
|
3043
|
+
break;
|
|
3044
|
+
case 12:
|
|
3045
|
+
odr = 3200;
|
|
3046
|
+
break;
|
|
3047
|
+
case 13:
|
|
3048
|
+
odr = 6400;
|
|
3049
|
+
break;
|
|
3050
|
+
case 14:
|
|
3051
|
+
odr = 12800;
|
|
3052
|
+
break;
|
|
3053
|
+
case 15:
|
|
3054
|
+
odr = 25600;
|
|
3055
|
+
break;
|
|
3056
|
+
default:
|
|
3057
|
+
odr = 0;
|
|
3058
|
+
}
|
|
3059
|
+
|
|
3060
|
+
globalDevices[deviceAddr] = {
|
|
3061
|
+
// stream_size: expected_packets,
|
|
3062
|
+
data: {},
|
|
3063
|
+
odr: odr,
|
|
3064
|
+
mo: mode,
|
|
3065
|
+
en_axis: en_axis,
|
|
3066
|
+
fsr: fsr,
|
|
3067
|
+
hour: hour,
|
|
3068
|
+
minute: minute,
|
|
3069
|
+
device_temp: device_temp,
|
|
3070
|
+
}
|
|
2919
3071
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
2920
3072
|
}
|
|
2921
|
-
|
|
2922
3073
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
2923
3074
|
var raw_data = new Array();
|
|
2924
3075
|
|
|
@@ -3049,7 +3200,6 @@ function sensor_types(parent){
|
|
|
3049
3200
|
return;
|
|
3050
3201
|
}
|
|
3051
3202
|
}else{
|
|
3052
|
-
|
|
3053
3203
|
var mode = payload[8];
|
|
3054
3204
|
var odr = payload[9];
|
|
3055
3205
|
var en_axis = payload[10] & 7;
|
|
@@ -3577,93 +3727,150 @@ function sensor_types(parent){
|
|
|
3577
3727
|
var current_packet = payload[16];
|
|
3578
3728
|
var sdata_start = 17;
|
|
3579
3729
|
|
|
3580
|
-
if(globalDevices.hasOwnProperty(deviceAddr)){
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
this.failure_no
|
|
3592
|
-
|
|
3593
|
-
else{
|
|
3594
|
-
this.failure_no = 1;
|
|
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;
|
|
3730
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
3731
|
+
if(expected_packets != 1){
|
|
3732
|
+
// 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
|
|
3733
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
3734
|
+
console.log('-----');
|
|
3735
|
+
console.log('bad packet breakdown deleting stream');
|
|
3736
|
+
console.log(current_packet);
|
|
3737
|
+
console.log(expected_packets);
|
|
3738
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
3739
|
+
console.log(current_packet == 1);
|
|
3740
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
3741
|
+
if(this.hasOwnProperty('failure_no')){
|
|
3742
|
+
this.failure_no = this.failure_no + 1;
|
|
3646
3743
|
}
|
|
3744
|
+
else{
|
|
3745
|
+
this.failure_no = 1;
|
|
3746
|
+
}
|
|
3747
|
+
if(this.hasOwnProperty('failure_no')){
|
|
3748
|
+
console.log('####falure no');
|
|
3749
|
+
console.log(this.failure_no);
|
|
3750
|
+
}
|
|
3751
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
3752
|
+
delete globalDevices[deviceAddr];
|
|
3753
|
+
if(current_packet != 1){
|
|
3754
|
+
return;
|
|
3755
|
+
} else{
|
|
3756
|
+
|
|
3757
|
+
var mode = payload[8];
|
|
3758
|
+
var odr = payload[9];
|
|
3759
|
+
var en_axis = payload[10] & 7;
|
|
3760
|
+
var fsr = payload[10] >> 5;
|
|
3761
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3762
|
+
|
|
3763
|
+
|
|
3764
|
+
switch(odr){
|
|
3765
|
+
case 6:
|
|
3766
|
+
odr = 50;
|
|
3767
|
+
break;
|
|
3768
|
+
case 7:
|
|
3769
|
+
odr = 100;
|
|
3770
|
+
break;
|
|
3771
|
+
case 8:
|
|
3772
|
+
odr = 200;
|
|
3773
|
+
break;
|
|
3774
|
+
case 9:
|
|
3775
|
+
odr = 400;
|
|
3776
|
+
break;
|
|
3777
|
+
case 10:
|
|
3778
|
+
odr = 800;
|
|
3779
|
+
break;
|
|
3780
|
+
case 11:
|
|
3781
|
+
odr = 1600;
|
|
3782
|
+
break;
|
|
3783
|
+
case 12:
|
|
3784
|
+
odr = 3200;
|
|
3785
|
+
break;
|
|
3786
|
+
case 13:
|
|
3787
|
+
odr = 6400;
|
|
3788
|
+
break;
|
|
3789
|
+
case 14:
|
|
3790
|
+
odr = 12800;
|
|
3791
|
+
break;
|
|
3792
|
+
case 15:
|
|
3793
|
+
odr = 25600;
|
|
3794
|
+
break;
|
|
3795
|
+
default:
|
|
3796
|
+
odr = 0;
|
|
3797
|
+
}
|
|
3647
3798
|
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3799
|
+
globalDevices[deviceAddr] = {
|
|
3800
|
+
// stream_size: expected_packets,
|
|
3801
|
+
data: {},
|
|
3802
|
+
odr: odr,
|
|
3803
|
+
mo: mode,
|
|
3804
|
+
en_axis: en_axis,
|
|
3805
|
+
fsr: fsr,
|
|
3806
|
+
hour: hour,
|
|
3807
|
+
minute: minute,
|
|
3808
|
+
device_temp: device_temp,
|
|
3809
|
+
}
|
|
3810
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3811
|
+
return;
|
|
3658
3812
|
}
|
|
3813
|
+
}
|
|
3814
|
+
else{
|
|
3659
3815
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3660
|
-
return;
|
|
3661
3816
|
}
|
|
3662
3817
|
}
|
|
3663
3818
|
else{
|
|
3819
|
+
var mode = payload[8];
|
|
3820
|
+
var odr = payload[9];
|
|
3821
|
+
var en_axis = payload[10] & 7;
|
|
3822
|
+
var fsr = payload[10] >> 5;
|
|
3823
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
3824
|
+
|
|
3825
|
+
|
|
3826
|
+
switch(odr){
|
|
3827
|
+
case 6:
|
|
3828
|
+
odr = 50;
|
|
3829
|
+
break;
|
|
3830
|
+
case 7:
|
|
3831
|
+
odr = 100;
|
|
3832
|
+
break;
|
|
3833
|
+
case 8:
|
|
3834
|
+
odr = 200;
|
|
3835
|
+
break;
|
|
3836
|
+
case 9:
|
|
3837
|
+
odr = 400;
|
|
3838
|
+
break;
|
|
3839
|
+
case 10:
|
|
3840
|
+
odr = 800;
|
|
3841
|
+
break;
|
|
3842
|
+
case 11:
|
|
3843
|
+
odr = 1600;
|
|
3844
|
+
break;
|
|
3845
|
+
case 12:
|
|
3846
|
+
odr = 3200;
|
|
3847
|
+
break;
|
|
3848
|
+
case 13:
|
|
3849
|
+
odr = 6400;
|
|
3850
|
+
break;
|
|
3851
|
+
case 14:
|
|
3852
|
+
odr = 12800;
|
|
3853
|
+
break;
|
|
3854
|
+
case 15:
|
|
3855
|
+
odr = 25600;
|
|
3856
|
+
break;
|
|
3857
|
+
default:
|
|
3858
|
+
odr = 0;
|
|
3859
|
+
}
|
|
3860
|
+
|
|
3861
|
+
globalDevices[deviceAddr] = {
|
|
3862
|
+
// stream_size: expected_packets,
|
|
3863
|
+
data: {},
|
|
3864
|
+
odr: odr,
|
|
3865
|
+
mo: mode,
|
|
3866
|
+
en_axis: en_axis,
|
|
3867
|
+
fsr: fsr,
|
|
3868
|
+
hour: hour,
|
|
3869
|
+
minute: minute,
|
|
3870
|
+
device_temp: device_temp,
|
|
3871
|
+
}
|
|
3664
3872
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
3665
3873
|
}
|
|
3666
|
-
|
|
3667
3874
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
3668
3875
|
var raw_data = new Array();
|
|
3669
3876
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -4136,96 +4343,150 @@ function sensor_types(parent){
|
|
|
4136
4343
|
var current_packet = payload[16];
|
|
4137
4344
|
var sdata_start = 17;
|
|
4138
4345
|
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
else{
|
|
4156
|
-
this.failure_no = 1;
|
|
4157
|
-
}
|
|
4158
|
-
if(this.hasOwnProperty('failure_no')){
|
|
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;
|
|
4346
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
4347
|
+
if(expected_packets != 1){
|
|
4348
|
+
// 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
|
|
4349
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
4350
|
+
console.log('-----');
|
|
4351
|
+
console.log('bad packet breakdown deleting stream');
|
|
4352
|
+
console.log(current_packet);
|
|
4353
|
+
console.log(expected_packets);
|
|
4354
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
4355
|
+
console.log(current_packet == 1);
|
|
4356
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
4357
|
+
if(this.hasOwnProperty('failure_no')){
|
|
4358
|
+
this.failure_no = this.failure_no + 1;
|
|
4359
|
+
}
|
|
4360
|
+
else{
|
|
4361
|
+
this.failure_no = 1;
|
|
4208
4362
|
}
|
|
4363
|
+
if(this.hasOwnProperty('failure_no')){
|
|
4364
|
+
console.log('####falure no');
|
|
4365
|
+
console.log(this.failure_no);
|
|
4366
|
+
}
|
|
4367
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
4368
|
+
delete globalDevices[deviceAddr];
|
|
4369
|
+
if(current_packet != 1){
|
|
4370
|
+
return;
|
|
4371
|
+
} else{
|
|
4372
|
+
|
|
4373
|
+
var mode = payload[8];
|
|
4374
|
+
var odr = payload[9];
|
|
4375
|
+
var en_axis = payload[10] & 7;
|
|
4376
|
+
var fsr = payload[10] >> 5;
|
|
4377
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4378
|
+
|
|
4379
|
+
|
|
4380
|
+
switch(odr){
|
|
4381
|
+
case 6:
|
|
4382
|
+
odr = 50;
|
|
4383
|
+
break;
|
|
4384
|
+
case 7:
|
|
4385
|
+
odr = 100;
|
|
4386
|
+
break;
|
|
4387
|
+
case 8:
|
|
4388
|
+
odr = 200;
|
|
4389
|
+
break;
|
|
4390
|
+
case 9:
|
|
4391
|
+
odr = 400;
|
|
4392
|
+
break;
|
|
4393
|
+
case 10:
|
|
4394
|
+
odr = 800;
|
|
4395
|
+
break;
|
|
4396
|
+
case 11:
|
|
4397
|
+
odr = 1600;
|
|
4398
|
+
break;
|
|
4399
|
+
case 12:
|
|
4400
|
+
odr = 3200;
|
|
4401
|
+
break;
|
|
4402
|
+
case 13:
|
|
4403
|
+
odr = 6400;
|
|
4404
|
+
break;
|
|
4405
|
+
case 14:
|
|
4406
|
+
odr = 12800;
|
|
4407
|
+
break;
|
|
4408
|
+
case 15:
|
|
4409
|
+
odr = 25600;
|
|
4410
|
+
break;
|
|
4411
|
+
default:
|
|
4412
|
+
odr = 0;
|
|
4413
|
+
}
|
|
4209
4414
|
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4415
|
+
globalDevices[deviceAddr] = {
|
|
4416
|
+
// stream_size: expected_packets,
|
|
4417
|
+
data: {},
|
|
4418
|
+
odr: odr,
|
|
4419
|
+
mo: mode,
|
|
4420
|
+
en_axis: en_axis,
|
|
4421
|
+
fsr: fsr,
|
|
4422
|
+
hour: hour,
|
|
4423
|
+
minute: minute,
|
|
4424
|
+
device_temp: device_temp,
|
|
4425
|
+
}
|
|
4426
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4427
|
+
return;
|
|
4220
4428
|
}
|
|
4429
|
+
}
|
|
4430
|
+
else{
|
|
4221
4431
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4222
|
-
return;
|
|
4223
4432
|
}
|
|
4224
4433
|
}
|
|
4225
4434
|
else{
|
|
4435
|
+
var mode = payload[8];
|
|
4436
|
+
var odr = payload[9];
|
|
4437
|
+
var en_axis = payload[10] & 7;
|
|
4438
|
+
var fsr = payload[10] >> 5;
|
|
4439
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4440
|
+
|
|
4441
|
+
|
|
4442
|
+
switch(odr){
|
|
4443
|
+
case 6:
|
|
4444
|
+
odr = 50;
|
|
4445
|
+
break;
|
|
4446
|
+
case 7:
|
|
4447
|
+
odr = 100;
|
|
4448
|
+
break;
|
|
4449
|
+
case 8:
|
|
4450
|
+
odr = 200;
|
|
4451
|
+
break;
|
|
4452
|
+
case 9:
|
|
4453
|
+
odr = 400;
|
|
4454
|
+
break;
|
|
4455
|
+
case 10:
|
|
4456
|
+
odr = 800;
|
|
4457
|
+
break;
|
|
4458
|
+
case 11:
|
|
4459
|
+
odr = 1600;
|
|
4460
|
+
break;
|
|
4461
|
+
case 12:
|
|
4462
|
+
odr = 3200;
|
|
4463
|
+
break;
|
|
4464
|
+
case 13:
|
|
4465
|
+
odr = 6400;
|
|
4466
|
+
break;
|
|
4467
|
+
case 14:
|
|
4468
|
+
odr = 12800;
|
|
4469
|
+
break;
|
|
4470
|
+
case 15:
|
|
4471
|
+
odr = 25600;
|
|
4472
|
+
break;
|
|
4473
|
+
default:
|
|
4474
|
+
odr = 0;
|
|
4475
|
+
}
|
|
4476
|
+
|
|
4477
|
+
globalDevices[deviceAddr] = {
|
|
4478
|
+
// stream_size: expected_packets,
|
|
4479
|
+
data: {},
|
|
4480
|
+
odr: odr,
|
|
4481
|
+
mo: mode,
|
|
4482
|
+
en_axis: en_axis,
|
|
4483
|
+
fsr: fsr,
|
|
4484
|
+
hour: hour,
|
|
4485
|
+
minute: minute,
|
|
4486
|
+
device_temp: device_temp,
|
|
4487
|
+
}
|
|
4226
4488
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
4227
4489
|
}
|
|
4228
|
-
|
|
4229
4490
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
4230
4491
|
var raw_data = new Array();
|
|
4231
4492
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -4697,6 +4958,14 @@ function sensor_types(parent){
|
|
|
4697
4958
|
};
|
|
4698
4959
|
}
|
|
4699
4960
|
},
|
|
4961
|
+
'91': {
|
|
4962
|
+
name: 'Wireless Air Velocity Sensor HVAC',
|
|
4963
|
+
parse: (d) => {
|
|
4964
|
+
return {
|
|
4965
|
+
velocity_mps: signInt(msbLsb(d[0], d[1]), 16) / 1000
|
|
4966
|
+
};
|
|
4967
|
+
}
|
|
4968
|
+
},
|
|
4700
4969
|
'92': {
|
|
4701
4970
|
name: 'Sound Sensor',
|
|
4702
4971
|
parse: (d) => {
|
|
@@ -4855,7 +5124,7 @@ function sensor_types(parent){
|
|
|
4855
5124
|
// 0x01 (Success + OTF) ,
|
|
4856
5125
|
// 0x02 (Error + no OTF),
|
|
4857
5126
|
// 0x03 (Error + OTF)
|
|
4858
|
-
if(d[7]>1){
|
|
5127
|
+
if(d[7] & 15 > 1){
|
|
4859
5128
|
console.log('!-----!');
|
|
4860
5129
|
console.log('515 Error Detected');
|
|
4861
5130
|
console.log(d[7]);
|
|
@@ -4980,100 +5249,158 @@ function sensor_types(parent){
|
|
|
4980
5249
|
var current_packet = payload[20];
|
|
4981
5250
|
var sdata_start = 21;
|
|
4982
5251
|
|
|
4983
|
-
|
|
4984
|
-
|
|
4985
|
-
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
if(this.hasOwnProperty('failure_no')){
|
|
4997
|
-
this.failure_no = this.failure_no + 1;
|
|
4998
|
-
}
|
|
4999
|
-
else{
|
|
5000
|
-
this.failure_no = 1;
|
|
5001
|
-
}
|
|
5002
|
-
if(this.hasOwnProperty('failure_no')){
|
|
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;
|
|
5252
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
5253
|
+
if(expected_packets != 1){
|
|
5254
|
+
// 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
|
|
5255
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !(((current_packet&127)-1) in globalDevices[deviceAddr].data)) {
|
|
5256
|
+
console.log('-----');
|
|
5257
|
+
console.log('bad packet breakdown deleting stream');
|
|
5258
|
+
console.log(current_packet);
|
|
5259
|
+
console.log(expected_packets);
|
|
5260
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
5261
|
+
console.log(current_packet == 1);
|
|
5262
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
5263
|
+
if(this.hasOwnProperty('failure_no')){
|
|
5264
|
+
this.failure_no = this.failure_no + 1;
|
|
5054
5265
|
}
|
|
5266
|
+
else{
|
|
5267
|
+
this.failure_no = 1;
|
|
5268
|
+
}
|
|
5269
|
+
if(this.hasOwnProperty('failure_no')){
|
|
5270
|
+
console.log('####falure no');
|
|
5271
|
+
console.log(this.failure_no);
|
|
5272
|
+
}
|
|
5273
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
5274
|
+
delete globalDevices[deviceAddr];
|
|
5275
|
+
if(current_packet != 1){
|
|
5276
|
+
return;
|
|
5277
|
+
} else{
|
|
5278
|
+
|
|
5279
|
+
var mode = payload[8];
|
|
5280
|
+
var odr = payload[9];
|
|
5281
|
+
var en_axis = payload[10] & 7;
|
|
5282
|
+
var fsr = payload[10] >> 5;
|
|
5283
|
+
var device_temp = signInt(msbLsb(payload[13], payload[14]))/100;
|
|
5284
|
+
var adc_1_raw = msbLsb(payload[15], payload[16]);
|
|
5285
|
+
var adc_2_raw = msbLsb(payload[17], payload[18]);
|
|
5286
|
+
|
|
5287
|
+
|
|
5288
|
+
switch(odr){
|
|
5289
|
+
case 6:
|
|
5290
|
+
odr = 50;
|
|
5291
|
+
break;
|
|
5292
|
+
case 7:
|
|
5293
|
+
odr = 100;
|
|
5294
|
+
break;
|
|
5295
|
+
case 8:
|
|
5296
|
+
odr = 200;
|
|
5297
|
+
break;
|
|
5298
|
+
case 9:
|
|
5299
|
+
odr = 400;
|
|
5300
|
+
break;
|
|
5301
|
+
case 10:
|
|
5302
|
+
odr = 800;
|
|
5303
|
+
break;
|
|
5304
|
+
case 11:
|
|
5305
|
+
odr = 1600;
|
|
5306
|
+
break;
|
|
5307
|
+
case 12:
|
|
5308
|
+
odr = 3200;
|
|
5309
|
+
break;
|
|
5310
|
+
case 13:
|
|
5311
|
+
odr = 6400;
|
|
5312
|
+
break;
|
|
5313
|
+
case 14:
|
|
5314
|
+
odr = 12800;
|
|
5315
|
+
break;
|
|
5316
|
+
case 15:
|
|
5317
|
+
odr = 25600;
|
|
5318
|
+
break;
|
|
5319
|
+
default:
|
|
5320
|
+
odr = 0;
|
|
5321
|
+
}
|
|
5055
5322
|
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5323
|
+
globalDevices[deviceAddr] = {
|
|
5324
|
+
// stream_size: expected_packets,
|
|
5325
|
+
data: {},
|
|
5326
|
+
odr: odr,
|
|
5327
|
+
mo: mode,
|
|
5328
|
+
en_axis: en_axis,
|
|
5329
|
+
fsr: fsr,
|
|
5330
|
+
hour: hour,
|
|
5331
|
+
minute: minute,
|
|
5332
|
+
adc_1_raw: adc_1_raw,
|
|
5333
|
+
adc_2_raw: adc_2_raw,
|
|
5334
|
+
device_temp: device_temp,
|
|
5335
|
+
}
|
|
5336
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5337
|
+
return;
|
|
5068
5338
|
}
|
|
5339
|
+
}
|
|
5340
|
+
else{
|
|
5069
5341
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5070
|
-
return;
|
|
5071
5342
|
}
|
|
5072
5343
|
}
|
|
5073
5344
|
else{
|
|
5345
|
+
var mode = payload[8];
|
|
5346
|
+
var odr = payload[9];
|
|
5347
|
+
var en_axis = payload[10] & 7;
|
|
5348
|
+
var fsr = payload[10] >> 5;
|
|
5349
|
+
var device_temp = signInt(msbLsb(payload[13], payload[14]))/100;
|
|
5350
|
+
var adc_1_raw = msbLsb(payload[15], payload[16]);
|
|
5351
|
+
var adc_2_raw = msbLsb(payload[17], payload[18]);
|
|
5352
|
+
|
|
5353
|
+
|
|
5354
|
+
switch(odr){
|
|
5355
|
+
case 6:
|
|
5356
|
+
odr = 50;
|
|
5357
|
+
break;
|
|
5358
|
+
case 7:
|
|
5359
|
+
odr = 100;
|
|
5360
|
+
break;
|
|
5361
|
+
case 8:
|
|
5362
|
+
odr = 200;
|
|
5363
|
+
break;
|
|
5364
|
+
case 9:
|
|
5365
|
+
odr = 400;
|
|
5366
|
+
break;
|
|
5367
|
+
case 10:
|
|
5368
|
+
odr = 800;
|
|
5369
|
+
break;
|
|
5370
|
+
case 11:
|
|
5371
|
+
odr = 1600;
|
|
5372
|
+
break;
|
|
5373
|
+
case 12:
|
|
5374
|
+
odr = 3200;
|
|
5375
|
+
break;
|
|
5376
|
+
case 13:
|
|
5377
|
+
odr = 6400;
|
|
5378
|
+
break;
|
|
5379
|
+
case 14:
|
|
5380
|
+
odr = 12800;
|
|
5381
|
+
break;
|
|
5382
|
+
case 15:
|
|
5383
|
+
odr = 25600;
|
|
5384
|
+
break;
|
|
5385
|
+
default:
|
|
5386
|
+
odr = 0;
|
|
5387
|
+
}
|
|
5388
|
+
|
|
5389
|
+
globalDevices[deviceAddr] = {
|
|
5390
|
+
// stream_size: expected_packets,
|
|
5391
|
+
data: {},
|
|
5392
|
+
odr: odr,
|
|
5393
|
+
mo: mode,
|
|
5394
|
+
en_axis: en_axis,
|
|
5395
|
+
fsr: fsr,
|
|
5396
|
+
hour: hour,
|
|
5397
|
+
minute: minute,
|
|
5398
|
+
adc_1_raw: adc_1_raw,
|
|
5399
|
+
adc_2_raw: adc_2_raw,
|
|
5400
|
+
device_temp: device_temp,
|
|
5401
|
+
}
|
|
5074
5402
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
5075
5403
|
}
|
|
5076
|
-
|
|
5077
5404
|
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
5078
5405
|
var raw_data = new Array();
|
|
5079
5406
|
for(const packet in globalDevices[deviceAddr].data){
|
|
@@ -5562,6 +5889,16 @@ function sensor_types(parent){
|
|
|
5562
5889
|
}
|
|
5563
5890
|
}
|
|
5564
5891
|
},
|
|
5892
|
+
'521': {
|
|
5893
|
+
name: 'Type 520 - 6 Channel Current Temperature and Humidity',
|
|
5894
|
+
parse: (payload, parsed) => {
|
|
5895
|
+
return {
|
|
5896
|
+
lux_1: payload.slice(0, 2).reduce(msbLsb)/100,
|
|
5897
|
+
lux_2: payload.slice(2, 4).reduce(msbLsb)/100,
|
|
5898
|
+
lux_3: payload.slice(4, 6).reduce(msbLsb)/100
|
|
5899
|
+
}
|
|
5900
|
+
}
|
|
5901
|
+
},
|
|
5565
5902
|
'10000': {
|
|
5566
5903
|
name: '4-Relay',
|
|
5567
5904
|
parse: (d) => {
|