@ncd-io/node-red-enterprise-sensors 1.4.1 → 1.4.3
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 +2123 -852
- package/package.json +1 -1
- package/wireless.html +732 -27
- package/wireless.js +229 -27
package/lib/WirelessGateway.js
CHANGED
|
@@ -160,7 +160,7 @@ module.exports = class WirelessSensor{
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
// #OTF
|
|
163
|
-
var otf_devices = [4,12,21,23,26,32,33,39,44,45,48,52,53,56,58,74,76,78,79,80,81,82,84,88,89,90,91,97,98,101,102,103,105,106,107,108,109,110,111,112,114,117,118,120,121,122,180,181,202,217,519,520,521,531,535,537,538,539,540,1010,1011];
|
|
163
|
+
var otf_devices = [4,12,21,23,26,32,33,39,44,45,48,52,53,56,58,74,76,78,79,80,81,82,84,88,89,90,91,97,98,101,102,103,105,106,107,108,109,110,111,112,114,117,118,120,121,122,123,180,181,202,217,211,270,519,520,521,531,535,537,538,539,540,541,1010,1011];
|
|
164
164
|
var device_type = msbLsb(frame.data[6], frame.data[7]);
|
|
165
165
|
// var device_type = frame.data[7];
|
|
166
166
|
|
|
@@ -334,7 +334,7 @@ module.exports = class WirelessSensor{
|
|
|
334
334
|
};
|
|
335
335
|
|
|
336
336
|
// #OTF
|
|
337
|
-
var otf_devices = [4,12,21,23,26,32,33,39,44,45,48,52,53,56,58,74,76,78,79,80,81,82,84,88,89,90,91,97,98,101,102,103,105,106,107,108,109,110,111,112,114,117,118,120,121,122,180,181,202,217,519,520,521,531,535,537,538,539,540,1010,1011];
|
|
337
|
+
var otf_devices = [4,12,21,23,26,32,33,39,44,45,48,52,53,56,58,74,76,78,79,80,81,82,84,88,89,90,91,97,98,101,102,103,105,106,107,108,109,110,111,112,114,117,118,120,121,122,123,180,181,202,211,217,270,519,520,521,531,535,537,538,539,540,541,1010,1011];
|
|
338
338
|
if(otf_devices.includes(parsed.sensor_type)){
|
|
339
339
|
// If the message says FLY and there is not FLY timer in progress.
|
|
340
340
|
if(payload[8] == 70 && payload[9] == 76 && payload[10] == 89) {
|
|
@@ -773,7 +773,8 @@ module.exports = class WirelessSensor{
|
|
|
773
773
|
firmware_set_to_ota_mode(sensor_mac){
|
|
774
774
|
console.log('firmware_set_to_ota_mode');
|
|
775
775
|
var packet = [245, 56, 0, 0, 0];
|
|
776
|
-
return this.config_send(sensor_mac, packet);
|
|
776
|
+
return this.config_send(sensor_mac, packet, {}, 5000);
|
|
777
|
+
// return this.config_send(sensor_mac, packet);
|
|
777
778
|
}
|
|
778
779
|
// TODO no code basis
|
|
779
780
|
firmware_exit_ota_mode(sensor_mac){
|
|
@@ -784,13 +785,13 @@ module.exports = class WirelessSensor{
|
|
|
784
785
|
firmware_request_manifest(sensor_mac){
|
|
785
786
|
console.log('firmware_request_manifest');
|
|
786
787
|
var packet = [245, 60, 0, 0, 0];
|
|
787
|
-
return this.config_send(sensor_mac, packet);
|
|
788
|
+
return this.config_send(sensor_mac, packet, {}, 1500, 500);
|
|
788
789
|
}
|
|
789
790
|
firmware_send_manifest(sensor_mac, manifest){
|
|
790
791
|
console.log('firmware_send_manifest');
|
|
791
792
|
// sensor_mac = "00:00:00:00:00:00:ff:ff";
|
|
792
793
|
let packet = [245, 58, 0, 0, 0].concat(Array.prototype.slice.call(manifest));
|
|
793
|
-
return this.config_send(sensor_mac, packet);
|
|
794
|
+
return this.config_send(sensor_mac, packet, {}, 1500, 500);
|
|
794
795
|
}
|
|
795
796
|
firmware_send_manifest_v13(sensor_mac, manifest){
|
|
796
797
|
console.log('firmware_send_manifest_v13');
|
|
@@ -1261,6 +1262,14 @@ module.exports = class WirelessSensor{
|
|
|
1261
1262
|
console.log(packet);
|
|
1262
1263
|
return this.config_send(sensor_mac, packet);
|
|
1263
1264
|
}
|
|
1265
|
+
config_set_debounce_time_v10_108(sensor_mac, value){
|
|
1266
|
+
console.log('config_set_debounce_time_v10_108');
|
|
1267
|
+
var packet = [244, 39, 0, 0, 0];
|
|
1268
|
+
let threshold = int2Bytes((value), 2);
|
|
1269
|
+
packet.push(...threshold);
|
|
1270
|
+
console.log(packet);
|
|
1271
|
+
return this.config_send(sensor_mac, packet);
|
|
1272
|
+
}
|
|
1264
1273
|
config_set_clear_timers_108(sensor_mac, value){
|
|
1265
1274
|
console.log('config_clear_timers_108');
|
|
1266
1275
|
var packet = [244, 36, 0, 0, 0, value];
|
|
@@ -2087,6 +2096,155 @@ module.exports = class WirelessSensor{
|
|
|
2087
2096
|
console.log(packet);
|
|
2088
2097
|
return this.config_send(sensor_mac, packet);
|
|
2089
2098
|
}
|
|
2099
|
+
config_set_motion_to_sampling_delay_110(sensor_mac, value){
|
|
2100
|
+
console.log('config_set_motion_to_sampling_delay_110');
|
|
2101
|
+
var packet = [244, 79, 0, 0, 101, 89, value];
|
|
2102
|
+
console.log(packet);
|
|
2103
|
+
return this.config_send(sensor_mac, packet);
|
|
2104
|
+
}
|
|
2105
|
+
config_set_max_num_motion_tx_delay_110(sensor_mac, value){
|
|
2106
|
+
console.log('config_set_max_num_motion_tx_delay_110');
|
|
2107
|
+
var packet = [244, 79, 0, 0, 101, 91, value];
|
|
2108
|
+
console.log(packet);
|
|
2109
|
+
return this.config_send(sensor_mac, packet);
|
|
2110
|
+
}
|
|
2111
|
+
config_set_enable_sensor_103(sensor_mac, value){
|
|
2112
|
+
console.log('config_set_enable_sensor_103');
|
|
2113
|
+
var packet = [244, 79, 0, 0, 101, 19, value];
|
|
2114
|
+
console.log(packet);
|
|
2115
|
+
return this.config_send(sensor_mac, packet);
|
|
2116
|
+
}
|
|
2117
|
+
config_set_enable_hp_filter_cutoff_103(sensor_mac, value){
|
|
2118
|
+
console.log('config_set_enable_hp_filter_cutoff_103');
|
|
2119
|
+
var packet = [244, 79, 0, 0, 101, 17, value];
|
|
2120
|
+
console.log(packet);
|
|
2121
|
+
return this.config_send(sensor_mac, packet);
|
|
2122
|
+
}
|
|
2123
|
+
config_set_gyro_fsr_103(sensor_mac, value){
|
|
2124
|
+
console.log('config_set_gyro_fsr_103');
|
|
2125
|
+
var packet = [244, 79, 0, 0, 101, 21, value];
|
|
2126
|
+
console.log(packet);
|
|
2127
|
+
return this.config_send(sensor_mac, packet);
|
|
2128
|
+
}
|
|
2129
|
+
config_set_adxl_fsr_103(sensor_mac, value){
|
|
2130
|
+
console.log('config_set_adxl_fsr_103');
|
|
2131
|
+
var packet = [244, 79, 0, 0, 101, 11, value];
|
|
2132
|
+
console.log(packet);
|
|
2133
|
+
return this.config_send(sensor_mac, packet);
|
|
2134
|
+
}
|
|
2135
|
+
config_set_acc_threshold_103(sensor_mac, value){
|
|
2136
|
+
console.log('config_set_acc_threshold_103');
|
|
2137
|
+
var packet = [244, 79, 0, 0, 101, 23, value];
|
|
2138
|
+
console.log(packet);
|
|
2139
|
+
return this.config_send(sensor_mac, packet);
|
|
2140
|
+
}
|
|
2141
|
+
// config_set_do_read_rate_270(sensor_mac, value){
|
|
2142
|
+
// console.log('config_set_do_report_rate_270');
|
|
2143
|
+
// var packet = [244, 32, 0, 0, 0, value];
|
|
2144
|
+
// console.log(packet);
|
|
2145
|
+
// return this.config_send(sensor_mac, packet);
|
|
2146
|
+
// }
|
|
2147
|
+
config_set_do_boot_time_270(sensor_mac, value){
|
|
2148
|
+
console.log('config_set_do_boot_time_270');
|
|
2149
|
+
var packet = [244, 34, 0, 0, 0, value];
|
|
2150
|
+
console.log(packet);
|
|
2151
|
+
return this.config_send(sensor_mac, packet);
|
|
2152
|
+
}
|
|
2153
|
+
config_set_do_dev_id_270(sensor_mac, id_1, id_2, id_3, id_4){
|
|
2154
|
+
console.log('config_set_do_dev_id_270');
|
|
2155
|
+
var packet = [244, 38, 0, 0, 0, id_1, id_2, id_3, id_4];
|
|
2156
|
+
console.log(packet);
|
|
2157
|
+
return this.config_send(sensor_mac, packet);
|
|
2158
|
+
}
|
|
2159
|
+
config_set_ec_boot_time_270(sensor_mac, value){
|
|
2160
|
+
console.log('config_set_ec_boot_time_270');
|
|
2161
|
+
var packet = [244, 36, 0, 0, 0, value];
|
|
2162
|
+
console.log(packet);
|
|
2163
|
+
return this.config_send(sensor_mac, packet);
|
|
2164
|
+
}
|
|
2165
|
+
config_set_ec_dev_id_270(sensor_mac, id_1, id_2, id_3, id_4){
|
|
2166
|
+
console.log('config_set_ec_dev_id_270');
|
|
2167
|
+
var packet = [244, 40, 0, 0, 0, id_1, id_2, id_3, id_4];
|
|
2168
|
+
console.log(packet);
|
|
2169
|
+
return this.config_send(sensor_mac, packet);
|
|
2170
|
+
}
|
|
2171
|
+
config_set_oxygen_rate_211(sensor_mac, value){
|
|
2172
|
+
console.log('config_set_oxygen_rate_211');
|
|
2173
|
+
var packet = [244, 32, 0, 0, 0, value];
|
|
2174
|
+
console.log(packet);
|
|
2175
|
+
return this.config_send(sensor_mac, packet);
|
|
2176
|
+
}
|
|
2177
|
+
config_set_oxygen_timeout_211(sensor_mac, value){
|
|
2178
|
+
console.log('config_set_oxygen_timeout_211');
|
|
2179
|
+
var packet = [244, 37, 0, 0, 0];
|
|
2180
|
+
let value_ = int2Bytes(value, 2);
|
|
2181
|
+
packet.push(...value_);
|
|
2182
|
+
console.log(packet);
|
|
2183
|
+
return this.config_send(sensor_mac, packet);
|
|
2184
|
+
}
|
|
2185
|
+
config_set_oxygen_threshold_211(sensor_mac, value){
|
|
2186
|
+
console.log('config_set_oxygen_threshold_211');
|
|
2187
|
+
var packet = [244, 34, 0, 0, 0];
|
|
2188
|
+
let value_ = int2Bytes(value, 2);
|
|
2189
|
+
packet.push(...value_);
|
|
2190
|
+
console.log(packet);
|
|
2191
|
+
return this.config_send(sensor_mac, packet);
|
|
2192
|
+
}
|
|
2193
|
+
config_set_interrupt_timeout_108(sensor_mac, value){
|
|
2194
|
+
console.log('config_set_interrupt_timeout_108');
|
|
2195
|
+
var packet = [244, 65, 0, 0, 0];
|
|
2196
|
+
let value_ = int2Bytes(value, 2);
|
|
2197
|
+
packet.push(...value_);
|
|
2198
|
+
console.log(packet);
|
|
2199
|
+
return this.config_send(sensor_mac, packet);
|
|
2200
|
+
}
|
|
2201
|
+
config_set_start_sps30_fan_cleaning_53(sensor_mac){
|
|
2202
|
+
console.log('config_set_start_sps30_fan_cleaning_53');
|
|
2203
|
+
var packet = [244, 26, 0, 0, 53];
|
|
2204
|
+
console.log(packet);
|
|
2205
|
+
return this.config_send(sensor_mac, packet);
|
|
2206
|
+
}
|
|
2207
|
+
config_set_max_flow_541(sensor_mac, value){
|
|
2208
|
+
console.log('config_set_max_flow_541');
|
|
2209
|
+
var packet = [244, 85, 0, 0, 88, 0, value];
|
|
2210
|
+
console.log(packet);
|
|
2211
|
+
return this.config_send(sensor_mac, packet);
|
|
2212
|
+
}
|
|
2213
|
+
config_set_min_flow_541(sensor_mac, value){
|
|
2214
|
+
console.log('config_set_min_flow_541');
|
|
2215
|
+
var packet = [244, 83, 0, 0, 88, 0, value];
|
|
2216
|
+
console.log(packet);
|
|
2217
|
+
return this.config_send(sensor_mac, packet);
|
|
2218
|
+
}
|
|
2219
|
+
config_set_ct_constant_87(sensor_mac, value){
|
|
2220
|
+
console.log('config_set_ct_constant_87');
|
|
2221
|
+
var packet = [244, 80, 0, 0, 0, 1];
|
|
2222
|
+
let value_ = int2Bytes(value, 4);
|
|
2223
|
+
packet.push(...value_);
|
|
2224
|
+
console.log(packet);
|
|
2225
|
+
return this.config_send(sensor_mac, packet);
|
|
2226
|
+
}
|
|
2227
|
+
config_set_deadband_87(sensor_mac, value){
|
|
2228
|
+
console.log('config_set_deadband_87');
|
|
2229
|
+
var packet = [244, 82, 0, 0, 0, 1];
|
|
2230
|
+
let value_ = int2Bytes(value, 2);
|
|
2231
|
+
packet.push(...value_);
|
|
2232
|
+
console.log(packet);
|
|
2233
|
+
return this.config_send(sensor_mac, packet);
|
|
2234
|
+
}
|
|
2235
|
+
config_set_sampling_frequency_87(sensor_mac, value){
|
|
2236
|
+
console.log('config_set_sampling_frequency_87');
|
|
2237
|
+
var packet = [244, 78, 0, 0, 0, value];
|
|
2238
|
+
console.log(packet);
|
|
2239
|
+
return this.config_send(sensor_mac, packet);
|
|
2240
|
+
}
|
|
2241
|
+
config_set_raw_length_87(sensor_mac, value){
|
|
2242
|
+
console.log('config_set_raw_length_87');
|
|
2243
|
+
var packet = [244, 84, 0, 0, 0, value];
|
|
2244
|
+
console.log(packet);
|
|
2245
|
+
return this.config_send(sensor_mac, packet);
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2090
2248
|
config_get_delay(sensor_mac){
|
|
2091
2249
|
return new Promise((fulfill, reject) => {
|
|
2092
2250
|
this.config_send(sensor_mac, [247, 21, 0, 0, 0]).then((res) => {
|
|
@@ -2422,17 +2580,19 @@ module.exports = class WirelessSensor{
|
|
|
2422
2580
|
});
|
|
2423
2581
|
});
|
|
2424
2582
|
};
|
|
2425
|
-
config_send(sensor_mac, data, opts, cmd_timeout = 1500){
|
|
2583
|
+
config_send(sensor_mac, data, opts, cmd_timeout = 1500, cmd_pretimeout = 0){
|
|
2426
2584
|
var that = this;
|
|
2427
2585
|
return new Promise((fulfill, reject) => {
|
|
2428
2586
|
// Note: This code adds a delay before sending any communications. This is not generally required, but has shown increased reliability
|
|
2429
2587
|
// in some cases when used directly after changing modem module settings such as entering FON network ID. Leaving it here for future reference or quick add during support.
|
|
2430
2588
|
// consider adding a pre-time command parameter to allow this as in the v13 firmware send function.
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2589
|
+
if(cmd_pretimeout != 0){
|
|
2590
|
+
that.queue.add(() => {
|
|
2591
|
+
return new Promise((f, r) => {
|
|
2592
|
+
setTimeout(f, cmd_pretimeout);
|
|
2593
|
+
});
|
|
2594
|
+
});
|
|
2595
|
+
};
|
|
2436
2596
|
that.queue.add(() => {
|
|
2437
2597
|
return new Promise((f, r) => {
|
|
2438
2598
|
var tout;
|
|
@@ -3135,25 +3295,31 @@ function sensor_types(parent){
|
|
|
3135
3295
|
let firmware = frame[2];
|
|
3136
3296
|
if(firmware > 13){ // firmware 14 and above
|
|
3137
3297
|
let frame_data = {};
|
|
3298
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
3299
|
+
if(!auto_check_interval){
|
|
3300
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
3301
|
+
}else{
|
|
3302
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
3303
|
+
}
|
|
3138
3304
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
3139
3305
|
switch(frame[16]){
|
|
3140
3306
|
case 0:
|
|
3141
|
-
frame_data.fsr = "+-
|
|
3307
|
+
frame_data.fsr = "+-6.114 V";
|
|
3142
3308
|
break;
|
|
3143
3309
|
case 1:
|
|
3144
|
-
frame_data.fsr = "+-
|
|
3310
|
+
frame_data.fsr = "+-4.096 V";
|
|
3145
3311
|
break;
|
|
3146
3312
|
case 2:
|
|
3147
|
-
frame_data.fsr = "+-
|
|
3313
|
+
frame_data.fsr = "+-2.048 V";
|
|
3148
3314
|
break;
|
|
3149
3315
|
case 3:
|
|
3150
|
-
frame_data.fsr = "+-
|
|
3316
|
+
frame_data.fsr = "+-1.024 V";
|
|
3151
3317
|
break;
|
|
3152
3318
|
case 4:
|
|
3153
|
-
frame_data.fsr = "+-
|
|
3319
|
+
frame_data.fsr = "+-0.512 V";
|
|
3154
3320
|
break;
|
|
3155
3321
|
case 5:
|
|
3156
|
-
frame_data.fsr = "+-
|
|
3322
|
+
frame_data.fsr = "+-0.256 V";
|
|
3157
3323
|
break;
|
|
3158
3324
|
}
|
|
3159
3325
|
return {
|
|
@@ -3161,12 +3327,15 @@ function sensor_types(parent){
|
|
|
3161
3327
|
'fsr': frame_data.fsr,
|
|
3162
3328
|
'boot_time': frame[17] + " sec",
|
|
3163
3329
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
3164
|
-
'auto_check_interval':
|
|
3165
|
-
'
|
|
3330
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
3331
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
3166
3332
|
'always_on': frame_data.always_on,
|
|
3167
|
-
'
|
|
3168
|
-
'
|
|
3169
|
-
'
|
|
3333
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
3334
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
3335
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
3336
|
+
'hardware_id': frame.slice(37, 40),
|
|
3337
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
3338
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
3170
3339
|
'machine_values': {
|
|
3171
3340
|
'firmware': frame[2],
|
|
3172
3341
|
'fsr': frame[16],
|
|
@@ -3175,9 +3344,12 @@ function sensor_types(parent){
|
|
|
3175
3344
|
'auto_check_interval': frame.slice(20, 22),
|
|
3176
3345
|
'auto_check_percentage': frame.slice(22, 24),
|
|
3177
3346
|
'always_on': frame[24],
|
|
3178
|
-
'
|
|
3179
|
-
'
|
|
3180
|
-
'
|
|
3347
|
+
'calibration_one': frame.slice(25, 29),
|
|
3348
|
+
'calibration_two':frame.slice(29, 33),
|
|
3349
|
+
'calibration_three':frame.slice(33, 37),
|
|
3350
|
+
'hardware_id': frame.slice(37, 40),
|
|
3351
|
+
'report_rate': frame.slice(40, 44),
|
|
3352
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
3181
3353
|
}
|
|
3182
3354
|
}
|
|
3183
3355
|
}
|
|
@@ -3185,16 +3357,34 @@ function sensor_types(parent){
|
|
|
3185
3357
|
},
|
|
3186
3358
|
'16': {
|
|
3187
3359
|
name: 'Soil Moisture Sensor',
|
|
3188
|
-
parse: (d) => {
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3360
|
+
parse: (d, payload) => {
|
|
3361
|
+
if(payload[1] > 5) // firmware v6+
|
|
3362
|
+
{
|
|
3363
|
+
var adc1 = d.slice(0, 2).reduce(msbLsb);
|
|
3364
|
+
var adc2 = d.slice(2, 4).reduce(msbLsb);
|
|
3365
|
+
var vwc1 = d.slice(4, 6).reduce(msbLsb);
|
|
3366
|
+
var vwc2 = d.slice(6, 8).reduce(msbLsb);
|
|
3367
|
+
return {
|
|
3368
|
+
adc1: adc1,
|
|
3369
|
+
adc2: adc2,
|
|
3370
|
+
vwc1: vwc1,
|
|
3371
|
+
vwc2: vwc2,
|
|
3372
|
+
voltage1: adc1 * 0.00322265625,
|
|
3373
|
+
voltage2: adc2 * 0.00322265625,
|
|
3374
|
+
percentage1: adc1 > 870 ? 100 : Math.round(adc1 / 870 * 100),
|
|
3375
|
+
percentage2: adc2 > 870 ? 100 : Math.round(adc2 / 870 * 100)
|
|
3376
|
+
};
|
|
3377
|
+
} else{
|
|
3378
|
+
var adc1 = d.slice(0, 2).reduce(msbLsb);
|
|
3379
|
+
var adc2 = d.slice(2, 4).reduce(msbLsb);
|
|
3380
|
+
return {
|
|
3381
|
+
adc1: adc1,
|
|
3382
|
+
adc2: adc2,
|
|
3383
|
+
voltage1: adc1 * 0.00322265625,
|
|
3384
|
+
voltage2: adc2 * 0.00322265625,
|
|
3385
|
+
percentage: adc1 > 870 ? 100 : Math.round(adc1 / 870 * 100)
|
|
3386
|
+
};
|
|
3387
|
+
}
|
|
3198
3388
|
}
|
|
3199
3389
|
},
|
|
3200
3390
|
'17': {
|
|
@@ -3691,25 +3881,31 @@ function sensor_types(parent){
|
|
|
3691
3881
|
let firmware = frame[2];
|
|
3692
3882
|
if(firmware > 13){ // firmware 14 and above
|
|
3693
3883
|
let frame_data = {};
|
|
3694
|
-
|
|
3884
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
3885
|
+
if(!auto_check_interval){
|
|
3886
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
3887
|
+
}else{
|
|
3888
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
3889
|
+
}
|
|
3890
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
3695
3891
|
switch(frame[16]){
|
|
3696
3892
|
case 0:
|
|
3697
|
-
frame_data.fsr = "+-
|
|
3893
|
+
frame_data.fsr = "+-6.114 V";
|
|
3698
3894
|
break;
|
|
3699
3895
|
case 1:
|
|
3700
|
-
frame_data.fsr = "+-
|
|
3896
|
+
frame_data.fsr = "+-4.096 V";
|
|
3701
3897
|
break;
|
|
3702
3898
|
case 2:
|
|
3703
|
-
frame_data.fsr = "+-
|
|
3899
|
+
frame_data.fsr = "+-2.048 V";
|
|
3704
3900
|
break;
|
|
3705
3901
|
case 3:
|
|
3706
|
-
frame_data.fsr = "+-
|
|
3902
|
+
frame_data.fsr = "+-1.024 V";
|
|
3707
3903
|
break;
|
|
3708
3904
|
case 4:
|
|
3709
|
-
frame_data.fsr = "+-
|
|
3905
|
+
frame_data.fsr = "+-0.512 V";
|
|
3710
3906
|
break;
|
|
3711
3907
|
case 5:
|
|
3712
|
-
frame_data.fsr = "+-
|
|
3908
|
+
frame_data.fsr = "+-0.256 V";
|
|
3713
3909
|
break;
|
|
3714
3910
|
}
|
|
3715
3911
|
return {
|
|
@@ -3717,12 +3913,15 @@ function sensor_types(parent){
|
|
|
3717
3913
|
'fsr': frame_data.fsr,
|
|
3718
3914
|
'boot_time': frame[17] + " sec",
|
|
3719
3915
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
3720
|
-
'auto_check_interval':
|
|
3721
|
-
'
|
|
3916
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
3917
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
3722
3918
|
'always_on': frame_data.always_on,
|
|
3723
|
-
'
|
|
3724
|
-
'
|
|
3725
|
-
'
|
|
3919
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
3920
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
3921
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
3922
|
+
'hardware_id': frame.slice(37, 40),
|
|
3923
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
3924
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
3726
3925
|
'machine_values': {
|
|
3727
3926
|
'firmware': frame[2],
|
|
3728
3927
|
'fsr': frame[16],
|
|
@@ -3731,9 +3930,12 @@ function sensor_types(parent){
|
|
|
3731
3930
|
'auto_check_interval': frame.slice(20, 22),
|
|
3732
3931
|
'auto_check_percentage': frame.slice(22, 24),
|
|
3733
3932
|
'always_on': frame[24],
|
|
3734
|
-
'
|
|
3735
|
-
'
|
|
3736
|
-
'
|
|
3933
|
+
'calibration_one': frame.slice(25, 29),
|
|
3934
|
+
'calibration_two':frame.slice(29, 33),
|
|
3935
|
+
'calibration_three':frame.slice(33, 37),
|
|
3936
|
+
'hardware_id': frame.slice(37, 40),
|
|
3937
|
+
'report_rate': frame.slice(40, 44),
|
|
3938
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
3737
3939
|
}
|
|
3738
3940
|
}
|
|
3739
3941
|
}
|
|
@@ -3768,25 +3970,31 @@ function sensor_types(parent){
|
|
|
3768
3970
|
let firmware = frame[2];
|
|
3769
3971
|
if(firmware > 13){ // firmware 14 and above
|
|
3770
3972
|
let frame_data = {};
|
|
3771
|
-
|
|
3973
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
3974
|
+
if(!auto_check_interval){
|
|
3975
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
3976
|
+
}else{
|
|
3977
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
3978
|
+
}
|
|
3979
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
3772
3980
|
switch(frame[16]){
|
|
3773
3981
|
case 0:
|
|
3774
|
-
frame_data.fsr = "+-
|
|
3982
|
+
frame_data.fsr = "+-6.114 V";
|
|
3775
3983
|
break;
|
|
3776
3984
|
case 1:
|
|
3777
|
-
frame_data.fsr = "+-
|
|
3985
|
+
frame_data.fsr = "+-4.096 V";
|
|
3778
3986
|
break;
|
|
3779
3987
|
case 2:
|
|
3780
|
-
frame_data.fsr = "+-
|
|
3988
|
+
frame_data.fsr = "+-2.048 V";
|
|
3781
3989
|
break;
|
|
3782
3990
|
case 3:
|
|
3783
|
-
frame_data.fsr = "+-
|
|
3991
|
+
frame_data.fsr = "+-1.024 V";
|
|
3784
3992
|
break;
|
|
3785
3993
|
case 4:
|
|
3786
|
-
frame_data.fsr = "+-
|
|
3994
|
+
frame_data.fsr = "+-0.512 V";
|
|
3787
3995
|
break;
|
|
3788
3996
|
case 5:
|
|
3789
|
-
frame_data.fsr = "+-
|
|
3997
|
+
frame_data.fsr = "+-0.256 V";
|
|
3790
3998
|
break;
|
|
3791
3999
|
}
|
|
3792
4000
|
return {
|
|
@@ -3794,12 +4002,15 @@ function sensor_types(parent){
|
|
|
3794
4002
|
'fsr': frame_data.fsr,
|
|
3795
4003
|
'boot_time': frame[17] + " sec",
|
|
3796
4004
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
3797
|
-
'auto_check_interval':
|
|
3798
|
-
'
|
|
4005
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4006
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
3799
4007
|
'always_on': frame_data.always_on,
|
|
3800
|
-
'
|
|
3801
|
-
'
|
|
3802
|
-
'
|
|
4008
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4009
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4010
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4011
|
+
'hardware_id': frame.slice(37, 40),
|
|
4012
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4013
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
3803
4014
|
'machine_values': {
|
|
3804
4015
|
'firmware': frame[2],
|
|
3805
4016
|
'fsr': frame[16],
|
|
@@ -3808,9 +4019,12 @@ function sensor_types(parent){
|
|
|
3808
4019
|
'auto_check_interval': frame.slice(20, 22),
|
|
3809
4020
|
'auto_check_percentage': frame.slice(22, 24),
|
|
3810
4021
|
'always_on': frame[24],
|
|
3811
|
-
'
|
|
3812
|
-
'
|
|
3813
|
-
'
|
|
4022
|
+
'calibration_one': frame.slice(25, 29),
|
|
4023
|
+
'calibration_two':frame.slice(29, 33),
|
|
4024
|
+
'calibration_three':frame.slice(33, 37),
|
|
4025
|
+
'hardware_id': frame.slice(37, 40),
|
|
4026
|
+
'report_rate': frame.slice(40, 44),
|
|
4027
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
3814
4028
|
}
|
|
3815
4029
|
}
|
|
3816
4030
|
}
|
|
@@ -3897,48 +4111,98 @@ function sensor_types(parent){
|
|
|
3897
4111
|
let frame_data = {};
|
|
3898
4112
|
switch(frame[16]){
|
|
3899
4113
|
case 0:
|
|
3900
|
-
frame_data.fsr = "+-
|
|
3901
|
-
|
|
4114
|
+
frame_data.fsr = "+-6.114 V";
|
|
4115
|
+
break;
|
|
3902
4116
|
case 1:
|
|
3903
|
-
frame_data.fsr = "+-
|
|
3904
|
-
|
|
4117
|
+
frame_data.fsr = "+-4.096 V";
|
|
4118
|
+
break;
|
|
3905
4119
|
case 2:
|
|
3906
|
-
frame_data.fsr = "+-1.024 V";
|
|
3907
|
-
break;
|
|
3908
|
-
case 3:
|
|
3909
4120
|
frame_data.fsr = "+-2.048 V";
|
|
3910
|
-
|
|
4121
|
+
break;
|
|
4122
|
+
case 3:
|
|
4123
|
+
frame_data.fsr = "+-1.024 V";
|
|
4124
|
+
break;
|
|
3911
4125
|
case 4:
|
|
3912
|
-
frame_data.fsr = "+-
|
|
3913
|
-
|
|
4126
|
+
frame_data.fsr = "+-0.512 V";
|
|
4127
|
+
break;
|
|
3914
4128
|
case 5:
|
|
3915
|
-
frame_data.fsr = "+-
|
|
3916
|
-
|
|
4129
|
+
frame_data.fsr = "+-0.256 V";
|
|
4130
|
+
break;
|
|
3917
4131
|
}
|
|
3918
|
-
if(firmware >
|
|
4132
|
+
if(firmware > 18){ // firmware 14 and above
|
|
4133
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4134
|
+
if(!auto_check_interval){
|
|
4135
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4136
|
+
}else{
|
|
4137
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4138
|
+
}
|
|
3919
4139
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
3920
4140
|
return {
|
|
3921
4141
|
'firmware': frame[2],
|
|
3922
4142
|
'fsr': frame_data.fsr,
|
|
3923
|
-
'
|
|
3924
|
-
'
|
|
3925
|
-
'auto_check_interval':
|
|
3926
|
-
'
|
|
4143
|
+
'boot_up_time': frame[17] + " sec",
|
|
4144
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
4145
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4146
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
3927
4147
|
'always_on': frame_data.always_on,
|
|
3928
|
-
'
|
|
3929
|
-
'
|
|
3930
|
-
'
|
|
4148
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4149
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4150
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4151
|
+
'hardware_id': frame.slice(37, 40),
|
|
4152
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4153
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
3931
4154
|
'machine_values': {
|
|
3932
4155
|
'firmware': frame[2],
|
|
3933
4156
|
'fsr': frame[16],
|
|
3934
|
-
'
|
|
3935
|
-
'
|
|
4157
|
+
'boot_up_time': frame[17],
|
|
4158
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
4159
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
4160
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
4161
|
+
'always_on': frame[24],
|
|
4162
|
+
'calibration_one': frame.slice(25, 29),
|
|
4163
|
+
'calibration_two':frame.slice(29, 33),
|
|
4164
|
+
'calibration_three':frame.slice(33, 37),
|
|
4165
|
+
'hardware_id': frame.slice(37, 40),
|
|
4166
|
+
'report_rate': frame.slice(40, 44),
|
|
4167
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4168
|
+
}
|
|
4169
|
+
}
|
|
4170
|
+
}else if(firmware > 13){ // firmware 14 and above
|
|
4171
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4172
|
+
if(!auto_check_interval){
|
|
4173
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4174
|
+
}else{
|
|
4175
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4176
|
+
}
|
|
4177
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4178
|
+
return {
|
|
4179
|
+
'firmware': frame[2],
|
|
4180
|
+
'fsr': frame_data.fsr,
|
|
4181
|
+
'boot_up_time': frame[17] + " sec",
|
|
4182
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
4183
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4184
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4185
|
+
'always_on': frame_data.always_on,
|
|
4186
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4187
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4188
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4189
|
+
'hardware_id': frame.slice(37, 40),
|
|
4190
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4191
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4192
|
+
'machine_values': {
|
|
4193
|
+
'firmware': frame[2],
|
|
4194
|
+
'fsr': frame[16],
|
|
4195
|
+
'boot_up_time': frame[17],
|
|
4196
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
3936
4197
|
'auto_check_interval': frame.slice(20, 22),
|
|
3937
4198
|
'auto_check_percentage': frame.slice(22, 24),
|
|
3938
4199
|
'always_on': frame[24],
|
|
3939
|
-
'
|
|
3940
|
-
'
|
|
3941
|
-
'
|
|
4200
|
+
'calibration_one': frame.slice(25, 29),
|
|
4201
|
+
'calibration_two':frame.slice(29, 33),
|
|
4202
|
+
'calibration_three':frame.slice(33, 37),
|
|
4203
|
+
'hardware_id': frame.slice(37, 40),
|
|
4204
|
+
'report_rate': frame.slice(40, 44),
|
|
4205
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
3942
4206
|
}
|
|
3943
4207
|
}
|
|
3944
4208
|
}
|
|
@@ -4022,25 +4286,31 @@ function sensor_types(parent){
|
|
|
4022
4286
|
let firmware = frame[2];
|
|
4023
4287
|
if(firmware > 13){ // firmware 14 and above
|
|
4024
4288
|
let frame_data = {};
|
|
4289
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4290
|
+
if(!auto_check_interval){
|
|
4291
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4292
|
+
}else{
|
|
4293
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4294
|
+
}
|
|
4025
4295
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4026
4296
|
switch(frame[16]){
|
|
4027
4297
|
case 0:
|
|
4028
|
-
frame_data.fsr = "+-
|
|
4298
|
+
frame_data.fsr = "+-6.114 V";
|
|
4029
4299
|
break;
|
|
4030
4300
|
case 1:
|
|
4031
|
-
frame_data.fsr = "+-
|
|
4301
|
+
frame_data.fsr = "+-4.096 V";
|
|
4032
4302
|
break;
|
|
4033
4303
|
case 2:
|
|
4034
|
-
frame_data.fsr = "+-
|
|
4304
|
+
frame_data.fsr = "+-2.048 V";
|
|
4035
4305
|
break;
|
|
4036
4306
|
case 3:
|
|
4037
|
-
frame_data.fsr = "+-
|
|
4307
|
+
frame_data.fsr = "+-1.024 V";
|
|
4038
4308
|
break;
|
|
4039
4309
|
case 4:
|
|
4040
|
-
frame_data.fsr = "+-
|
|
4310
|
+
frame_data.fsr = "+-0.512 V";
|
|
4041
4311
|
break;
|
|
4042
4312
|
case 5:
|
|
4043
|
-
frame_data.fsr = "+-
|
|
4313
|
+
frame_data.fsr = "+-0.256 V";
|
|
4044
4314
|
break;
|
|
4045
4315
|
}
|
|
4046
4316
|
return {
|
|
@@ -4048,12 +4318,15 @@ function sensor_types(parent){
|
|
|
4048
4318
|
'fsr': frame_data.fsr,
|
|
4049
4319
|
'boot_time': frame[17] + " sec",
|
|
4050
4320
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4051
|
-
'auto_check_interval':
|
|
4052
|
-
'
|
|
4321
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4322
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4053
4323
|
'always_on': frame_data.always_on,
|
|
4054
|
-
'
|
|
4055
|
-
'
|
|
4056
|
-
'
|
|
4324
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4325
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4326
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4327
|
+
'hardware_id': frame.slice(37, 40),
|
|
4328
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4329
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4057
4330
|
'machine_values': {
|
|
4058
4331
|
'firmware': frame[2],
|
|
4059
4332
|
'fsr': frame[16],
|
|
@@ -4062,9 +4335,12 @@ function sensor_types(parent){
|
|
|
4062
4335
|
'auto_check_interval': frame.slice(20, 22),
|
|
4063
4336
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4064
4337
|
'always_on': frame[24],
|
|
4065
|
-
'
|
|
4066
|
-
'
|
|
4067
|
-
'
|
|
4338
|
+
'calibration_one': frame.slice(25, 29),
|
|
4339
|
+
'calibration_two':frame.slice(29, 33),
|
|
4340
|
+
'calibration_three':frame.slice(33, 37),
|
|
4341
|
+
'hardware_id': frame.slice(37, 40),
|
|
4342
|
+
'report_rate': frame.slice(40, 44),
|
|
4343
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4068
4344
|
}
|
|
4069
4345
|
}
|
|
4070
4346
|
}
|
|
@@ -4306,25 +4582,31 @@ function sensor_types(parent){
|
|
|
4306
4582
|
let firmware = frame[2];
|
|
4307
4583
|
if(firmware > 13){ // firmware 14 and above
|
|
4308
4584
|
let frame_data = {};
|
|
4585
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4586
|
+
if(!auto_check_interval){
|
|
4587
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4588
|
+
}else{
|
|
4589
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4590
|
+
}
|
|
4309
4591
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4310
4592
|
switch(frame[16]){
|
|
4311
4593
|
case 0:
|
|
4312
|
-
frame_data.fsr = "+-
|
|
4594
|
+
frame_data.fsr = "+-6.114 V";
|
|
4313
4595
|
break;
|
|
4314
4596
|
case 1:
|
|
4315
|
-
frame_data.fsr = "+-
|
|
4597
|
+
frame_data.fsr = "+-4.096 V";
|
|
4316
4598
|
break;
|
|
4317
4599
|
case 2:
|
|
4318
|
-
frame_data.fsr = "+-
|
|
4600
|
+
frame_data.fsr = "+-2.048 V";
|
|
4319
4601
|
break;
|
|
4320
4602
|
case 3:
|
|
4321
|
-
frame_data.fsr = "+-
|
|
4603
|
+
frame_data.fsr = "+-1.024 V";
|
|
4322
4604
|
break;
|
|
4323
4605
|
case 4:
|
|
4324
|
-
frame_data.fsr = "+-
|
|
4606
|
+
frame_data.fsr = "+-0.512 V";
|
|
4325
4607
|
break;
|
|
4326
4608
|
case 5:
|
|
4327
|
-
frame_data.fsr = "+-
|
|
4609
|
+
frame_data.fsr = "+-0.256 V";
|
|
4328
4610
|
break;
|
|
4329
4611
|
}
|
|
4330
4612
|
return {
|
|
@@ -4332,12 +4614,15 @@ function sensor_types(parent){
|
|
|
4332
4614
|
'fsr': frame_data.fsr,
|
|
4333
4615
|
'boot_time': frame[17] + " sec",
|
|
4334
4616
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4335
|
-
'auto_check_interval':
|
|
4336
|
-
'
|
|
4617
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4618
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4337
4619
|
'always_on': frame_data.always_on,
|
|
4338
|
-
'
|
|
4339
|
-
'
|
|
4340
|
-
'
|
|
4620
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4621
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4622
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4623
|
+
'hardware_id': frame.slice(37, 40),
|
|
4624
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4625
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4341
4626
|
'machine_values': {
|
|
4342
4627
|
'firmware': frame[2],
|
|
4343
4628
|
'fsr': frame[16],
|
|
@@ -4346,9 +4631,12 @@ function sensor_types(parent){
|
|
|
4346
4631
|
'auto_check_interval': frame.slice(20, 22),
|
|
4347
4632
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4348
4633
|
'always_on': frame[24],
|
|
4349
|
-
'
|
|
4350
|
-
'
|
|
4351
|
-
'
|
|
4634
|
+
'calibration_one': frame.slice(25, 29),
|
|
4635
|
+
'calibration_two':frame.slice(29, 33),
|
|
4636
|
+
'calibration_three':frame.slice(33, 37),
|
|
4637
|
+
'hardware_id': frame.slice(37, 40),
|
|
4638
|
+
'report_rate': frame.slice(40, 44),
|
|
4639
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4352
4640
|
}
|
|
4353
4641
|
}
|
|
4354
4642
|
}
|
|
@@ -4367,25 +4655,31 @@ function sensor_types(parent){
|
|
|
4367
4655
|
let firmware = frame[2];
|
|
4368
4656
|
if(firmware > 13){ // firmware 14 and above
|
|
4369
4657
|
let frame_data = {};
|
|
4658
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4659
|
+
if(!auto_check_interval){
|
|
4660
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4661
|
+
}else{
|
|
4662
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4663
|
+
}
|
|
4370
4664
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4371
4665
|
switch(frame[16]){
|
|
4372
4666
|
case 0:
|
|
4373
|
-
frame_data.fsr = "+-
|
|
4667
|
+
frame_data.fsr = "+-6.114 V";
|
|
4374
4668
|
break;
|
|
4375
4669
|
case 1:
|
|
4376
|
-
frame_data.fsr = "+-
|
|
4670
|
+
frame_data.fsr = "+-4.096 V";
|
|
4377
4671
|
break;
|
|
4378
4672
|
case 2:
|
|
4379
|
-
frame_data.fsr = "+-
|
|
4673
|
+
frame_data.fsr = "+-2.048 V";
|
|
4380
4674
|
break;
|
|
4381
4675
|
case 3:
|
|
4382
|
-
frame_data.fsr = "+-
|
|
4676
|
+
frame_data.fsr = "+-1.024 V";
|
|
4383
4677
|
break;
|
|
4384
4678
|
case 4:
|
|
4385
|
-
frame_data.fsr = "+-
|
|
4679
|
+
frame_data.fsr = "+-0.512 V";
|
|
4386
4680
|
break;
|
|
4387
4681
|
case 5:
|
|
4388
|
-
frame_data.fsr = "+-
|
|
4682
|
+
frame_data.fsr = "+-0.256 V";
|
|
4389
4683
|
break;
|
|
4390
4684
|
}
|
|
4391
4685
|
return {
|
|
@@ -4393,12 +4687,15 @@ function sensor_types(parent){
|
|
|
4393
4687
|
'fsr': frame_data.fsr,
|
|
4394
4688
|
'boot_time': frame[17] + " sec",
|
|
4395
4689
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4396
|
-
'auto_check_interval':
|
|
4397
|
-
'
|
|
4690
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4691
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4398
4692
|
'always_on': frame_data.always_on,
|
|
4399
|
-
'
|
|
4400
|
-
'
|
|
4401
|
-
'
|
|
4693
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4694
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4695
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4696
|
+
'hardware_id': frame.slice(37, 40),
|
|
4697
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4698
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4402
4699
|
'machine_values': {
|
|
4403
4700
|
'firmware': frame[2],
|
|
4404
4701
|
'fsr': frame[16],
|
|
@@ -4407,9 +4704,12 @@ function sensor_types(parent){
|
|
|
4407
4704
|
'auto_check_interval': frame.slice(20, 22),
|
|
4408
4705
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4409
4706
|
'always_on': frame[24],
|
|
4410
|
-
'
|
|
4411
|
-
'
|
|
4412
|
-
'
|
|
4707
|
+
'calibration_one': frame.slice(25, 29),
|
|
4708
|
+
'calibration_two':frame.slice(29, 33),
|
|
4709
|
+
'calibration_three':frame.slice(33, 37),
|
|
4710
|
+
'hardware_id': frame.slice(37, 40),
|
|
4711
|
+
'report_rate': frame.slice(40, 44),
|
|
4712
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4413
4713
|
}
|
|
4414
4714
|
}
|
|
4415
4715
|
}
|
|
@@ -4505,65 +4805,50 @@ function sensor_types(parent){
|
|
|
4505
4805
|
if(payload[8] === 1){
|
|
4506
4806
|
var deviceAddr = mac;
|
|
4507
4807
|
var firmware = payload[1];
|
|
4808
|
+
var mode = payload[8];
|
|
4809
|
+
var odr = payload[9];
|
|
4810
|
+
var en_axis = payload[10] & 7;
|
|
4811
|
+
var fsr = payload[10] >> 5;
|
|
4812
|
+
var hour = payload[11];
|
|
4813
|
+
var minute = payload[12];
|
|
4814
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4815
|
+
var expected_packets = payload[15];
|
|
4816
|
+
var current_packet = payload[16];
|
|
4817
|
+
var sdata_start = 17;
|
|
4508
4818
|
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4520
|
-
|
|
4521
|
-
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
break;
|
|
4543
|
-
case 9:
|
|
4544
|
-
odr = 400;
|
|
4545
|
-
break;
|
|
4546
|
-
case 10:
|
|
4547
|
-
odr = 800;
|
|
4548
|
-
break;
|
|
4549
|
-
case 11:
|
|
4550
|
-
odr = 1600;
|
|
4551
|
-
break;
|
|
4552
|
-
case 12:
|
|
4553
|
-
odr = 3200;
|
|
4554
|
-
break;
|
|
4555
|
-
case 13:
|
|
4556
|
-
odr = 6400;
|
|
4557
|
-
break;
|
|
4558
|
-
case 14:
|
|
4559
|
-
odr = 12800;
|
|
4560
|
-
break;
|
|
4561
|
-
case 15:
|
|
4562
|
-
odr = 25600;
|
|
4563
|
-
break;
|
|
4564
|
-
default:
|
|
4565
|
-
odr = 0;
|
|
4566
|
-
}
|
|
4819
|
+
switch(odr){
|
|
4820
|
+
case 6:
|
|
4821
|
+
odr = 50;
|
|
4822
|
+
break;
|
|
4823
|
+
case 7:
|
|
4824
|
+
odr = 100;
|
|
4825
|
+
break;
|
|
4826
|
+
case 8:
|
|
4827
|
+
odr = 200;
|
|
4828
|
+
break;
|
|
4829
|
+
case 9:
|
|
4830
|
+
odr = 400;
|
|
4831
|
+
break;
|
|
4832
|
+
case 10:
|
|
4833
|
+
odr = 800;
|
|
4834
|
+
break;
|
|
4835
|
+
case 11:
|
|
4836
|
+
odr = 1600;
|
|
4837
|
+
break;
|
|
4838
|
+
case 12:
|
|
4839
|
+
odr = 3200;
|
|
4840
|
+
break;
|
|
4841
|
+
case 13:
|
|
4842
|
+
odr = 6400;
|
|
4843
|
+
break;
|
|
4844
|
+
case 14:
|
|
4845
|
+
odr = 12800;
|
|
4846
|
+
break;
|
|
4847
|
+
case 15:
|
|
4848
|
+
odr = 25600;
|
|
4849
|
+
break;
|
|
4850
|
+
default:
|
|
4851
|
+
odr = 0;
|
|
4567
4852
|
}
|
|
4568
4853
|
|
|
4569
4854
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -5056,65 +5341,50 @@ function sensor_types(parent){
|
|
|
5056
5341
|
if(payload[8] === 1){
|
|
5057
5342
|
var deviceAddr = mac;
|
|
5058
5343
|
var firmware = payload[1];
|
|
5344
|
+
var mode = payload[8];
|
|
5345
|
+
var odr = payload[9];
|
|
5346
|
+
var en_axis = payload[10] & 7;
|
|
5347
|
+
var fsr = payload[10] >> 5;
|
|
5348
|
+
var hour = payload[11];
|
|
5349
|
+
var minute = payload[12];
|
|
5350
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
5351
|
+
var expected_packets = payload[15];
|
|
5352
|
+
var current_packet = payload[16];
|
|
5353
|
+
var sdata_start = 17;
|
|
5059
5354
|
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
break;
|
|
5094
|
-
case 9:
|
|
5095
|
-
odr = 400;
|
|
5096
|
-
break;
|
|
5097
|
-
case 10:
|
|
5098
|
-
odr = 800;
|
|
5099
|
-
break;
|
|
5100
|
-
case 11:
|
|
5101
|
-
odr = 1600;
|
|
5102
|
-
break;
|
|
5103
|
-
case 12:
|
|
5104
|
-
odr = 3200;
|
|
5105
|
-
break;
|
|
5106
|
-
case 13:
|
|
5107
|
-
odr = 6400;
|
|
5108
|
-
break;
|
|
5109
|
-
case 14:
|
|
5110
|
-
odr = 12800;
|
|
5111
|
-
break;
|
|
5112
|
-
case 15:
|
|
5113
|
-
odr = 25600;
|
|
5114
|
-
break;
|
|
5115
|
-
default:
|
|
5116
|
-
odr = 0;
|
|
5117
|
-
}
|
|
5355
|
+
switch(odr){
|
|
5356
|
+
case 6:
|
|
5357
|
+
odr = 50;
|
|
5358
|
+
break;
|
|
5359
|
+
case 7:
|
|
5360
|
+
odr = 100;
|
|
5361
|
+
break;
|
|
5362
|
+
case 8:
|
|
5363
|
+
odr = 200;
|
|
5364
|
+
break;
|
|
5365
|
+
case 9:
|
|
5366
|
+
odr = 400;
|
|
5367
|
+
break;
|
|
5368
|
+
case 10:
|
|
5369
|
+
odr = 800;
|
|
5370
|
+
break;
|
|
5371
|
+
case 11:
|
|
5372
|
+
odr = 1600;
|
|
5373
|
+
break;
|
|
5374
|
+
case 12:
|
|
5375
|
+
odr = 3200;
|
|
5376
|
+
break;
|
|
5377
|
+
case 13:
|
|
5378
|
+
odr = 6400;
|
|
5379
|
+
break;
|
|
5380
|
+
case 14:
|
|
5381
|
+
odr = 12800;
|
|
5382
|
+
break;
|
|
5383
|
+
case 15:
|
|
5384
|
+
odr = 25600;
|
|
5385
|
+
break;
|
|
5386
|
+
default:
|
|
5387
|
+
odr = 0;
|
|
5118
5388
|
}
|
|
5119
5389
|
|
|
5120
5390
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -5794,65 +6064,50 @@ function sensor_types(parent){
|
|
|
5794
6064
|
if(payload[8] === 1){
|
|
5795
6065
|
var deviceAddr = mac;
|
|
5796
6066
|
var firmware = payload[1];
|
|
6067
|
+
var mode = payload[8];
|
|
6068
|
+
var odr = payload[9];
|
|
6069
|
+
var en_axis = payload[10] & 7;
|
|
6070
|
+
var fsr = payload[10] >> 5;
|
|
6071
|
+
var hour = payload[11];
|
|
6072
|
+
var minute = payload[12];
|
|
6073
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6074
|
+
var expected_packets = payload[15];
|
|
6075
|
+
var current_packet = payload[16];
|
|
6076
|
+
var sdata_start = 17;
|
|
5797
6077
|
|
|
5798
|
-
|
|
5799
|
-
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5803
|
-
|
|
5804
|
-
|
|
5805
|
-
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
|
|
5811
|
-
|
|
5812
|
-
|
|
5813
|
-
|
|
5814
|
-
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
|
|
5826
|
-
|
|
5827
|
-
|
|
5828
|
-
|
|
5829
|
-
|
|
5830
|
-
|
|
5831
|
-
break;
|
|
5832
|
-
case 9:
|
|
5833
|
-
odr = 400;
|
|
5834
|
-
break;
|
|
5835
|
-
case 10:
|
|
5836
|
-
odr = 800;
|
|
5837
|
-
break;
|
|
5838
|
-
case 11:
|
|
5839
|
-
odr = 1600;
|
|
5840
|
-
break;
|
|
5841
|
-
case 12:
|
|
5842
|
-
odr = 3200;
|
|
5843
|
-
break;
|
|
5844
|
-
case 13:
|
|
5845
|
-
odr = 6400;
|
|
5846
|
-
break;
|
|
5847
|
-
case 14:
|
|
5848
|
-
odr = 12800;
|
|
5849
|
-
break;
|
|
5850
|
-
case 15:
|
|
5851
|
-
odr = 25600;
|
|
5852
|
-
break;
|
|
5853
|
-
default:
|
|
5854
|
-
odr = 0;
|
|
5855
|
-
}
|
|
6078
|
+
switch(odr){
|
|
6079
|
+
case 6:
|
|
6080
|
+
odr = 50;
|
|
6081
|
+
break;
|
|
6082
|
+
case 7:
|
|
6083
|
+
odr = 100;
|
|
6084
|
+
break;
|
|
6085
|
+
case 8:
|
|
6086
|
+
odr = 200;
|
|
6087
|
+
break;
|
|
6088
|
+
case 9:
|
|
6089
|
+
odr = 400;
|
|
6090
|
+
break;
|
|
6091
|
+
case 10:
|
|
6092
|
+
odr = 800;
|
|
6093
|
+
break;
|
|
6094
|
+
case 11:
|
|
6095
|
+
odr = 1600;
|
|
6096
|
+
break;
|
|
6097
|
+
case 12:
|
|
6098
|
+
odr = 3200;
|
|
6099
|
+
break;
|
|
6100
|
+
case 13:
|
|
6101
|
+
odr = 6400;
|
|
6102
|
+
break;
|
|
6103
|
+
case 14:
|
|
6104
|
+
odr = 12800;
|
|
6105
|
+
break;
|
|
6106
|
+
case 15:
|
|
6107
|
+
odr = 25600;
|
|
6108
|
+
break;
|
|
6109
|
+
default:
|
|
6110
|
+
odr = 0;
|
|
5856
6111
|
}
|
|
5857
6112
|
|
|
5858
6113
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -6338,66 +6593,51 @@ function sensor_types(parent){
|
|
|
6338
6593
|
if(payload[8] === 1){
|
|
6339
6594
|
var deviceAddr = mac;
|
|
6340
6595
|
var firmware = payload[1];
|
|
6596
|
+
var mode = payload[8];
|
|
6597
|
+
var odr = payload[9];
|
|
6598
|
+
var en_axis = payload[10] & 7;
|
|
6599
|
+
var fsr = payload[10] >> 5;
|
|
6600
|
+
var hour = payload[11];
|
|
6601
|
+
var minute = payload[12];
|
|
6602
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6603
|
+
var expected_packets = payload[15];
|
|
6604
|
+
var current_packet = payload[16];
|
|
6605
|
+
var sdata_start = 17;
|
|
6341
6606
|
|
|
6342
|
-
|
|
6343
|
-
|
|
6344
|
-
|
|
6345
|
-
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
|
|
6358
|
-
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
case 9:
|
|
6377
|
-
odr = 400;
|
|
6378
|
-
break;
|
|
6379
|
-
case 10:
|
|
6380
|
-
odr = 800;
|
|
6381
|
-
break;
|
|
6382
|
-
case 11:
|
|
6383
|
-
odr = 1600;
|
|
6384
|
-
break;
|
|
6385
|
-
case 12:
|
|
6386
|
-
odr = 3200;
|
|
6387
|
-
break;
|
|
6388
|
-
case 13:
|
|
6389
|
-
odr = 6400;
|
|
6390
|
-
break;
|
|
6391
|
-
case 14:
|
|
6392
|
-
odr = 12800;
|
|
6393
|
-
break;
|
|
6394
|
-
case 15:
|
|
6395
|
-
odr = 25600;
|
|
6396
|
-
break;
|
|
6397
|
-
default:
|
|
6398
|
-
odr = 0;
|
|
6399
|
-
}
|
|
6400
|
-
}
|
|
6607
|
+
switch(odr){
|
|
6608
|
+
case 6:
|
|
6609
|
+
odr = 50;
|
|
6610
|
+
break;
|
|
6611
|
+
case 7:
|
|
6612
|
+
odr = 100;
|
|
6613
|
+
break;
|
|
6614
|
+
case 8:
|
|
6615
|
+
odr = 200;
|
|
6616
|
+
break;
|
|
6617
|
+
case 9:
|
|
6618
|
+
odr = 400;
|
|
6619
|
+
break;
|
|
6620
|
+
case 10:
|
|
6621
|
+
odr = 800;
|
|
6622
|
+
break;
|
|
6623
|
+
case 11:
|
|
6624
|
+
odr = 1600;
|
|
6625
|
+
break;
|
|
6626
|
+
case 12:
|
|
6627
|
+
odr = 3200;
|
|
6628
|
+
break;
|
|
6629
|
+
case 13:
|
|
6630
|
+
odr = 6400;
|
|
6631
|
+
break;
|
|
6632
|
+
case 14:
|
|
6633
|
+
odr = 12800;
|
|
6634
|
+
break;
|
|
6635
|
+
case 15:
|
|
6636
|
+
odr = 25600;
|
|
6637
|
+
break;
|
|
6638
|
+
default:
|
|
6639
|
+
odr = 0;
|
|
6640
|
+
}
|
|
6401
6641
|
|
|
6402
6642
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6403
6643
|
if(expected_packets != 1){
|
|
@@ -6872,7 +7112,7 @@ function sensor_types(parent){
|
|
|
6872
7112
|
}
|
|
6873
7113
|
},
|
|
6874
7114
|
'87': {
|
|
6875
|
-
'name': '
|
|
7115
|
+
'name': 'Gen 4 One Channel Wireless Current Sensor',
|
|
6876
7116
|
parse: (d) => {
|
|
6877
7117
|
return {
|
|
6878
7118
|
ct1_rms: d.slice(0, 4).reduce(msbLsb),
|
|
@@ -6880,6 +7120,28 @@ function sensor_types(parent){
|
|
|
6880
7120
|
ct1_peak_2_freq: d.slice(6, 8).reduce(msbLsb),
|
|
6881
7121
|
ct1_peak_3_freq: d.slice(8, 10).reduce(msbLsb),
|
|
6882
7122
|
}
|
|
7123
|
+
},
|
|
7124
|
+
'parse_fly': (frame) => {
|
|
7125
|
+
return {
|
|
7126
|
+
'firmware': frame[2],
|
|
7127
|
+
'sampling_rate': frame[16] + 'Hz',
|
|
7128
|
+
'current_calibration': (frame.slice(17, 21).reduce(msbLsb)) * 10,
|
|
7129
|
+
'deadband': frame.slice(21, 23).reduce(msbLsb) + 'mA',
|
|
7130
|
+
'max_supported_ct': frame.slice(23, 27).reduce(msbLsb),
|
|
7131
|
+
'hardware_id': frame.slice(27, 30),
|
|
7132
|
+
'report_rate': frame.slice(30, 34).reduce(msbLsb) + "sec",
|
|
7133
|
+
'tx_life_counter': frame.slice(34, 38).reduce(msbLsb),
|
|
7134
|
+
'machine_values': {
|
|
7135
|
+
'firmware': frame[2],
|
|
7136
|
+
'sampling_rate': frame[16],
|
|
7137
|
+
'current_calibration': frame.slice(17, 21),
|
|
7138
|
+
'deadband': frame.slice(21, 23),
|
|
7139
|
+
'max_supported_ct': frame.slice(23, 27),
|
|
7140
|
+
'hardware_id': frame.slice(27, 30),
|
|
7141
|
+
'report_rate': frame.slice(30, 34),
|
|
7142
|
+
'tx_life_counter': frame.slice(34, 38)
|
|
7143
|
+
}
|
|
7144
|
+
}
|
|
6883
7145
|
}
|
|
6884
7146
|
},
|
|
6885
7147
|
'88': {
|
|
@@ -6896,48 +7158,61 @@ function sensor_types(parent){
|
|
|
6896
7158
|
let frame_data = {};
|
|
6897
7159
|
switch(frame[16]){
|
|
6898
7160
|
case 0:
|
|
6899
|
-
frame_data.fsr = "+-
|
|
7161
|
+
frame_data.fsr = "+-6.114 V";
|
|
6900
7162
|
break;
|
|
6901
7163
|
case 1:
|
|
6902
|
-
frame_data.fsr = "+-
|
|
7164
|
+
frame_data.fsr = "+-4.096 V";
|
|
6903
7165
|
break;
|
|
6904
7166
|
case 2:
|
|
6905
|
-
frame_data.fsr = "+-
|
|
7167
|
+
frame_data.fsr = "+-2.048 V";
|
|
6906
7168
|
break;
|
|
6907
7169
|
case 3:
|
|
6908
|
-
frame_data.fsr = "+-
|
|
7170
|
+
frame_data.fsr = "+-1.024 V";
|
|
6909
7171
|
break;
|
|
6910
7172
|
case 4:
|
|
6911
|
-
frame_data.fsr = "+-
|
|
7173
|
+
frame_data.fsr = "+-0.512 V";
|
|
6912
7174
|
break;
|
|
6913
7175
|
case 5:
|
|
6914
|
-
frame_data.fsr = "+-
|
|
7176
|
+
frame_data.fsr = "+-0.256 V";
|
|
6915
7177
|
break;
|
|
6916
7178
|
}
|
|
6917
7179
|
if(firmware > 13){ // firmware 14 and above
|
|
7180
|
+
let frame_data = {};
|
|
7181
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7182
|
+
if(!auto_check_interval){
|
|
7183
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7184
|
+
}else{
|
|
7185
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7186
|
+
}
|
|
6918
7187
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
6919
7188
|
return {
|
|
6920
7189
|
'firmware': frame[2],
|
|
6921
7190
|
'fsr': frame_data.fsr,
|
|
6922
|
-
'
|
|
6923
|
-
'
|
|
6924
|
-
'auto_check_interval':
|
|
6925
|
-
'
|
|
7191
|
+
'boot_up_time': frame[17] + " sec",
|
|
7192
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
7193
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7194
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
6926
7195
|
'always_on': frame_data.always_on,
|
|
6927
|
-
'
|
|
6928
|
-
'
|
|
6929
|
-
'
|
|
7196
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7197
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7198
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7199
|
+
'hardware_id': frame.slice(37, 40),
|
|
7200
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7201
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
6930
7202
|
'machine_values': {
|
|
6931
7203
|
'firmware': frame[2],
|
|
6932
7204
|
'fsr': frame[16],
|
|
6933
|
-
'
|
|
6934
|
-
'
|
|
7205
|
+
'boot_up_time': frame[17],
|
|
7206
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
6935
7207
|
'auto_check_interval': frame.slice(20, 22),
|
|
6936
7208
|
'auto_check_percentage': frame.slice(22, 24),
|
|
6937
7209
|
'always_on': frame[24],
|
|
6938
|
-
'
|
|
6939
|
-
'
|
|
6940
|
-
'
|
|
7210
|
+
'calibration_one': frame.slice(25, 29),
|
|
7211
|
+
'calibration_two':frame.slice(29, 33),
|
|
7212
|
+
'calibration_three':frame.slice(33, 37),
|
|
7213
|
+
'hardware_id': frame.slice(37, 40),
|
|
7214
|
+
'report_rate': frame.slice(40, 44),
|
|
7215
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
6941
7216
|
}
|
|
6942
7217
|
}
|
|
6943
7218
|
}else{
|
|
@@ -6976,48 +7251,61 @@ function sensor_types(parent){
|
|
|
6976
7251
|
let frame_data = {};
|
|
6977
7252
|
switch(frame[16]){
|
|
6978
7253
|
case 0:
|
|
6979
|
-
frame_data.fsr = "+-
|
|
7254
|
+
frame_data.fsr = "+-6.114 V";
|
|
6980
7255
|
break;
|
|
6981
7256
|
case 1:
|
|
6982
|
-
frame_data.fsr = "+-
|
|
7257
|
+
frame_data.fsr = "+-4.096 V";
|
|
6983
7258
|
break;
|
|
6984
7259
|
case 2:
|
|
6985
|
-
frame_data.fsr = "+-
|
|
7260
|
+
frame_data.fsr = "+-2.048 V";
|
|
6986
7261
|
break;
|
|
6987
7262
|
case 3:
|
|
6988
|
-
frame_data.fsr = "+-
|
|
7263
|
+
frame_data.fsr = "+-1.024 V";
|
|
6989
7264
|
break;
|
|
6990
7265
|
case 4:
|
|
6991
|
-
frame_data.fsr = "+-
|
|
7266
|
+
frame_data.fsr = "+-0.512 V";
|
|
6992
7267
|
break;
|
|
6993
7268
|
case 5:
|
|
6994
|
-
frame_data.fsr = "+-
|
|
7269
|
+
frame_data.fsr = "+-0.256 V";
|
|
6995
7270
|
break;
|
|
6996
7271
|
}
|
|
6997
7272
|
if(firmware > 13){ // firmware 14 and above
|
|
7273
|
+
let frame_data = {};
|
|
7274
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7275
|
+
if(!auto_check_interval){
|
|
7276
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7277
|
+
}else{
|
|
7278
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7279
|
+
}
|
|
6998
7280
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
6999
7281
|
return {
|
|
7000
7282
|
'firmware': frame[2],
|
|
7001
7283
|
'fsr': frame_data.fsr,
|
|
7002
|
-
'
|
|
7003
|
-
'
|
|
7004
|
-
'auto_check_interval':
|
|
7005
|
-
'
|
|
7284
|
+
'boot_up_time': frame[17] + " sec",
|
|
7285
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
7286
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7287
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7006
7288
|
'always_on': frame_data.always_on,
|
|
7007
|
-
'
|
|
7008
|
-
'
|
|
7009
|
-
'
|
|
7289
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7290
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7291
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7292
|
+
'hardware_id': frame.slice(37, 40),
|
|
7293
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7294
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7010
7295
|
'machine_values': {
|
|
7011
7296
|
'firmware': frame[2],
|
|
7012
7297
|
'fsr': frame[16],
|
|
7013
|
-
'
|
|
7014
|
-
'
|
|
7298
|
+
'boot_up_time': frame[17],
|
|
7299
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
7015
7300
|
'auto_check_interval': frame.slice(20, 22),
|
|
7016
7301
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7017
7302
|
'always_on': frame[24],
|
|
7018
|
-
'
|
|
7019
|
-
'
|
|
7020
|
-
'
|
|
7303
|
+
'calibration_one': frame.slice(25, 29),
|
|
7304
|
+
'calibration_two':frame.slice(29, 33),
|
|
7305
|
+
'calibration_three':frame.slice(33, 37),
|
|
7306
|
+
'hardware_id': frame.slice(37, 40),
|
|
7307
|
+
'report_rate': frame.slice(40, 44),
|
|
7308
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7021
7309
|
}
|
|
7022
7310
|
}
|
|
7023
7311
|
}else{
|
|
@@ -7051,25 +7339,31 @@ function sensor_types(parent){
|
|
|
7051
7339
|
let firmware = frame[2];
|
|
7052
7340
|
if(firmware > 13){ // firmware 14 and above
|
|
7053
7341
|
let frame_data = {};
|
|
7054
|
-
|
|
7342
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7343
|
+
if(!auto_check_interval){
|
|
7344
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7345
|
+
}else{
|
|
7346
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7347
|
+
}
|
|
7348
|
+
frame_data.always_on = frame[24] ? "Enabled" : "Disabled";
|
|
7055
7349
|
switch(frame[16]){
|
|
7056
7350
|
case 0:
|
|
7057
|
-
frame_data.fsr = "+-
|
|
7351
|
+
frame_data.fsr = "+-6.114 V";
|
|
7058
7352
|
break;
|
|
7059
7353
|
case 1:
|
|
7060
|
-
frame_data.fsr = "+-
|
|
7354
|
+
frame_data.fsr = "+-4.096 V";
|
|
7061
7355
|
break;
|
|
7062
7356
|
case 2:
|
|
7063
|
-
frame_data.fsr = "+-
|
|
7357
|
+
frame_data.fsr = "+-2.048 V";
|
|
7064
7358
|
break;
|
|
7065
7359
|
case 3:
|
|
7066
|
-
frame_data.fsr = "+-
|
|
7360
|
+
frame_data.fsr = "+-1.024 V";
|
|
7067
7361
|
break;
|
|
7068
7362
|
case 4:
|
|
7069
|
-
frame_data.fsr = "+-
|
|
7363
|
+
frame_data.fsr = "+-0.512 V";
|
|
7070
7364
|
break;
|
|
7071
7365
|
case 5:
|
|
7072
|
-
frame_data.fsr = "+-
|
|
7366
|
+
frame_data.fsr = "+-0.256 V";
|
|
7073
7367
|
break;
|
|
7074
7368
|
}
|
|
7075
7369
|
return {
|
|
@@ -7077,23 +7371,25 @@ function sensor_types(parent){
|
|
|
7077
7371
|
'fsr': frame_data.fsr,
|
|
7078
7372
|
'boot_time': frame[17] + " sec",
|
|
7079
7373
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7080
|
-
'auto_check_interval':
|
|
7081
|
-
'
|
|
7374
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7375
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7082
7376
|
'always_on': frame_data.always_on,
|
|
7083
|
-
'
|
|
7084
|
-
'
|
|
7085
|
-
'
|
|
7377
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7378
|
+
'hardware_id': frame.slice(29, 32),
|
|
7379
|
+
'report_rate': frame.slice(32, 36).reduce(msbLsb) + " sec",
|
|
7380
|
+
'tx_life_counter': frame.slice(36, 40).reduce(msbLsb),
|
|
7086
7381
|
'machine_values': {
|
|
7087
7382
|
'firmware': frame[2],
|
|
7088
7383
|
'fsr': frame[16],
|
|
7089
7384
|
'boot_time': frame[17],
|
|
7090
7385
|
'power_adc': frame.slice(18, 20),
|
|
7091
7386
|
'auto_check_interval': frame.slice(20, 22),
|
|
7092
|
-
'
|
|
7387
|
+
'auto_check_threshold': frame.slice(22, 24),
|
|
7093
7388
|
'always_on': frame[24],
|
|
7094
|
-
'
|
|
7095
|
-
'
|
|
7096
|
-
'
|
|
7389
|
+
'calibration_one': frame.slice(25, 29),
|
|
7390
|
+
'hardware_id': frame.slice(29, 32),
|
|
7391
|
+
'report_rate': frame.slice(32, 36),
|
|
7392
|
+
'tx_life_counter': frame.slice(36, 40)
|
|
7097
7393
|
}
|
|
7098
7394
|
}
|
|
7099
7395
|
}
|
|
@@ -7127,25 +7423,31 @@ function sensor_types(parent){
|
|
|
7127
7423
|
let firmware = frame[2];
|
|
7128
7424
|
if(firmware > 13){ // firmware 14 and above
|
|
7129
7425
|
let frame_data = {};
|
|
7426
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7427
|
+
if(!auto_check_interval){
|
|
7428
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7429
|
+
}else{
|
|
7430
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7431
|
+
}
|
|
7130
7432
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7131
7433
|
switch(frame[16]){
|
|
7132
7434
|
case 0:
|
|
7133
|
-
frame_data.fsr = "+-
|
|
7435
|
+
frame_data.fsr = "+-6.114 V";
|
|
7134
7436
|
break;
|
|
7135
7437
|
case 1:
|
|
7136
|
-
frame_data.fsr = "+-
|
|
7438
|
+
frame_data.fsr = "+-4.096 V";
|
|
7137
7439
|
break;
|
|
7138
7440
|
case 2:
|
|
7139
|
-
frame_data.fsr = "+-
|
|
7441
|
+
frame_data.fsr = "+-2.048 V";
|
|
7140
7442
|
break;
|
|
7141
7443
|
case 3:
|
|
7142
|
-
frame_data.fsr = "+-
|
|
7444
|
+
frame_data.fsr = "+-1.024 V";
|
|
7143
7445
|
break;
|
|
7144
7446
|
case 4:
|
|
7145
|
-
frame_data.fsr = "+-
|
|
7447
|
+
frame_data.fsr = "+-0.512 V";
|
|
7146
7448
|
break;
|
|
7147
7449
|
case 5:
|
|
7148
|
-
frame_data.fsr = "+-
|
|
7450
|
+
frame_data.fsr = "+-0.256 V";
|
|
7149
7451
|
break;
|
|
7150
7452
|
}
|
|
7151
7453
|
return {
|
|
@@ -7153,12 +7455,15 @@ function sensor_types(parent){
|
|
|
7153
7455
|
'fsr': frame_data.fsr,
|
|
7154
7456
|
'boot_time': frame[17] + " sec",
|
|
7155
7457
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7156
|
-
'auto_check_interval':
|
|
7157
|
-
'
|
|
7458
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7459
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7158
7460
|
'always_on': frame_data.always_on,
|
|
7159
|
-
'
|
|
7160
|
-
'
|
|
7161
|
-
'
|
|
7461
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7462
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7463
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7464
|
+
'hardware_id': frame.slice(37, 40),
|
|
7465
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7466
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7162
7467
|
'machine_values': {
|
|
7163
7468
|
'firmware': frame[2],
|
|
7164
7469
|
'fsr': frame[16],
|
|
@@ -7167,9 +7472,12 @@ function sensor_types(parent){
|
|
|
7167
7472
|
'auto_check_interval': frame.slice(20, 22),
|
|
7168
7473
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7169
7474
|
'always_on': frame[24],
|
|
7170
|
-
'
|
|
7171
|
-
'
|
|
7172
|
-
'
|
|
7475
|
+
'calibration_one': frame.slice(25, 29),
|
|
7476
|
+
'calibration_two':frame.slice(29, 33),
|
|
7477
|
+
'calibration_three':frame.slice(33, 37),
|
|
7478
|
+
'hardware_id': frame.slice(37, 40),
|
|
7479
|
+
'report_rate': frame.slice(40, 44),
|
|
7480
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7173
7481
|
}
|
|
7174
7482
|
}
|
|
7175
7483
|
}
|
|
@@ -7187,25 +7495,31 @@ function sensor_types(parent){
|
|
|
7187
7495
|
let firmware = frame[2];
|
|
7188
7496
|
if(firmware > 13){ // firmware 14 and above
|
|
7189
7497
|
let frame_data = {};
|
|
7498
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7499
|
+
if(!auto_check_interval){
|
|
7500
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7501
|
+
}else{
|
|
7502
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7503
|
+
}
|
|
7190
7504
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7191
7505
|
switch(frame[16]){
|
|
7192
7506
|
case 0:
|
|
7193
|
-
frame_data.fsr = "+-
|
|
7507
|
+
frame_data.fsr = "+-6.114 V";
|
|
7194
7508
|
break;
|
|
7195
7509
|
case 1:
|
|
7196
|
-
frame_data.fsr = "+-
|
|
7510
|
+
frame_data.fsr = "+-4.096 V";
|
|
7197
7511
|
break;
|
|
7198
7512
|
case 2:
|
|
7199
|
-
frame_data.fsr = "+-
|
|
7513
|
+
frame_data.fsr = "+-2.048 V";
|
|
7200
7514
|
break;
|
|
7201
7515
|
case 3:
|
|
7202
|
-
frame_data.fsr = "+-
|
|
7516
|
+
frame_data.fsr = "+-1.024 V";
|
|
7203
7517
|
break;
|
|
7204
7518
|
case 4:
|
|
7205
|
-
frame_data.fsr = "+-
|
|
7519
|
+
frame_data.fsr = "+-0.512 V";
|
|
7206
7520
|
break;
|
|
7207
7521
|
case 5:
|
|
7208
|
-
frame_data.fsr = "+-
|
|
7522
|
+
frame_data.fsr = "+-0.256 V";
|
|
7209
7523
|
break;
|
|
7210
7524
|
}
|
|
7211
7525
|
return {
|
|
@@ -7213,12 +7527,15 @@ function sensor_types(parent){
|
|
|
7213
7527
|
'fsr': frame_data.fsr,
|
|
7214
7528
|
'boot_time': frame[17] + " sec",
|
|
7215
7529
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7216
|
-
'auto_check_interval':
|
|
7217
|
-
'
|
|
7530
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7531
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7218
7532
|
'always_on': frame_data.always_on,
|
|
7219
|
-
'
|
|
7220
|
-
'
|
|
7221
|
-
'
|
|
7533
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7534
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7535
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7536
|
+
'hardware_id': frame.slice(37, 40),
|
|
7537
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7538
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7222
7539
|
'machine_values': {
|
|
7223
7540
|
'firmware': frame[2],
|
|
7224
7541
|
'fsr': frame[16],
|
|
@@ -7227,9 +7544,12 @@ function sensor_types(parent){
|
|
|
7227
7544
|
'auto_check_interval': frame.slice(20, 22),
|
|
7228
7545
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7229
7546
|
'always_on': frame[24],
|
|
7230
|
-
'
|
|
7231
|
-
'
|
|
7232
|
-
'
|
|
7547
|
+
'calibration_one': frame.slice(25, 29),
|
|
7548
|
+
'calibration_two':frame.slice(29, 33),
|
|
7549
|
+
'calibration_three':frame.slice(33, 37),
|
|
7550
|
+
'hardware_id': frame.slice(37, 40),
|
|
7551
|
+
'report_rate': frame.slice(40, 44),
|
|
7552
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7233
7553
|
}
|
|
7234
7554
|
}
|
|
7235
7555
|
}
|
|
@@ -7548,50 +7868,113 @@ function sensor_types(parent){
|
|
|
7548
7868
|
}
|
|
7549
7869
|
},
|
|
7550
7870
|
'parse_fly': (frame) => {
|
|
7551
|
-
let
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
frame_data.
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7564
|
-
|
|
7565
|
-
|
|
7871
|
+
let firmware = frame[2];
|
|
7872
|
+
if(firmware > 13){ // firmware 14 and above
|
|
7873
|
+
let frame_data = {};
|
|
7874
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7875
|
+
if(!auto_check_interval){
|
|
7876
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7877
|
+
}else{
|
|
7878
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7879
|
+
}
|
|
7880
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7881
|
+
switch(frame[16]){
|
|
7882
|
+
case 0:
|
|
7883
|
+
frame_data.fsr = "+-6.114 V";
|
|
7884
|
+
break;
|
|
7885
|
+
case 1:
|
|
7886
|
+
frame_data.fsr = "+-4.096 V";
|
|
7887
|
+
break;
|
|
7888
|
+
case 2:
|
|
7889
|
+
frame_data.fsr = "+-2.048 V";
|
|
7890
|
+
break;
|
|
7891
|
+
case 3:
|
|
7892
|
+
frame_data.fsr = "+-1.024 V";
|
|
7893
|
+
break;
|
|
7894
|
+
case 4:
|
|
7895
|
+
frame_data.fsr = "+-0.512 V";
|
|
7896
|
+
break;
|
|
7897
|
+
case 5:
|
|
7898
|
+
frame_data.fsr = "+-0.256 V";
|
|
7899
|
+
break;
|
|
7900
|
+
}
|
|
7901
|
+
return {
|
|
7902
|
+
'firmware': frame[2],
|
|
7903
|
+
'fsr': frame_data.fsr,
|
|
7904
|
+
'boot_time': frame[17] + " sec",
|
|
7905
|
+
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7906
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7907
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7908
|
+
'always_on': frame_data.always_on,
|
|
7909
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7910
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7911
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7912
|
+
'hardware_id': frame.slice(37, 40),
|
|
7913
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7914
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7915
|
+
'machine_values': {
|
|
7916
|
+
'firmware': frame[2],
|
|
7917
|
+
'fsr': frame[16],
|
|
7918
|
+
'boot_time': frame[17],
|
|
7919
|
+
'power_adc': frame.slice(18, 20),
|
|
7920
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
7921
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
7922
|
+
'always_on': frame[24],
|
|
7923
|
+
'calibration_one': frame.slice(25, 29),
|
|
7924
|
+
'calibration_two':frame.slice(29, 33),
|
|
7925
|
+
'calibration_three':frame.slice(33, 37),
|
|
7926
|
+
'hardware_id': frame.slice(37, 40),
|
|
7927
|
+
'report_rate': frame.slice(40, 44),
|
|
7928
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7929
|
+
}
|
|
7930
|
+
}
|
|
7566
7931
|
}
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7932
|
+
else{
|
|
7933
|
+
let frame_data = {};
|
|
7934
|
+
frame_data.mode = frame[12] ? 'Raw':'Processed';
|
|
7935
|
+
switch(frame[13]){
|
|
7936
|
+
case 0:
|
|
7937
|
+
frame_data.raw_lenght = 55;
|
|
7938
|
+
break;
|
|
7939
|
+
case 1:
|
|
7940
|
+
frame_data.raw_lenght = 100;
|
|
7941
|
+
break;
|
|
7942
|
+
case 2:
|
|
7943
|
+
frame_data.raw_lenght = 150;
|
|
7944
|
+
break;
|
|
7945
|
+
case 3:
|
|
7946
|
+
frame_data.raw_lenght = 180;
|
|
7947
|
+
break;
|
|
7948
|
+
}
|
|
7949
|
+
return {
|
|
7582
7950
|
'firmware': frame[2],
|
|
7583
|
-
'mode':
|
|
7584
|
-
'
|
|
7585
|
-
'raw_on_request_timeout': frame[14],
|
|
7586
|
-
'fly_rate': frame.slice(15, 17),
|
|
7587
|
-
'c1_sensor_gain_db': frame[17],
|
|
7588
|
-
'c1_sensor_boot_time': frame[18],
|
|
7589
|
-
'c2_sensor_gain_db': frame[19],
|
|
7590
|
-
'c2_sensor_boot_time': frame[20],
|
|
7591
|
-
'sampling_frequency': frame.slice(21, 25)
|
|
7951
|
+
'mode': frame_data.mode,
|
|
7952
|
+
'raw_length': frame_data.raw_lenght + " Bytes",
|
|
7953
|
+
'raw_on_request_timeout': frame[14] + " sec",
|
|
7954
|
+
'fly_rate': frame.slice(15, 17).reduce(msbLsb) + " min",
|
|
7955
|
+
'c1_sensor_gain_db': frame[17] + " dB",
|
|
7956
|
+
'c1_sensor_boot_time': frame[18] + " sec",
|
|
7957
|
+
'c2_sensor_gain_db': frame[19] + " dB",
|
|
7958
|
+
'c2_sensor_boot_time': frame[20] + " sec",
|
|
7959
|
+
'sampling_frequency': frame.slice(21, 25).reduce(msbLsb) + " Hz",
|
|
7592
7960
|
// 'hardware_id': frame.slice(25, 28),
|
|
7593
|
-
// 'report_rate': frame.slice(28, 32),
|
|
7594
|
-
// 'tx_life_count': frame.slice(32, 36)
|
|
7961
|
+
// 'report_rate': frame.slice(28, 32).reduce(msbLsb),
|
|
7962
|
+
// 'tx_life_count': frame.slice(32, 36).reduce(msbLsb),
|
|
7963
|
+
'machine_values': {
|
|
7964
|
+
'firmware': frame[2],
|
|
7965
|
+
'mode': frame[12],
|
|
7966
|
+
'raw_lenght': frame[13],
|
|
7967
|
+
'raw_on_request_timeout': frame[14],
|
|
7968
|
+
'fly_rate': frame.slice(15, 17),
|
|
7969
|
+
'c1_sensor_gain_db': frame[17],
|
|
7970
|
+
'c1_sensor_boot_time': frame[18],
|
|
7971
|
+
'c2_sensor_gain_db': frame[19],
|
|
7972
|
+
'c2_sensor_boot_time': frame[20],
|
|
7973
|
+
'sampling_frequency': frame.slice(21, 25)
|
|
7974
|
+
// 'hardware_id': frame.slice(25, 28),
|
|
7975
|
+
// 'report_rate': frame.slice(28, 32),
|
|
7976
|
+
// 'tx_life_count': frame.slice(32, 36)
|
|
7977
|
+
}
|
|
7595
7978
|
}
|
|
7596
7979
|
}
|
|
7597
7980
|
}
|
|
@@ -7612,7 +7995,7 @@ function sensor_types(parent){
|
|
|
7612
7995
|
var data = {};
|
|
7613
7996
|
switch(payload[8]){
|
|
7614
7997
|
case 1:
|
|
7615
|
-
data.sensor_type = '
|
|
7998
|
+
data.sensor_type = 'Accel';
|
|
7616
7999
|
break;
|
|
7617
8000
|
case 2:
|
|
7618
8001
|
data.sensor_type = 'gyro';
|
|
@@ -7626,74 +8009,70 @@ function sensor_types(parent){
|
|
|
7626
8009
|
data.event_type = 'motion';
|
|
7627
8010
|
break;
|
|
7628
8011
|
}
|
|
8012
|
+
|
|
8013
|
+
var mode = payload[9];
|
|
8014
|
+
var odr = payload[11];
|
|
8015
|
+
var en_axis = payload[12] & 7;
|
|
8016
|
+
var fsr = payload[12] >> 5;
|
|
7629
8017
|
var hour = payload[13];
|
|
7630
8018
|
var minute = payload[14];
|
|
8019
|
+
var device_temp = payload.slice(15, 17).reduce(msbLsb) / 100;
|
|
8020
|
+
var external_temperature = payload.slice(17, 19).reduce(msbLsb) / 100;
|
|
7631
8021
|
var expected_packets = payload.slice(19, 21).reduce(msbLsb);
|
|
7632
8022
|
var current_packet = payload.slice(21, 23).reduce(msbLsb);
|
|
7633
8023
|
var data_start = 23;
|
|
7634
8024
|
|
|
8025
|
+
switch(odr){
|
|
8026
|
+
case 0:
|
|
8027
|
+
odr = '125Hz';
|
|
8028
|
+
break;
|
|
8029
|
+
case 1:
|
|
8030
|
+
odr = '250Hz';
|
|
8031
|
+
break;
|
|
8032
|
+
case 2:
|
|
8033
|
+
odr = '500Hz';
|
|
8034
|
+
break;
|
|
8035
|
+
case 3:
|
|
8036
|
+
odr = '1000Hz';
|
|
8037
|
+
break;
|
|
8038
|
+
default:
|
|
8039
|
+
odr = 0;
|
|
8040
|
+
}
|
|
8041
|
+
|
|
7635
8042
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
7636
8043
|
if(expected_packets != 1){
|
|
7637
|
-
// if
|
|
7638
|
-
if(
|
|
7639
|
-
console.log('
|
|
7640
|
-
|
|
7641
|
-
|
|
7642
|
-
|
|
7643
|
-
|
|
7644
|
-
|
|
7645
|
-
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
7646
|
-
if(this.hasOwnProperty('failure_no')){
|
|
7647
|
-
this.failure_no = this.failure_no + 1;
|
|
7648
|
-
}
|
|
7649
|
-
else{
|
|
7650
|
-
this.failure_no = 1;
|
|
7651
|
-
}
|
|
7652
|
-
if(this.hasOwnProperty('failure_no')){
|
|
7653
|
-
console.log('####falure no');
|
|
7654
|
-
console.log(this.failure_no);
|
|
7655
|
-
}
|
|
7656
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
8044
|
+
// if current packet is equal to last one (duplicated data). This does not apply to the last package
|
|
8045
|
+
if (globalDevices[deviceAddr].last_packet_counter == current_packet){
|
|
8046
|
+
console.log('Duplicated message')
|
|
8047
|
+
return;
|
|
8048
|
+
}
|
|
8049
|
+
// if current packet is equal to 1 or last packet counter is higher thant current packet
|
|
8050
|
+
if(current_packet == 1 || (globalDevices[deviceAddr].last_packet_counter > current_packet)){
|
|
8051
|
+
// clear stream
|
|
7657
8052
|
delete globalDevices[deviceAddr];
|
|
7658
|
-
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
// stream_size: expected_packets,
|
|
7671
|
-
data: {},
|
|
7672
|
-
odr: odr,
|
|
7673
|
-
mo: mode,
|
|
7674
|
-
en_axis: en_axis,
|
|
7675
|
-
fsr: fsr,
|
|
7676
|
-
hour: hour,
|
|
7677
|
-
minute: minute,
|
|
7678
|
-
device_temp: device_temp,
|
|
7679
|
-
external_temp: external_temperature
|
|
7680
|
-
}
|
|
7681
|
-
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
7682
|
-
return;
|
|
8053
|
+
// create new stream
|
|
8054
|
+
globalDevices[deviceAddr] = {
|
|
8055
|
+
// stream_size: expected_packets,
|
|
8056
|
+
data: {},
|
|
8057
|
+
odr: odr,
|
|
8058
|
+
mo: mode,
|
|
8059
|
+
en_axis: en_axis,
|
|
8060
|
+
fsr: fsr,
|
|
8061
|
+
hour: hour,
|
|
8062
|
+
minute: minute,
|
|
8063
|
+
device_temp: device_temp,
|
|
8064
|
+
external_temp: external_temperature
|
|
7683
8065
|
}
|
|
8066
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
8067
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
8068
|
+
return;
|
|
7684
8069
|
}
|
|
7685
8070
|
else{
|
|
8071
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
7686
8072
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
7687
8073
|
}
|
|
7688
8074
|
}
|
|
7689
8075
|
else{
|
|
7690
|
-
var mode = payload[9];
|
|
7691
|
-
var odr = payload[11];
|
|
7692
|
-
var en_axis = payload[12] & 7;
|
|
7693
|
-
var fsr = payload[12] >> 5;
|
|
7694
|
-
var device_temp = payload.slice(15, 17).reduce(msbLsb) / 100;
|
|
7695
|
-
var external_temperature = payload.slice(17, 19).reduce(msbLsb) / 100;
|
|
7696
|
-
|
|
7697
8076
|
globalDevices[deviceAddr] = {
|
|
7698
8077
|
// stream_size: expected_packets,
|
|
7699
8078
|
data: {},
|
|
@@ -7706,185 +8085,282 @@ function sensor_types(parent){
|
|
|
7706
8085
|
device_temp: device_temp,
|
|
7707
8086
|
external_temp: external_temperature
|
|
7708
8087
|
}
|
|
8088
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
7709
8089
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
7710
8090
|
}
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
for(const packet in globalDevices[deviceAddr].data){
|
|
7714
|
-
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
7715
|
-
}
|
|
7716
|
-
var label = 0;
|
|
7717
|
-
|
|
7718
|
-
var fft = new Array();
|
|
7719
|
-
var fft_concat = {};
|
|
8091
|
+
}
|
|
8092
|
+
else{
|
|
7720
8093
|
|
|
7721
|
-
|
|
7722
|
-
|
|
8094
|
+
globalDevices[deviceAddr] = {
|
|
8095
|
+
data: {},
|
|
8096
|
+
odr: odr,
|
|
8097
|
+
mo: mode,
|
|
8098
|
+
en_axis: en_axis,
|
|
8099
|
+
fsr: fsr,
|
|
8100
|
+
hour: hour,
|
|
8101
|
+
minute: minute,
|
|
8102
|
+
device_temp: device_temp,
|
|
8103
|
+
external_temp: external_temperature
|
|
8104
|
+
}
|
|
8105
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
8106
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
8107
|
+
}
|
|
8108
|
+
if(current_packet == expected_packets){
|
|
8109
|
+
var raw_data = new Array();
|
|
8110
|
+
for(const packet in globalDevices[deviceAddr].data){
|
|
8111
|
+
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
8112
|
+
}
|
|
8113
|
+
var label = 0;
|
|
8114
|
+
|
|
8115
|
+
var fft = new Array();
|
|
8116
|
+
var fft_concat = {};
|
|
8117
|
+
|
|
8118
|
+
var en_axis_data = {};
|
|
8119
|
+
en_axis_data.x_offset = 0;
|
|
8120
|
+
en_axis_data.y_offset = 2;
|
|
8121
|
+
en_axis_data.z_offset = 4;
|
|
8122
|
+
en_axis_data.increment = 6;
|
|
8123
|
+
fft_concat = {x: [], y: [], z: []};
|
|
8124
|
+
|
|
8125
|
+
/* Evaluate sensor type */
|
|
8126
|
+
if(payload[8] == 1){ // accelerometer
|
|
8127
|
+
var fsr_mult = 0.00030;
|
|
8128
|
+
var fsr_text = "";
|
|
8129
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8130
|
+
case 0:
|
|
8131
|
+
fsr_mult = 0.00030;
|
|
8132
|
+
break;
|
|
7723
8133
|
case 1:
|
|
7724
|
-
|
|
7725
|
-
en_axis_data.increment = 2;
|
|
8134
|
+
fsr_mult = 0.00061;
|
|
7726
8135
|
break;
|
|
7727
8136
|
case 2:
|
|
7728
|
-
|
|
7729
|
-
en_axis_data.increment = 2;
|
|
8137
|
+
fsr_mult = 0.00122;
|
|
7730
8138
|
break;
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
8139
|
+
}
|
|
8140
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8141
|
+
case 0:
|
|
8142
|
+
fsr_text = "10g";
|
|
7735
8143
|
break;
|
|
7736
|
-
case
|
|
7737
|
-
|
|
7738
|
-
en_axis_data.increment = 2;
|
|
8144
|
+
case 1:
|
|
8145
|
+
fsr_text = "20g";
|
|
7739
8146
|
break;
|
|
7740
|
-
case
|
|
7741
|
-
|
|
7742
|
-
en_axis_data.z_offset = 2;
|
|
7743
|
-
en_axis_data.increment = 4;
|
|
8147
|
+
case 2:
|
|
8148
|
+
fsr_text = "40g";
|
|
7744
8149
|
break;
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
|
|
8150
|
+
}
|
|
8151
|
+
}else{ // gyro
|
|
8152
|
+
var fsr_mult = 0.0076;
|
|
8153
|
+
var fsr_text = "";
|
|
8154
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8155
|
+
case 0:
|
|
8156
|
+
fsr_mult = 0.0076;
|
|
7749
8157
|
break;
|
|
7750
|
-
case
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
8158
|
+
case 1:
|
|
8159
|
+
fsr_mult = 0.015;
|
|
8160
|
+
break;
|
|
8161
|
+
case 2:
|
|
8162
|
+
fsr_mult = 0.0305;
|
|
8163
|
+
break;
|
|
8164
|
+
case 3:
|
|
8165
|
+
fsr_mult = 0.061;
|
|
7755
8166
|
break;
|
|
7756
|
-
default:
|
|
7757
|
-
en_axis_data.increment = 0;
|
|
7758
8167
|
}
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
7772
|
-
break;
|
|
7773
|
-
}
|
|
7774
|
-
switch(globalDevices[deviceAddr].fsr){
|
|
7775
|
-
case 0:
|
|
7776
|
-
fsr_text = "10g";
|
|
7777
|
-
break;
|
|
7778
|
-
case 1:
|
|
7779
|
-
fsr_text = "20g";
|
|
7780
|
-
break;
|
|
7781
|
-
case 2:
|
|
7782
|
-
fsr_text = "40g";
|
|
7783
|
-
break;
|
|
7784
|
-
}
|
|
7785
|
-
}else{ // gyro
|
|
7786
|
-
var fsr_mult = 0.00047;
|
|
7787
|
-
var fsr_text = "";
|
|
7788
|
-
switch(globalDevices[deviceAddr].fsr){
|
|
7789
|
-
case 0:
|
|
7790
|
-
fsr_mult = 0.00047;
|
|
7791
|
-
break;
|
|
7792
|
-
case 1:
|
|
7793
|
-
fsr_mult = 0.00095;
|
|
7794
|
-
break;
|
|
7795
|
-
case 2:
|
|
7796
|
-
fsr_mult = 0.00190;
|
|
7797
|
-
break;
|
|
7798
|
-
case 3:
|
|
7799
|
-
fsr_mult = 0.00381;
|
|
7800
|
-
break;
|
|
7801
|
-
}
|
|
7802
|
-
switch(globalDevices[deviceAddr].fsr){
|
|
7803
|
-
case 0:
|
|
7804
|
-
fsr_text = "250dps";
|
|
7805
|
-
break;
|
|
7806
|
-
case 1:
|
|
7807
|
-
fsr_text = "500dps";
|
|
7808
|
-
break;
|
|
7809
|
-
case 2:
|
|
7810
|
-
fsr_text = "1000dps";
|
|
7811
|
-
break;
|
|
7812
|
-
case 3:
|
|
7813
|
-
fsr_text = "2000dps";
|
|
7814
|
-
break;
|
|
7815
|
-
}
|
|
8168
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8169
|
+
case 0:
|
|
8170
|
+
fsr_text = "250dps";
|
|
8171
|
+
break;
|
|
8172
|
+
case 1:
|
|
8173
|
+
fsr_text = "500dps";
|
|
8174
|
+
break;
|
|
8175
|
+
case 2:
|
|
8176
|
+
fsr_text = "1000dps";
|
|
8177
|
+
break;
|
|
8178
|
+
case 3:
|
|
8179
|
+
fsr_text = "2000dps";
|
|
8180
|
+
break;
|
|
7816
8181
|
}
|
|
8182
|
+
}
|
|
7817
8183
|
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
fft_concat[label] = {};
|
|
8184
|
+
for(var i = 0; i < raw_data.length; i+=en_axis_data.increment){
|
|
8185
|
+
label++;
|
|
7822
8186
|
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
}
|
|
7826
|
-
if('y_offset' in en_axis_data){
|
|
7827
|
-
fft_concat[label].y = parseFloat((signInt(((raw_data[i+en_axis_data.y_offset]<<8)+(raw_data[i+en_axis_data.y_offset+1])), 16)*fsr_mult).toFixed(2));
|
|
7828
|
-
}
|
|
7829
|
-
if('z_offset' in en_axis_data){
|
|
7830
|
-
fft_concat[label].z = parseFloat((signInt(((raw_data[i+en_axis_data.z_offset]<<8)+(raw_data[i+en_axis_data.z_offset+1])), 16)*fsr_mult).toFixed(2));
|
|
7831
|
-
}
|
|
8187
|
+
if('x_offset' in en_axis_data){
|
|
8188
|
+
fft_concat.x.push(parseFloat((signInt(((raw_data[i+en_axis_data.x_offset]<<8)+(raw_data[i+en_axis_data.x_offset+1])), 16)*fsr_mult).toFixed(2)));
|
|
7832
8189
|
}
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
mac_address: deviceAddr,
|
|
7839
|
-
en_axis: globalDevices[deviceAddr].en_axis,
|
|
7840
|
-
fsr: fsr_text,
|
|
7841
|
-
odr: globalDevices[deviceAddr].odr,
|
|
7842
|
-
device_temp: globalDevices[deviceAddr].device_temp,
|
|
7843
|
-
external_temp: globalDevices[deviceAddr].external_temp,
|
|
7844
|
-
total_samples: label,
|
|
7845
|
-
data: fft_concat
|
|
7846
|
-
};
|
|
7847
|
-
// console.log(globalDevices[deviceAddr].data);
|
|
7848
|
-
// console.log(raw_data);
|
|
7849
|
-
sensor_data = fft_concat_obj;
|
|
7850
|
-
// parsed.raw_packets = globalDevices[deviceAddr].data;
|
|
7851
|
-
// parsed.raw_data = raw_data;
|
|
7852
|
-
delete globalDevices[deviceAddr];
|
|
7853
|
-
if(this.hasOwnProperty('failure_no')){
|
|
7854
|
-
console.log('####falure no');
|
|
7855
|
-
console.log(this.failure_no);
|
|
8190
|
+
if('y_offset' in en_axis_data){
|
|
8191
|
+
fft_concat.y.push(parseFloat((signInt(((raw_data[i+en_axis_data.y_offset]<<8)+(raw_data[i+en_axis_data.y_offset+1])), 16)*fsr_mult).toFixed(2)));
|
|
8192
|
+
}
|
|
8193
|
+
if('z_offset' in en_axis_data){
|
|
8194
|
+
fft_concat.z.push(parseFloat((signInt(((raw_data[i+en_axis_data.z_offset]<<8)+(raw_data[i+en_axis_data.z_offset+1])), 16)*fsr_mult).toFixed(2)));
|
|
7856
8195
|
}
|
|
7857
|
-
|
|
7858
|
-
return sensor_data;
|
|
7859
|
-
}
|
|
7860
|
-
else{
|
|
7861
|
-
return;
|
|
7862
|
-
}
|
|
7863
|
-
}else{
|
|
7864
|
-
|
|
7865
|
-
var mode = payload[9];
|
|
7866
|
-
var odr = payload[11];
|
|
7867
|
-
var en_axis = payload[12] & 7;
|
|
7868
|
-
var fsr = payload[12] >> 5;
|
|
7869
|
-
var device_temp = payload.slice(15, 17).reduce(msbLsb) / 100;
|
|
7870
|
-
var external_temperature = payload.slice(17, 19).reduce(msbLsb) / 100;
|
|
7871
|
-
|
|
7872
|
-
globalDevices[deviceAddr] = {
|
|
7873
|
-
// stream_size: expected_packets,
|
|
7874
|
-
data: {},
|
|
7875
|
-
odr: odr,
|
|
7876
|
-
mo: mode,
|
|
7877
|
-
en_axis: en_axis,
|
|
7878
|
-
fsr: fsr,
|
|
7879
|
-
hour: hour,
|
|
7880
|
-
minute: minute,
|
|
7881
|
-
device_temp: device_temp,
|
|
7882
|
-
external_temp: external_temperature
|
|
7883
8196
|
}
|
|
7884
|
-
|
|
8197
|
+
var fft_concat_obj = {
|
|
8198
|
+
mode: mode,
|
|
8199
|
+
sensor_type: data.sensor_type,
|
|
8200
|
+
msg_type: data.event_type,
|
|
8201
|
+
time_id: globalDevices[deviceAddr].hour +':'+ globalDevices[deviceAddr].minute,
|
|
8202
|
+
mac_address: deviceAddr,
|
|
8203
|
+
en_axis: globalDevices[deviceAddr].en_axis,
|
|
8204
|
+
fsr: fsr_text,
|
|
8205
|
+
odr: globalDevices[deviceAddr].odr,
|
|
8206
|
+
device_temp: globalDevices[deviceAddr].device_temp,
|
|
8207
|
+
external_temp: globalDevices[deviceAddr].external_temp,
|
|
8208
|
+
total_samples: label,
|
|
8209
|
+
fft_confidence : ((Object.keys(globalDevices[deviceAddr].data).length / expected_packets) * 100).toFixed(2) + '%',
|
|
8210
|
+
data: fft_concat
|
|
8211
|
+
};
|
|
8212
|
+
sensor_data = fft_concat_obj;
|
|
8213
|
+
delete globalDevices[deviceAddr];
|
|
8214
|
+
return sensor_data;
|
|
8215
|
+
}
|
|
8216
|
+
else{
|
|
7885
8217
|
return;
|
|
7886
8218
|
}
|
|
7887
8219
|
}
|
|
8220
|
+
},
|
|
8221
|
+
'parse_fly': (frame) => {
|
|
8222
|
+
let frame_data = {};
|
|
8223
|
+
switch(frame[12]){
|
|
8224
|
+
case 0:
|
|
8225
|
+
frame_data.odr = 125;
|
|
8226
|
+
break;
|
|
8227
|
+
case 1:
|
|
8228
|
+
frame_data.odr = 250;
|
|
8229
|
+
break;
|
|
8230
|
+
case 2:
|
|
8231
|
+
frame_data.odr = 500;
|
|
8232
|
+
break;
|
|
8233
|
+
case 3:
|
|
8234
|
+
frame_data.odr = 1000;
|
|
8235
|
+
break;
|
|
8236
|
+
default:
|
|
8237
|
+
frame_data.odr = 0;
|
|
8238
|
+
}
|
|
8239
|
+
switch(frame[15]){
|
|
8240
|
+
case 0:
|
|
8241
|
+
frame_data.fsr_acc = "10g";
|
|
8242
|
+
break;
|
|
8243
|
+
case 1:
|
|
8244
|
+
frame_data.fsr_acc = "20g";
|
|
8245
|
+
break;
|
|
8246
|
+
case 2:
|
|
8247
|
+
frame_data.fsr_acc = "40g";
|
|
8248
|
+
break;
|
|
8249
|
+
}
|
|
8250
|
+
switch(frame[16]){
|
|
8251
|
+
case 0:
|
|
8252
|
+
frame_data.fsr_gyro = "250dps";
|
|
8253
|
+
break;
|
|
8254
|
+
case 1:
|
|
8255
|
+
frame_data.fsr_gyro = "500dps";
|
|
8256
|
+
break;
|
|
8257
|
+
case 2:
|
|
8258
|
+
frame_data.fsr_gyro = "1000dps";
|
|
8259
|
+
break;
|
|
8260
|
+
case 3:
|
|
8261
|
+
frame_data.fsr_gyro = "2000dps";
|
|
8262
|
+
break;
|
|
8263
|
+
}
|
|
8264
|
+
switch(frame[17]){
|
|
8265
|
+
case 7:
|
|
8266
|
+
frame_data.en_axis = "all";
|
|
8267
|
+
break;
|
|
8268
|
+
}
|
|
8269
|
+
switch(frame[20]){
|
|
8270
|
+
case 1:
|
|
8271
|
+
frame_data.en_sensors = "gyro_only";
|
|
8272
|
+
break;
|
|
8273
|
+
case 2:
|
|
8274
|
+
frame_data.en_sensors = "accel_only";
|
|
8275
|
+
break;
|
|
8276
|
+
case 3:
|
|
8277
|
+
frame_data.en_sensors = "all_enabled";
|
|
8278
|
+
break;
|
|
8279
|
+
}
|
|
8280
|
+
switch(frame[18]){
|
|
8281
|
+
case 0:
|
|
8282
|
+
frame_data.sampling_interval = 5;
|
|
8283
|
+
break;
|
|
8284
|
+
case 1:
|
|
8285
|
+
frame_data.sampling_interval = 10;
|
|
8286
|
+
break;
|
|
8287
|
+
case 2:
|
|
8288
|
+
frame_data.sampling_interval = 15;
|
|
8289
|
+
break;
|
|
8290
|
+
case 3:
|
|
8291
|
+
frame_data.sampling_interval = 20;
|
|
8292
|
+
break;
|
|
8293
|
+
case 4:
|
|
8294
|
+
frame_data.sampling_interval = 30;
|
|
8295
|
+
break;
|
|
8296
|
+
case 5:
|
|
8297
|
+
frame_data.sampling_interval = 60;
|
|
8298
|
+
break;
|
|
8299
|
+
case 6:
|
|
8300
|
+
frame_data.sampling_interval = 120;
|
|
8301
|
+
break;
|
|
8302
|
+
case 7:
|
|
8303
|
+
frame_data.sampling_interval = 180;
|
|
8304
|
+
break;
|
|
8305
|
+
}
|
|
8306
|
+
switch(frame[14]){
|
|
8307
|
+
case 0:
|
|
8308
|
+
frame_data.hpf_cutoff = 0.00247;
|
|
8309
|
+
break;
|
|
8310
|
+
case 1:
|
|
8311
|
+
frame_data.hpf_cutoff = 0.00062084;
|
|
8312
|
+
break;
|
|
8313
|
+
case 2:
|
|
8314
|
+
frame_data.hpf_cutoff = 0.00015545;
|
|
8315
|
+
break;
|
|
8316
|
+
case 3:
|
|
8317
|
+
frame_data.hpf_cutoff = 0.00003862;
|
|
8318
|
+
break;
|
|
8319
|
+
case 4:
|
|
8320
|
+
frame_data.hpf_cutoff = 0.00000954;
|
|
8321
|
+
break;
|
|
8322
|
+
case 5:
|
|
8323
|
+
frame_data.hpf_cutoff = 0.00000238;
|
|
8324
|
+
break;
|
|
8325
|
+
}
|
|
8326
|
+
return {
|
|
8327
|
+
'firmware': frame[2],
|
|
8328
|
+
'sample_rate': frame_data.odr + 'Hz',
|
|
8329
|
+
'sampling_duration': (frame[13]* 50) + 'msec',
|
|
8330
|
+
'hpf_cutoff': (frame_data.hpf_cutoff * frame_data.odr).toFixed(2) + 'Hz',
|
|
8331
|
+
'acc_fsr': frame_data.fsr_acc,
|
|
8332
|
+
'gyro_fsr': frame_data.fsr_gyro,
|
|
8333
|
+
'axis_enabled': frame_data.en_axis,
|
|
8334
|
+
'sampling_interval': frame_data.sampling_interval + 'min',
|
|
8335
|
+
'accelerometer_threshold': (frame[19]* 32) + "mg",
|
|
8336
|
+
'enabled_sensors': frame_data.en_sensors,
|
|
8337
|
+
'rtc': [
|
|
8338
|
+
String(frame[21]).padStart(2, '0'),
|
|
8339
|
+
String(frame[22]).padStart(2, '0'),
|
|
8340
|
+
String(frame[23]).padStart(2, '0')
|
|
8341
|
+
].join(':'),
|
|
8342
|
+
'hardware_id': frame.slice(24, 27),
|
|
8343
|
+
'report_rate': frame.slice(27, 31).reduce(msbLsb),
|
|
8344
|
+
'tx_life_counter': frame.slice(31, 35).reduce(msbLsb),
|
|
8345
|
+
'machine_values': {
|
|
8346
|
+
'firmware': frame[2],
|
|
8347
|
+
'odr': frame[12],
|
|
8348
|
+
'sampling_duration': frame[13],
|
|
8349
|
+
'hpf_cutoff': frame[14],
|
|
8350
|
+
'acc_fsr': frame[15],
|
|
8351
|
+
'gyro_fsr': frame[16],
|
|
8352
|
+
'axis_enabled': frame[17],
|
|
8353
|
+
'sampling_interval': frame[18],
|
|
8354
|
+
'accelerometer_threshold': frame[19],
|
|
8355
|
+
'enabled_sensors': frame[20],
|
|
8356
|
+
'hour': frame[21],
|
|
8357
|
+
'minute': frame[22],
|
|
8358
|
+
'second': frame[23],
|
|
8359
|
+
'hardware_id': frame.slice(24, 27),
|
|
8360
|
+
'report_rate': frame.slice(27, 31),
|
|
8361
|
+
'tx_life_counter': frame.slice(31, 35)
|
|
8362
|
+
}
|
|
8363
|
+
}
|
|
7888
8364
|
}
|
|
7889
8365
|
},
|
|
7890
8366
|
'105': {
|
|
@@ -7900,25 +8376,31 @@ function sensor_types(parent){
|
|
|
7900
8376
|
let firmware = frame[2];
|
|
7901
8377
|
if(firmware > 13){ // firmware 14 and above
|
|
7902
8378
|
let frame_data = {};
|
|
8379
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8380
|
+
if(!auto_check_interval){
|
|
8381
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8382
|
+
}else{
|
|
8383
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8384
|
+
}
|
|
7903
8385
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7904
8386
|
switch(frame[16]){
|
|
7905
8387
|
case 0:
|
|
7906
|
-
frame_data.fsr = "+-
|
|
8388
|
+
frame_data.fsr = "+-6.114 V";
|
|
7907
8389
|
break;
|
|
7908
8390
|
case 1:
|
|
7909
|
-
frame_data.fsr = "+-
|
|
8391
|
+
frame_data.fsr = "+-4.096 V";
|
|
7910
8392
|
break;
|
|
7911
8393
|
case 2:
|
|
7912
|
-
frame_data.fsr = "+-
|
|
8394
|
+
frame_data.fsr = "+-2.048 V";
|
|
7913
8395
|
break;
|
|
7914
8396
|
case 3:
|
|
7915
|
-
frame_data.fsr = "+-
|
|
8397
|
+
frame_data.fsr = "+-1.024 V";
|
|
7916
8398
|
break;
|
|
7917
8399
|
case 4:
|
|
7918
|
-
frame_data.fsr = "+-
|
|
8400
|
+
frame_data.fsr = "+-0.512 V";
|
|
7919
8401
|
break;
|
|
7920
8402
|
case 5:
|
|
7921
|
-
frame_data.fsr = "+-
|
|
8403
|
+
frame_data.fsr = "+-0.256 V";
|
|
7922
8404
|
break;
|
|
7923
8405
|
}
|
|
7924
8406
|
return {
|
|
@@ -7926,12 +8408,15 @@ function sensor_types(parent){
|
|
|
7926
8408
|
'fsr': frame_data.fsr,
|
|
7927
8409
|
'boot_time': frame[17] + " sec",
|
|
7928
8410
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7929
|
-
'auto_check_interval':
|
|
7930
|
-
'
|
|
8411
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8412
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7931
8413
|
'always_on': frame_data.always_on,
|
|
7932
|
-
'
|
|
7933
|
-
'
|
|
7934
|
-
'
|
|
8414
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8415
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8416
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8417
|
+
'hardware_id': frame.slice(37, 40),
|
|
8418
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8419
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7935
8420
|
'machine_values': {
|
|
7936
8421
|
'firmware': frame[2],
|
|
7937
8422
|
'fsr': frame[16],
|
|
@@ -7940,9 +8425,12 @@ function sensor_types(parent){
|
|
|
7940
8425
|
'auto_check_interval': frame.slice(20, 22),
|
|
7941
8426
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7942
8427
|
'always_on': frame[24],
|
|
7943
|
-
'
|
|
7944
|
-
'
|
|
7945
|
-
'
|
|
8428
|
+
'calibration_one': frame.slice(25, 29),
|
|
8429
|
+
'calibration_two':frame.slice(29, 33),
|
|
8430
|
+
'calibration_three':frame.slice(33, 37),
|
|
8431
|
+
'hardware_id': frame.slice(37, 40),
|
|
8432
|
+
'report_rate': frame.slice(40, 44),
|
|
8433
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7946
8434
|
}
|
|
7947
8435
|
}
|
|
7948
8436
|
}
|
|
@@ -7964,25 +8452,31 @@ function sensor_types(parent){
|
|
|
7964
8452
|
let firmware = frame[2];
|
|
7965
8453
|
if(firmware > 13){ // firmware 14 and above
|
|
7966
8454
|
let frame_data = {};
|
|
8455
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8456
|
+
if(!auto_check_interval){
|
|
8457
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8458
|
+
}else{
|
|
8459
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8460
|
+
}
|
|
7967
8461
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7968
8462
|
switch(frame[16]){
|
|
7969
8463
|
case 0:
|
|
7970
|
-
frame_data.fsr = "+-
|
|
8464
|
+
frame_data.fsr = "+-6.114 V";
|
|
7971
8465
|
break;
|
|
7972
8466
|
case 1:
|
|
7973
|
-
frame_data.fsr = "+-
|
|
8467
|
+
frame_data.fsr = "+-4.096 V";
|
|
7974
8468
|
break;
|
|
7975
8469
|
case 2:
|
|
7976
|
-
frame_data.fsr = "+-
|
|
8470
|
+
frame_data.fsr = "+-2.048 V";
|
|
7977
8471
|
break;
|
|
7978
8472
|
case 3:
|
|
7979
|
-
frame_data.fsr = "+-
|
|
8473
|
+
frame_data.fsr = "+-1.024 V";
|
|
7980
8474
|
break;
|
|
7981
8475
|
case 4:
|
|
7982
|
-
frame_data.fsr = "+-
|
|
8476
|
+
frame_data.fsr = "+-0.512 V";
|
|
7983
8477
|
break;
|
|
7984
8478
|
case 5:
|
|
7985
|
-
frame_data.fsr = "+-
|
|
8479
|
+
frame_data.fsr = "+-0.256 V";
|
|
7986
8480
|
break;
|
|
7987
8481
|
}
|
|
7988
8482
|
return {
|
|
@@ -7990,12 +8484,15 @@ function sensor_types(parent){
|
|
|
7990
8484
|
'fsr': frame_data.fsr,
|
|
7991
8485
|
'boot_time': frame[17] + " sec",
|
|
7992
8486
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7993
|
-
'auto_check_interval':
|
|
7994
|
-
'
|
|
8487
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8488
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7995
8489
|
'always_on': frame_data.always_on,
|
|
7996
|
-
'
|
|
7997
|
-
'
|
|
7998
|
-
'
|
|
8490
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8491
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8492
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8493
|
+
'hardware_id': frame.slice(37, 40),
|
|
8494
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8495
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7999
8496
|
'machine_values': {
|
|
8000
8497
|
'firmware': frame[2],
|
|
8001
8498
|
'fsr': frame[16],
|
|
@@ -8004,9 +8501,12 @@ function sensor_types(parent){
|
|
|
8004
8501
|
'auto_check_interval': frame.slice(20, 22),
|
|
8005
8502
|
'auto_check_percentage': frame.slice(22, 24),
|
|
8006
8503
|
'always_on': frame[24],
|
|
8007
|
-
'
|
|
8008
|
-
'
|
|
8009
|
-
'
|
|
8504
|
+
'calibration_one': frame.slice(25, 29),
|
|
8505
|
+
'calibration_two':frame.slice(29, 33),
|
|
8506
|
+
'calibration_three':frame.slice(33, 37),
|
|
8507
|
+
'hardware_id': frame.slice(37, 40),
|
|
8508
|
+
'report_rate': frame.slice(40, 44),
|
|
8509
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
8010
8510
|
}
|
|
8011
8511
|
}
|
|
8012
8512
|
}
|
|
@@ -8038,25 +8538,31 @@ function sensor_types(parent){
|
|
|
8038
8538
|
let firmware = frame[2];
|
|
8039
8539
|
if(firmware > 13){ // firmware 14 and above
|
|
8040
8540
|
let frame_data = {};
|
|
8541
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8542
|
+
if(!auto_check_interval){
|
|
8543
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8544
|
+
}else{
|
|
8545
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8546
|
+
}
|
|
8041
8547
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
8042
8548
|
switch(frame[16]){
|
|
8043
8549
|
case 0:
|
|
8044
|
-
frame_data.fsr = "+-
|
|
8550
|
+
frame_data.fsr = "+-6.114 V";
|
|
8045
8551
|
break;
|
|
8046
8552
|
case 1:
|
|
8047
|
-
frame_data.fsr = "+-
|
|
8553
|
+
frame_data.fsr = "+-4.096 V";
|
|
8048
8554
|
break;
|
|
8049
8555
|
case 2:
|
|
8050
|
-
frame_data.fsr = "+-
|
|
8556
|
+
frame_data.fsr = "+-2.048 V";
|
|
8051
8557
|
break;
|
|
8052
8558
|
case 3:
|
|
8053
|
-
frame_data.fsr = "+-
|
|
8559
|
+
frame_data.fsr = "+-1.024 V";
|
|
8054
8560
|
break;
|
|
8055
8561
|
case 4:
|
|
8056
|
-
frame_data.fsr = "+-
|
|
8562
|
+
frame_data.fsr = "+-0.512 V";
|
|
8057
8563
|
break;
|
|
8058
8564
|
case 5:
|
|
8059
|
-
frame_data.fsr = "+-
|
|
8565
|
+
frame_data.fsr = "+-0.256 V";
|
|
8060
8566
|
break;
|
|
8061
8567
|
}
|
|
8062
8568
|
return {
|
|
@@ -8064,12 +8570,15 @@ function sensor_types(parent){
|
|
|
8064
8570
|
'fsr': frame_data.fsr,
|
|
8065
8571
|
'boot_time': frame[17] + " sec",
|
|
8066
8572
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
8067
|
-
'auto_check_interval':
|
|
8068
|
-
'
|
|
8573
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8574
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
8069
8575
|
'always_on': frame_data.always_on,
|
|
8070
|
-
'
|
|
8071
|
-
'
|
|
8072
|
-
'
|
|
8576
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8577
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8578
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8579
|
+
'hardware_id': frame.slice(37, 40),
|
|
8580
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8581
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
8073
8582
|
'machine_values': {
|
|
8074
8583
|
'firmware': frame[2],
|
|
8075
8584
|
'fsr': frame[16],
|
|
@@ -8078,9 +8587,12 @@ function sensor_types(parent){
|
|
|
8078
8587
|
'auto_check_interval': frame.slice(20, 22),
|
|
8079
8588
|
'auto_check_percentage': frame.slice(22, 24),
|
|
8080
8589
|
'always_on': frame[24],
|
|
8081
|
-
'
|
|
8082
|
-
'
|
|
8083
|
-
'
|
|
8590
|
+
'calibration_one': frame.slice(25, 29),
|
|
8591
|
+
'calibration_two':frame.slice(29, 33),
|
|
8592
|
+
'calibration_three':frame.slice(33, 37),
|
|
8593
|
+
'hardware_id': frame.slice(37, 40),
|
|
8594
|
+
'report_rate': frame.slice(40, 44),
|
|
8595
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
8084
8596
|
}
|
|
8085
8597
|
}
|
|
8086
8598
|
}
|
|
@@ -8137,26 +8649,158 @@ function sensor_types(parent){
|
|
|
8137
8649
|
};
|
|
8138
8650
|
}else{
|
|
8139
8651
|
return {
|
|
8140
|
-
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
8141
|
-
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
8142
|
-
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
8143
|
-
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
8144
|
-
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
8145
|
-
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
8146
|
-
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
8147
|
-
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
8148
|
-
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
8149
|
-
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
8150
|
-
input_di: d[40] & 1 ? 1 : 0,
|
|
8151
|
-
input_ct: d[40] & 2 ? 1 : 0,
|
|
8152
|
-
input_opto: d[40] & 4 ? 1 : 0,
|
|
8153
|
-
input_acc: d[40] & 8 ? 1 : 0,
|
|
8154
|
-
input_mag: d[40] & 16 ? 1 : 0
|
|
8155
|
-
};
|
|
8156
|
-
}
|
|
8157
|
-
},
|
|
8158
|
-
'parse_fly': (frame) => {
|
|
8159
|
-
if(frame[2] >
|
|
8652
|
+
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
8653
|
+
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
8654
|
+
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
8655
|
+
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
8656
|
+
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
8657
|
+
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
8658
|
+
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
8659
|
+
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
8660
|
+
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
8661
|
+
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
8662
|
+
input_di: d[40] & 1 ? 1 : 0,
|
|
8663
|
+
input_ct: d[40] & 2 ? 1 : 0,
|
|
8664
|
+
input_opto: d[40] & 4 ? 1 : 0,
|
|
8665
|
+
input_acc: d[40] & 8 ? 1 : 0,
|
|
8666
|
+
input_mag: d[40] & 16 ? 1 : 0
|
|
8667
|
+
};
|
|
8668
|
+
}
|
|
8669
|
+
},
|
|
8670
|
+
'parse_fly': (frame) => {
|
|
8671
|
+
if(frame[2] > 9){ // firmware 10 and above
|
|
8672
|
+
let reset_mode = "Disabled";
|
|
8673
|
+
switch(frame[38]){
|
|
8674
|
+
case 0:
|
|
8675
|
+
reset_mode = "Disabled";
|
|
8676
|
+
break;
|
|
8677
|
+
case 1:
|
|
8678
|
+
reset_mode = "Shift Ends";
|
|
8679
|
+
break;
|
|
8680
|
+
case 2:
|
|
8681
|
+
reset_mode = "Timeout";
|
|
8682
|
+
break;
|
|
8683
|
+
}
|
|
8684
|
+
let acc_odr = "10Hz";
|
|
8685
|
+
switch(frame[40]){
|
|
8686
|
+
case 0:
|
|
8687
|
+
acc_odr = "10Hz";
|
|
8688
|
+
break;
|
|
8689
|
+
case 1:
|
|
8690
|
+
acc_odr = "20Hz";
|
|
8691
|
+
break;
|
|
8692
|
+
case 2:
|
|
8693
|
+
acc_odr = "50Hz";
|
|
8694
|
+
break;
|
|
8695
|
+
case 3:
|
|
8696
|
+
acc_odr = "100Hz";
|
|
8697
|
+
break;
|
|
8698
|
+
case 4:
|
|
8699
|
+
acc_odr = "200Hz";
|
|
8700
|
+
break;
|
|
8701
|
+
case 5:
|
|
8702
|
+
acc_odr = "400Hz";
|
|
8703
|
+
break;
|
|
8704
|
+
}
|
|
8705
|
+
let rtc_sampling_interval = "5 seconds";
|
|
8706
|
+
switch(frame[39]){
|
|
8707
|
+
case 0:
|
|
8708
|
+
rtc_sampling_interval = "1 minute";
|
|
8709
|
+
break;
|
|
8710
|
+
case 1:
|
|
8711
|
+
rtc_sampling_interval = "5 minutes";
|
|
8712
|
+
break;
|
|
8713
|
+
case 2:
|
|
8714
|
+
rtc_sampling_interval = "15 minutes";
|
|
8715
|
+
break;
|
|
8716
|
+
case 3:
|
|
8717
|
+
rtc_sampling_interval = "30 minutes";
|
|
8718
|
+
break;
|
|
8719
|
+
case 4:
|
|
8720
|
+
rtc_sampling_interval = "1 hour";
|
|
8721
|
+
break;
|
|
8722
|
+
case 5:
|
|
8723
|
+
rtc_sampling_interval = "2 hours";
|
|
8724
|
+
break;
|
|
8725
|
+
case 6:
|
|
8726
|
+
rtc_sampling_interval = "3 hours";
|
|
8727
|
+
break;
|
|
8728
|
+
case 7:
|
|
8729
|
+
rtc_sampling_interval = "6 hours";
|
|
8730
|
+
break;
|
|
8731
|
+
case 8:
|
|
8732
|
+
rtc_sampling_interval = "12 hours";
|
|
8733
|
+
break;
|
|
8734
|
+
case 9:
|
|
8735
|
+
rtc_sampling_interval = "5 seconds";
|
|
8736
|
+
break;
|
|
8737
|
+
case 10:
|
|
8738
|
+
rtc_sampling_interval = "10 seconds";
|
|
8739
|
+
break;
|
|
8740
|
+
case 11:
|
|
8741
|
+
rtc_sampling_interval = "15 seconds";
|
|
8742
|
+
break;
|
|
8743
|
+
case 12:
|
|
8744
|
+
rtc_sampling_interval = "30 seconds";
|
|
8745
|
+
break;
|
|
8746
|
+
}
|
|
8747
|
+
return {
|
|
8748
|
+
'firmware': frame[2],
|
|
8749
|
+
'accelerometer_threshold': (frame[16]* 32) + "mg",
|
|
8750
|
+
'debouncing_timeout': frame.slice(17, 19).reduce(msbLsb) + "msec",
|
|
8751
|
+
'accelero_state': frame[19]? "Enabled": "Disabled",
|
|
8752
|
+
'input_1_active_edge': frame[20]? "Rising": "Falling",
|
|
8753
|
+
'input_2_active_edge': frame[21]? "Rising": "Falling",
|
|
8754
|
+
'input_3_active_edge': frame[22]? "Rising": "Falling",
|
|
8755
|
+
'counter_threshold': frame.slice(23, 27).reduce(msbLsb),
|
|
8756
|
+
'trasnmit_on_change_status': frame[27]? "Enabled": "Disabled",
|
|
8757
|
+
'Shift_end_1': [
|
|
8758
|
+
String(frame[28]).padStart(2, '0'),
|
|
8759
|
+
String(frame[29]).padStart(2, '0')
|
|
8760
|
+
].join(':'),
|
|
8761
|
+
'Shift_end_2': [
|
|
8762
|
+
String(frame[30]).padStart(2, '0'),
|
|
8763
|
+
String(frame[31]).padStart(2, '0')
|
|
8764
|
+
].join(':'),
|
|
8765
|
+
'Shift_end_3': [
|
|
8766
|
+
String(frame[32]).padStart(2, '0'),
|
|
8767
|
+
String(frame[33]).padStart(2, '0')
|
|
8768
|
+
].join(':'),
|
|
8769
|
+
'Shift_end_4': [
|
|
8770
|
+
String(frame[34]).padStart(2, '0'),
|
|
8771
|
+
String(frame[35]).padStart(2, '0')
|
|
8772
|
+
].join(':'),
|
|
8773
|
+
'reset_timeout': frame.slice(36, 38).reduce(msbLsb) + "min",
|
|
8774
|
+
'counter_reset_mode': reset_mode,
|
|
8775
|
+
'sampling_interval': rtc_sampling_interval,
|
|
8776
|
+
'acc_odr': acc_odr,
|
|
8777
|
+
'hardware_id': frame.slice(41, 44),
|
|
8778
|
+
'report_rate': frame.slice(44, 48).reduce(msbLsb) + "sec",
|
|
8779
|
+
'tx_life_counter': frame.slice(48, 52).reduce(msbLsb),
|
|
8780
|
+
'machine_values': {
|
|
8781
|
+
'firmware': frame[2],
|
|
8782
|
+
'accelerometer_threshold': frame[16],
|
|
8783
|
+
'debouncing_timeout': frame.slice(17, 19),
|
|
8784
|
+
'accelero_state': frame[19],
|
|
8785
|
+
'input_1_active_edge': frame[20],
|
|
8786
|
+
'input_2_active_edge': frame[21],
|
|
8787
|
+
'input_3_active_edge': frame[22],
|
|
8788
|
+
'counter_threshold': frame.slice(23, 27),
|
|
8789
|
+
'trasnmit_on_change_status': frame[27],
|
|
8790
|
+
'Shift_end_1': frame.slice(28, 30),
|
|
8791
|
+
'Shift_end_2': frame.slice(30, 32),
|
|
8792
|
+
'Shift_end_3': frame.slice(32, 34),
|
|
8793
|
+
'Shift_end_4': frame.slice(34, 36),
|
|
8794
|
+
'reset_timeout': frame.slice(36, 38),
|
|
8795
|
+
'counter_reset_mode': frame[38],
|
|
8796
|
+
'sampling_interval': frame[39],
|
|
8797
|
+
'acc_odr': frame[40],
|
|
8798
|
+
'hardware_id': frame.slice(41, 44),
|
|
8799
|
+
'report_rate': frame.slice(44, 48),
|
|
8800
|
+
'tx_life_counter': frame.slice(48, 52)
|
|
8801
|
+
}
|
|
8802
|
+
}
|
|
8803
|
+
} else if(frame[2] > 8){
|
|
8160
8804
|
let reset_mode = "Disabled";
|
|
8161
8805
|
switch(frame[37]){
|
|
8162
8806
|
case 0:
|
|
@@ -8235,12 +8879,12 @@ function sensor_types(parent){
|
|
|
8235
8879
|
return {
|
|
8236
8880
|
'firmware': frame[2],
|
|
8237
8881
|
'accelerometer_threshold': (frame[16]* 32) + "mg",
|
|
8238
|
-
'debouncing_timeout': frame[17] + "
|
|
8882
|
+
'debouncing_timeout': frame[17] + "msec",
|
|
8239
8883
|
'accelero_state': frame[18]? "Enabled": "Disabled",
|
|
8240
8884
|
'input_1_active_edge': frame[19]? "Rising": "Falling",
|
|
8241
8885
|
'input_2_active_edge': frame[20]? "Rising": "Falling",
|
|
8242
8886
|
'input_3_active_edge': frame[21]? "Rising": "Falling",
|
|
8243
|
-
'counter_threshold': frame.slice(22, 26).reduce(msbLsb)
|
|
8887
|
+
'counter_threshold': frame.slice(22, 26).reduce(msbLsb),
|
|
8244
8888
|
'trasnmit_on_change_status': frame[26]? "Enabled": "Disabled",
|
|
8245
8889
|
'Shift_end_1': [
|
|
8246
8890
|
String(frame[27]).padStart(2, '0'),
|
|
@@ -8292,11 +8936,11 @@ function sensor_types(parent){
|
|
|
8292
8936
|
return {
|
|
8293
8937
|
'firmware': frame[2],
|
|
8294
8938
|
'report_rate': frame.slice(12, 16).reduce(msbLsb).toString() + "sec.",
|
|
8295
|
-
'accelerometer_threshold': (frame[16]* 32)
|
|
8296
|
-
'debouncing_timeout': frame[17].toString() + "
|
|
8939
|
+
'accelerometer_threshold': (frame[16]* 32) + "mg.",
|
|
8940
|
+
'debouncing_timeout': frame[17].toString() + "msec.",
|
|
8297
8941
|
'accelero_state': frame[18],
|
|
8298
8942
|
'digital_inputs_active_edge': frame.slice(19, 22).reduce(msbLsb),
|
|
8299
|
-
'counter_threshold': frame.slice(22, 26).reduce(msbLsb)
|
|
8943
|
+
'counter_threshold': frame.slice(22, 26).reduce(msbLsb),
|
|
8300
8944
|
'trasnmit_on_change_status': frame[26],
|
|
8301
8945
|
'machine_values': {
|
|
8302
8946
|
'firmware': frame[2],
|
|
@@ -8478,30 +9122,6 @@ function sensor_types(parent){
|
|
|
8478
9122
|
}
|
|
8479
9123
|
}
|
|
8480
9124
|
},
|
|
8481
|
-
'109': {
|
|
8482
|
-
name: 'Wireless Custom Solar Sensor',
|
|
8483
|
-
parse: (d) => {
|
|
8484
|
-
return {
|
|
8485
|
-
illuminance: d.slice(0, 4).reduce(msbLsb),
|
|
8486
|
-
total_solar_radiation: d.slice(4, 6).reduce(msbLsb),
|
|
8487
|
-
ultraviolet_radiation: d.slice(6, 8).reduce(msbLsb)
|
|
8488
|
-
};
|
|
8489
|
-
},
|
|
8490
|
-
'parse_fly': (frame) => {
|
|
8491
|
-
return {
|
|
8492
|
-
'firmware': frame[2],
|
|
8493
|
-
'hardware_id': frame.slice(12, 15),
|
|
8494
|
-
'sample_rate': frame.slice(15, 19).reduce(msbLsb) + " Sec.",
|
|
8495
|
-
'tx_life_counter': frame.slice(19, 23).reduce(msbLsb),
|
|
8496
|
-
'machine_values': {
|
|
8497
|
-
'firmware': frame[2],
|
|
8498
|
-
'hardware_id': frame.slice(12, 15),
|
|
8499
|
-
'sample_rate': frame.slice(15, 19),
|
|
8500
|
-
'tx_life_counter': frame.slice(19, 23)
|
|
8501
|
-
}
|
|
8502
|
-
}
|
|
8503
|
-
}
|
|
8504
|
-
},
|
|
8505
9125
|
'109': {
|
|
8506
9126
|
name: 'Wireless Custom Solar Sensor',
|
|
8507
9127
|
parse: (d) => {
|
|
@@ -8574,7 +9194,7 @@ function sensor_types(parent){
|
|
|
8574
9194
|
var mode = payload[8];
|
|
8575
9195
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8576
9196
|
var fsr = payload[11] >> 5;
|
|
8577
|
-
var
|
|
9197
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8578
9198
|
|
|
8579
9199
|
globalDevices[deviceAddr] = {
|
|
8580
9200
|
// stream_size: expected_packets,
|
|
@@ -8584,7 +9204,7 @@ function sensor_types(parent){
|
|
|
8584
9204
|
fsr: fsr,
|
|
8585
9205
|
hour: hour,
|
|
8586
9206
|
minute: minute,
|
|
8587
|
-
|
|
9207
|
+
temperature: temperature,
|
|
8588
9208
|
}
|
|
8589
9209
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8590
9210
|
return;
|
|
@@ -8598,7 +9218,7 @@ function sensor_types(parent){
|
|
|
8598
9218
|
var mode = payload[8];
|
|
8599
9219
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8600
9220
|
var fsr = payload[11] >> 5;
|
|
8601
|
-
var
|
|
9221
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8602
9222
|
|
|
8603
9223
|
globalDevices[deviceAddr] = {
|
|
8604
9224
|
// stream_size: expected_packets,
|
|
@@ -8608,7 +9228,7 @@ function sensor_types(parent){
|
|
|
8608
9228
|
fsr: fsr,
|
|
8609
9229
|
hour: hour,
|
|
8610
9230
|
minute: minute,
|
|
8611
|
-
|
|
9231
|
+
temperature: temperature,
|
|
8612
9232
|
}
|
|
8613
9233
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8614
9234
|
}
|
|
@@ -8678,11 +9298,14 @@ function sensor_types(parent){
|
|
|
8678
9298
|
var fft_concat_obj = {
|
|
8679
9299
|
mode: payload[8],
|
|
8680
9300
|
msg_type: msg_type,
|
|
8681
|
-
time_id:
|
|
9301
|
+
time_id: [
|
|
9302
|
+
String(globalDevices[deviceAddr].hour).padStart(2, '0'),
|
|
9303
|
+
String(globalDevices[deviceAddr].minute).padStart(2, '0'),
|
|
9304
|
+
].join(':'),
|
|
8682
9305
|
mac_address: deviceAddr,
|
|
8683
9306
|
fsr: fsr_text,
|
|
8684
9307
|
odr: globalDevices[deviceAddr].odr,
|
|
8685
|
-
|
|
9308
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
8686
9309
|
total_samples: label,
|
|
8687
9310
|
data: fft_concat
|
|
8688
9311
|
};
|
|
@@ -8703,7 +9326,7 @@ function sensor_types(parent){
|
|
|
8703
9326
|
var mode = payload[8];
|
|
8704
9327
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8705
9328
|
var fsr = payload[11] >> 5;
|
|
8706
|
-
var
|
|
9329
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8707
9330
|
|
|
8708
9331
|
globalDevices[deviceAddr] = {
|
|
8709
9332
|
// stream_size: expected_packets,
|
|
@@ -8713,7 +9336,7 @@ function sensor_types(parent){
|
|
|
8713
9336
|
fsr: fsr,
|
|
8714
9337
|
hour: hour,
|
|
8715
9338
|
minute: minute,
|
|
8716
|
-
|
|
9339
|
+
temperature: temperature,
|
|
8717
9340
|
}
|
|
8718
9341
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8719
9342
|
return;
|
|
@@ -8989,7 +9612,65 @@ function sensor_types(parent){
|
|
|
8989
9612
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
8990
9613
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
8991
9614
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
8992
|
-
if(frame[2] >
|
|
9615
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
9616
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
9617
|
+
return {
|
|
9618
|
+
'firmware': frame[2],
|
|
9619
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
9620
|
+
'mode': frame_data.mode,
|
|
9621
|
+
'odr': frame_data.odr_1+'Hz',
|
|
9622
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
9623
|
+
'filter_status': frame_data.filter_status,
|
|
9624
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
9625
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
9626
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
9627
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
9628
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
9629
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
9630
|
+
'deadband': frame_data.deadband,
|
|
9631
|
+
'payload_length': frame_data.payload_length,
|
|
9632
|
+
'fsr': frame_data.fsr_text,
|
|
9633
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
9634
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
9635
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
9636
|
+
'smart_mode_skip_count': frame[33],
|
|
9637
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
9638
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
9639
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
9640
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
9641
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
9642
|
+
'hardware_id': frame.slice(43, 46),
|
|
9643
|
+
'reserved': frame.slice(46, 50),
|
|
9644
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
9645
|
+
'machine_values': {
|
|
9646
|
+
'firmware': frame[2],
|
|
9647
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
9648
|
+
'mode': frame[16],
|
|
9649
|
+
'odr': frame[17],
|
|
9650
|
+
'sampling_duration': frame[18],
|
|
9651
|
+
'filter_status': frame[19],
|
|
9652
|
+
'lpf_coeff': frame[20],
|
|
9653
|
+
'hpf_coeff': frame[21],
|
|
9654
|
+
'sampling_interval': frame[22],
|
|
9655
|
+
'on_request_timeout': frame[23],
|
|
9656
|
+
'deadband': frame[24],
|
|
9657
|
+
'payload_length': frame[25],
|
|
9658
|
+
'fsr': frame[26],
|
|
9659
|
+
'rpm_compute_status': frame[27],
|
|
9660
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
9661
|
+
'auto_raw_interval': frame[32],
|
|
9662
|
+
'smart_mode_skip_count': frame[33],
|
|
9663
|
+
'smart_mode_acc_threshold':frame[34],
|
|
9664
|
+
'uptime_counter': frame.slice(35, 39),
|
|
9665
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
9666
|
+
'motion_to_sampling_delay': frame[41],
|
|
9667
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
9668
|
+
'hardware_id': frame.slice(43, 46),
|
|
9669
|
+
'reserved': frame.slice(46, 50),
|
|
9670
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
9671
|
+
}
|
|
9672
|
+
}
|
|
9673
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
8993
9674
|
return {
|
|
8994
9675
|
'firmware': frame[2],
|
|
8995
9676
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -9148,7 +9829,7 @@ function sensor_types(parent){
|
|
|
9148
9829
|
var mode = payload[8];
|
|
9149
9830
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9150
9831
|
var fsr = payload[11] >> 5;
|
|
9151
|
-
var
|
|
9832
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9152
9833
|
|
|
9153
9834
|
globalDevices[deviceAddr] = {
|
|
9154
9835
|
// stream_size: expected_packets,
|
|
@@ -9158,7 +9839,7 @@ function sensor_types(parent){
|
|
|
9158
9839
|
fsr: fsr,
|
|
9159
9840
|
hour: hour,
|
|
9160
9841
|
minute: minute,
|
|
9161
|
-
|
|
9842
|
+
temperature: temperature,
|
|
9162
9843
|
}
|
|
9163
9844
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9164
9845
|
return;
|
|
@@ -9172,7 +9853,7 @@ function sensor_types(parent){
|
|
|
9172
9853
|
var mode = payload[8];
|
|
9173
9854
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9174
9855
|
var fsr = payload[11] >> 5;
|
|
9175
|
-
var
|
|
9856
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9176
9857
|
|
|
9177
9858
|
globalDevices[deviceAddr] = {
|
|
9178
9859
|
// stream_size: expected_packets,
|
|
@@ -9182,7 +9863,7 @@ function sensor_types(parent){
|
|
|
9182
9863
|
fsr: fsr,
|
|
9183
9864
|
hour: hour,
|
|
9184
9865
|
minute: minute,
|
|
9185
|
-
|
|
9866
|
+
temperature: temperature,
|
|
9186
9867
|
}
|
|
9187
9868
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9188
9869
|
}
|
|
@@ -9262,12 +9943,15 @@ function sensor_types(parent){
|
|
|
9262
9943
|
mode: payload[8],
|
|
9263
9944
|
msg_type: msg_type,
|
|
9264
9945
|
probe: probe,
|
|
9265
|
-
time_id:
|
|
9946
|
+
time_id: [
|
|
9947
|
+
String(globalDevices[deviceAddr].hour).padStart(2, '0'),
|
|
9948
|
+
String(globalDevices[deviceAddr].minute).padStart(2, '0'),
|
|
9949
|
+
].join(':'),
|
|
9266
9950
|
probe: probe,
|
|
9267
9951
|
mac_address: deviceAddr,
|
|
9268
9952
|
fsr: fsr_text,
|
|
9269
9953
|
odr: globalDevices[deviceAddr].odr,
|
|
9270
|
-
|
|
9954
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
9271
9955
|
total_samples: label,
|
|
9272
9956
|
data: fft_concat
|
|
9273
9957
|
};
|
|
@@ -9287,7 +9971,7 @@ function sensor_types(parent){
|
|
|
9287
9971
|
var mode = payload[8];
|
|
9288
9972
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9289
9973
|
var fsr = payload[11] >> 5;
|
|
9290
|
-
var
|
|
9974
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9291
9975
|
|
|
9292
9976
|
globalDevices[deviceAddr] = {
|
|
9293
9977
|
// stream_size: expected_packets,
|
|
@@ -9297,7 +9981,7 @@ function sensor_types(parent){
|
|
|
9297
9981
|
fsr: fsr,
|
|
9298
9982
|
hour: hour,
|
|
9299
9983
|
minute: minute,
|
|
9300
|
-
|
|
9984
|
+
temperature: temperature,
|
|
9301
9985
|
}
|
|
9302
9986
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9303
9987
|
return;
|
|
@@ -9743,7 +10427,79 @@ function sensor_types(parent){
|
|
|
9743
10427
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
9744
10428
|
frame_data.p1_smart_mode_threshold = frame[38] * 50;
|
|
9745
10429
|
frame_data.p2_smart_mode_threshold = frame[39] * 50;
|
|
9746
|
-
if(frame[2] >
|
|
10430
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
10431
|
+
frame_data.motion_to_delay = frame[50] * 50;
|
|
10432
|
+
return {
|
|
10433
|
+
'firmware': frame[2],
|
|
10434
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
10435
|
+
'mode': frame_data.mode,
|
|
10436
|
+
'odr_1': frame_data.odr_1+'Hz',
|
|
10437
|
+
'odr_2': frame_data.odr_2+'Hz',
|
|
10438
|
+
'sampling_duration_1': frame_data.sampling_duration_1,
|
|
10439
|
+
'sampling_duration_2': frame_data.sampling_duration_2,
|
|
10440
|
+
'filter_status': frame_data.filter_status,
|
|
10441
|
+
'lpf_coeff_1': frame_data.lpf_coeff_1,
|
|
10442
|
+
'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
|
|
10443
|
+
'lpf_coeff_2': frame_data.lpf_coeff_2,
|
|
10444
|
+
'lpf_freq_2': frame_data.lpf_freq_2+'Hz',
|
|
10445
|
+
'hpf_coeff_1': frame_data.hpf_coeff_1,
|
|
10446
|
+
'hpf_freq_1': frame_data.hpf_freq_1+'Hz',
|
|
10447
|
+
'hpf_coeff_2': frame_data.hpf_coeff_2,
|
|
10448
|
+
'hpf_freq_2': frame_data.hpf_freq_2+'Hz',
|
|
10449
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
10450
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
10451
|
+
'deadband': frame_data.deadband,
|
|
10452
|
+
'payload_length': frame_data.payload_length,
|
|
10453
|
+
'fsr': frame_data.fsr_text,
|
|
10454
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
10455
|
+
'auto_raw_destination_address': toMac(frame.slice(32 , 36)),
|
|
10456
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
10457
|
+
'smart_mode_skip_count': frame[37],
|
|
10458
|
+
'smart_mode_acc_threshold_probe_1': frame_data.p1_smart_mode_threshold+'mg',
|
|
10459
|
+
'smart_mode_acc_threshold_probe_2': frame_data.p2_smart_mode_threshold+'mg',
|
|
10460
|
+
'uptime_counter_probe_1': frame.slice(40, 44).reduce(msbLsb)+'sec',
|
|
10461
|
+
'uptime_counter_probe_2': frame.slice(44, 48).reduce(msbLsb)+'sec',
|
|
10462
|
+
'max_tx_raw_samples': frame.slice(48, 50).reduce(msbLsb),
|
|
10463
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
10464
|
+
'max_num_of_motion_tx_per_interval': frame[51],
|
|
10465
|
+
'hardware_id': frame.slice(52, 55),
|
|
10466
|
+
'reserved': frame.slice(55, 59),
|
|
10467
|
+
'tx_lifetime_counter': frame.slice(59, 63).reduce(msbLsb),
|
|
10468
|
+
'machine_values': {
|
|
10469
|
+
'firmware': frame[2],
|
|
10470
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
10471
|
+
'mode': frame[16],
|
|
10472
|
+
'odr_1': frame[17],
|
|
10473
|
+
'odr_2': frame[18],
|
|
10474
|
+
'sampling_duration_1': frame[19],
|
|
10475
|
+
'sampling_duration_2': frame[20],
|
|
10476
|
+
'filter_status': frame[21],
|
|
10477
|
+
'lpf_coeff_1': frame[22],
|
|
10478
|
+
'lpf_coeff_2': frame[23],
|
|
10479
|
+
'hpf_coeff_1': frame[24],
|
|
10480
|
+
'hpf_coeff_2': frame[25],
|
|
10481
|
+
'sampling_interval': frame[26],
|
|
10482
|
+
'on_request_timeout': frame[27],
|
|
10483
|
+
'deadband': frame[28],
|
|
10484
|
+
'payload_length': frame[29],
|
|
10485
|
+
'fsm': frame[30],
|
|
10486
|
+
'rpm_compute_status': frame[31],
|
|
10487
|
+
'auto_raw_destination_address': toMac(frame.slice(32 , 36), false),
|
|
10488
|
+
'auto_raw_interval': frame[36],
|
|
10489
|
+
'smart_mode_skip_count': frame[37],
|
|
10490
|
+
'smart_mode_acc_threshold_probe_1':frame[38],
|
|
10491
|
+
'smart_mode_acc_threshold_probe_2':frame[39],
|
|
10492
|
+
'uptime_counter_probe_1': frame.slice(40, 44),
|
|
10493
|
+
'uptime_counter_probe_2': frame.slice(44, 48),
|
|
10494
|
+
'max_tx_raw_samples': frame.slice(48, 50),
|
|
10495
|
+
'motion_to_sampling_delay': frame[50],
|
|
10496
|
+
'max_num_of_motion_tx_per_interval': frame[51],
|
|
10497
|
+
'hardware_id': frame.slice(52, 55),
|
|
10498
|
+
'reserved': frame.slice(55, 59),
|
|
10499
|
+
'tx_lifetime_counter': frame.slice(59, 63)
|
|
10500
|
+
}
|
|
10501
|
+
}
|
|
10502
|
+
} else if (frame[2] > 4){ // for Firmware v5 and above
|
|
9747
10503
|
return {
|
|
9748
10504
|
'firmware': frame[2],
|
|
9749
10505
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -9927,7 +10683,7 @@ function sensor_types(parent){
|
|
|
9927
10683
|
var mode = payload[8];
|
|
9928
10684
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9929
10685
|
var fsr = payload[11] >> 5;
|
|
9930
|
-
var
|
|
10686
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9931
10687
|
|
|
9932
10688
|
globalDevices[deviceAddr] = {
|
|
9933
10689
|
// stream_size: expected_packets,
|
|
@@ -9937,7 +10693,7 @@ function sensor_types(parent){
|
|
|
9937
10693
|
fsr: fsr,
|
|
9938
10694
|
hour: hour,
|
|
9939
10695
|
minute: minute,
|
|
9940
|
-
|
|
10696
|
+
temperature: temperature,
|
|
9941
10697
|
}
|
|
9942
10698
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9943
10699
|
return;
|
|
@@ -9951,7 +10707,7 @@ function sensor_types(parent){
|
|
|
9951
10707
|
var mode = payload[8];
|
|
9952
10708
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9953
10709
|
var fsr = payload[11] >> 5;
|
|
9954
|
-
var
|
|
10710
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9955
10711
|
|
|
9956
10712
|
globalDevices[deviceAddr] = {
|
|
9957
10713
|
// stream_size: expected_packets,
|
|
@@ -9961,7 +10717,7 @@ function sensor_types(parent){
|
|
|
9961
10717
|
fsr: fsr,
|
|
9962
10718
|
hour: hour,
|
|
9963
10719
|
minute: minute,
|
|
9964
|
-
|
|
10720
|
+
temperature: temperature,
|
|
9965
10721
|
}
|
|
9966
10722
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9967
10723
|
}
|
|
@@ -10029,11 +10785,14 @@ function sensor_types(parent){
|
|
|
10029
10785
|
var fft_concat_obj = {
|
|
10030
10786
|
mode: payload[8],
|
|
10031
10787
|
msg_type: msg_type,
|
|
10032
|
-
time_id:
|
|
10788
|
+
time_id: [
|
|
10789
|
+
String(globalDevices[deviceAddr].hour).padStart(2, '0'),
|
|
10790
|
+
String(globalDevices[deviceAddr].minute).padStart(2, '0'),
|
|
10791
|
+
].join(':'),
|
|
10033
10792
|
mac_address: deviceAddr,
|
|
10034
10793
|
fsr: fsr_text,
|
|
10035
10794
|
odr: globalDevices[deviceAddr].odr,
|
|
10036
|
-
|
|
10795
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
10037
10796
|
total_samples: label,
|
|
10038
10797
|
data: fft_concat
|
|
10039
10798
|
};
|
|
@@ -10058,7 +10817,7 @@ function sensor_types(parent){
|
|
|
10058
10817
|
var mode = payload[8];
|
|
10059
10818
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10060
10819
|
var fsr = payload[11] >> 5;
|
|
10061
|
-
var
|
|
10820
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10062
10821
|
|
|
10063
10822
|
globalDevices[deviceAddr] = {
|
|
10064
10823
|
// stream_size: expected_packets,
|
|
@@ -10068,7 +10827,7 @@ function sensor_types(parent){
|
|
|
10068
10827
|
fsr: fsr,
|
|
10069
10828
|
hour: hour,
|
|
10070
10829
|
minute: minute,
|
|
10071
|
-
|
|
10830
|
+
temperature: temperature,
|
|
10072
10831
|
}
|
|
10073
10832
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
10074
10833
|
return;
|
|
@@ -10345,7 +11104,65 @@ function sensor_types(parent){
|
|
|
10345
11104
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
10346
11105
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
10347
11106
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
10348
|
-
if(frame[2] >
|
|
11107
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
11108
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
11109
|
+
return {
|
|
11110
|
+
'firmware': frame[2],
|
|
11111
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
11112
|
+
'mode': frame_data.mode,
|
|
11113
|
+
'odr': frame_data.odr_1+'Hz',
|
|
11114
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
11115
|
+
'filter_status': frame_data.filter_status,
|
|
11116
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
11117
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
11118
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
11119
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
11120
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
11121
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
11122
|
+
'deadband': frame_data.deadband,
|
|
11123
|
+
'payload_length': frame_data.payload_length,
|
|
11124
|
+
'fsr': frame_data.fsr_text,
|
|
11125
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
11126
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
11127
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
11128
|
+
'smart_mode_skip_count': frame[33],
|
|
11129
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
11130
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
11131
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
11132
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
11133
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11134
|
+
'hardware_id': frame.slice(43, 46),
|
|
11135
|
+
'reserved': frame.slice(46, 50),
|
|
11136
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
11137
|
+
'machine_values': {
|
|
11138
|
+
'firmware': frame[2],
|
|
11139
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
11140
|
+
'mode': frame[16],
|
|
11141
|
+
'odr': frame[17],
|
|
11142
|
+
'sampling_duration': frame[18],
|
|
11143
|
+
'filter_status': frame[19],
|
|
11144
|
+
'lpf_coeff': frame[20],
|
|
11145
|
+
'hpf_coeff': frame[21],
|
|
11146
|
+
'sampling_interval': frame[22],
|
|
11147
|
+
'on_request_timeout': frame[23],
|
|
11148
|
+
'deadband': frame[24],
|
|
11149
|
+
'payload_length': frame[25],
|
|
11150
|
+
'fsr': frame[26],
|
|
11151
|
+
'rpm_compute_status': frame[27],
|
|
11152
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
11153
|
+
'auto_raw_interval': frame[32],
|
|
11154
|
+
'smart_mode_skip_count': frame[33],
|
|
11155
|
+
'smart_mode_acc_threshold':frame[34],
|
|
11156
|
+
'uptime_counter': frame.slice(35, 39),
|
|
11157
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
11158
|
+
'motion_to_sampling_delay': frame[41],
|
|
11159
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11160
|
+
'hardware_id': frame.slice(43, 46),
|
|
11161
|
+
'reserved': frame.slice(46, 50),
|
|
11162
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
11163
|
+
}
|
|
11164
|
+
}
|
|
11165
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
10349
11166
|
return {
|
|
10350
11167
|
'firmware': frame[2],
|
|
10351
11168
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -10485,7 +11302,7 @@ function sensor_types(parent){
|
|
|
10485
11302
|
var mode = payload[8];
|
|
10486
11303
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10487
11304
|
var fsr = payload[11] >> 5;
|
|
10488
|
-
var
|
|
11305
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10489
11306
|
|
|
10490
11307
|
globalDevices[deviceAddr] = {
|
|
10491
11308
|
data: {},
|
|
@@ -10494,7 +11311,7 @@ function sensor_types(parent){
|
|
|
10494
11311
|
fsr: fsr,
|
|
10495
11312
|
hour: hour,
|
|
10496
11313
|
minute: minute,
|
|
10497
|
-
|
|
11314
|
+
temperature: temperature,
|
|
10498
11315
|
}
|
|
10499
11316
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10500
11317
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10509,7 +11326,7 @@ function sensor_types(parent){
|
|
|
10509
11326
|
var mode = payload[8];
|
|
10510
11327
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10511
11328
|
var fsr = payload[11] >> 5;
|
|
10512
|
-
var
|
|
11329
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10513
11330
|
|
|
10514
11331
|
globalDevices[deviceAddr] = {
|
|
10515
11332
|
data: {},
|
|
@@ -10518,7 +11335,7 @@ function sensor_types(parent){
|
|
|
10518
11335
|
fsr: fsr,
|
|
10519
11336
|
hour: hour,
|
|
10520
11337
|
minute: minute,
|
|
10521
|
-
|
|
11338
|
+
temperature: temperature,
|
|
10522
11339
|
}
|
|
10523
11340
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10524
11341
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10528,7 +11345,7 @@ function sensor_types(parent){
|
|
|
10528
11345
|
var mode = payload[8];
|
|
10529
11346
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10530
11347
|
var fsr = payload[11] >> 5;
|
|
10531
|
-
var
|
|
11348
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10532
11349
|
|
|
10533
11350
|
globalDevices[deviceAddr] = {
|
|
10534
11351
|
data: {},
|
|
@@ -10537,7 +11354,7 @@ function sensor_types(parent){
|
|
|
10537
11354
|
fsr: fsr,
|
|
10538
11355
|
hour: hour,
|
|
10539
11356
|
minute: minute,
|
|
10540
|
-
|
|
11357
|
+
temperature: temperature,
|
|
10541
11358
|
}
|
|
10542
11359
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10543
11360
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10607,11 +11424,14 @@ function sensor_types(parent){
|
|
|
10607
11424
|
var fft_concat_obj = {
|
|
10608
11425
|
mode: payload[8],
|
|
10609
11426
|
msg_type: msg_type,
|
|
10610
|
-
time_id:
|
|
11427
|
+
time_id: [
|
|
11428
|
+
String(globalDevices[deviceAddr].hour).padStart(2, '0'),
|
|
11429
|
+
String(globalDevices[deviceAddr].minute).padStart(2, '0'),
|
|
11430
|
+
].join(':'),
|
|
10611
11431
|
mac_address: deviceAddr,
|
|
10612
11432
|
fsr: fsr_text,
|
|
10613
11433
|
odr: globalDevices[deviceAddr].odr,
|
|
10614
|
-
|
|
11434
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
10615
11435
|
total_samples: label,
|
|
10616
11436
|
fft_confidence : ((Object.keys(globalDevices[deviceAddr].data).length / expected_packets) * 100).toFixed(2) + '%',
|
|
10617
11437
|
data: fft_concat
|
|
@@ -10894,7 +11714,65 @@ function sensor_types(parent){
|
|
|
10894
11714
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
10895
11715
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
10896
11716
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
10897
|
-
if(frame[2] >
|
|
11717
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
11718
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
11719
|
+
return {
|
|
11720
|
+
'firmware': frame[2],
|
|
11721
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
11722
|
+
'mode': frame_data.mode,
|
|
11723
|
+
'odr': frame_data.odr_1+'Hz',
|
|
11724
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
11725
|
+
'filter_status': frame_data.filter_status,
|
|
11726
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
11727
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
11728
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
11729
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
11730
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
11731
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
11732
|
+
'deadband': frame_data.deadband,
|
|
11733
|
+
'payload_length': frame_data.payload_length,
|
|
11734
|
+
'fsr': frame_data.fsr_text,
|
|
11735
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
11736
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
11737
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
11738
|
+
'smart_mode_skip_count': frame[33],
|
|
11739
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
11740
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
11741
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
11742
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
11743
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11744
|
+
'hardware_id': frame.slice(43, 46),
|
|
11745
|
+
'reserved': frame.slice(46, 50),
|
|
11746
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
11747
|
+
'machine_values': {
|
|
11748
|
+
'firmware': frame[2],
|
|
11749
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
11750
|
+
'mode': frame[16],
|
|
11751
|
+
'odr': frame[17],
|
|
11752
|
+
'sampling_duration': frame[18],
|
|
11753
|
+
'filter_status': frame[19],
|
|
11754
|
+
'lpf_coeff': frame[20],
|
|
11755
|
+
'hpf_coeff': frame[21],
|
|
11756
|
+
'sampling_interval': frame[22],
|
|
11757
|
+
'on_request_timeout': frame[23],
|
|
11758
|
+
'deadband': frame[24],
|
|
11759
|
+
'payload_length': frame[25],
|
|
11760
|
+
'fsr': frame[26],
|
|
11761
|
+
'rpm_compute_status': frame[27],
|
|
11762
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
11763
|
+
'auto_raw_interval': frame[32],
|
|
11764
|
+
'smart_mode_skip_count': frame[33],
|
|
11765
|
+
'smart_mode_acc_threshold':frame[34],
|
|
11766
|
+
'uptime_counter': frame.slice(35, 39),
|
|
11767
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
11768
|
+
'motion_to_sampling_delay': frame[41],
|
|
11769
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11770
|
+
'hardware_id': frame.slice(43, 46),
|
|
11771
|
+
'reserved': frame.slice(46, 50),
|
|
11772
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
11773
|
+
}
|
|
11774
|
+
}
|
|
11775
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
10898
11776
|
return {
|
|
10899
11777
|
'firmware': frame[2],
|
|
10900
11778
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -11030,7 +11908,7 @@ function sensor_types(parent){
|
|
|
11030
11908
|
var firmware = payload[1];
|
|
11031
11909
|
var odr = msbLsb(payload[10], payload[11]);
|
|
11032
11910
|
var fsr = payload[12];
|
|
11033
|
-
var
|
|
11911
|
+
var temperature = msbLsb(payload[13], payload[14])/100;
|
|
11034
11912
|
var expected_packets = msbLsb(payload[15], payload[16]);
|
|
11035
11913
|
var current_packet = msbLsb(payload[17], payload[18]);
|
|
11036
11914
|
var sdata_start = 19;
|
|
@@ -11398,25 +12276,62 @@ function sensor_types(parent){
|
|
|
11398
12276
|
let frame_data = {};
|
|
11399
12277
|
switch(frame[16]){
|
|
11400
12278
|
case 0:
|
|
11401
|
-
frame_data.fsr = "+-
|
|
11402
|
-
|
|
12279
|
+
frame_data.fsr = "+-6.114 V";
|
|
12280
|
+
break;
|
|
11403
12281
|
case 1:
|
|
11404
|
-
frame_data.fsr = "+-
|
|
11405
|
-
|
|
12282
|
+
frame_data.fsr = "+-4.096 V";
|
|
12283
|
+
break;
|
|
11406
12284
|
case 2:
|
|
11407
|
-
frame_data.fsr = "+-1.024 V";
|
|
11408
|
-
break;
|
|
11409
|
-
case 3:
|
|
11410
12285
|
frame_data.fsr = "+-2.048 V";
|
|
11411
|
-
|
|
12286
|
+
break;
|
|
12287
|
+
case 3:
|
|
12288
|
+
frame_data.fsr = "+-1.024 V";
|
|
12289
|
+
break;
|
|
11412
12290
|
case 4:
|
|
11413
|
-
frame_data.fsr = "+-
|
|
11414
|
-
|
|
12291
|
+
frame_data.fsr = "+-0.512 V";
|
|
12292
|
+
break;
|
|
11415
12293
|
case 5:
|
|
11416
|
-
frame_data.fsr = "+-
|
|
11417
|
-
|
|
12294
|
+
frame_data.fsr = "+-0.256 V";
|
|
12295
|
+
break;
|
|
11418
12296
|
}
|
|
11419
|
-
if(frame[2]>
|
|
12297
|
+
if(frame[2]>13){ // firmware 14 and above
|
|
12298
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
12299
|
+
if(!auto_check_interval){
|
|
12300
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
12301
|
+
}else{
|
|
12302
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
12303
|
+
}
|
|
12304
|
+
return {
|
|
12305
|
+
'firmware': frame[2],
|
|
12306
|
+
'fsr': frame_data.fsr,
|
|
12307
|
+
'boot_time': frame[17] + " sec",
|
|
12308
|
+
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
12309
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
12310
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
12311
|
+
'always_on': frame_data[24] ? 'Enabled' : 'Disabled',
|
|
12312
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
12313
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
12314
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
12315
|
+
'hardware_id': frame.slice(37, 40),
|
|
12316
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
12317
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
12318
|
+
'machine_values': {
|
|
12319
|
+
'firmware': frame[2],
|
|
12320
|
+
'fsr': frame[16],
|
|
12321
|
+
'boot_time': frame[17],
|
|
12322
|
+
'power_adc': frame.slice(18, 20),
|
|
12323
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
12324
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
12325
|
+
'always_on': frame[24],
|
|
12326
|
+
'calibration_one': frame.slice(25, 29),
|
|
12327
|
+
'calibration_two':frame.slice(29, 33),
|
|
12328
|
+
'calibration_three':frame.slice(33, 37),
|
|
12329
|
+
'hardware_id': frame.slice(37, 40),
|
|
12330
|
+
'report_rate': frame.slice(40, 44),
|
|
12331
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
12332
|
+
}
|
|
12333
|
+
}
|
|
12334
|
+
}else if(frame[2]>12){
|
|
11420
12335
|
return {
|
|
11421
12336
|
'firmware': frame[2],
|
|
11422
12337
|
'report_rate': frame.slice(12, 16).reduce(msbLsb),
|
|
@@ -11449,6 +12364,155 @@ function sensor_types(parent){
|
|
|
11449
12364
|
}
|
|
11450
12365
|
}
|
|
11451
12366
|
},
|
|
12367
|
+
'123': {
|
|
12368
|
+
name: '3 Channel Production Counter',
|
|
12369
|
+
parse: (d, payload) => {
|
|
12370
|
+
if(payload[7] & 2 != 0){
|
|
12371
|
+
console.log('Error found');
|
|
12372
|
+
// parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
12373
|
+
let error = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
12374
|
+
return error;
|
|
12375
|
+
}
|
|
12376
|
+
let report_type = "Regular";
|
|
12377
|
+
switch(d[25]){
|
|
12378
|
+
case 0:
|
|
12379
|
+
report_type = "Regular";
|
|
12380
|
+
break;
|
|
12381
|
+
case 1:
|
|
12382
|
+
report_type = "Shift end";
|
|
12383
|
+
break;
|
|
12384
|
+
case 2:
|
|
12385
|
+
report_type = "Interrupt";
|
|
12386
|
+
break;
|
|
12387
|
+
case 3:
|
|
12388
|
+
report_type = "Threshold";
|
|
12389
|
+
break;
|
|
12390
|
+
}
|
|
12391
|
+
return {
|
|
12392
|
+
digital_input_1_counter: d.slice(0, 4).reduce(msbLsb),
|
|
12393
|
+
digital_input_1_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
12394
|
+
digital_input_2_counter: d.slice(8, 12).reduce(msbLsb),
|
|
12395
|
+
digital_input_2_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
12396
|
+
digital_input_3_counter: d.slice(16, 20).reduce(msbLsb),
|
|
12397
|
+
digital_input_3_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
12398
|
+
input_1: d[24] & 1 ? 1 : 0,
|
|
12399
|
+
input_2: d[24] & 2 ? 1 : 0,
|
|
12400
|
+
input_3: d[24] & 4 ? 1 : 0,
|
|
12401
|
+
report_type: report_type,
|
|
12402
|
+
rtc: [
|
|
12403
|
+
String(d[26]).padStart(2, '0'),
|
|
12404
|
+
String(d[27]).padStart(2, '0'),
|
|
12405
|
+
String(d[28]).padStart(2, '0')
|
|
12406
|
+
].join(':')
|
|
12407
|
+
};
|
|
12408
|
+
},
|
|
12409
|
+
'parse_fly': (frame) => {
|
|
12410
|
+
let reset_mode = "Disabled";
|
|
12411
|
+
switch(frame[36]){
|
|
12412
|
+
case 0:
|
|
12413
|
+
reset_mode = "Disabled";
|
|
12414
|
+
break;
|
|
12415
|
+
case 1:
|
|
12416
|
+
reset_mode = "Shift Ends";
|
|
12417
|
+
break;
|
|
12418
|
+
case 2:
|
|
12419
|
+
reset_mode = "Timeout";
|
|
12420
|
+
break;
|
|
12421
|
+
}
|
|
12422
|
+
let rtc_sampling_interval = "5sec";
|
|
12423
|
+
switch(frame[37]){
|
|
12424
|
+
case 0:
|
|
12425
|
+
rtc_sampling_interval = "1min";
|
|
12426
|
+
break;
|
|
12427
|
+
case 1:
|
|
12428
|
+
rtc_sampling_interval = "5min";
|
|
12429
|
+
break;
|
|
12430
|
+
case 2:
|
|
12431
|
+
rtc_sampling_interval = "15min";
|
|
12432
|
+
break;
|
|
12433
|
+
case 3:
|
|
12434
|
+
rtc_sampling_interval = "30min";
|
|
12435
|
+
break;
|
|
12436
|
+
case 4:
|
|
12437
|
+
rtc_sampling_interval = "1h";
|
|
12438
|
+
break;
|
|
12439
|
+
case 5:
|
|
12440
|
+
rtc_sampling_interval = "2h";
|
|
12441
|
+
break;
|
|
12442
|
+
case 6:
|
|
12443
|
+
rtc_sampling_interval = "3h";
|
|
12444
|
+
break;
|
|
12445
|
+
case 7:
|
|
12446
|
+
rtc_sampling_interval = "6h";
|
|
12447
|
+
break;
|
|
12448
|
+
case 8:
|
|
12449
|
+
rtc_sampling_interval = "12h";
|
|
12450
|
+
break;
|
|
12451
|
+
case 9:
|
|
12452
|
+
rtc_sampling_interval = "5sec";
|
|
12453
|
+
break;
|
|
12454
|
+
case 10:
|
|
12455
|
+
rtc_sampling_interval = "10sec";
|
|
12456
|
+
break;
|
|
12457
|
+
case 11:
|
|
12458
|
+
rtc_sampling_interval = "15sec";
|
|
12459
|
+
break;
|
|
12460
|
+
case 12:
|
|
12461
|
+
rtc_sampling_interval = "30sec";
|
|
12462
|
+
break;
|
|
12463
|
+
}
|
|
12464
|
+
return {
|
|
12465
|
+
'firmware': frame[2],
|
|
12466
|
+
'debouncing_timeout': frame.slice(16, 18).reduce(msbLsb) + "msec",
|
|
12467
|
+
'input_1_active_edge': frame[18]? "Rising": "Falling",
|
|
12468
|
+
'input_2_active_edge': frame[19]? "Rising": "Falling",
|
|
12469
|
+
'input_3_active_edge': frame[20]? "Rising": "Falling",
|
|
12470
|
+
'counter_threshold': frame.slice(21, 25).reduce(msbLsb),
|
|
12471
|
+
'trasnmit_on_change_status': frame[25]? "Enabled": "Disabled",
|
|
12472
|
+
'Shift_end_1': [
|
|
12473
|
+
String(frame[26]).padStart(2, '0'),
|
|
12474
|
+
String(frame[27]).padStart(2, '0')
|
|
12475
|
+
].join(':'),
|
|
12476
|
+
'Shift_end_2': [
|
|
12477
|
+
String(frame[28]).padStart(2, '0'),
|
|
12478
|
+
String(frame[29]).padStart(2, '0')
|
|
12479
|
+
].join(':'),
|
|
12480
|
+
'Shift_end_3': [
|
|
12481
|
+
String(frame[30]).padStart(2, '0'),
|
|
12482
|
+
String(frame[31]).padStart(2, '0')
|
|
12483
|
+
].join(':'),
|
|
12484
|
+
'Shift_end_4': [
|
|
12485
|
+
String(frame[32]).padStart(2, '0'),
|
|
12486
|
+
String(frame[33]).padStart(2, '0')
|
|
12487
|
+
].join(':'),
|
|
12488
|
+
'reset_timeout': frame.slice(34, 36).reduce(msbLsb) + "min",
|
|
12489
|
+
'counter_reset_mode': reset_mode,
|
|
12490
|
+
'sampling_interval': rtc_sampling_interval,
|
|
12491
|
+
'hardware_id': frame.slice(38, 41),
|
|
12492
|
+
'report_rate': frame.slice(41, 45).reduce(msbLsb) + "sec",
|
|
12493
|
+
'tx_life_counter': frame.slice(45, 49).reduce(msbLsb),
|
|
12494
|
+
'machine_values': {
|
|
12495
|
+
'firmware': frame[2],
|
|
12496
|
+
'debouncing_timeout': frame.slice(16, 18),
|
|
12497
|
+
'input_1_active_edge': frame[18],
|
|
12498
|
+
'input_2_active_edge': frame[19],
|
|
12499
|
+
'input_3_active_edge': frame[20],
|
|
12500
|
+
'counter_threshold': frame.slice(21, 25),
|
|
12501
|
+
'trasnmit_on_change_status': frame[25],
|
|
12502
|
+
'Shift_end_1': frame.slice(26, 28),
|
|
12503
|
+
'Shift_end_2': frame.slice(28, 30),
|
|
12504
|
+
'Shift_end_3': frame.slice(30, 32),
|
|
12505
|
+
'Shift_end_4': frame.slice(32, 34),
|
|
12506
|
+
'reset_timeout': frame.slice(34, 36),
|
|
12507
|
+
'counter_reset_mode': frame[36],
|
|
12508
|
+
'sampling_interval': frame[37],
|
|
12509
|
+
'hardware_id': frame.slice(38, 41),
|
|
12510
|
+
'report_rate': frame.slice(41, 45),
|
|
12511
|
+
'tx_life_counter': frame.slice(45, 49)
|
|
12512
|
+
}
|
|
12513
|
+
}
|
|
12514
|
+
}
|
|
12515
|
+
},
|
|
11452
12516
|
'180': {
|
|
11453
12517
|
name: 'C1D2 One Channel Vibration Plus',
|
|
11454
12518
|
parse: (payload, parsed, mac) => {
|
|
@@ -11496,6 +12560,59 @@ function sensor_types(parent){
|
|
|
11496
12560
|
};
|
|
11497
12561
|
}
|
|
11498
12562
|
},
|
|
12563
|
+
'211': {
|
|
12564
|
+
name: 'D0 and Flow Sensor',
|
|
12565
|
+
parse: (payload, parsed, mac) => {
|
|
12566
|
+
if(payload[0] == 0){ // regular
|
|
12567
|
+
return {
|
|
12568
|
+
msg_type: 'regular',
|
|
12569
|
+
temperature: signInt(payload.slice(1, 3).reduce(msbLsb), 16),
|
|
12570
|
+
oxygen_saturation_percent: payload.slice(3, 7).reduce(msbLsb),
|
|
12571
|
+
oxygen_ppm: payload.slice(7, 11).reduce(msbLsb),
|
|
12572
|
+
oxygen_mg_l: payload.slice(11, 15).reduce(msbLsb)
|
|
12573
|
+
};
|
|
12574
|
+
}
|
|
12575
|
+
else{ // theshold
|
|
12576
|
+
let solenoid_status = payload[2];
|
|
12577
|
+
if(solenoid_status == 1){ // Solenoid On
|
|
12578
|
+
return {
|
|
12579
|
+
msg_type: 'threshold',
|
|
12580
|
+
solenoid_number: payload[1],
|
|
12581
|
+
solenoid_status: 'on',
|
|
12582
|
+
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
12583
|
+
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
12584
|
+
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
12585
|
+
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb),
|
|
12586
|
+
flow_rate: payload.slice(17, 21).reduce(msbLsb)
|
|
12587
|
+
};
|
|
12588
|
+
} else{ // Solenoid Off
|
|
12589
|
+
return {
|
|
12590
|
+
msg_type: 'threshold',
|
|
12591
|
+
solenoid_number: payload[1],
|
|
12592
|
+
solenoid_status: 'off',
|
|
12593
|
+
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
12594
|
+
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
12595
|
+
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
12596
|
+
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb)
|
|
12597
|
+
};
|
|
12598
|
+
}
|
|
12599
|
+
}
|
|
12600
|
+
},
|
|
12601
|
+
'parse_fly': (frame) => {
|
|
12602
|
+
return {
|
|
12603
|
+
'firmware': frame[2],
|
|
12604
|
+
'hardware_id': frame.slice(12, 15),
|
|
12605
|
+
'report_rate': frame.slice(15, 19).reduce(msbLsb) + "Sec",
|
|
12606
|
+
'tx_life_counter': frame.slice(19, 23).reduce(msbLsb),
|
|
12607
|
+
'machine_values': {
|
|
12608
|
+
'firmware': frame[2],
|
|
12609
|
+
'hardware_id': frame.slice(12, 15),
|
|
12610
|
+
'report_rate': frame.slice(15, 19),
|
|
12611
|
+
'tx_life_counter': frame.slice(19, 23)
|
|
12612
|
+
}
|
|
12613
|
+
}
|
|
12614
|
+
}
|
|
12615
|
+
},
|
|
11499
12616
|
'217': {
|
|
11500
12617
|
name: 'Wireless Weight Scale',
|
|
11501
12618
|
parse: (d) => {
|
|
@@ -11504,6 +12621,68 @@ function sensor_types(parent){
|
|
|
11504
12621
|
};
|
|
11505
12622
|
}
|
|
11506
12623
|
},
|
|
12624
|
+
'270': {
|
|
12625
|
+
name: 'Custom Salinity DO sensor',
|
|
12626
|
+
parse: (d) => {
|
|
12627
|
+
return {
|
|
12628
|
+
sensor_status: d[0],
|
|
12629
|
+
do_temperature_1: d.slice(1, 3).reduce(msbLsb) / 100,
|
|
12630
|
+
do_temperature_2: d.slice(3, 5).reduce(msbLsb) / 100,
|
|
12631
|
+
do_temperature_3: d.slice(5, 7).reduce(msbLsb) / 100,
|
|
12632
|
+
do_temperature_4: d.slice(7, 9).reduce(msbLsb) / 100,
|
|
12633
|
+
ec_temperature_1: d.slice(9, 11).reduce(msbLsb) / 100,
|
|
12634
|
+
ec_temperature_2: d.slice(11, 13).reduce(msbLsb) / 100,
|
|
12635
|
+
ec_temperature_3: d.slice(13, 15).reduce(msbLsb) / 100,
|
|
12636
|
+
ec_temperature_4: d.slice(15, 17).reduce(msbLsb) / 100,
|
|
12637
|
+
do_saturation_perc_1: d.slice(17, 19).reduce(msbLsb) / 100,
|
|
12638
|
+
do_saturation_perc_2: d.slice(19, 21).reduce(msbLsb) / 100,
|
|
12639
|
+
do_saturation_perc_3: d.slice(21, 23).reduce(msbLsb) / 100,
|
|
12640
|
+
do_saturation_perc_4: d.slice(23, 25).reduce(msbLsb) / 100,
|
|
12641
|
+
do_ppm_1: d.slice(25, 27).reduce(msbLsb) / 100,
|
|
12642
|
+
do_ppm_2: d.slice(27, 29).reduce(msbLsb) / 100,
|
|
12643
|
+
do_ppm_3: d.slice(29, 31).reduce(msbLsb) / 100,
|
|
12644
|
+
do_ppm_4: d.slice(31, 33).reduce(msbLsb) / 100,
|
|
12645
|
+
do_mgl_1: d.slice(33, 35).reduce(msbLsb) / 100,
|
|
12646
|
+
do_mgl_2: d.slice(35, 37).reduce(msbLsb) / 100,
|
|
12647
|
+
do_mgl_3: d.slice(37, 39).reduce(msbLsb) / 100,
|
|
12648
|
+
do_mgl_4: d.slice(39, 41).reduce(msbLsb) / 100,
|
|
12649
|
+
ec_conductivity_1: d.slice(41, 43).reduce(msbLsb) / 100,
|
|
12650
|
+
ec_conductivity_2: d.slice(43, 45).reduce(msbLsb) / 100,
|
|
12651
|
+
ec_conductivity_3: d.slice(45, 47).reduce(msbLsb) / 100,
|
|
12652
|
+
ec_conductivity_4: d.slice(47, 49).reduce(msbLsb) / 100,
|
|
12653
|
+
ec_salinity_ppt_1: d.slice(49, 57).reduce(msbLsb) / 100,
|
|
12654
|
+
ec_salinity_ppt_2: d.slice(57, 65).reduce(msbLsb) / 100,
|
|
12655
|
+
ec_salinity_ppt_3: d.slice(65, 73).reduce(msbLsb) / 100,
|
|
12656
|
+
ec_salinity_ppt_4: d.slice(73, 81).reduce(msbLsb) / 100,
|
|
12657
|
+
ec_tds_1: d.slice(81, 85).reduce(msbLsb) / 100,
|
|
12658
|
+
ec_tds_2: d.slice(85, 89).reduce(msbLsb) / 100,
|
|
12659
|
+
ec_tds_3: d.slice(89, 93).reduce(msbLsb) / 100,
|
|
12660
|
+
ec_tds_4: d.slice(93, 97).reduce(msbLsb) / 100
|
|
12661
|
+
};
|
|
12662
|
+
},
|
|
12663
|
+
'parse_fly': (frame) => {
|
|
12664
|
+
return {
|
|
12665
|
+
'firmware': frame[2],
|
|
12666
|
+
'do_bootup_time': frame[12] + "Sec",
|
|
12667
|
+
'ec_bootup_time': frame[13] + "Sec",
|
|
12668
|
+
'device_ids_do_sensors': frame.slice(14, 18),
|
|
12669
|
+
'device_ids_ec_sensors': frame.slice(18, 22),
|
|
12670
|
+
'hardware_id': frame.slice(22, 25),
|
|
12671
|
+
'report_rate': frame.slice(25, 29).reduce(msbLsb) + "Sec",
|
|
12672
|
+
'tx_life_counter': frame.slice(29, 33).reduce(msbLsb),
|
|
12673
|
+
'machine_values': {
|
|
12674
|
+
'firmware': frame[2],
|
|
12675
|
+
'do_bootup_time': frame[12],
|
|
12676
|
+
'ec_bootup_time': frame[13],
|
|
12677
|
+
'device_ids_do_sensors': frame.slice(14, 18),
|
|
12678
|
+
'device_ids_ec_sensors': frame.slice(18, 22),
|
|
12679
|
+
'hardware_id': frame.slice(22, 25),
|
|
12680
|
+
'report_rate': frame.slice(25, 29),
|
|
12681
|
+
'tx_life_counter': frame.slice(29, 33)
|
|
12682
|
+
}
|
|
12683
|
+
}
|
|
12684
|
+
}
|
|
12685
|
+
},
|
|
11507
12686
|
'502': {
|
|
11508
12687
|
name: 'Custom Environmental Sensor',
|
|
11509
12688
|
parse: (d, full) => {
|
|
@@ -13872,25 +15051,31 @@ function sensor_types(parent){
|
|
|
13872
15051
|
let firmware = frame[2];
|
|
13873
15052
|
if(firmware > 13){ // firmware 14 and above
|
|
13874
15053
|
let frame_data = {};
|
|
15054
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
15055
|
+
if(!auto_check_interval){
|
|
15056
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
15057
|
+
}else{
|
|
15058
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
15059
|
+
}
|
|
13875
15060
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
13876
15061
|
switch(frame[16]){
|
|
13877
15062
|
case 0:
|
|
13878
|
-
frame_data.fsr = "+-
|
|
15063
|
+
frame_data.fsr = "+-6.114 V";
|
|
13879
15064
|
break;
|
|
13880
15065
|
case 1:
|
|
13881
|
-
frame_data.fsr = "+-
|
|
15066
|
+
frame_data.fsr = "+-4.096 V";
|
|
13882
15067
|
break;
|
|
13883
15068
|
case 2:
|
|
13884
|
-
frame_data.fsr = "+-
|
|
15069
|
+
frame_data.fsr = "+-2.048 V";
|
|
13885
15070
|
break;
|
|
13886
15071
|
case 3:
|
|
13887
|
-
frame_data.fsr = "+-
|
|
15072
|
+
frame_data.fsr = "+-1.024 V";
|
|
13888
15073
|
break;
|
|
13889
15074
|
case 4:
|
|
13890
|
-
frame_data.fsr = "+-
|
|
15075
|
+
frame_data.fsr = "+-0.512 V";
|
|
13891
15076
|
break;
|
|
13892
15077
|
case 5:
|
|
13893
|
-
frame_data.fsr = "+-
|
|
15078
|
+
frame_data.fsr = "+-0.256 V";
|
|
13894
15079
|
break;
|
|
13895
15080
|
}
|
|
13896
15081
|
return {
|
|
@@ -13898,12 +15083,15 @@ function sensor_types(parent){
|
|
|
13898
15083
|
'fsr': frame_data.fsr,
|
|
13899
15084
|
'boot_time': frame[17] + " sec",
|
|
13900
15085
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
13901
|
-
'auto_check_interval':
|
|
13902
|
-
'
|
|
15086
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
15087
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
13903
15088
|
'always_on': frame_data.always_on,
|
|
13904
|
-
'
|
|
13905
|
-
'
|
|
13906
|
-
'
|
|
15089
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
15090
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
15091
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
15092
|
+
'hardware_id': frame.slice(37, 40),
|
|
15093
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
15094
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
13907
15095
|
'machine_values': {
|
|
13908
15096
|
'firmware': frame[2],
|
|
13909
15097
|
'fsr': frame[16],
|
|
@@ -13912,9 +15100,92 @@ function sensor_types(parent){
|
|
|
13912
15100
|
'auto_check_interval': frame.slice(20, 22),
|
|
13913
15101
|
'auto_check_percentage': frame.slice(22, 24),
|
|
13914
15102
|
'always_on': frame[24],
|
|
13915
|
-
'
|
|
13916
|
-
'
|
|
13917
|
-
'
|
|
15103
|
+
'calibration_one': frame.slice(25, 29),
|
|
15104
|
+
'calibration_two':frame.slice(29, 33),
|
|
15105
|
+
'calibration_three':frame.slice(33, 37),
|
|
15106
|
+
'hardware_id': frame.slice(37, 40),
|
|
15107
|
+
'report_rate': frame.slice(40, 44),
|
|
15108
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
15109
|
+
}
|
|
15110
|
+
}
|
|
15111
|
+
}
|
|
15112
|
+
}
|
|
15113
|
+
},
|
|
15114
|
+
'541': {
|
|
15115
|
+
name: 'Custom Inline Flow Sensor',
|
|
15116
|
+
parse: (d) => {
|
|
15117
|
+
return {
|
|
15118
|
+
adc1: signInt(d.slice(0, 2).reduce(msbLsb)),
|
|
15119
|
+
adc2: signInt(d.slice(2, 4).reduce(msbLsb)),
|
|
15120
|
+
mA1: signInt(d.slice(4, 6).reduce(msbLsb))/100,
|
|
15121
|
+
mA2: signInt(d.slice(6, 8).reduce(msbLsb))/100,
|
|
15122
|
+
flow_1: signInt(d.slice(8, 12).reduce(msbLsb))/100,
|
|
15123
|
+
flow_2:signInt(d.slice(12, 16).reduce(msbLsb))/100
|
|
15124
|
+
};
|
|
15125
|
+
},
|
|
15126
|
+
'parse_fly': (frame) => {
|
|
15127
|
+
let firmware = frame[2];
|
|
15128
|
+
if(firmware > 13){ // firmware 14 and above
|
|
15129
|
+
let frame_data = {};
|
|
15130
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
15131
|
+
if(!auto_check_interval){
|
|
15132
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
15133
|
+
}else{
|
|
15134
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
15135
|
+
}
|
|
15136
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
15137
|
+
switch(frame[16]){
|
|
15138
|
+
case 0:
|
|
15139
|
+
frame_data.fsr = "+-6.114 V";
|
|
15140
|
+
break;
|
|
15141
|
+
case 1:
|
|
15142
|
+
frame_data.fsr = "+-4.096 V";
|
|
15143
|
+
break;
|
|
15144
|
+
case 2:
|
|
15145
|
+
frame_data.fsr = "+-2.048 V";
|
|
15146
|
+
break;
|
|
15147
|
+
case 3:
|
|
15148
|
+
frame_data.fsr = "+-1.024 V";
|
|
15149
|
+
break;
|
|
15150
|
+
case 4:
|
|
15151
|
+
frame_data.fsr = "+-0.512 V";
|
|
15152
|
+
break;
|
|
15153
|
+
case 5:
|
|
15154
|
+
frame_data.fsr = "+-0.256 V";
|
|
15155
|
+
break;
|
|
15156
|
+
}
|
|
15157
|
+
return {
|
|
15158
|
+
'firmware': frame[2],
|
|
15159
|
+
'fsr': frame_data.fsr,
|
|
15160
|
+
'boot_up_time': frame[17] + " sec",
|
|
15161
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
15162
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
15163
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
15164
|
+
'always_on': frame_data.always_on,
|
|
15165
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
15166
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
15167
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
15168
|
+
'min_flow_rate':frame.slice(37, 39).reduce(msbLsb),
|
|
15169
|
+
'max_flow_rate':frame.slice(39, 41).reduce(msbLsb),
|
|
15170
|
+
'hardware_id': frame.slice(41, 44),
|
|
15171
|
+
'report_rate': frame.slice(44, 48).reduce(msbLsb) + " sec",
|
|
15172
|
+
'tx_life_counter': frame.slice(48, 52).reduce(msbLsb),
|
|
15173
|
+
'machine_values': {
|
|
15174
|
+
'firmware': frame[2],
|
|
15175
|
+
'fsr': frame[16],
|
|
15176
|
+
'boot_up_time': frame[17],
|
|
15177
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
15178
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
15179
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
15180
|
+
'always_on': frame[24],
|
|
15181
|
+
'calibration_one': frame.slice(25, 29),
|
|
15182
|
+
'calibration_two':frame.slice(29, 33),
|
|
15183
|
+
'calibration_three':frame.slice(33, 37),
|
|
15184
|
+
'min_flow_rate':frame.slice(37, 39),
|
|
15185
|
+
'max_flow_rate':frame.slice(39, 41),
|
|
15186
|
+
'hardware_id': frame.slice(41, 44),
|
|
15187
|
+
'report_rate': frame.slice(44, 48),
|
|
15188
|
+
'tx_life_counter': frame.slice(48, 52),
|
|
13918
15189
|
}
|
|
13919
15190
|
}
|
|
13920
15191
|
}
|