@ncd-io/node-red-enterprise-sensors 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/WirelessGateway.js +2090 -868
- package/package.json +1 -1
- package/wireless.html +731 -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,61 @@ function sensor_types(parent){
|
|
|
3897
4111
|
let frame_data = {};
|
|
3898
4112
|
switch(frame[16]){
|
|
3899
4113
|
case 0:
|
|
3900
|
-
frame_data.fsr = "+-
|
|
4114
|
+
frame_data.fsr = "+-6.114 V";
|
|
3901
4115
|
break;
|
|
3902
4116
|
case 1:
|
|
3903
|
-
frame_data.fsr = "+-
|
|
4117
|
+
frame_data.fsr = "+-4.096 V";
|
|
3904
4118
|
break;
|
|
3905
4119
|
case 2:
|
|
3906
|
-
frame_data.fsr = "+-
|
|
4120
|
+
frame_data.fsr = "+-2.048 V";
|
|
3907
4121
|
break;
|
|
3908
4122
|
case 3:
|
|
3909
|
-
frame_data.fsr = "+-
|
|
4123
|
+
frame_data.fsr = "+-1.024 V";
|
|
3910
4124
|
break;
|
|
3911
4125
|
case 4:
|
|
3912
|
-
frame_data.fsr = "+-
|
|
4126
|
+
frame_data.fsr = "+-0.512 V";
|
|
3913
4127
|
break;
|
|
3914
4128
|
case 5:
|
|
3915
|
-
frame_data.fsr = "+-
|
|
4129
|
+
frame_data.fsr = "+-0.256 V";
|
|
3916
4130
|
break;
|
|
3917
4131
|
}
|
|
3918
4132
|
if(firmware > 13){ // firmware 14 and above
|
|
4133
|
+
let frame_data = {};
|
|
4134
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4135
|
+
if(!auto_check_interval){
|
|
4136
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4137
|
+
}else{
|
|
4138
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4139
|
+
}
|
|
3919
4140
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
3920
4141
|
return {
|
|
3921
4142
|
'firmware': frame[2],
|
|
3922
4143
|
'fsr': frame_data.fsr,
|
|
3923
|
-
'
|
|
3924
|
-
'
|
|
3925
|
-
'auto_check_interval':
|
|
3926
|
-
'
|
|
4144
|
+
'boot_up_time': frame[17] + " sec",
|
|
4145
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
4146
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4147
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
3927
4148
|
'always_on': frame_data.always_on,
|
|
3928
|
-
'
|
|
3929
|
-
'
|
|
3930
|
-
'
|
|
4149
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4150
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4151
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4152
|
+
'hardware_id': frame.slice(37, 40),
|
|
4153
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4154
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
3931
4155
|
'machine_values': {
|
|
3932
4156
|
'firmware': frame[2],
|
|
3933
4157
|
'fsr': frame[16],
|
|
3934
|
-
'
|
|
3935
|
-
'
|
|
4158
|
+
'boot_up_time': frame[17],
|
|
4159
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
3936
4160
|
'auto_check_interval': frame.slice(20, 22),
|
|
3937
4161
|
'auto_check_percentage': frame.slice(22, 24),
|
|
3938
4162
|
'always_on': frame[24],
|
|
3939
|
-
'
|
|
3940
|
-
'
|
|
3941
|
-
'
|
|
4163
|
+
'calibration_one': frame.slice(25, 29),
|
|
4164
|
+
'calibration_two':frame.slice(29, 33),
|
|
4165
|
+
'calibration_three':frame.slice(33, 37),
|
|
4166
|
+
'hardware_id': frame.slice(37, 40),
|
|
4167
|
+
'report_rate': frame.slice(40, 44),
|
|
4168
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
3942
4169
|
}
|
|
3943
4170
|
}
|
|
3944
4171
|
}
|
|
@@ -4022,25 +4249,31 @@ function sensor_types(parent){
|
|
|
4022
4249
|
let firmware = frame[2];
|
|
4023
4250
|
if(firmware > 13){ // firmware 14 and above
|
|
4024
4251
|
let frame_data = {};
|
|
4252
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4253
|
+
if(!auto_check_interval){
|
|
4254
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4255
|
+
}else{
|
|
4256
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4257
|
+
}
|
|
4025
4258
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4026
4259
|
switch(frame[16]){
|
|
4027
4260
|
case 0:
|
|
4028
|
-
frame_data.fsr = "+-
|
|
4261
|
+
frame_data.fsr = "+-6.114 V";
|
|
4029
4262
|
break;
|
|
4030
4263
|
case 1:
|
|
4031
|
-
frame_data.fsr = "+-
|
|
4264
|
+
frame_data.fsr = "+-4.096 V";
|
|
4032
4265
|
break;
|
|
4033
4266
|
case 2:
|
|
4034
|
-
frame_data.fsr = "+-
|
|
4267
|
+
frame_data.fsr = "+-2.048 V";
|
|
4035
4268
|
break;
|
|
4036
4269
|
case 3:
|
|
4037
|
-
frame_data.fsr = "+-
|
|
4270
|
+
frame_data.fsr = "+-1.024 V";
|
|
4038
4271
|
break;
|
|
4039
4272
|
case 4:
|
|
4040
|
-
frame_data.fsr = "+-
|
|
4273
|
+
frame_data.fsr = "+-0.512 V";
|
|
4041
4274
|
break;
|
|
4042
4275
|
case 5:
|
|
4043
|
-
frame_data.fsr = "+-
|
|
4276
|
+
frame_data.fsr = "+-0.256 V";
|
|
4044
4277
|
break;
|
|
4045
4278
|
}
|
|
4046
4279
|
return {
|
|
@@ -4048,12 +4281,15 @@ function sensor_types(parent){
|
|
|
4048
4281
|
'fsr': frame_data.fsr,
|
|
4049
4282
|
'boot_time': frame[17] + " sec",
|
|
4050
4283
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4051
|
-
'auto_check_interval':
|
|
4052
|
-
'
|
|
4284
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4285
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4053
4286
|
'always_on': frame_data.always_on,
|
|
4054
|
-
'
|
|
4055
|
-
'
|
|
4056
|
-
'
|
|
4287
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4288
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4289
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4290
|
+
'hardware_id': frame.slice(37, 40),
|
|
4291
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4292
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4057
4293
|
'machine_values': {
|
|
4058
4294
|
'firmware': frame[2],
|
|
4059
4295
|
'fsr': frame[16],
|
|
@@ -4062,9 +4298,12 @@ function sensor_types(parent){
|
|
|
4062
4298
|
'auto_check_interval': frame.slice(20, 22),
|
|
4063
4299
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4064
4300
|
'always_on': frame[24],
|
|
4065
|
-
'
|
|
4066
|
-
'
|
|
4067
|
-
'
|
|
4301
|
+
'calibration_one': frame.slice(25, 29),
|
|
4302
|
+
'calibration_two':frame.slice(29, 33),
|
|
4303
|
+
'calibration_three':frame.slice(33, 37),
|
|
4304
|
+
'hardware_id': frame.slice(37, 40),
|
|
4305
|
+
'report_rate': frame.slice(40, 44),
|
|
4306
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4068
4307
|
}
|
|
4069
4308
|
}
|
|
4070
4309
|
}
|
|
@@ -4306,25 +4545,31 @@ function sensor_types(parent){
|
|
|
4306
4545
|
let firmware = frame[2];
|
|
4307
4546
|
if(firmware > 13){ // firmware 14 and above
|
|
4308
4547
|
let frame_data = {};
|
|
4548
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4549
|
+
if(!auto_check_interval){
|
|
4550
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4551
|
+
}else{
|
|
4552
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4553
|
+
}
|
|
4309
4554
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4310
4555
|
switch(frame[16]){
|
|
4311
4556
|
case 0:
|
|
4312
|
-
frame_data.fsr = "+-
|
|
4557
|
+
frame_data.fsr = "+-6.114 V";
|
|
4313
4558
|
break;
|
|
4314
4559
|
case 1:
|
|
4315
|
-
frame_data.fsr = "+-
|
|
4560
|
+
frame_data.fsr = "+-4.096 V";
|
|
4316
4561
|
break;
|
|
4317
4562
|
case 2:
|
|
4318
|
-
frame_data.fsr = "+-
|
|
4563
|
+
frame_data.fsr = "+-2.048 V";
|
|
4319
4564
|
break;
|
|
4320
4565
|
case 3:
|
|
4321
|
-
frame_data.fsr = "+-
|
|
4566
|
+
frame_data.fsr = "+-1.024 V";
|
|
4322
4567
|
break;
|
|
4323
4568
|
case 4:
|
|
4324
|
-
frame_data.fsr = "+-
|
|
4569
|
+
frame_data.fsr = "+-0.512 V";
|
|
4325
4570
|
break;
|
|
4326
4571
|
case 5:
|
|
4327
|
-
frame_data.fsr = "+-
|
|
4572
|
+
frame_data.fsr = "+-0.256 V";
|
|
4328
4573
|
break;
|
|
4329
4574
|
}
|
|
4330
4575
|
return {
|
|
@@ -4332,12 +4577,15 @@ function sensor_types(parent){
|
|
|
4332
4577
|
'fsr': frame_data.fsr,
|
|
4333
4578
|
'boot_time': frame[17] + " sec",
|
|
4334
4579
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4335
|
-
'auto_check_interval':
|
|
4336
|
-
'
|
|
4580
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4581
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4337
4582
|
'always_on': frame_data.always_on,
|
|
4338
|
-
'
|
|
4339
|
-
'
|
|
4340
|
-
'
|
|
4583
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4584
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4585
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4586
|
+
'hardware_id': frame.slice(37, 40),
|
|
4587
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4588
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4341
4589
|
'machine_values': {
|
|
4342
4590
|
'firmware': frame[2],
|
|
4343
4591
|
'fsr': frame[16],
|
|
@@ -4346,9 +4594,12 @@ function sensor_types(parent){
|
|
|
4346
4594
|
'auto_check_interval': frame.slice(20, 22),
|
|
4347
4595
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4348
4596
|
'always_on': frame[24],
|
|
4349
|
-
'
|
|
4350
|
-
'
|
|
4351
|
-
'
|
|
4597
|
+
'calibration_one': frame.slice(25, 29),
|
|
4598
|
+
'calibration_two':frame.slice(29, 33),
|
|
4599
|
+
'calibration_three':frame.slice(33, 37),
|
|
4600
|
+
'hardware_id': frame.slice(37, 40),
|
|
4601
|
+
'report_rate': frame.slice(40, 44),
|
|
4602
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4352
4603
|
}
|
|
4353
4604
|
}
|
|
4354
4605
|
}
|
|
@@ -4367,25 +4618,31 @@ function sensor_types(parent){
|
|
|
4367
4618
|
let firmware = frame[2];
|
|
4368
4619
|
if(firmware > 13){ // firmware 14 and above
|
|
4369
4620
|
let frame_data = {};
|
|
4621
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
4622
|
+
if(!auto_check_interval){
|
|
4623
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
4624
|
+
}else{
|
|
4625
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
4626
|
+
}
|
|
4370
4627
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
4371
4628
|
switch(frame[16]){
|
|
4372
4629
|
case 0:
|
|
4373
|
-
frame_data.fsr = "+-
|
|
4630
|
+
frame_data.fsr = "+-6.114 V";
|
|
4374
4631
|
break;
|
|
4375
4632
|
case 1:
|
|
4376
|
-
frame_data.fsr = "+-
|
|
4633
|
+
frame_data.fsr = "+-4.096 V";
|
|
4377
4634
|
break;
|
|
4378
4635
|
case 2:
|
|
4379
|
-
frame_data.fsr = "+-
|
|
4636
|
+
frame_data.fsr = "+-2.048 V";
|
|
4380
4637
|
break;
|
|
4381
4638
|
case 3:
|
|
4382
|
-
frame_data.fsr = "+-
|
|
4639
|
+
frame_data.fsr = "+-1.024 V";
|
|
4383
4640
|
break;
|
|
4384
4641
|
case 4:
|
|
4385
|
-
frame_data.fsr = "+-
|
|
4642
|
+
frame_data.fsr = "+-0.512 V";
|
|
4386
4643
|
break;
|
|
4387
4644
|
case 5:
|
|
4388
|
-
frame_data.fsr = "+-
|
|
4645
|
+
frame_data.fsr = "+-0.256 V";
|
|
4389
4646
|
break;
|
|
4390
4647
|
}
|
|
4391
4648
|
return {
|
|
@@ -4393,12 +4650,15 @@ function sensor_types(parent){
|
|
|
4393
4650
|
'fsr': frame_data.fsr,
|
|
4394
4651
|
'boot_time': frame[17] + " sec",
|
|
4395
4652
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
4396
|
-
'auto_check_interval':
|
|
4397
|
-
'
|
|
4653
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
4654
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
4398
4655
|
'always_on': frame_data.always_on,
|
|
4399
|
-
'
|
|
4400
|
-
'
|
|
4401
|
-
'
|
|
4656
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
4657
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
4658
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
4659
|
+
'hardware_id': frame.slice(37, 40),
|
|
4660
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
4661
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
4402
4662
|
'machine_values': {
|
|
4403
4663
|
'firmware': frame[2],
|
|
4404
4664
|
'fsr': frame[16],
|
|
@@ -4407,9 +4667,12 @@ function sensor_types(parent){
|
|
|
4407
4667
|
'auto_check_interval': frame.slice(20, 22),
|
|
4408
4668
|
'auto_check_percentage': frame.slice(22, 24),
|
|
4409
4669
|
'always_on': frame[24],
|
|
4410
|
-
'
|
|
4411
|
-
'
|
|
4412
|
-
'
|
|
4670
|
+
'calibration_one': frame.slice(25, 29),
|
|
4671
|
+
'calibration_two':frame.slice(29, 33),
|
|
4672
|
+
'calibration_three':frame.slice(33, 37),
|
|
4673
|
+
'hardware_id': frame.slice(37, 40),
|
|
4674
|
+
'report_rate': frame.slice(40, 44),
|
|
4675
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
4413
4676
|
}
|
|
4414
4677
|
}
|
|
4415
4678
|
}
|
|
@@ -4505,66 +4768,51 @@ function sensor_types(parent){
|
|
|
4505
4768
|
if(payload[8] === 1){
|
|
4506
4769
|
var deviceAddr = mac;
|
|
4507
4770
|
var firmware = payload[1];
|
|
4771
|
+
var mode = payload[8];
|
|
4772
|
+
var odr = payload[9];
|
|
4773
|
+
var en_axis = payload[10] & 7;
|
|
4774
|
+
var fsr = payload[10] >> 5;
|
|
4775
|
+
var hour = payload[11];
|
|
4776
|
+
var minute = payload[12];
|
|
4777
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
4778
|
+
var expected_packets = payload[15];
|
|
4779
|
+
var current_packet = payload[16];
|
|
4780
|
+
var sdata_start = 17;
|
|
4508
4781
|
|
|
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
|
-
|
|
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
|
-
}
|
|
4567
|
-
}
|
|
4782
|
+
switch(odr){
|
|
4783
|
+
case 6:
|
|
4784
|
+
odr = 50;
|
|
4785
|
+
break;
|
|
4786
|
+
case 7:
|
|
4787
|
+
odr = 100;
|
|
4788
|
+
break;
|
|
4789
|
+
case 8:
|
|
4790
|
+
odr = 200;
|
|
4791
|
+
break;
|
|
4792
|
+
case 9:
|
|
4793
|
+
odr = 400;
|
|
4794
|
+
break;
|
|
4795
|
+
case 10:
|
|
4796
|
+
odr = 800;
|
|
4797
|
+
break;
|
|
4798
|
+
case 11:
|
|
4799
|
+
odr = 1600;
|
|
4800
|
+
break;
|
|
4801
|
+
case 12:
|
|
4802
|
+
odr = 3200;
|
|
4803
|
+
break;
|
|
4804
|
+
case 13:
|
|
4805
|
+
odr = 6400;
|
|
4806
|
+
break;
|
|
4807
|
+
case 14:
|
|
4808
|
+
odr = 12800;
|
|
4809
|
+
break;
|
|
4810
|
+
case 15:
|
|
4811
|
+
odr = 25600;
|
|
4812
|
+
break;
|
|
4813
|
+
default:
|
|
4814
|
+
odr = 0;
|
|
4815
|
+
}
|
|
4568
4816
|
|
|
4569
4817
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
4570
4818
|
if(expected_packets != 1){
|
|
@@ -5056,65 +5304,50 @@ function sensor_types(parent){
|
|
|
5056
5304
|
if(payload[8] === 1){
|
|
5057
5305
|
var deviceAddr = mac;
|
|
5058
5306
|
var firmware = payload[1];
|
|
5307
|
+
var mode = payload[8];
|
|
5308
|
+
var odr = payload[9];
|
|
5309
|
+
var en_axis = payload[10] & 7;
|
|
5310
|
+
var fsr = payload[10] >> 5;
|
|
5311
|
+
var hour = payload[11];
|
|
5312
|
+
var minute = payload[12];
|
|
5313
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
5314
|
+
var expected_packets = payload[15];
|
|
5315
|
+
var current_packet = payload[16];
|
|
5316
|
+
var sdata_start = 17;
|
|
5059
5317
|
|
|
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
|
-
}
|
|
5318
|
+
switch(odr){
|
|
5319
|
+
case 6:
|
|
5320
|
+
odr = 50;
|
|
5321
|
+
break;
|
|
5322
|
+
case 7:
|
|
5323
|
+
odr = 100;
|
|
5324
|
+
break;
|
|
5325
|
+
case 8:
|
|
5326
|
+
odr = 200;
|
|
5327
|
+
break;
|
|
5328
|
+
case 9:
|
|
5329
|
+
odr = 400;
|
|
5330
|
+
break;
|
|
5331
|
+
case 10:
|
|
5332
|
+
odr = 800;
|
|
5333
|
+
break;
|
|
5334
|
+
case 11:
|
|
5335
|
+
odr = 1600;
|
|
5336
|
+
break;
|
|
5337
|
+
case 12:
|
|
5338
|
+
odr = 3200;
|
|
5339
|
+
break;
|
|
5340
|
+
case 13:
|
|
5341
|
+
odr = 6400;
|
|
5342
|
+
break;
|
|
5343
|
+
case 14:
|
|
5344
|
+
odr = 12800;
|
|
5345
|
+
break;
|
|
5346
|
+
case 15:
|
|
5347
|
+
odr = 25600;
|
|
5348
|
+
break;
|
|
5349
|
+
default:
|
|
5350
|
+
odr = 0;
|
|
5118
5351
|
}
|
|
5119
5352
|
|
|
5120
5353
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -5794,65 +6027,50 @@ function sensor_types(parent){
|
|
|
5794
6027
|
if(payload[8] === 1){
|
|
5795
6028
|
var deviceAddr = mac;
|
|
5796
6029
|
var firmware = payload[1];
|
|
6030
|
+
var mode = payload[8];
|
|
6031
|
+
var odr = payload[9];
|
|
6032
|
+
var en_axis = payload[10] & 7;
|
|
6033
|
+
var fsr = payload[10] >> 5;
|
|
6034
|
+
var hour = payload[11];
|
|
6035
|
+
var minute = payload[12];
|
|
6036
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6037
|
+
var expected_packets = payload[15];
|
|
6038
|
+
var current_packet = payload[16];
|
|
6039
|
+
var sdata_start = 17;
|
|
5797
6040
|
|
|
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
|
-
}
|
|
6041
|
+
switch(odr){
|
|
6042
|
+
case 6:
|
|
6043
|
+
odr = 50;
|
|
6044
|
+
break;
|
|
6045
|
+
case 7:
|
|
6046
|
+
odr = 100;
|
|
6047
|
+
break;
|
|
6048
|
+
case 8:
|
|
6049
|
+
odr = 200;
|
|
6050
|
+
break;
|
|
6051
|
+
case 9:
|
|
6052
|
+
odr = 400;
|
|
6053
|
+
break;
|
|
6054
|
+
case 10:
|
|
6055
|
+
odr = 800;
|
|
6056
|
+
break;
|
|
6057
|
+
case 11:
|
|
6058
|
+
odr = 1600;
|
|
6059
|
+
break;
|
|
6060
|
+
case 12:
|
|
6061
|
+
odr = 3200;
|
|
6062
|
+
break;
|
|
6063
|
+
case 13:
|
|
6064
|
+
odr = 6400;
|
|
6065
|
+
break;
|
|
6066
|
+
case 14:
|
|
6067
|
+
odr = 12800;
|
|
6068
|
+
break;
|
|
6069
|
+
case 15:
|
|
6070
|
+
odr = 25600;
|
|
6071
|
+
break;
|
|
6072
|
+
default:
|
|
6073
|
+
odr = 0;
|
|
5856
6074
|
}
|
|
5857
6075
|
|
|
5858
6076
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -6338,65 +6556,50 @@ function sensor_types(parent){
|
|
|
6338
6556
|
if(payload[8] === 1){
|
|
6339
6557
|
var deviceAddr = mac;
|
|
6340
6558
|
var firmware = payload[1];
|
|
6559
|
+
var mode = payload[8];
|
|
6560
|
+
var odr = payload[9];
|
|
6561
|
+
var en_axis = payload[10] & 7;
|
|
6562
|
+
var fsr = payload[10] >> 5;
|
|
6563
|
+
var hour = payload[11];
|
|
6564
|
+
var minute = payload[12];
|
|
6565
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6566
|
+
var expected_packets = payload[15];
|
|
6567
|
+
var current_packet = payload[16];
|
|
6568
|
+
var sdata_start = 17;
|
|
6341
6569
|
|
|
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
|
-
break;
|
|
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
|
-
}
|
|
6570
|
+
switch(odr){
|
|
6571
|
+
case 6:
|
|
6572
|
+
odr = 50;
|
|
6573
|
+
break;
|
|
6574
|
+
case 7:
|
|
6575
|
+
odr = 100;
|
|
6576
|
+
break;
|
|
6577
|
+
case 8:
|
|
6578
|
+
odr = 200;
|
|
6579
|
+
break;
|
|
6580
|
+
case 9:
|
|
6581
|
+
odr = 400;
|
|
6582
|
+
break;
|
|
6583
|
+
case 10:
|
|
6584
|
+
odr = 800;
|
|
6585
|
+
break;
|
|
6586
|
+
case 11:
|
|
6587
|
+
odr = 1600;
|
|
6588
|
+
break;
|
|
6589
|
+
case 12:
|
|
6590
|
+
odr = 3200;
|
|
6591
|
+
break;
|
|
6592
|
+
case 13:
|
|
6593
|
+
odr = 6400;
|
|
6594
|
+
break;
|
|
6595
|
+
case 14:
|
|
6596
|
+
odr = 12800;
|
|
6597
|
+
break;
|
|
6598
|
+
case 15:
|
|
6599
|
+
odr = 25600;
|
|
6600
|
+
break;
|
|
6601
|
+
default:
|
|
6602
|
+
odr = 0;
|
|
6400
6603
|
}
|
|
6401
6604
|
|
|
6402
6605
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
@@ -6872,7 +7075,7 @@ function sensor_types(parent){
|
|
|
6872
7075
|
}
|
|
6873
7076
|
},
|
|
6874
7077
|
'87': {
|
|
6875
|
-
'name': '
|
|
7078
|
+
'name': 'Gen 4 One Channel Wireless Current Sensor',
|
|
6876
7079
|
parse: (d) => {
|
|
6877
7080
|
return {
|
|
6878
7081
|
ct1_rms: d.slice(0, 4).reduce(msbLsb),
|
|
@@ -6880,6 +7083,28 @@ function sensor_types(parent){
|
|
|
6880
7083
|
ct1_peak_2_freq: d.slice(6, 8).reduce(msbLsb),
|
|
6881
7084
|
ct1_peak_3_freq: d.slice(8, 10).reduce(msbLsb),
|
|
6882
7085
|
}
|
|
7086
|
+
},
|
|
7087
|
+
'parse_fly': (frame) => {
|
|
7088
|
+
return {
|
|
7089
|
+
'firmware': frame[2],
|
|
7090
|
+
'sampling_rate': frame[16] + 'Hz',
|
|
7091
|
+
'current_calibration': (frame.slice(17, 21).reduce(msbLsb)) * 10,
|
|
7092
|
+
'deadband': frame.slice(21, 23).reduce(msbLsb) + 'mA',
|
|
7093
|
+
'max_supported_ct': frame.slice(23, 27).reduce(msbLsb),
|
|
7094
|
+
'hardware_id': frame.slice(27, 30),
|
|
7095
|
+
'report_rate': frame.slice(30, 34).reduce(msbLsb) + "sec",
|
|
7096
|
+
'tx_life_counter': frame.slice(34, 38).reduce(msbLsb),
|
|
7097
|
+
'machine_values': {
|
|
7098
|
+
'firmware': frame[2],
|
|
7099
|
+
'sampling_rate': frame[16],
|
|
7100
|
+
'current_calibration': frame.slice(17, 21),
|
|
7101
|
+
'deadband': frame.slice(21, 23),
|
|
7102
|
+
'max_supported_ct': frame.slice(23, 27),
|
|
7103
|
+
'hardware_id': frame.slice(27, 30),
|
|
7104
|
+
'report_rate': frame.slice(30, 34),
|
|
7105
|
+
'tx_life_counter': frame.slice(34, 38)
|
|
7106
|
+
}
|
|
7107
|
+
}
|
|
6883
7108
|
}
|
|
6884
7109
|
},
|
|
6885
7110
|
'88': {
|
|
@@ -6896,48 +7121,61 @@ function sensor_types(parent){
|
|
|
6896
7121
|
let frame_data = {};
|
|
6897
7122
|
switch(frame[16]){
|
|
6898
7123
|
case 0:
|
|
6899
|
-
frame_data.fsr = "+-
|
|
7124
|
+
frame_data.fsr = "+-6.114 V";
|
|
6900
7125
|
break;
|
|
6901
7126
|
case 1:
|
|
6902
|
-
frame_data.fsr = "+-
|
|
7127
|
+
frame_data.fsr = "+-4.096 V";
|
|
6903
7128
|
break;
|
|
6904
7129
|
case 2:
|
|
6905
|
-
frame_data.fsr = "+-
|
|
7130
|
+
frame_data.fsr = "+-2.048 V";
|
|
6906
7131
|
break;
|
|
6907
7132
|
case 3:
|
|
6908
|
-
frame_data.fsr = "+-
|
|
7133
|
+
frame_data.fsr = "+-1.024 V";
|
|
6909
7134
|
break;
|
|
6910
7135
|
case 4:
|
|
6911
|
-
frame_data.fsr = "+-
|
|
7136
|
+
frame_data.fsr = "+-0.512 V";
|
|
6912
7137
|
break;
|
|
6913
7138
|
case 5:
|
|
6914
|
-
frame_data.fsr = "+-
|
|
7139
|
+
frame_data.fsr = "+-0.256 V";
|
|
6915
7140
|
break;
|
|
6916
7141
|
}
|
|
6917
7142
|
if(firmware > 13){ // firmware 14 and above
|
|
7143
|
+
let frame_data = {};
|
|
7144
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7145
|
+
if(!auto_check_interval){
|
|
7146
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7147
|
+
}else{
|
|
7148
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7149
|
+
}
|
|
6918
7150
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
6919
7151
|
return {
|
|
6920
7152
|
'firmware': frame[2],
|
|
6921
7153
|
'fsr': frame_data.fsr,
|
|
6922
|
-
'
|
|
6923
|
-
'
|
|
6924
|
-
'auto_check_interval':
|
|
6925
|
-
'
|
|
7154
|
+
'boot_up_time': frame[17] + " sec",
|
|
7155
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
7156
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7157
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
6926
7158
|
'always_on': frame_data.always_on,
|
|
6927
|
-
'
|
|
6928
|
-
'
|
|
6929
|
-
'
|
|
7159
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7160
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7161
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7162
|
+
'hardware_id': frame.slice(37, 40),
|
|
7163
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7164
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
6930
7165
|
'machine_values': {
|
|
6931
7166
|
'firmware': frame[2],
|
|
6932
7167
|
'fsr': frame[16],
|
|
6933
|
-
'
|
|
6934
|
-
'
|
|
7168
|
+
'boot_up_time': frame[17],
|
|
7169
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
6935
7170
|
'auto_check_interval': frame.slice(20, 22),
|
|
6936
7171
|
'auto_check_percentage': frame.slice(22, 24),
|
|
6937
7172
|
'always_on': frame[24],
|
|
6938
|
-
'
|
|
6939
|
-
'
|
|
6940
|
-
'
|
|
7173
|
+
'calibration_one': frame.slice(25, 29),
|
|
7174
|
+
'calibration_two':frame.slice(29, 33),
|
|
7175
|
+
'calibration_three':frame.slice(33, 37),
|
|
7176
|
+
'hardware_id': frame.slice(37, 40),
|
|
7177
|
+
'report_rate': frame.slice(40, 44),
|
|
7178
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
6941
7179
|
}
|
|
6942
7180
|
}
|
|
6943
7181
|
}else{
|
|
@@ -6976,48 +7214,61 @@ function sensor_types(parent){
|
|
|
6976
7214
|
let frame_data = {};
|
|
6977
7215
|
switch(frame[16]){
|
|
6978
7216
|
case 0:
|
|
6979
|
-
frame_data.fsr = "+-
|
|
7217
|
+
frame_data.fsr = "+-6.114 V";
|
|
6980
7218
|
break;
|
|
6981
7219
|
case 1:
|
|
6982
|
-
frame_data.fsr = "+-
|
|
7220
|
+
frame_data.fsr = "+-4.096 V";
|
|
6983
7221
|
break;
|
|
6984
7222
|
case 2:
|
|
6985
|
-
frame_data.fsr = "+-
|
|
7223
|
+
frame_data.fsr = "+-2.048 V";
|
|
6986
7224
|
break;
|
|
6987
7225
|
case 3:
|
|
6988
|
-
frame_data.fsr = "+-
|
|
7226
|
+
frame_data.fsr = "+-1.024 V";
|
|
6989
7227
|
break;
|
|
6990
7228
|
case 4:
|
|
6991
|
-
frame_data.fsr = "+-
|
|
7229
|
+
frame_data.fsr = "+-0.512 V";
|
|
6992
7230
|
break;
|
|
6993
7231
|
case 5:
|
|
6994
|
-
frame_data.fsr = "+-
|
|
7232
|
+
frame_data.fsr = "+-0.256 V";
|
|
6995
7233
|
break;
|
|
6996
7234
|
}
|
|
6997
7235
|
if(firmware > 13){ // firmware 14 and above
|
|
7236
|
+
let frame_data = {};
|
|
7237
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7238
|
+
if(!auto_check_interval){
|
|
7239
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7240
|
+
}else{
|
|
7241
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7242
|
+
}
|
|
6998
7243
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
6999
7244
|
return {
|
|
7000
7245
|
'firmware': frame[2],
|
|
7001
7246
|
'fsr': frame_data.fsr,
|
|
7002
|
-
'
|
|
7003
|
-
'
|
|
7004
|
-
'auto_check_interval':
|
|
7005
|
-
'
|
|
7247
|
+
'boot_up_time': frame[17] + " sec",
|
|
7248
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
7249
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7250
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7006
7251
|
'always_on': frame_data.always_on,
|
|
7007
|
-
'
|
|
7008
|
-
'
|
|
7009
|
-
'
|
|
7252
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7253
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7254
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7255
|
+
'hardware_id': frame.slice(37, 40),
|
|
7256
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7257
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7010
7258
|
'machine_values': {
|
|
7011
7259
|
'firmware': frame[2],
|
|
7012
7260
|
'fsr': frame[16],
|
|
7013
|
-
'
|
|
7014
|
-
'
|
|
7261
|
+
'boot_up_time': frame[17],
|
|
7262
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
7015
7263
|
'auto_check_interval': frame.slice(20, 22),
|
|
7016
7264
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7017
7265
|
'always_on': frame[24],
|
|
7018
|
-
'
|
|
7019
|
-
'
|
|
7020
|
-
'
|
|
7266
|
+
'calibration_one': frame.slice(25, 29),
|
|
7267
|
+
'calibration_two':frame.slice(29, 33),
|
|
7268
|
+
'calibration_three':frame.slice(33, 37),
|
|
7269
|
+
'hardware_id': frame.slice(37, 40),
|
|
7270
|
+
'report_rate': frame.slice(40, 44),
|
|
7271
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7021
7272
|
}
|
|
7022
7273
|
}
|
|
7023
7274
|
}else{
|
|
@@ -7051,25 +7302,31 @@ function sensor_types(parent){
|
|
|
7051
7302
|
let firmware = frame[2];
|
|
7052
7303
|
if(firmware > 13){ // firmware 14 and above
|
|
7053
7304
|
let frame_data = {};
|
|
7054
|
-
|
|
7305
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7306
|
+
if(!auto_check_interval){
|
|
7307
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7308
|
+
}else{
|
|
7309
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7310
|
+
}
|
|
7311
|
+
frame_data.always_on = frame[24] ? "Enabled" : "Disabled";
|
|
7055
7312
|
switch(frame[16]){
|
|
7056
7313
|
case 0:
|
|
7057
|
-
frame_data.fsr = "+-
|
|
7314
|
+
frame_data.fsr = "+-6.114 V";
|
|
7058
7315
|
break;
|
|
7059
7316
|
case 1:
|
|
7060
|
-
frame_data.fsr = "+-
|
|
7317
|
+
frame_data.fsr = "+-4.096 V";
|
|
7061
7318
|
break;
|
|
7062
7319
|
case 2:
|
|
7063
|
-
frame_data.fsr = "+-
|
|
7320
|
+
frame_data.fsr = "+-2.048 V";
|
|
7064
7321
|
break;
|
|
7065
7322
|
case 3:
|
|
7066
|
-
frame_data.fsr = "+-
|
|
7323
|
+
frame_data.fsr = "+-1.024 V";
|
|
7067
7324
|
break;
|
|
7068
7325
|
case 4:
|
|
7069
|
-
frame_data.fsr = "+-
|
|
7326
|
+
frame_data.fsr = "+-0.512 V";
|
|
7070
7327
|
break;
|
|
7071
7328
|
case 5:
|
|
7072
|
-
frame_data.fsr = "+-
|
|
7329
|
+
frame_data.fsr = "+-0.256 V";
|
|
7073
7330
|
break;
|
|
7074
7331
|
}
|
|
7075
7332
|
return {
|
|
@@ -7077,23 +7334,25 @@ function sensor_types(parent){
|
|
|
7077
7334
|
'fsr': frame_data.fsr,
|
|
7078
7335
|
'boot_time': frame[17] + " sec",
|
|
7079
7336
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7080
|
-
'auto_check_interval':
|
|
7081
|
-
'
|
|
7337
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7338
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7082
7339
|
'always_on': frame_data.always_on,
|
|
7083
|
-
'
|
|
7084
|
-
'
|
|
7085
|
-
'
|
|
7340
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7341
|
+
'hardware_id': frame.slice(29, 32),
|
|
7342
|
+
'report_rate': frame.slice(32, 36).reduce(msbLsb) + " sec",
|
|
7343
|
+
'tx_life_counter': frame.slice(36, 40).reduce(msbLsb),
|
|
7086
7344
|
'machine_values': {
|
|
7087
7345
|
'firmware': frame[2],
|
|
7088
7346
|
'fsr': frame[16],
|
|
7089
7347
|
'boot_time': frame[17],
|
|
7090
7348
|
'power_adc': frame.slice(18, 20),
|
|
7091
7349
|
'auto_check_interval': frame.slice(20, 22),
|
|
7092
|
-
'
|
|
7350
|
+
'auto_check_threshold': frame.slice(22, 24),
|
|
7093
7351
|
'always_on': frame[24],
|
|
7094
|
-
'
|
|
7095
|
-
'
|
|
7096
|
-
'
|
|
7352
|
+
'calibration_one': frame.slice(25, 29),
|
|
7353
|
+
'hardware_id': frame.slice(29, 32),
|
|
7354
|
+
'report_rate': frame.slice(32, 36),
|
|
7355
|
+
'tx_life_counter': frame.slice(36, 40)
|
|
7097
7356
|
}
|
|
7098
7357
|
}
|
|
7099
7358
|
}
|
|
@@ -7127,25 +7386,31 @@ function sensor_types(parent){
|
|
|
7127
7386
|
let firmware = frame[2];
|
|
7128
7387
|
if(firmware > 13){ // firmware 14 and above
|
|
7129
7388
|
let frame_data = {};
|
|
7389
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7390
|
+
if(!auto_check_interval){
|
|
7391
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7392
|
+
}else{
|
|
7393
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7394
|
+
}
|
|
7130
7395
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7131
7396
|
switch(frame[16]){
|
|
7132
7397
|
case 0:
|
|
7133
|
-
frame_data.fsr = "+-
|
|
7398
|
+
frame_data.fsr = "+-6.114 V";
|
|
7134
7399
|
break;
|
|
7135
7400
|
case 1:
|
|
7136
|
-
frame_data.fsr = "+-
|
|
7401
|
+
frame_data.fsr = "+-4.096 V";
|
|
7137
7402
|
break;
|
|
7138
7403
|
case 2:
|
|
7139
|
-
frame_data.fsr = "+-
|
|
7404
|
+
frame_data.fsr = "+-2.048 V";
|
|
7140
7405
|
break;
|
|
7141
7406
|
case 3:
|
|
7142
|
-
frame_data.fsr = "+-
|
|
7407
|
+
frame_data.fsr = "+-1.024 V";
|
|
7143
7408
|
break;
|
|
7144
7409
|
case 4:
|
|
7145
|
-
frame_data.fsr = "+-
|
|
7410
|
+
frame_data.fsr = "+-0.512 V";
|
|
7146
7411
|
break;
|
|
7147
7412
|
case 5:
|
|
7148
|
-
frame_data.fsr = "+-
|
|
7413
|
+
frame_data.fsr = "+-0.256 V";
|
|
7149
7414
|
break;
|
|
7150
7415
|
}
|
|
7151
7416
|
return {
|
|
@@ -7153,12 +7418,15 @@ function sensor_types(parent){
|
|
|
7153
7418
|
'fsr': frame_data.fsr,
|
|
7154
7419
|
'boot_time': frame[17] + " sec",
|
|
7155
7420
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7156
|
-
'auto_check_interval':
|
|
7157
|
-
'
|
|
7421
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7422
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7158
7423
|
'always_on': frame_data.always_on,
|
|
7159
|
-
'
|
|
7160
|
-
'
|
|
7161
|
-
'
|
|
7424
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7425
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7426
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7427
|
+
'hardware_id': frame.slice(37, 40),
|
|
7428
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7429
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7162
7430
|
'machine_values': {
|
|
7163
7431
|
'firmware': frame[2],
|
|
7164
7432
|
'fsr': frame[16],
|
|
@@ -7167,9 +7435,12 @@ function sensor_types(parent){
|
|
|
7167
7435
|
'auto_check_interval': frame.slice(20, 22),
|
|
7168
7436
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7169
7437
|
'always_on': frame[24],
|
|
7170
|
-
'
|
|
7171
|
-
'
|
|
7172
|
-
'
|
|
7438
|
+
'calibration_one': frame.slice(25, 29),
|
|
7439
|
+
'calibration_two':frame.slice(29, 33),
|
|
7440
|
+
'calibration_three':frame.slice(33, 37),
|
|
7441
|
+
'hardware_id': frame.slice(37, 40),
|
|
7442
|
+
'report_rate': frame.slice(40, 44),
|
|
7443
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7173
7444
|
}
|
|
7174
7445
|
}
|
|
7175
7446
|
}
|
|
@@ -7187,25 +7458,31 @@ function sensor_types(parent){
|
|
|
7187
7458
|
let firmware = frame[2];
|
|
7188
7459
|
if(firmware > 13){ // firmware 14 and above
|
|
7189
7460
|
let frame_data = {};
|
|
7461
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7462
|
+
if(!auto_check_interval){
|
|
7463
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7464
|
+
}else{
|
|
7465
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7466
|
+
}
|
|
7190
7467
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7191
7468
|
switch(frame[16]){
|
|
7192
7469
|
case 0:
|
|
7193
|
-
frame_data.fsr = "+-
|
|
7470
|
+
frame_data.fsr = "+-6.114 V";
|
|
7194
7471
|
break;
|
|
7195
7472
|
case 1:
|
|
7196
|
-
frame_data.fsr = "+-
|
|
7473
|
+
frame_data.fsr = "+-4.096 V";
|
|
7197
7474
|
break;
|
|
7198
7475
|
case 2:
|
|
7199
|
-
frame_data.fsr = "+-
|
|
7476
|
+
frame_data.fsr = "+-2.048 V";
|
|
7200
7477
|
break;
|
|
7201
7478
|
case 3:
|
|
7202
|
-
frame_data.fsr = "+-
|
|
7479
|
+
frame_data.fsr = "+-1.024 V";
|
|
7203
7480
|
break;
|
|
7204
7481
|
case 4:
|
|
7205
|
-
frame_data.fsr = "+-
|
|
7482
|
+
frame_data.fsr = "+-0.512 V";
|
|
7206
7483
|
break;
|
|
7207
7484
|
case 5:
|
|
7208
|
-
frame_data.fsr = "+-
|
|
7485
|
+
frame_data.fsr = "+-0.256 V";
|
|
7209
7486
|
break;
|
|
7210
7487
|
}
|
|
7211
7488
|
return {
|
|
@@ -7213,12 +7490,15 @@ function sensor_types(parent){
|
|
|
7213
7490
|
'fsr': frame_data.fsr,
|
|
7214
7491
|
'boot_time': frame[17] + " sec",
|
|
7215
7492
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7216
|
-
'auto_check_interval':
|
|
7217
|
-
'
|
|
7493
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7494
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7218
7495
|
'always_on': frame_data.always_on,
|
|
7219
|
-
'
|
|
7220
|
-
'
|
|
7221
|
-
'
|
|
7496
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7497
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7498
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7499
|
+
'hardware_id': frame.slice(37, 40),
|
|
7500
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7501
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7222
7502
|
'machine_values': {
|
|
7223
7503
|
'firmware': frame[2],
|
|
7224
7504
|
'fsr': frame[16],
|
|
@@ -7227,9 +7507,12 @@ function sensor_types(parent){
|
|
|
7227
7507
|
'auto_check_interval': frame.slice(20, 22),
|
|
7228
7508
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7229
7509
|
'always_on': frame[24],
|
|
7230
|
-
'
|
|
7231
|
-
'
|
|
7232
|
-
'
|
|
7510
|
+
'calibration_one': frame.slice(25, 29),
|
|
7511
|
+
'calibration_two':frame.slice(29, 33),
|
|
7512
|
+
'calibration_three':frame.slice(33, 37),
|
|
7513
|
+
'hardware_id': frame.slice(37, 40),
|
|
7514
|
+
'report_rate': frame.slice(40, 44),
|
|
7515
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7233
7516
|
}
|
|
7234
7517
|
}
|
|
7235
7518
|
}
|
|
@@ -7548,50 +7831,113 @@ function sensor_types(parent){
|
|
|
7548
7831
|
}
|
|
7549
7832
|
},
|
|
7550
7833
|
'parse_fly': (frame) => {
|
|
7551
|
-
let
|
|
7552
|
-
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
frame_data.
|
|
7559
|
-
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7563
|
-
|
|
7564
|
-
|
|
7565
|
-
|
|
7834
|
+
let firmware = frame[2];
|
|
7835
|
+
if(firmware > 13){ // firmware 14 and above
|
|
7836
|
+
let frame_data = {};
|
|
7837
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
7838
|
+
if(!auto_check_interval){
|
|
7839
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
7840
|
+
}else{
|
|
7841
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
7842
|
+
}
|
|
7843
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7844
|
+
switch(frame[16]){
|
|
7845
|
+
case 0:
|
|
7846
|
+
frame_data.fsr = "+-6.114 V";
|
|
7847
|
+
break;
|
|
7848
|
+
case 1:
|
|
7849
|
+
frame_data.fsr = "+-4.096 V";
|
|
7850
|
+
break;
|
|
7851
|
+
case 2:
|
|
7852
|
+
frame_data.fsr = "+-2.048 V";
|
|
7853
|
+
break;
|
|
7854
|
+
case 3:
|
|
7855
|
+
frame_data.fsr = "+-1.024 V";
|
|
7856
|
+
break;
|
|
7857
|
+
case 4:
|
|
7858
|
+
frame_data.fsr = "+-0.512 V";
|
|
7859
|
+
break;
|
|
7860
|
+
case 5:
|
|
7861
|
+
frame_data.fsr = "+-0.256 V";
|
|
7862
|
+
break;
|
|
7863
|
+
}
|
|
7864
|
+
return {
|
|
7865
|
+
'firmware': frame[2],
|
|
7866
|
+
'fsr': frame_data.fsr,
|
|
7867
|
+
'boot_time': frame[17] + " sec",
|
|
7868
|
+
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7869
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
7870
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7871
|
+
'always_on': frame_data.always_on,
|
|
7872
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
7873
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
7874
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
7875
|
+
'hardware_id': frame.slice(37, 40),
|
|
7876
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
7877
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7878
|
+
'machine_values': {
|
|
7879
|
+
'firmware': frame[2],
|
|
7880
|
+
'fsr': frame[16],
|
|
7881
|
+
'boot_time': frame[17],
|
|
7882
|
+
'power_adc': frame.slice(18, 20),
|
|
7883
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
7884
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
7885
|
+
'always_on': frame[24],
|
|
7886
|
+
'calibration_one': frame.slice(25, 29),
|
|
7887
|
+
'calibration_two':frame.slice(29, 33),
|
|
7888
|
+
'calibration_three':frame.slice(33, 37),
|
|
7889
|
+
'hardware_id': frame.slice(37, 40),
|
|
7890
|
+
'report_rate': frame.slice(40, 44),
|
|
7891
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7892
|
+
}
|
|
7893
|
+
}
|
|
7566
7894
|
}
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
|
|
7581
|
-
|
|
7895
|
+
else{
|
|
7896
|
+
let frame_data = {};
|
|
7897
|
+
frame_data.mode = frame[12] ? 'Raw':'Processed';
|
|
7898
|
+
switch(frame[13]){
|
|
7899
|
+
case 0:
|
|
7900
|
+
frame_data.raw_lenght = 55;
|
|
7901
|
+
break;
|
|
7902
|
+
case 1:
|
|
7903
|
+
frame_data.raw_lenght = 100;
|
|
7904
|
+
break;
|
|
7905
|
+
case 2:
|
|
7906
|
+
frame_data.raw_lenght = 150;
|
|
7907
|
+
break;
|
|
7908
|
+
case 3:
|
|
7909
|
+
frame_data.raw_lenght = 180;
|
|
7910
|
+
break;
|
|
7911
|
+
}
|
|
7912
|
+
return {
|
|
7582
7913
|
'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)
|
|
7914
|
+
'mode': frame_data.mode,
|
|
7915
|
+
'raw_length': frame_data.raw_lenght + " Bytes",
|
|
7916
|
+
'raw_on_request_timeout': frame[14] + " sec",
|
|
7917
|
+
'fly_rate': frame.slice(15, 17).reduce(msbLsb) + " min",
|
|
7918
|
+
'c1_sensor_gain_db': frame[17] + " dB",
|
|
7919
|
+
'c1_sensor_boot_time': frame[18] + " sec",
|
|
7920
|
+
'c2_sensor_gain_db': frame[19] + " dB",
|
|
7921
|
+
'c2_sensor_boot_time': frame[20] + " sec",
|
|
7922
|
+
'sampling_frequency': frame.slice(21, 25).reduce(msbLsb) + " Hz",
|
|
7592
7923
|
// 'hardware_id': frame.slice(25, 28),
|
|
7593
|
-
// 'report_rate': frame.slice(28, 32),
|
|
7594
|
-
// 'tx_life_count': frame.slice(32, 36)
|
|
7924
|
+
// 'report_rate': frame.slice(28, 32).reduce(msbLsb),
|
|
7925
|
+
// 'tx_life_count': frame.slice(32, 36).reduce(msbLsb),
|
|
7926
|
+
'machine_values': {
|
|
7927
|
+
'firmware': frame[2],
|
|
7928
|
+
'mode': frame[12],
|
|
7929
|
+
'raw_lenght': frame[13],
|
|
7930
|
+
'raw_on_request_timeout': frame[14],
|
|
7931
|
+
'fly_rate': frame.slice(15, 17),
|
|
7932
|
+
'c1_sensor_gain_db': frame[17],
|
|
7933
|
+
'c1_sensor_boot_time': frame[18],
|
|
7934
|
+
'c2_sensor_gain_db': frame[19],
|
|
7935
|
+
'c2_sensor_boot_time': frame[20],
|
|
7936
|
+
'sampling_frequency': frame.slice(21, 25)
|
|
7937
|
+
// 'hardware_id': frame.slice(25, 28),
|
|
7938
|
+
// 'report_rate': frame.slice(28, 32),
|
|
7939
|
+
// 'tx_life_count': frame.slice(32, 36)
|
|
7940
|
+
}
|
|
7595
7941
|
}
|
|
7596
7942
|
}
|
|
7597
7943
|
}
|
|
@@ -7612,7 +7958,7 @@ function sensor_types(parent){
|
|
|
7612
7958
|
var data = {};
|
|
7613
7959
|
switch(payload[8]){
|
|
7614
7960
|
case 1:
|
|
7615
|
-
data.sensor_type = '
|
|
7961
|
+
data.sensor_type = 'Accel';
|
|
7616
7962
|
break;
|
|
7617
7963
|
case 2:
|
|
7618
7964
|
data.sensor_type = 'gyro';
|
|
@@ -7626,74 +7972,70 @@ function sensor_types(parent){
|
|
|
7626
7972
|
data.event_type = 'motion';
|
|
7627
7973
|
break;
|
|
7628
7974
|
}
|
|
7975
|
+
|
|
7976
|
+
var mode = payload[9];
|
|
7977
|
+
var odr = payload[11];
|
|
7978
|
+
var en_axis = payload[12] & 7;
|
|
7979
|
+
var fsr = payload[12] >> 5;
|
|
7629
7980
|
var hour = payload[13];
|
|
7630
7981
|
var minute = payload[14];
|
|
7982
|
+
var device_temp = payload.slice(15, 17).reduce(msbLsb) / 100;
|
|
7983
|
+
var external_temperature = payload.slice(17, 19).reduce(msbLsb) / 100;
|
|
7631
7984
|
var expected_packets = payload.slice(19, 21).reduce(msbLsb);
|
|
7632
7985
|
var current_packet = payload.slice(21, 23).reduce(msbLsb);
|
|
7633
7986
|
var data_start = 23;
|
|
7634
7987
|
|
|
7988
|
+
switch(odr){
|
|
7989
|
+
case 0:
|
|
7990
|
+
odr = '125Hz';
|
|
7991
|
+
break;
|
|
7992
|
+
case 1:
|
|
7993
|
+
odr = '250Hz';
|
|
7994
|
+
break;
|
|
7995
|
+
case 2:
|
|
7996
|
+
odr = '500Hz';
|
|
7997
|
+
break;
|
|
7998
|
+
case 3:
|
|
7999
|
+
odr = '1000Hz';
|
|
8000
|
+
break;
|
|
8001
|
+
default:
|
|
8002
|
+
odr = 0;
|
|
8003
|
+
}
|
|
8004
|
+
|
|
7635
8005
|
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
7636
8006
|
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);
|
|
8007
|
+
// if current packet is equal to last one (duplicated data). This does not apply to the last package
|
|
8008
|
+
if (globalDevices[deviceAddr].last_packet_counter == current_packet){
|
|
8009
|
+
console.log('Duplicated message')
|
|
8010
|
+
return;
|
|
8011
|
+
}
|
|
8012
|
+
// if current packet is equal to 1 or last packet counter is higher thant current packet
|
|
8013
|
+
if(current_packet == 1 || (globalDevices[deviceAddr].last_packet_counter > current_packet)){
|
|
8014
|
+
// clear stream
|
|
7657
8015
|
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;
|
|
8016
|
+
// create new stream
|
|
8017
|
+
globalDevices[deviceAddr] = {
|
|
8018
|
+
// stream_size: expected_packets,
|
|
8019
|
+
data: {},
|
|
8020
|
+
odr: odr,
|
|
8021
|
+
mo: mode,
|
|
8022
|
+
en_axis: en_axis,
|
|
8023
|
+
fsr: fsr,
|
|
8024
|
+
hour: hour,
|
|
8025
|
+
minute: minute,
|
|
8026
|
+
device_temp: device_temp,
|
|
8027
|
+
external_temp: external_temperature
|
|
7683
8028
|
}
|
|
8029
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
8030
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
8031
|
+
return;
|
|
7684
8032
|
}
|
|
7685
8033
|
else{
|
|
8034
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
7686
8035
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
7687
8036
|
}
|
|
7688
8037
|
}
|
|
7689
8038
|
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
8039
|
globalDevices[deviceAddr] = {
|
|
7698
8040
|
// stream_size: expected_packets,
|
|
7699
8041
|
data: {},
|
|
@@ -7706,185 +8048,282 @@ function sensor_types(parent){
|
|
|
7706
8048
|
device_temp: device_temp,
|
|
7707
8049
|
external_temp: external_temperature
|
|
7708
8050
|
}
|
|
8051
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
7709
8052
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
7710
8053
|
}
|
|
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;
|
|
8054
|
+
}
|
|
8055
|
+
else{
|
|
7717
8056
|
|
|
7718
|
-
|
|
7719
|
-
|
|
8057
|
+
globalDevices[deviceAddr] = {
|
|
8058
|
+
data: {},
|
|
8059
|
+
odr: odr,
|
|
8060
|
+
mo: mode,
|
|
8061
|
+
en_axis: en_axis,
|
|
8062
|
+
fsr: fsr,
|
|
8063
|
+
hour: hour,
|
|
8064
|
+
minute: minute,
|
|
8065
|
+
device_temp: device_temp,
|
|
8066
|
+
external_temp: external_temperature
|
|
8067
|
+
}
|
|
8068
|
+
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
8069
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(data_start);
|
|
8070
|
+
}
|
|
8071
|
+
if(current_packet == expected_packets){
|
|
8072
|
+
var raw_data = new Array();
|
|
8073
|
+
for(const packet in globalDevices[deviceAddr].data){
|
|
8074
|
+
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
8075
|
+
}
|
|
8076
|
+
var label = 0;
|
|
7720
8077
|
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7729
|
-
|
|
7730
|
-
|
|
7731
|
-
|
|
7732
|
-
|
|
7733
|
-
|
|
7734
|
-
|
|
8078
|
+
var fft = new Array();
|
|
8079
|
+
var fft_concat = {};
|
|
8080
|
+
|
|
8081
|
+
var en_axis_data = {};
|
|
8082
|
+
en_axis_data.x_offset = 0;
|
|
8083
|
+
en_axis_data.y_offset = 2;
|
|
8084
|
+
en_axis_data.z_offset = 4;
|
|
8085
|
+
en_axis_data.increment = 6;
|
|
8086
|
+
fft_concat = {x: [], y: [], z: []};
|
|
8087
|
+
|
|
8088
|
+
/* Evaluate sensor type */
|
|
8089
|
+
if(payload[8] == 1){ // accelerometer
|
|
8090
|
+
var fsr_mult = 0.000019;
|
|
8091
|
+
var fsr_text = "";
|
|
8092
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8093
|
+
case 0:
|
|
8094
|
+
fsr_mult = 0.000019;
|
|
7735
8095
|
break;
|
|
7736
|
-
case
|
|
7737
|
-
|
|
7738
|
-
en_axis_data.increment = 2;
|
|
8096
|
+
case 1:
|
|
8097
|
+
fsr_mult = 0.000038;
|
|
7739
8098
|
break;
|
|
7740
|
-
case
|
|
7741
|
-
|
|
7742
|
-
en_axis_data.z_offset = 2;
|
|
7743
|
-
en_axis_data.increment = 4;
|
|
8099
|
+
case 2:
|
|
8100
|
+
fsr_mult = 0.000076;
|
|
7744
8101
|
break;
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7748
|
-
|
|
8102
|
+
}
|
|
8103
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8104
|
+
case 0:
|
|
8105
|
+
fsr_text = "10g";
|
|
7749
8106
|
break;
|
|
7750
|
-
case
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
8107
|
+
case 1:
|
|
8108
|
+
fsr_text = "20g";
|
|
8109
|
+
break;
|
|
8110
|
+
case 2:
|
|
8111
|
+
fsr_text = "40g";
|
|
7755
8112
|
break;
|
|
7756
|
-
default:
|
|
7757
|
-
en_axis_data.increment = 0;
|
|
7758
|
-
}
|
|
7759
|
-
/* Evaluate sensor type */
|
|
7760
|
-
if(payload[0] == 1){ // adxl
|
|
7761
|
-
var fsr_mult = .00030;
|
|
7762
|
-
var fsr_text = "";
|
|
7763
|
-
switch(globalDevices[deviceAddr].fsr){
|
|
7764
|
-
case 0:
|
|
7765
|
-
fsr_mult = 0.00030;
|
|
7766
|
-
break;
|
|
7767
|
-
case 1:
|
|
7768
|
-
fsr_mult = 0.00061;
|
|
7769
|
-
break;
|
|
7770
|
-
case 2:
|
|
7771
|
-
fsr_mult = 0.00122;
|
|
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
|
-
}
|
|
7816
8113
|
}
|
|
7817
|
-
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
8114
|
+
}else{ // gyro
|
|
8115
|
+
var fsr_mult = 0.0305;
|
|
8116
|
+
var fsr_text = "";
|
|
8117
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8118
|
+
case 0:
|
|
8119
|
+
fsr_mult = 0.0305;
|
|
8120
|
+
break;
|
|
8121
|
+
case 1:
|
|
8122
|
+
fsr_mult = 0.061;
|
|
8123
|
+
break;
|
|
8124
|
+
case 2:
|
|
8125
|
+
fsr_mult = 0.122;
|
|
8126
|
+
break;
|
|
8127
|
+
case 3:
|
|
8128
|
+
fsr_mult = 0.244;
|
|
8129
|
+
break;
|
|
7832
8130
|
}
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
|
|
7836
|
-
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
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);
|
|
8131
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
8132
|
+
case 0:
|
|
8133
|
+
fsr_text = "250dps";
|
|
8134
|
+
break;
|
|
8135
|
+
case 1:
|
|
8136
|
+
fsr_text = "500dps";
|
|
8137
|
+
break;
|
|
8138
|
+
case 2:
|
|
8139
|
+
fsr_text = "1000dps";
|
|
8140
|
+
break;
|
|
8141
|
+
case 3:
|
|
8142
|
+
fsr_text = "2000dps";
|
|
8143
|
+
break;
|
|
7856
8144
|
}
|
|
7857
|
-
|
|
7858
|
-
return sensor_data;
|
|
7859
|
-
}
|
|
7860
|
-
else{
|
|
7861
|
-
return;
|
|
7862
8145
|
}
|
|
7863
|
-
}else{
|
|
7864
8146
|
|
|
7865
|
-
var
|
|
7866
|
-
|
|
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;
|
|
8147
|
+
for(var i = 0; i < raw_data.length; i+=en_axis_data.increment){
|
|
8148
|
+
label++;
|
|
7871
8149
|
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
|
|
7876
|
-
|
|
7877
|
-
|
|
7878
|
-
|
|
7879
|
-
|
|
7880
|
-
|
|
7881
|
-
device_temp: device_temp,
|
|
7882
|
-
external_temp: external_temperature
|
|
8150
|
+
if('x_offset' in en_axis_data){
|
|
8151
|
+
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)));
|
|
8152
|
+
}
|
|
8153
|
+
if('y_offset' in en_axis_data){
|
|
8154
|
+
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)));
|
|
8155
|
+
}
|
|
8156
|
+
if('z_offset' in en_axis_data){
|
|
8157
|
+
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)));
|
|
8158
|
+
}
|
|
7883
8159
|
}
|
|
7884
|
-
|
|
8160
|
+
var fft_concat_obj = {
|
|
8161
|
+
mode: mode,
|
|
8162
|
+
sensor_type: data.sensor_type,
|
|
8163
|
+
msg_type: data.event_type,
|
|
8164
|
+
time_id: globalDevices[deviceAddr].hour +':'+ globalDevices[deviceAddr].minute,
|
|
8165
|
+
mac_address: deviceAddr,
|
|
8166
|
+
en_axis: globalDevices[deviceAddr].en_axis,
|
|
8167
|
+
fsr: fsr_text,
|
|
8168
|
+
odr: globalDevices[deviceAddr].odr,
|
|
8169
|
+
device_temp: globalDevices[deviceAddr].device_temp,
|
|
8170
|
+
external_temp: globalDevices[deviceAddr].external_temp,
|
|
8171
|
+
total_samples: label,
|
|
8172
|
+
fft_confidence : ((Object.keys(globalDevices[deviceAddr].data).length / expected_packets) * 100).toFixed(2) + '%',
|
|
8173
|
+
data: fft_concat
|
|
8174
|
+
};
|
|
8175
|
+
sensor_data = fft_concat_obj;
|
|
8176
|
+
delete globalDevices[deviceAddr];
|
|
8177
|
+
return sensor_data;
|
|
8178
|
+
}
|
|
8179
|
+
else{
|
|
7885
8180
|
return;
|
|
7886
8181
|
}
|
|
7887
8182
|
}
|
|
8183
|
+
},
|
|
8184
|
+
'parse_fly': (frame) => {
|
|
8185
|
+
let frame_data = {};
|
|
8186
|
+
switch(frame[12]){
|
|
8187
|
+
case 0:
|
|
8188
|
+
frame_data.odr = 125;
|
|
8189
|
+
break;
|
|
8190
|
+
case 1:
|
|
8191
|
+
frame_data.odr = 250;
|
|
8192
|
+
break;
|
|
8193
|
+
case 2:
|
|
8194
|
+
frame_data.odr = 500;
|
|
8195
|
+
break;
|
|
8196
|
+
case 3:
|
|
8197
|
+
frame_data.odr = 1000;
|
|
8198
|
+
break;
|
|
8199
|
+
default:
|
|
8200
|
+
frame_data.odr = 0;
|
|
8201
|
+
}
|
|
8202
|
+
switch(frame[15]){
|
|
8203
|
+
case 0:
|
|
8204
|
+
frame_data.fsr_acc = "10g";
|
|
8205
|
+
break;
|
|
8206
|
+
case 1:
|
|
8207
|
+
frame_data.fsr_acc = "20g";
|
|
8208
|
+
break;
|
|
8209
|
+
case 2:
|
|
8210
|
+
frame_data.fsr_acc = "40g";
|
|
8211
|
+
break;
|
|
8212
|
+
}
|
|
8213
|
+
switch(frame[16]){
|
|
8214
|
+
case 0:
|
|
8215
|
+
frame_data.fsr_gyro = "250dps";
|
|
8216
|
+
break;
|
|
8217
|
+
case 1:
|
|
8218
|
+
frame_data.fsr_gyro = "500dps";
|
|
8219
|
+
break;
|
|
8220
|
+
case 2:
|
|
8221
|
+
frame_data.fsr_gyro = "1000dps";
|
|
8222
|
+
break;
|
|
8223
|
+
case 3:
|
|
8224
|
+
frame_data.fsr_gyro = "2000dps";
|
|
8225
|
+
break;
|
|
8226
|
+
}
|
|
8227
|
+
switch(frame[17]){
|
|
8228
|
+
case 7:
|
|
8229
|
+
frame_data.en_axis = "all";
|
|
8230
|
+
break;
|
|
8231
|
+
}
|
|
8232
|
+
switch(frame[20]){
|
|
8233
|
+
case 1:
|
|
8234
|
+
frame_data.en_sensors = "gyro_only";
|
|
8235
|
+
break;
|
|
8236
|
+
case 2:
|
|
8237
|
+
frame_data.en_sensors = "accel_only";
|
|
8238
|
+
break;
|
|
8239
|
+
case 3:
|
|
8240
|
+
frame_data.en_sensors = "all_enabled";
|
|
8241
|
+
break;
|
|
8242
|
+
}
|
|
8243
|
+
switch(frame[18]){
|
|
8244
|
+
case 0:
|
|
8245
|
+
frame_data.sampling_interval = 5;
|
|
8246
|
+
break;
|
|
8247
|
+
case 1:
|
|
8248
|
+
frame_data.sampling_interval = 10;
|
|
8249
|
+
break;
|
|
8250
|
+
case 2:
|
|
8251
|
+
frame_data.sampling_interval = 15;
|
|
8252
|
+
break;
|
|
8253
|
+
case 3:
|
|
8254
|
+
frame_data.sampling_interval = 20;
|
|
8255
|
+
break;
|
|
8256
|
+
case 4:
|
|
8257
|
+
frame_data.sampling_interval = 30;
|
|
8258
|
+
break;
|
|
8259
|
+
case 5:
|
|
8260
|
+
frame_data.sampling_interval = 60;
|
|
8261
|
+
break;
|
|
8262
|
+
case 6:
|
|
8263
|
+
frame_data.sampling_interval = 120;
|
|
8264
|
+
break;
|
|
8265
|
+
case 7:
|
|
8266
|
+
frame_data.sampling_interval = 180;
|
|
8267
|
+
break;
|
|
8268
|
+
}
|
|
8269
|
+
switch(frame[14]){
|
|
8270
|
+
case 0:
|
|
8271
|
+
frame_data.hpf_cutoff = 0.00247;
|
|
8272
|
+
break;
|
|
8273
|
+
case 1:
|
|
8274
|
+
frame_data.hpf_cutoff = 0.00062084;
|
|
8275
|
+
break;
|
|
8276
|
+
case 2:
|
|
8277
|
+
frame_data.hpf_cutoff = 0.00015545;
|
|
8278
|
+
break;
|
|
8279
|
+
case 3:
|
|
8280
|
+
frame_data.hpf_cutoff = 0.00003862;
|
|
8281
|
+
break;
|
|
8282
|
+
case 4:
|
|
8283
|
+
frame_data.hpf_cutoff = 0.00000954;
|
|
8284
|
+
break;
|
|
8285
|
+
case 5:
|
|
8286
|
+
frame_data.hpf_cutoff = 0.00000238;
|
|
8287
|
+
break;
|
|
8288
|
+
}
|
|
8289
|
+
return {
|
|
8290
|
+
'firmware': frame[2],
|
|
8291
|
+
'sample_rate': frame_data.odr + 'Hz',
|
|
8292
|
+
'sampling_duration': (frame[13]* 50) + 'msec',
|
|
8293
|
+
'hpf_cutoff': (frame_data.hpf_cutoff * frame_data.odr).toFixed(2) + 'Hz',
|
|
8294
|
+
'acc_fsr': frame_data.fsr_acc,
|
|
8295
|
+
'gyro_fsr': frame_data.fsr_gyro,
|
|
8296
|
+
'axis_enabled': frame_data.en_axis,
|
|
8297
|
+
'sampling_interval': frame_data.sampling_interval + 'min',
|
|
8298
|
+
'accelerometer_threshold': (frame[19]* 32) + "mg",
|
|
8299
|
+
'enabled_sensors': frame_data.en_sensors,
|
|
8300
|
+
'rtc': [
|
|
8301
|
+
String(frame[21]).padStart(2, '0'),
|
|
8302
|
+
String(frame[22]).padStart(2, '0'),
|
|
8303
|
+
String(frame[23]).padStart(2, '0')
|
|
8304
|
+
].join(':'),
|
|
8305
|
+
'hardware_id': frame.slice(24, 27),
|
|
8306
|
+
'report_rate': frame.slice(27, 31).reduce(msbLsb),
|
|
8307
|
+
'tx_life_counter': frame.slice(31, 35).reduce(msbLsb),
|
|
8308
|
+
'machine_values': {
|
|
8309
|
+
'firmware': frame[2],
|
|
8310
|
+
'odr': frame[12],
|
|
8311
|
+
'sampling_duration': frame[13],
|
|
8312
|
+
'hpf_cutoff': frame[14],
|
|
8313
|
+
'acc_fsr': frame[15],
|
|
8314
|
+
'gyro_fsr': frame[16],
|
|
8315
|
+
'axis_enabled': frame[17],
|
|
8316
|
+
'sampling_interval': frame[18],
|
|
8317
|
+
'accelerometer_threshold': frame[19],
|
|
8318
|
+
'enabled_sensors': frame[20],
|
|
8319
|
+
'hour': frame[21],
|
|
8320
|
+
'minute': frame[22],
|
|
8321
|
+
'second': frame[23],
|
|
8322
|
+
'hardware_id': frame.slice(24, 27),
|
|
8323
|
+
'report_rate': frame.slice(27, 31),
|
|
8324
|
+
'tx_life_counter': frame.slice(31, 35)
|
|
8325
|
+
}
|
|
8326
|
+
}
|
|
7888
8327
|
}
|
|
7889
8328
|
},
|
|
7890
8329
|
'105': {
|
|
@@ -7900,25 +8339,31 @@ function sensor_types(parent){
|
|
|
7900
8339
|
let firmware = frame[2];
|
|
7901
8340
|
if(firmware > 13){ // firmware 14 and above
|
|
7902
8341
|
let frame_data = {};
|
|
8342
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8343
|
+
if(!auto_check_interval){
|
|
8344
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8345
|
+
}else{
|
|
8346
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8347
|
+
}
|
|
7903
8348
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7904
8349
|
switch(frame[16]){
|
|
7905
8350
|
case 0:
|
|
7906
|
-
frame_data.fsr = "+-
|
|
8351
|
+
frame_data.fsr = "+-6.114 V";
|
|
7907
8352
|
break;
|
|
7908
8353
|
case 1:
|
|
7909
|
-
frame_data.fsr = "+-
|
|
8354
|
+
frame_data.fsr = "+-4.096 V";
|
|
7910
8355
|
break;
|
|
7911
8356
|
case 2:
|
|
7912
|
-
frame_data.fsr = "+-
|
|
8357
|
+
frame_data.fsr = "+-2.048 V";
|
|
7913
8358
|
break;
|
|
7914
8359
|
case 3:
|
|
7915
|
-
frame_data.fsr = "+-
|
|
8360
|
+
frame_data.fsr = "+-1.024 V";
|
|
7916
8361
|
break;
|
|
7917
8362
|
case 4:
|
|
7918
|
-
frame_data.fsr = "+-
|
|
8363
|
+
frame_data.fsr = "+-0.512 V";
|
|
7919
8364
|
break;
|
|
7920
8365
|
case 5:
|
|
7921
|
-
frame_data.fsr = "+-
|
|
8366
|
+
frame_data.fsr = "+-0.256 V";
|
|
7922
8367
|
break;
|
|
7923
8368
|
}
|
|
7924
8369
|
return {
|
|
@@ -7926,12 +8371,15 @@ function sensor_types(parent){
|
|
|
7926
8371
|
'fsr': frame_data.fsr,
|
|
7927
8372
|
'boot_time': frame[17] + " sec",
|
|
7928
8373
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7929
|
-
'auto_check_interval':
|
|
7930
|
-
'
|
|
8374
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8375
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7931
8376
|
'always_on': frame_data.always_on,
|
|
7932
|
-
'
|
|
7933
|
-
'
|
|
7934
|
-
'
|
|
8377
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8378
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8379
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8380
|
+
'hardware_id': frame.slice(37, 40),
|
|
8381
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8382
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7935
8383
|
'machine_values': {
|
|
7936
8384
|
'firmware': frame[2],
|
|
7937
8385
|
'fsr': frame[16],
|
|
@@ -7940,9 +8388,12 @@ function sensor_types(parent){
|
|
|
7940
8388
|
'auto_check_interval': frame.slice(20, 22),
|
|
7941
8389
|
'auto_check_percentage': frame.slice(22, 24),
|
|
7942
8390
|
'always_on': frame[24],
|
|
7943
|
-
'
|
|
7944
|
-
'
|
|
7945
|
-
'
|
|
8391
|
+
'calibration_one': frame.slice(25, 29),
|
|
8392
|
+
'calibration_two':frame.slice(29, 33),
|
|
8393
|
+
'calibration_three':frame.slice(33, 37),
|
|
8394
|
+
'hardware_id': frame.slice(37, 40),
|
|
8395
|
+
'report_rate': frame.slice(40, 44),
|
|
8396
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
7946
8397
|
}
|
|
7947
8398
|
}
|
|
7948
8399
|
}
|
|
@@ -7964,25 +8415,31 @@ function sensor_types(parent){
|
|
|
7964
8415
|
let firmware = frame[2];
|
|
7965
8416
|
if(firmware > 13){ // firmware 14 and above
|
|
7966
8417
|
let frame_data = {};
|
|
8418
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8419
|
+
if(!auto_check_interval){
|
|
8420
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8421
|
+
}else{
|
|
8422
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8423
|
+
}
|
|
7967
8424
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
7968
8425
|
switch(frame[16]){
|
|
7969
8426
|
case 0:
|
|
7970
|
-
frame_data.fsr = "+-
|
|
8427
|
+
frame_data.fsr = "+-6.114 V";
|
|
7971
8428
|
break;
|
|
7972
8429
|
case 1:
|
|
7973
|
-
frame_data.fsr = "+-
|
|
8430
|
+
frame_data.fsr = "+-4.096 V";
|
|
7974
8431
|
break;
|
|
7975
8432
|
case 2:
|
|
7976
|
-
frame_data.fsr = "+-
|
|
8433
|
+
frame_data.fsr = "+-2.048 V";
|
|
7977
8434
|
break;
|
|
7978
8435
|
case 3:
|
|
7979
|
-
frame_data.fsr = "+-
|
|
8436
|
+
frame_data.fsr = "+-1.024 V";
|
|
7980
8437
|
break;
|
|
7981
8438
|
case 4:
|
|
7982
|
-
frame_data.fsr = "+-
|
|
8439
|
+
frame_data.fsr = "+-0.512 V";
|
|
7983
8440
|
break;
|
|
7984
8441
|
case 5:
|
|
7985
|
-
frame_data.fsr = "+-
|
|
8442
|
+
frame_data.fsr = "+-0.256 V";
|
|
7986
8443
|
break;
|
|
7987
8444
|
}
|
|
7988
8445
|
return {
|
|
@@ -7990,12 +8447,15 @@ function sensor_types(parent){
|
|
|
7990
8447
|
'fsr': frame_data.fsr,
|
|
7991
8448
|
'boot_time': frame[17] + " sec",
|
|
7992
8449
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
7993
|
-
'auto_check_interval':
|
|
7994
|
-
'
|
|
8450
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8451
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
7995
8452
|
'always_on': frame_data.always_on,
|
|
7996
|
-
'
|
|
7997
|
-
'
|
|
7998
|
-
'
|
|
8453
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8454
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8455
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8456
|
+
'hardware_id': frame.slice(37, 40),
|
|
8457
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8458
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
7999
8459
|
'machine_values': {
|
|
8000
8460
|
'firmware': frame[2],
|
|
8001
8461
|
'fsr': frame[16],
|
|
@@ -8004,9 +8464,12 @@ function sensor_types(parent){
|
|
|
8004
8464
|
'auto_check_interval': frame.slice(20, 22),
|
|
8005
8465
|
'auto_check_percentage': frame.slice(22, 24),
|
|
8006
8466
|
'always_on': frame[24],
|
|
8007
|
-
'
|
|
8008
|
-
'
|
|
8009
|
-
'
|
|
8467
|
+
'calibration_one': frame.slice(25, 29),
|
|
8468
|
+
'calibration_two':frame.slice(29, 33),
|
|
8469
|
+
'calibration_three':frame.slice(33, 37),
|
|
8470
|
+
'hardware_id': frame.slice(37, 40),
|
|
8471
|
+
'report_rate': frame.slice(40, 44),
|
|
8472
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
8010
8473
|
}
|
|
8011
8474
|
}
|
|
8012
8475
|
}
|
|
@@ -8038,25 +8501,31 @@ function sensor_types(parent){
|
|
|
8038
8501
|
let firmware = frame[2];
|
|
8039
8502
|
if(firmware > 13){ // firmware 14 and above
|
|
8040
8503
|
let frame_data = {};
|
|
8504
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
8505
|
+
if(!auto_check_interval){
|
|
8506
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
8507
|
+
}else{
|
|
8508
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
8509
|
+
}
|
|
8041
8510
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
8042
8511
|
switch(frame[16]){
|
|
8043
8512
|
case 0:
|
|
8044
|
-
frame_data.fsr = "+-
|
|
8513
|
+
frame_data.fsr = "+-6.114 V";
|
|
8045
8514
|
break;
|
|
8046
8515
|
case 1:
|
|
8047
|
-
frame_data.fsr = "+-
|
|
8516
|
+
frame_data.fsr = "+-4.096 V";
|
|
8048
8517
|
break;
|
|
8049
8518
|
case 2:
|
|
8050
|
-
frame_data.fsr = "+-
|
|
8519
|
+
frame_data.fsr = "+-2.048 V";
|
|
8051
8520
|
break;
|
|
8052
8521
|
case 3:
|
|
8053
|
-
frame_data.fsr = "+-
|
|
8522
|
+
frame_data.fsr = "+-1.024 V";
|
|
8054
8523
|
break;
|
|
8055
8524
|
case 4:
|
|
8056
|
-
frame_data.fsr = "+-
|
|
8525
|
+
frame_data.fsr = "+-0.512 V";
|
|
8057
8526
|
break;
|
|
8058
8527
|
case 5:
|
|
8059
|
-
frame_data.fsr = "+-
|
|
8528
|
+
frame_data.fsr = "+-0.256 V";
|
|
8060
8529
|
break;
|
|
8061
8530
|
}
|
|
8062
8531
|
return {
|
|
@@ -8064,12 +8533,15 @@ function sensor_types(parent){
|
|
|
8064
8533
|
'fsr': frame_data.fsr,
|
|
8065
8534
|
'boot_time': frame[17] + " sec",
|
|
8066
8535
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
8067
|
-
'auto_check_interval':
|
|
8068
|
-
'
|
|
8536
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
8537
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
8069
8538
|
'always_on': frame_data.always_on,
|
|
8070
|
-
'
|
|
8071
|
-
'
|
|
8072
|
-
'
|
|
8539
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
8540
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
8541
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
8542
|
+
'hardware_id': frame.slice(37, 40),
|
|
8543
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
8544
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
8073
8545
|
'machine_values': {
|
|
8074
8546
|
'firmware': frame[2],
|
|
8075
8547
|
'fsr': frame[16],
|
|
@@ -8078,9 +8550,12 @@ function sensor_types(parent){
|
|
|
8078
8550
|
'auto_check_interval': frame.slice(20, 22),
|
|
8079
8551
|
'auto_check_percentage': frame.slice(22, 24),
|
|
8080
8552
|
'always_on': frame[24],
|
|
8081
|
-
'
|
|
8082
|
-
'
|
|
8083
|
-
'
|
|
8553
|
+
'calibration_one': frame.slice(25, 29),
|
|
8554
|
+
'calibration_two':frame.slice(29, 33),
|
|
8555
|
+
'calibration_three':frame.slice(33, 37),
|
|
8556
|
+
'hardware_id': frame.slice(37, 40),
|
|
8557
|
+
'report_rate': frame.slice(40, 44),
|
|
8558
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
8084
8559
|
}
|
|
8085
8560
|
}
|
|
8086
8561
|
}
|
|
@@ -8113,50 +8588,182 @@ function sensor_types(parent){
|
|
|
8113
8588
|
break;
|
|
8114
8589
|
}
|
|
8115
8590
|
return {
|
|
8116
|
-
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
8117
|
-
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
8118
|
-
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
8119
|
-
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
8120
|
-
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
8121
|
-
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
8122
|
-
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
8123
|
-
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
8124
|
-
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
8125
|
-
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
8126
|
-
input_di: d[40] & 1 ? 1 : 0,
|
|
8127
|
-
input_ct: d[40] & 2 ? 1 : 0,
|
|
8128
|
-
input_opto: d[40] & 4 ? 1 : 0,
|
|
8129
|
-
input_acc: d[40] & 8 ? 1 : 0,
|
|
8130
|
-
input_mag: d[40] & 16 ? 1 : 0,
|
|
8131
|
-
report_type: report_type,
|
|
8132
|
-
rtc: [
|
|
8133
|
-
String(d[42]).padStart(2, '0'),
|
|
8134
|
-
String(d[43]).padStart(2, '0'),
|
|
8135
|
-
String(d[44]).padStart(2, '0')
|
|
8136
|
-
].join(':')
|
|
8137
|
-
};
|
|
8138
|
-
}else{
|
|
8139
|
-
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] >
|
|
8591
|
+
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
8592
|
+
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
8593
|
+
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
8594
|
+
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
8595
|
+
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
8596
|
+
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
8597
|
+
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
8598
|
+
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
8599
|
+
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
8600
|
+
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
8601
|
+
input_di: d[40] & 1 ? 1 : 0,
|
|
8602
|
+
input_ct: d[40] & 2 ? 1 : 0,
|
|
8603
|
+
input_opto: d[40] & 4 ? 1 : 0,
|
|
8604
|
+
input_acc: d[40] & 8 ? 1 : 0,
|
|
8605
|
+
input_mag: d[40] & 16 ? 1 : 0,
|
|
8606
|
+
report_type: report_type,
|
|
8607
|
+
rtc: [
|
|
8608
|
+
String(d[42]).padStart(2, '0'),
|
|
8609
|
+
String(d[43]).padStart(2, '0'),
|
|
8610
|
+
String(d[44]).padStart(2, '0')
|
|
8611
|
+
].join(':')
|
|
8612
|
+
};
|
|
8613
|
+
}else{
|
|
8614
|
+
return {
|
|
8615
|
+
digital_input_counter: d.slice(0, 4).reduce(msbLsb),
|
|
8616
|
+
digital_input_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
8617
|
+
ct_input_counter: d.slice(8, 12).reduce(msbLsb),
|
|
8618
|
+
ct_input_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
8619
|
+
opto_input_counter: d.slice(16, 20).reduce(msbLsb),
|
|
8620
|
+
opto_input_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
8621
|
+
accelerometer_counter: d.slice(24, 28).reduce(msbLsb),
|
|
8622
|
+
accelerometer_uptime: d.slice(28, 32).reduce(msbLsb),
|
|
8623
|
+
magnetometer_counter: d.slice(32, 36).reduce(msbLsb),
|
|
8624
|
+
magnetometer_uptime: d.slice(36, 40).reduce(msbLsb),
|
|
8625
|
+
input_di: d[40] & 1 ? 1 : 0,
|
|
8626
|
+
input_ct: d[40] & 2 ? 1 : 0,
|
|
8627
|
+
input_opto: d[40] & 4 ? 1 : 0,
|
|
8628
|
+
input_acc: d[40] & 8 ? 1 : 0,
|
|
8629
|
+
input_mag: d[40] & 16 ? 1 : 0
|
|
8630
|
+
};
|
|
8631
|
+
}
|
|
8632
|
+
},
|
|
8633
|
+
'parse_fly': (frame) => {
|
|
8634
|
+
if(frame[2] > 9){ // firmware 10 and above
|
|
8635
|
+
let reset_mode = "Disabled";
|
|
8636
|
+
switch(frame[38]){
|
|
8637
|
+
case 0:
|
|
8638
|
+
reset_mode = "Disabled";
|
|
8639
|
+
break;
|
|
8640
|
+
case 1:
|
|
8641
|
+
reset_mode = "Shift Ends";
|
|
8642
|
+
break;
|
|
8643
|
+
case 2:
|
|
8644
|
+
reset_mode = "Timeout";
|
|
8645
|
+
break;
|
|
8646
|
+
}
|
|
8647
|
+
let acc_odr = "10Hz";
|
|
8648
|
+
switch(frame[40]){
|
|
8649
|
+
case 0:
|
|
8650
|
+
acc_odr = "10Hz";
|
|
8651
|
+
break;
|
|
8652
|
+
case 1:
|
|
8653
|
+
acc_odr = "20Hz";
|
|
8654
|
+
break;
|
|
8655
|
+
case 2:
|
|
8656
|
+
acc_odr = "50Hz";
|
|
8657
|
+
break;
|
|
8658
|
+
case 3:
|
|
8659
|
+
acc_odr = "100Hz";
|
|
8660
|
+
break;
|
|
8661
|
+
case 4:
|
|
8662
|
+
acc_odr = "200Hz";
|
|
8663
|
+
break;
|
|
8664
|
+
case 5:
|
|
8665
|
+
acc_odr = "400Hz";
|
|
8666
|
+
break;
|
|
8667
|
+
}
|
|
8668
|
+
let rtc_sampling_interval = "5 seconds";
|
|
8669
|
+
switch(frame[39]){
|
|
8670
|
+
case 0:
|
|
8671
|
+
rtc_sampling_interval = "1 minute";
|
|
8672
|
+
break;
|
|
8673
|
+
case 1:
|
|
8674
|
+
rtc_sampling_interval = "5 minutes";
|
|
8675
|
+
break;
|
|
8676
|
+
case 2:
|
|
8677
|
+
rtc_sampling_interval = "15 minutes";
|
|
8678
|
+
break;
|
|
8679
|
+
case 3:
|
|
8680
|
+
rtc_sampling_interval = "30 minutes";
|
|
8681
|
+
break;
|
|
8682
|
+
case 4:
|
|
8683
|
+
rtc_sampling_interval = "1 hour";
|
|
8684
|
+
break;
|
|
8685
|
+
case 5:
|
|
8686
|
+
rtc_sampling_interval = "2 hours";
|
|
8687
|
+
break;
|
|
8688
|
+
case 6:
|
|
8689
|
+
rtc_sampling_interval = "3 hours";
|
|
8690
|
+
break;
|
|
8691
|
+
case 7:
|
|
8692
|
+
rtc_sampling_interval = "6 hours";
|
|
8693
|
+
break;
|
|
8694
|
+
case 8:
|
|
8695
|
+
rtc_sampling_interval = "12 hours";
|
|
8696
|
+
break;
|
|
8697
|
+
case 9:
|
|
8698
|
+
rtc_sampling_interval = "5 seconds";
|
|
8699
|
+
break;
|
|
8700
|
+
case 10:
|
|
8701
|
+
rtc_sampling_interval = "10 seconds";
|
|
8702
|
+
break;
|
|
8703
|
+
case 11:
|
|
8704
|
+
rtc_sampling_interval = "15 seconds";
|
|
8705
|
+
break;
|
|
8706
|
+
case 12:
|
|
8707
|
+
rtc_sampling_interval = "30 seconds";
|
|
8708
|
+
break;
|
|
8709
|
+
}
|
|
8710
|
+
return {
|
|
8711
|
+
'firmware': frame[2],
|
|
8712
|
+
'accelerometer_threshold': (frame[16]* 32) + "mg",
|
|
8713
|
+
'debouncing_timeout': frame.slice(17, 19).reduce(msbLsb) + "msec",
|
|
8714
|
+
'accelero_state': frame[19]? "Enabled": "Disabled",
|
|
8715
|
+
'input_1_active_edge': frame[20]? "Rising": "Falling",
|
|
8716
|
+
'input_2_active_edge': frame[21]? "Rising": "Falling",
|
|
8717
|
+
'input_3_active_edge': frame[22]? "Rising": "Falling",
|
|
8718
|
+
'counter_threshold': frame.slice(23, 27).reduce(msbLsb),
|
|
8719
|
+
'trasnmit_on_change_status': frame[27]? "Enabled": "Disabled",
|
|
8720
|
+
'Shift_end_1': [
|
|
8721
|
+
String(frame[28]).padStart(2, '0'),
|
|
8722
|
+
String(frame[29]).padStart(2, '0')
|
|
8723
|
+
].join(':'),
|
|
8724
|
+
'Shift_end_2': [
|
|
8725
|
+
String(frame[30]).padStart(2, '0'),
|
|
8726
|
+
String(frame[31]).padStart(2, '0')
|
|
8727
|
+
].join(':'),
|
|
8728
|
+
'Shift_end_3': [
|
|
8729
|
+
String(frame[32]).padStart(2, '0'),
|
|
8730
|
+
String(frame[33]).padStart(2, '0')
|
|
8731
|
+
].join(':'),
|
|
8732
|
+
'Shift_end_4': [
|
|
8733
|
+
String(frame[34]).padStart(2, '0'),
|
|
8734
|
+
String(frame[35]).padStart(2, '0')
|
|
8735
|
+
].join(':'),
|
|
8736
|
+
'reset_timeout': frame.slice(36, 38).reduce(msbLsb) + "min",
|
|
8737
|
+
'counter_reset_mode': reset_mode,
|
|
8738
|
+
'sampling_interval': rtc_sampling_interval,
|
|
8739
|
+
'acc_odr': acc_odr,
|
|
8740
|
+
'hardware_id': frame.slice(41, 44),
|
|
8741
|
+
'report_rate': frame.slice(44, 48).reduce(msbLsb) + "sec",
|
|
8742
|
+
'tx_life_counter': frame.slice(48, 52).reduce(msbLsb),
|
|
8743
|
+
'machine_values': {
|
|
8744
|
+
'firmware': frame[2],
|
|
8745
|
+
'accelerometer_threshold': frame[16],
|
|
8746
|
+
'debouncing_timeout': frame.slice(17, 19),
|
|
8747
|
+
'accelero_state': frame[19],
|
|
8748
|
+
'input_1_active_edge': frame[20],
|
|
8749
|
+
'input_2_active_edge': frame[21],
|
|
8750
|
+
'input_3_active_edge': frame[22],
|
|
8751
|
+
'counter_threshold': frame.slice(23, 27),
|
|
8752
|
+
'trasnmit_on_change_status': frame[27],
|
|
8753
|
+
'Shift_end_1': frame.slice(28, 30),
|
|
8754
|
+
'Shift_end_2': frame.slice(30, 32),
|
|
8755
|
+
'Shift_end_3': frame.slice(32, 34),
|
|
8756
|
+
'Shift_end_4': frame.slice(34, 36),
|
|
8757
|
+
'reset_timeout': frame.slice(36, 38),
|
|
8758
|
+
'counter_reset_mode': frame[38],
|
|
8759
|
+
'sampling_interval': frame[39],
|
|
8760
|
+
'acc_odr': frame[40],
|
|
8761
|
+
'hardware_id': frame.slice(41, 44),
|
|
8762
|
+
'report_rate': frame.slice(44, 48),
|
|
8763
|
+
'tx_life_counter': frame.slice(48, 52)
|
|
8764
|
+
}
|
|
8765
|
+
}
|
|
8766
|
+
} else if(frame[2] > 8){
|
|
8160
8767
|
let reset_mode = "Disabled";
|
|
8161
8768
|
switch(frame[37]){
|
|
8162
8769
|
case 0:
|
|
@@ -8235,12 +8842,12 @@ function sensor_types(parent){
|
|
|
8235
8842
|
return {
|
|
8236
8843
|
'firmware': frame[2],
|
|
8237
8844
|
'accelerometer_threshold': (frame[16]* 32) + "mg",
|
|
8238
|
-
'debouncing_timeout': frame[17] + "
|
|
8845
|
+
'debouncing_timeout': frame[17] + "msec",
|
|
8239
8846
|
'accelero_state': frame[18]? "Enabled": "Disabled",
|
|
8240
8847
|
'input_1_active_edge': frame[19]? "Rising": "Falling",
|
|
8241
8848
|
'input_2_active_edge': frame[20]? "Rising": "Falling",
|
|
8242
8849
|
'input_3_active_edge': frame[21]? "Rising": "Falling",
|
|
8243
|
-
'counter_threshold': frame.slice(22, 26).reduce(msbLsb)
|
|
8850
|
+
'counter_threshold': frame.slice(22, 26).reduce(msbLsb),
|
|
8244
8851
|
'trasnmit_on_change_status': frame[26]? "Enabled": "Disabled",
|
|
8245
8852
|
'Shift_end_1': [
|
|
8246
8853
|
String(frame[27]).padStart(2, '0'),
|
|
@@ -8292,11 +8899,11 @@ function sensor_types(parent){
|
|
|
8292
8899
|
return {
|
|
8293
8900
|
'firmware': frame[2],
|
|
8294
8901
|
'report_rate': frame.slice(12, 16).reduce(msbLsb).toString() + "sec.",
|
|
8295
|
-
'accelerometer_threshold': (frame[16]* 32)
|
|
8296
|
-
'debouncing_timeout': frame[17].toString() + "
|
|
8902
|
+
'accelerometer_threshold': (frame[16]* 32) + "mg.",
|
|
8903
|
+
'debouncing_timeout': frame[17].toString() + "msec.",
|
|
8297
8904
|
'accelero_state': frame[18],
|
|
8298
8905
|
'digital_inputs_active_edge': frame.slice(19, 22).reduce(msbLsb),
|
|
8299
|
-
'counter_threshold': frame.slice(22, 26).reduce(msbLsb)
|
|
8906
|
+
'counter_threshold': frame.slice(22, 26).reduce(msbLsb),
|
|
8300
8907
|
'trasnmit_on_change_status': frame[26],
|
|
8301
8908
|
'machine_values': {
|
|
8302
8909
|
'firmware': frame[2],
|
|
@@ -8478,30 +9085,6 @@ function sensor_types(parent){
|
|
|
8478
9085
|
}
|
|
8479
9086
|
}
|
|
8480
9087
|
},
|
|
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
9088
|
'109': {
|
|
8506
9089
|
name: 'Wireless Custom Solar Sensor',
|
|
8507
9090
|
parse: (d) => {
|
|
@@ -8574,7 +9157,7 @@ function sensor_types(parent){
|
|
|
8574
9157
|
var mode = payload[8];
|
|
8575
9158
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8576
9159
|
var fsr = payload[11] >> 5;
|
|
8577
|
-
var
|
|
9160
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8578
9161
|
|
|
8579
9162
|
globalDevices[deviceAddr] = {
|
|
8580
9163
|
// stream_size: expected_packets,
|
|
@@ -8584,7 +9167,7 @@ function sensor_types(parent){
|
|
|
8584
9167
|
fsr: fsr,
|
|
8585
9168
|
hour: hour,
|
|
8586
9169
|
minute: minute,
|
|
8587
|
-
|
|
9170
|
+
temperature: temperature,
|
|
8588
9171
|
}
|
|
8589
9172
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8590
9173
|
return;
|
|
@@ -8598,7 +9181,7 @@ function sensor_types(parent){
|
|
|
8598
9181
|
var mode = payload[8];
|
|
8599
9182
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8600
9183
|
var fsr = payload[11] >> 5;
|
|
8601
|
-
var
|
|
9184
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8602
9185
|
|
|
8603
9186
|
globalDevices[deviceAddr] = {
|
|
8604
9187
|
// stream_size: expected_packets,
|
|
@@ -8608,7 +9191,7 @@ function sensor_types(parent){
|
|
|
8608
9191
|
fsr: fsr,
|
|
8609
9192
|
hour: hour,
|
|
8610
9193
|
minute: minute,
|
|
8611
|
-
|
|
9194
|
+
temperature: temperature,
|
|
8612
9195
|
}
|
|
8613
9196
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8614
9197
|
}
|
|
@@ -8682,7 +9265,7 @@ function sensor_types(parent){
|
|
|
8682
9265
|
mac_address: deviceAddr,
|
|
8683
9266
|
fsr: fsr_text,
|
|
8684
9267
|
odr: globalDevices[deviceAddr].odr,
|
|
8685
|
-
|
|
9268
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
8686
9269
|
total_samples: label,
|
|
8687
9270
|
data: fft_concat
|
|
8688
9271
|
};
|
|
@@ -8703,7 +9286,7 @@ function sensor_types(parent){
|
|
|
8703
9286
|
var mode = payload[8];
|
|
8704
9287
|
var odr = msbLsb(payload[9], payload[10]);
|
|
8705
9288
|
var fsr = payload[11] >> 5;
|
|
8706
|
-
var
|
|
9289
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
8707
9290
|
|
|
8708
9291
|
globalDevices[deviceAddr] = {
|
|
8709
9292
|
// stream_size: expected_packets,
|
|
@@ -8713,7 +9296,7 @@ function sensor_types(parent){
|
|
|
8713
9296
|
fsr: fsr,
|
|
8714
9297
|
hour: hour,
|
|
8715
9298
|
minute: minute,
|
|
8716
|
-
|
|
9299
|
+
temperature: temperature,
|
|
8717
9300
|
}
|
|
8718
9301
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
8719
9302
|
return;
|
|
@@ -8989,7 +9572,65 @@ function sensor_types(parent){
|
|
|
8989
9572
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
8990
9573
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
8991
9574
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
8992
|
-
if(frame[2] >
|
|
9575
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
9576
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
9577
|
+
return {
|
|
9578
|
+
'firmware': frame[2],
|
|
9579
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
9580
|
+
'mode': frame_data.mode,
|
|
9581
|
+
'odr': frame_data.odr_1+'Hz',
|
|
9582
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
9583
|
+
'filter_status': frame_data.filter_status,
|
|
9584
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
9585
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
9586
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
9587
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
9588
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
9589
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
9590
|
+
'deadband': frame_data.deadband,
|
|
9591
|
+
'payload_length': frame_data.payload_length,
|
|
9592
|
+
'fsr': frame_data.fsr_text,
|
|
9593
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
9594
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
9595
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
9596
|
+
'smart_mode_skip_count': frame[33],
|
|
9597
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
9598
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
9599
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
9600
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
9601
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
9602
|
+
'hardware_id': frame.slice(43, 46),
|
|
9603
|
+
'reserved': frame.slice(46, 50),
|
|
9604
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
9605
|
+
'machine_values': {
|
|
9606
|
+
'firmware': frame[2],
|
|
9607
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
9608
|
+
'mode': frame[16],
|
|
9609
|
+
'odr': frame[17],
|
|
9610
|
+
'sampling_duration': frame[18],
|
|
9611
|
+
'filter_status': frame[19],
|
|
9612
|
+
'lpf_coeff': frame[20],
|
|
9613
|
+
'hpf_coeff': frame[21],
|
|
9614
|
+
'sampling_interval': frame[22],
|
|
9615
|
+
'on_request_timeout': frame[23],
|
|
9616
|
+
'deadband': frame[24],
|
|
9617
|
+
'payload_length': frame[25],
|
|
9618
|
+
'fsr': frame[26],
|
|
9619
|
+
'rpm_compute_status': frame[27],
|
|
9620
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
9621
|
+
'auto_raw_interval': frame[32],
|
|
9622
|
+
'smart_mode_skip_count': frame[33],
|
|
9623
|
+
'smart_mode_acc_threshold':frame[34],
|
|
9624
|
+
'uptime_counter': frame.slice(35, 39),
|
|
9625
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
9626
|
+
'motion_to_sampling_delay': frame[41],
|
|
9627
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
9628
|
+
'hardware_id': frame.slice(43, 46),
|
|
9629
|
+
'reserved': frame.slice(46, 50),
|
|
9630
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
9631
|
+
}
|
|
9632
|
+
}
|
|
9633
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
8993
9634
|
return {
|
|
8994
9635
|
'firmware': frame[2],
|
|
8995
9636
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -9148,7 +9789,7 @@ function sensor_types(parent){
|
|
|
9148
9789
|
var mode = payload[8];
|
|
9149
9790
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9150
9791
|
var fsr = payload[11] >> 5;
|
|
9151
|
-
var
|
|
9792
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9152
9793
|
|
|
9153
9794
|
globalDevices[deviceAddr] = {
|
|
9154
9795
|
// stream_size: expected_packets,
|
|
@@ -9158,7 +9799,7 @@ function sensor_types(parent){
|
|
|
9158
9799
|
fsr: fsr,
|
|
9159
9800
|
hour: hour,
|
|
9160
9801
|
minute: minute,
|
|
9161
|
-
|
|
9802
|
+
temperature: temperature,
|
|
9162
9803
|
}
|
|
9163
9804
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9164
9805
|
return;
|
|
@@ -9172,7 +9813,7 @@ function sensor_types(parent){
|
|
|
9172
9813
|
var mode = payload[8];
|
|
9173
9814
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9174
9815
|
var fsr = payload[11] >> 5;
|
|
9175
|
-
var
|
|
9816
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9176
9817
|
|
|
9177
9818
|
globalDevices[deviceAddr] = {
|
|
9178
9819
|
// stream_size: expected_packets,
|
|
@@ -9182,7 +9823,7 @@ function sensor_types(parent){
|
|
|
9182
9823
|
fsr: fsr,
|
|
9183
9824
|
hour: hour,
|
|
9184
9825
|
minute: minute,
|
|
9185
|
-
|
|
9826
|
+
temperature: temperature,
|
|
9186
9827
|
}
|
|
9187
9828
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9188
9829
|
}
|
|
@@ -9267,7 +9908,7 @@ function sensor_types(parent){
|
|
|
9267
9908
|
mac_address: deviceAddr,
|
|
9268
9909
|
fsr: fsr_text,
|
|
9269
9910
|
odr: globalDevices[deviceAddr].odr,
|
|
9270
|
-
|
|
9911
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
9271
9912
|
total_samples: label,
|
|
9272
9913
|
data: fft_concat
|
|
9273
9914
|
};
|
|
@@ -9287,7 +9928,7 @@ function sensor_types(parent){
|
|
|
9287
9928
|
var mode = payload[8];
|
|
9288
9929
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9289
9930
|
var fsr = payload[11] >> 5;
|
|
9290
|
-
var
|
|
9931
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9291
9932
|
|
|
9292
9933
|
globalDevices[deviceAddr] = {
|
|
9293
9934
|
// stream_size: expected_packets,
|
|
@@ -9297,7 +9938,7 @@ function sensor_types(parent){
|
|
|
9297
9938
|
fsr: fsr,
|
|
9298
9939
|
hour: hour,
|
|
9299
9940
|
minute: minute,
|
|
9300
|
-
|
|
9941
|
+
temperature: temperature,
|
|
9301
9942
|
}
|
|
9302
9943
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9303
9944
|
return;
|
|
@@ -9743,7 +10384,79 @@ function sensor_types(parent){
|
|
|
9743
10384
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
9744
10385
|
frame_data.p1_smart_mode_threshold = frame[38] * 50;
|
|
9745
10386
|
frame_data.p2_smart_mode_threshold = frame[39] * 50;
|
|
9746
|
-
if(frame[2] >
|
|
10387
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
10388
|
+
frame_data.motion_to_delay = frame[50] * 50;
|
|
10389
|
+
return {
|
|
10390
|
+
'firmware': frame[2],
|
|
10391
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
10392
|
+
'mode': frame_data.mode,
|
|
10393
|
+
'odr_1': frame_data.odr_1+'Hz',
|
|
10394
|
+
'odr_2': frame_data.odr_2+'Hz',
|
|
10395
|
+
'sampling_duration_1': frame_data.sampling_duration_1,
|
|
10396
|
+
'sampling_duration_2': frame_data.sampling_duration_2,
|
|
10397
|
+
'filter_status': frame_data.filter_status,
|
|
10398
|
+
'lpf_coeff_1': frame_data.lpf_coeff_1,
|
|
10399
|
+
'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
|
|
10400
|
+
'lpf_coeff_2': frame_data.lpf_coeff_2,
|
|
10401
|
+
'lpf_freq_2': frame_data.lpf_freq_2+'Hz',
|
|
10402
|
+
'hpf_coeff_1': frame_data.hpf_coeff_1,
|
|
10403
|
+
'hpf_freq_1': frame_data.hpf_freq_1+'Hz',
|
|
10404
|
+
'hpf_coeff_2': frame_data.hpf_coeff_2,
|
|
10405
|
+
'hpf_freq_2': frame_data.hpf_freq_2+'Hz',
|
|
10406
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
10407
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
10408
|
+
'deadband': frame_data.deadband,
|
|
10409
|
+
'payload_length': frame_data.payload_length,
|
|
10410
|
+
'fsr': frame_data.fsr_text,
|
|
10411
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
10412
|
+
'auto_raw_destination_address': toMac(frame.slice(32 , 36)),
|
|
10413
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
10414
|
+
'smart_mode_skip_count': frame[37],
|
|
10415
|
+
'smart_mode_acc_threshold_probe_1': frame_data.p1_smart_mode_threshold+'mg',
|
|
10416
|
+
'smart_mode_acc_threshold_probe_2': frame_data.p2_smart_mode_threshold+'mg',
|
|
10417
|
+
'uptime_counter_probe_1': frame.slice(40, 44).reduce(msbLsb)+'sec',
|
|
10418
|
+
'uptime_counter_probe_2': frame.slice(44, 48).reduce(msbLsb)+'sec',
|
|
10419
|
+
'max_tx_raw_samples': frame.slice(48, 50).reduce(msbLsb),
|
|
10420
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
10421
|
+
'max_num_of_motion_tx_per_interval': frame[51],
|
|
10422
|
+
'hardware_id': frame.slice(52, 55),
|
|
10423
|
+
'reserved': frame.slice(55, 59),
|
|
10424
|
+
'tx_lifetime_counter': frame.slice(59, 63).reduce(msbLsb),
|
|
10425
|
+
'machine_values': {
|
|
10426
|
+
'firmware': frame[2],
|
|
10427
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
10428
|
+
'mode': frame[16],
|
|
10429
|
+
'odr_1': frame[17],
|
|
10430
|
+
'odr_2': frame[18],
|
|
10431
|
+
'sampling_duration_1': frame[19],
|
|
10432
|
+
'sampling_duration_2': frame[20],
|
|
10433
|
+
'filter_status': frame[21],
|
|
10434
|
+
'lpf_coeff_1': frame[22],
|
|
10435
|
+
'lpf_coeff_2': frame[23],
|
|
10436
|
+
'hpf_coeff_1': frame[24],
|
|
10437
|
+
'hpf_coeff_2': frame[25],
|
|
10438
|
+
'sampling_interval': frame[26],
|
|
10439
|
+
'on_request_timeout': frame[27],
|
|
10440
|
+
'deadband': frame[28],
|
|
10441
|
+
'payload_length': frame[29],
|
|
10442
|
+
'fsm': frame[30],
|
|
10443
|
+
'rpm_compute_status': frame[31],
|
|
10444
|
+
'auto_raw_destination_address': toMac(frame.slice(32 , 36), false),
|
|
10445
|
+
'auto_raw_interval': frame[36],
|
|
10446
|
+
'smart_mode_skip_count': frame[37],
|
|
10447
|
+
'smart_mode_acc_threshold_probe_1':frame[38],
|
|
10448
|
+
'smart_mode_acc_threshold_probe_2':frame[39],
|
|
10449
|
+
'uptime_counter_probe_1': frame.slice(40, 44),
|
|
10450
|
+
'uptime_counter_probe_2': frame.slice(44, 48),
|
|
10451
|
+
'max_tx_raw_samples': frame.slice(48, 50),
|
|
10452
|
+
'motion_to_sampling_delay': frame[50],
|
|
10453
|
+
'max_num_of_motion_tx_per_interval': frame[51],
|
|
10454
|
+
'hardware_id': frame.slice(52, 55),
|
|
10455
|
+
'reserved': frame.slice(55, 59),
|
|
10456
|
+
'tx_lifetime_counter': frame.slice(59, 63)
|
|
10457
|
+
}
|
|
10458
|
+
}
|
|
10459
|
+
} else if (frame[2] > 4){ // for Firmware v5 and above
|
|
9747
10460
|
return {
|
|
9748
10461
|
'firmware': frame[2],
|
|
9749
10462
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -9927,7 +10640,7 @@ function sensor_types(parent){
|
|
|
9927
10640
|
var mode = payload[8];
|
|
9928
10641
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9929
10642
|
var fsr = payload[11] >> 5;
|
|
9930
|
-
var
|
|
10643
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9931
10644
|
|
|
9932
10645
|
globalDevices[deviceAddr] = {
|
|
9933
10646
|
// stream_size: expected_packets,
|
|
@@ -9937,7 +10650,7 @@ function sensor_types(parent){
|
|
|
9937
10650
|
fsr: fsr,
|
|
9938
10651
|
hour: hour,
|
|
9939
10652
|
minute: minute,
|
|
9940
|
-
|
|
10653
|
+
temperature: temperature,
|
|
9941
10654
|
}
|
|
9942
10655
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9943
10656
|
return;
|
|
@@ -9951,7 +10664,7 @@ function sensor_types(parent){
|
|
|
9951
10664
|
var mode = payload[8];
|
|
9952
10665
|
var odr = msbLsb(payload[9], payload[10]);
|
|
9953
10666
|
var fsr = payload[11] >> 5;
|
|
9954
|
-
var
|
|
10667
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
9955
10668
|
|
|
9956
10669
|
globalDevices[deviceAddr] = {
|
|
9957
10670
|
// stream_size: expected_packets,
|
|
@@ -9961,7 +10674,7 @@ function sensor_types(parent){
|
|
|
9961
10674
|
fsr: fsr,
|
|
9962
10675
|
hour: hour,
|
|
9963
10676
|
minute: minute,
|
|
9964
|
-
|
|
10677
|
+
temperature: temperature,
|
|
9965
10678
|
}
|
|
9966
10679
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
9967
10680
|
}
|
|
@@ -10033,7 +10746,7 @@ function sensor_types(parent){
|
|
|
10033
10746
|
mac_address: deviceAddr,
|
|
10034
10747
|
fsr: fsr_text,
|
|
10035
10748
|
odr: globalDevices[deviceAddr].odr,
|
|
10036
|
-
|
|
10749
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
10037
10750
|
total_samples: label,
|
|
10038
10751
|
data: fft_concat
|
|
10039
10752
|
};
|
|
@@ -10058,7 +10771,7 @@ function sensor_types(parent){
|
|
|
10058
10771
|
var mode = payload[8];
|
|
10059
10772
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10060
10773
|
var fsr = payload[11] >> 5;
|
|
10061
|
-
var
|
|
10774
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10062
10775
|
|
|
10063
10776
|
globalDevices[deviceAddr] = {
|
|
10064
10777
|
// stream_size: expected_packets,
|
|
@@ -10068,7 +10781,7 @@ function sensor_types(parent){
|
|
|
10068
10781
|
fsr: fsr,
|
|
10069
10782
|
hour: hour,
|
|
10070
10783
|
minute: minute,
|
|
10071
|
-
|
|
10784
|
+
temperature: temperature,
|
|
10072
10785
|
}
|
|
10073
10786
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
10074
10787
|
return;
|
|
@@ -10345,7 +11058,65 @@ function sensor_types(parent){
|
|
|
10345
11058
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
10346
11059
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
10347
11060
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
10348
|
-
if(frame[2] >
|
|
11061
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
11062
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
11063
|
+
return {
|
|
11064
|
+
'firmware': frame[2],
|
|
11065
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
11066
|
+
'mode': frame_data.mode,
|
|
11067
|
+
'odr': frame_data.odr_1+'Hz',
|
|
11068
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
11069
|
+
'filter_status': frame_data.filter_status,
|
|
11070
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
11071
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
11072
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
11073
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
11074
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
11075
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
11076
|
+
'deadband': frame_data.deadband,
|
|
11077
|
+
'payload_length': frame_data.payload_length,
|
|
11078
|
+
'fsr': frame_data.fsr_text,
|
|
11079
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
11080
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
11081
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
11082
|
+
'smart_mode_skip_count': frame[33],
|
|
11083
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
11084
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
11085
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
11086
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
11087
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11088
|
+
'hardware_id': frame.slice(43, 46),
|
|
11089
|
+
'reserved': frame.slice(46, 50),
|
|
11090
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
11091
|
+
'machine_values': {
|
|
11092
|
+
'firmware': frame[2],
|
|
11093
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
11094
|
+
'mode': frame[16],
|
|
11095
|
+
'odr': frame[17],
|
|
11096
|
+
'sampling_duration': frame[18],
|
|
11097
|
+
'filter_status': frame[19],
|
|
11098
|
+
'lpf_coeff': frame[20],
|
|
11099
|
+
'hpf_coeff': frame[21],
|
|
11100
|
+
'sampling_interval': frame[22],
|
|
11101
|
+
'on_request_timeout': frame[23],
|
|
11102
|
+
'deadband': frame[24],
|
|
11103
|
+
'payload_length': frame[25],
|
|
11104
|
+
'fsr': frame[26],
|
|
11105
|
+
'rpm_compute_status': frame[27],
|
|
11106
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
11107
|
+
'auto_raw_interval': frame[32],
|
|
11108
|
+
'smart_mode_skip_count': frame[33],
|
|
11109
|
+
'smart_mode_acc_threshold':frame[34],
|
|
11110
|
+
'uptime_counter': frame.slice(35, 39),
|
|
11111
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
11112
|
+
'motion_to_sampling_delay': frame[41],
|
|
11113
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11114
|
+
'hardware_id': frame.slice(43, 46),
|
|
11115
|
+
'reserved': frame.slice(46, 50),
|
|
11116
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
11117
|
+
}
|
|
11118
|
+
}
|
|
11119
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
10349
11120
|
return {
|
|
10350
11121
|
'firmware': frame[2],
|
|
10351
11122
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -10485,7 +11256,7 @@ function sensor_types(parent){
|
|
|
10485
11256
|
var mode = payload[8];
|
|
10486
11257
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10487
11258
|
var fsr = payload[11] >> 5;
|
|
10488
|
-
var
|
|
11259
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10489
11260
|
|
|
10490
11261
|
globalDevices[deviceAddr] = {
|
|
10491
11262
|
data: {},
|
|
@@ -10494,7 +11265,7 @@ function sensor_types(parent){
|
|
|
10494
11265
|
fsr: fsr,
|
|
10495
11266
|
hour: hour,
|
|
10496
11267
|
minute: minute,
|
|
10497
|
-
|
|
11268
|
+
temperature: temperature,
|
|
10498
11269
|
}
|
|
10499
11270
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10500
11271
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10509,7 +11280,7 @@ function sensor_types(parent){
|
|
|
10509
11280
|
var mode = payload[8];
|
|
10510
11281
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10511
11282
|
var fsr = payload[11] >> 5;
|
|
10512
|
-
var
|
|
11283
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10513
11284
|
|
|
10514
11285
|
globalDevices[deviceAddr] = {
|
|
10515
11286
|
data: {},
|
|
@@ -10518,7 +11289,7 @@ function sensor_types(parent){
|
|
|
10518
11289
|
fsr: fsr,
|
|
10519
11290
|
hour: hour,
|
|
10520
11291
|
minute: minute,
|
|
10521
|
-
|
|
11292
|
+
temperature: temperature,
|
|
10522
11293
|
}
|
|
10523
11294
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10524
11295
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10528,7 +11299,7 @@ function sensor_types(parent){
|
|
|
10528
11299
|
var mode = payload[8];
|
|
10529
11300
|
var odr = msbLsb(payload[9], payload[10]);
|
|
10530
11301
|
var fsr = payload[11] >> 5;
|
|
10531
|
-
var
|
|
11302
|
+
var temperature = msbLsb(payload[14], payload[15])/100;
|
|
10532
11303
|
|
|
10533
11304
|
globalDevices[deviceAddr] = {
|
|
10534
11305
|
data: {},
|
|
@@ -10537,7 +11308,7 @@ function sensor_types(parent){
|
|
|
10537
11308
|
fsr: fsr,
|
|
10538
11309
|
hour: hour,
|
|
10539
11310
|
minute: minute,
|
|
10540
|
-
|
|
11311
|
+
temperature: temperature,
|
|
10541
11312
|
}
|
|
10542
11313
|
globalDevices[deviceAddr].last_packet_counter = current_packet;
|
|
10543
11314
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
@@ -10611,7 +11382,7 @@ function sensor_types(parent){
|
|
|
10611
11382
|
mac_address: deviceAddr,
|
|
10612
11383
|
fsr: fsr_text,
|
|
10613
11384
|
odr: globalDevices[deviceAddr].odr,
|
|
10614
|
-
|
|
11385
|
+
temperature: globalDevices[deviceAddr].temperature,
|
|
10615
11386
|
total_samples: label,
|
|
10616
11387
|
fft_confidence : ((Object.keys(globalDevices[deviceAddr].data).length / expected_packets) * 100).toFixed(2) + '%',
|
|
10617
11388
|
data: fft_concat
|
|
@@ -10894,7 +11665,65 @@ function sensor_types(parent){
|
|
|
10894
11665
|
frame_data.auto_raw_interval = frame[32] * frame_data.sampling_interval_number || 'disabled';
|
|
10895
11666
|
frame_data.auto_raw_interval = typeof frame_data.auto_raw_interval === 'number' ? frame_data.auto_raw_interval+'min' : frame_data.auto_raw_interval;
|
|
10896
11667
|
frame_data.smart_mode_threshold = frame[34] * 50;
|
|
10897
|
-
if(frame[2] >
|
|
11668
|
+
if(frame[2] > 5){ // for Firmware v6 and above
|
|
11669
|
+
frame_data.motion_to_delay = frame[41] * 50;
|
|
11670
|
+
return {
|
|
11671
|
+
'firmware': frame[2],
|
|
11672
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
11673
|
+
'mode': frame_data.mode,
|
|
11674
|
+
'odr': frame_data.odr_1+'Hz',
|
|
11675
|
+
'sampling_duration': frame_data.sampling_duration_1,
|
|
11676
|
+
'filter_status': frame_data.filter_status,
|
|
11677
|
+
'lpf_coeff': frame_data.lpf_coeff_1,
|
|
11678
|
+
'lpf_freq': frame_data.lpf_freq_1+'Hz',
|
|
11679
|
+
'hpf_coeff': frame_data.hpf_coeff_1,
|
|
11680
|
+
'hpf_freq': frame_data.hpf_freq_1+'Hz',
|
|
11681
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
11682
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
11683
|
+
'deadband': frame_data.deadband,
|
|
11684
|
+
'payload_length': frame_data.payload_length,
|
|
11685
|
+
'fsr': frame_data.fsr_text,
|
|
11686
|
+
'rpm_compute_status': frame_data.rpm_status,
|
|
11687
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32)),
|
|
11688
|
+
'auto_raw_interval': frame_data.auto_raw_interval,
|
|
11689
|
+
'smart_mode_skip_count': frame[33],
|
|
11690
|
+
'smart_mode_acc_threshold':frame_data.smart_mode_threshold+'mg',
|
|
11691
|
+
'uptime_counter': frame.slice(35, 39).reduce(msbLsb)+'sec',
|
|
11692
|
+
'max_tx_raw_samples': frame.slice(39, 41).reduce(msbLsb),
|
|
11693
|
+
'motion_to_sampling_delay': frame_data.motion_to_delay +'msec',
|
|
11694
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11695
|
+
'hardware_id': frame.slice(43, 46),
|
|
11696
|
+
'reserved': frame.slice(46, 50),
|
|
11697
|
+
'tx_lifetime_counter': frame.slice(50, 54).reduce(msbLsb),
|
|
11698
|
+
'machine_values': {
|
|
11699
|
+
'firmware': frame[2],
|
|
11700
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
11701
|
+
'mode': frame[16],
|
|
11702
|
+
'odr': frame[17],
|
|
11703
|
+
'sampling_duration': frame[18],
|
|
11704
|
+
'filter_status': frame[19],
|
|
11705
|
+
'lpf_coeff': frame[20],
|
|
11706
|
+
'hpf_coeff': frame[21],
|
|
11707
|
+
'sampling_interval': frame[22],
|
|
11708
|
+
'on_request_timeout': frame[23],
|
|
11709
|
+
'deadband': frame[24],
|
|
11710
|
+
'payload_length': frame[25],
|
|
11711
|
+
'fsr': frame[26],
|
|
11712
|
+
'rpm_compute_status': frame[27],
|
|
11713
|
+
'auto_raw_destination_address': toMac(frame.slice(28 , 32), false),
|
|
11714
|
+
'auto_raw_interval': frame[32],
|
|
11715
|
+
'smart_mode_skip_count': frame[33],
|
|
11716
|
+
'smart_mode_acc_threshold':frame[34],
|
|
11717
|
+
'uptime_counter': frame.slice(35, 39),
|
|
11718
|
+
'max_tx_raw_samples': frame.slice(39, 41),
|
|
11719
|
+
'motion_to_sampling_delay': frame[41],
|
|
11720
|
+
'max_num_of_motion_tx_per_interval': frame[42],
|
|
11721
|
+
'hardware_id': frame.slice(43, 46),
|
|
11722
|
+
'reserved': frame.slice(46, 50),
|
|
11723
|
+
'tx_lifetime_counter': frame.slice(50, 54)
|
|
11724
|
+
}
|
|
11725
|
+
}
|
|
11726
|
+
} else if(frame[2] > 4){ // for Firmware v5 and above
|
|
10898
11727
|
return {
|
|
10899
11728
|
'firmware': frame[2],
|
|
10900
11729
|
'destination_address': toMac(frame.slice(12, 16)),
|
|
@@ -11030,7 +11859,7 @@ function sensor_types(parent){
|
|
|
11030
11859
|
var firmware = payload[1];
|
|
11031
11860
|
var odr = msbLsb(payload[10], payload[11]);
|
|
11032
11861
|
var fsr = payload[12];
|
|
11033
|
-
var
|
|
11862
|
+
var temperature = msbLsb(payload[13], payload[14])/100;
|
|
11034
11863
|
var expected_packets = msbLsb(payload[15], payload[16]);
|
|
11035
11864
|
var current_packet = msbLsb(payload[17], payload[18]);
|
|
11036
11865
|
var sdata_start = 19;
|
|
@@ -11398,25 +12227,62 @@ function sensor_types(parent){
|
|
|
11398
12227
|
let frame_data = {};
|
|
11399
12228
|
switch(frame[16]){
|
|
11400
12229
|
case 0:
|
|
11401
|
-
frame_data.fsr = "+-
|
|
11402
|
-
|
|
12230
|
+
frame_data.fsr = "+-6.114 V";
|
|
12231
|
+
break;
|
|
11403
12232
|
case 1:
|
|
11404
|
-
frame_data.fsr = "+-
|
|
11405
|
-
|
|
12233
|
+
frame_data.fsr = "+-4.096 V";
|
|
12234
|
+
break;
|
|
11406
12235
|
case 2:
|
|
11407
|
-
frame_data.fsr = "+-1.024 V";
|
|
11408
|
-
break;
|
|
11409
|
-
case 3:
|
|
11410
12236
|
frame_data.fsr = "+-2.048 V";
|
|
11411
|
-
|
|
12237
|
+
break;
|
|
12238
|
+
case 3:
|
|
12239
|
+
frame_data.fsr = "+-1.024 V";
|
|
12240
|
+
break;
|
|
11412
12241
|
case 4:
|
|
11413
|
-
frame_data.fsr = "+-
|
|
11414
|
-
|
|
12242
|
+
frame_data.fsr = "+-0.512 V";
|
|
12243
|
+
break;
|
|
11415
12244
|
case 5:
|
|
11416
|
-
frame_data.fsr = "+-
|
|
11417
|
-
|
|
12245
|
+
frame_data.fsr = "+-0.256 V";
|
|
12246
|
+
break;
|
|
11418
12247
|
}
|
|
11419
|
-
if(frame[2]>
|
|
12248
|
+
if(frame[2]>13){ // firmware 14 and above
|
|
12249
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
12250
|
+
if(!auto_check_interval){
|
|
12251
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
12252
|
+
}else{
|
|
12253
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
12254
|
+
}
|
|
12255
|
+
return {
|
|
12256
|
+
'firmware': frame[2],
|
|
12257
|
+
'fsr': frame_data.fsr,
|
|
12258
|
+
'boot_time': frame[17] + " sec",
|
|
12259
|
+
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
12260
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
12261
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
12262
|
+
'always_on': frame_data[24] ? 'Enabled' : 'Disabled',
|
|
12263
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
12264
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
12265
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
12266
|
+
'hardware_id': frame.slice(37, 40),
|
|
12267
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
12268
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
12269
|
+
'machine_values': {
|
|
12270
|
+
'firmware': frame[2],
|
|
12271
|
+
'fsr': frame[16],
|
|
12272
|
+
'boot_time': frame[17],
|
|
12273
|
+
'power_adc': frame.slice(18, 20),
|
|
12274
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
12275
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
12276
|
+
'always_on': frame[24],
|
|
12277
|
+
'calibration_one': frame.slice(25, 29),
|
|
12278
|
+
'calibration_two':frame.slice(29, 33),
|
|
12279
|
+
'calibration_three':frame.slice(33, 37),
|
|
12280
|
+
'hardware_id': frame.slice(37, 40),
|
|
12281
|
+
'report_rate': frame.slice(40, 44),
|
|
12282
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
12283
|
+
}
|
|
12284
|
+
}
|
|
12285
|
+
}else if(frame[2]>12){
|
|
11420
12286
|
return {
|
|
11421
12287
|
'firmware': frame[2],
|
|
11422
12288
|
'report_rate': frame.slice(12, 16).reduce(msbLsb),
|
|
@@ -11449,6 +12315,155 @@ function sensor_types(parent){
|
|
|
11449
12315
|
}
|
|
11450
12316
|
}
|
|
11451
12317
|
},
|
|
12318
|
+
'123': {
|
|
12319
|
+
name: '3 Channel Production Counter',
|
|
12320
|
+
parse: (d, payload) => {
|
|
12321
|
+
if(payload[7] & 2 != 0){
|
|
12322
|
+
console.log('Error found');
|
|
12323
|
+
// parsed.data = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
12324
|
+
let error = {error: 'Error found, Acclerometer Probe may be unattached'};
|
|
12325
|
+
return error;
|
|
12326
|
+
}
|
|
12327
|
+
let report_type = "Regular";
|
|
12328
|
+
switch(d[25]){
|
|
12329
|
+
case 0:
|
|
12330
|
+
report_type = "Regular";
|
|
12331
|
+
break;
|
|
12332
|
+
case 1:
|
|
12333
|
+
report_type = "Shift end";
|
|
12334
|
+
break;
|
|
12335
|
+
case 2:
|
|
12336
|
+
report_type = "Interrupt";
|
|
12337
|
+
break;
|
|
12338
|
+
case 3:
|
|
12339
|
+
report_type = "Threshold";
|
|
12340
|
+
break;
|
|
12341
|
+
}
|
|
12342
|
+
return {
|
|
12343
|
+
digital_input_1_counter: d.slice(0, 4).reduce(msbLsb),
|
|
12344
|
+
digital_input_1_uptime: d.slice(4, 8).reduce(msbLsb),
|
|
12345
|
+
digital_input_2_counter: d.slice(8, 12).reduce(msbLsb),
|
|
12346
|
+
digital_input_2_uptime: d.slice(12, 16).reduce(msbLsb),
|
|
12347
|
+
digital_input_3_counter: d.slice(16, 20).reduce(msbLsb),
|
|
12348
|
+
digital_input_3_uptime: d.slice(20, 24).reduce(msbLsb),
|
|
12349
|
+
input_1: d[24] & 1 ? 1 : 0,
|
|
12350
|
+
input_2: d[24] & 2 ? 1 : 0,
|
|
12351
|
+
input_3: d[24] & 4 ? 1 : 0,
|
|
12352
|
+
report_type: report_type,
|
|
12353
|
+
rtc: [
|
|
12354
|
+
String(d[26]).padStart(2, '0'),
|
|
12355
|
+
String(d[27]).padStart(2, '0'),
|
|
12356
|
+
String(d[28]).padStart(2, '0')
|
|
12357
|
+
].join(':')
|
|
12358
|
+
};
|
|
12359
|
+
},
|
|
12360
|
+
'parse_fly': (frame) => {
|
|
12361
|
+
let reset_mode = "Disabled";
|
|
12362
|
+
switch(frame[36]){
|
|
12363
|
+
case 0:
|
|
12364
|
+
reset_mode = "Disabled";
|
|
12365
|
+
break;
|
|
12366
|
+
case 1:
|
|
12367
|
+
reset_mode = "Shift Ends";
|
|
12368
|
+
break;
|
|
12369
|
+
case 2:
|
|
12370
|
+
reset_mode = "Timeout";
|
|
12371
|
+
break;
|
|
12372
|
+
}
|
|
12373
|
+
let rtc_sampling_interval = "5sec";
|
|
12374
|
+
switch(frame[37]){
|
|
12375
|
+
case 0:
|
|
12376
|
+
rtc_sampling_interval = "1min";
|
|
12377
|
+
break;
|
|
12378
|
+
case 1:
|
|
12379
|
+
rtc_sampling_interval = "5min";
|
|
12380
|
+
break;
|
|
12381
|
+
case 2:
|
|
12382
|
+
rtc_sampling_interval = "15min";
|
|
12383
|
+
break;
|
|
12384
|
+
case 3:
|
|
12385
|
+
rtc_sampling_interval = "30min";
|
|
12386
|
+
break;
|
|
12387
|
+
case 4:
|
|
12388
|
+
rtc_sampling_interval = "1h";
|
|
12389
|
+
break;
|
|
12390
|
+
case 5:
|
|
12391
|
+
rtc_sampling_interval = "2h";
|
|
12392
|
+
break;
|
|
12393
|
+
case 6:
|
|
12394
|
+
rtc_sampling_interval = "3h";
|
|
12395
|
+
break;
|
|
12396
|
+
case 7:
|
|
12397
|
+
rtc_sampling_interval = "6h";
|
|
12398
|
+
break;
|
|
12399
|
+
case 8:
|
|
12400
|
+
rtc_sampling_interval = "12h";
|
|
12401
|
+
break;
|
|
12402
|
+
case 9:
|
|
12403
|
+
rtc_sampling_interval = "5sec";
|
|
12404
|
+
break;
|
|
12405
|
+
case 10:
|
|
12406
|
+
rtc_sampling_interval = "10sec";
|
|
12407
|
+
break;
|
|
12408
|
+
case 11:
|
|
12409
|
+
rtc_sampling_interval = "15sec";
|
|
12410
|
+
break;
|
|
12411
|
+
case 12:
|
|
12412
|
+
rtc_sampling_interval = "30sec";
|
|
12413
|
+
break;
|
|
12414
|
+
}
|
|
12415
|
+
return {
|
|
12416
|
+
'firmware': frame[2],
|
|
12417
|
+
'debouncing_timeout': frame.slice(16, 18).reduce(msbLsb) + "msec",
|
|
12418
|
+
'input_1_active_edge': frame[18]? "Rising": "Falling",
|
|
12419
|
+
'input_2_active_edge': frame[19]? "Rising": "Falling",
|
|
12420
|
+
'input_3_active_edge': frame[20]? "Rising": "Falling",
|
|
12421
|
+
'counter_threshold': frame.slice(21, 25).reduce(msbLsb),
|
|
12422
|
+
'trasnmit_on_change_status': frame[25]? "Enabled": "Disabled",
|
|
12423
|
+
'Shift_end_1': [
|
|
12424
|
+
String(frame[26]).padStart(2, '0'),
|
|
12425
|
+
String(frame[27]).padStart(2, '0')
|
|
12426
|
+
].join(':'),
|
|
12427
|
+
'Shift_end_2': [
|
|
12428
|
+
String(frame[28]).padStart(2, '0'),
|
|
12429
|
+
String(frame[29]).padStart(2, '0')
|
|
12430
|
+
].join(':'),
|
|
12431
|
+
'Shift_end_3': [
|
|
12432
|
+
String(frame[30]).padStart(2, '0'),
|
|
12433
|
+
String(frame[31]).padStart(2, '0')
|
|
12434
|
+
].join(':'),
|
|
12435
|
+
'Shift_end_4': [
|
|
12436
|
+
String(frame[32]).padStart(2, '0'),
|
|
12437
|
+
String(frame[33]).padStart(2, '0')
|
|
12438
|
+
].join(':'),
|
|
12439
|
+
'reset_timeout': frame.slice(34, 36).reduce(msbLsb) + "min",
|
|
12440
|
+
'counter_reset_mode': reset_mode,
|
|
12441
|
+
'sampling_interval': rtc_sampling_interval,
|
|
12442
|
+
'hardware_id': frame.slice(38, 41),
|
|
12443
|
+
'report_rate': frame.slice(41, 45).reduce(msbLsb) + "sec",
|
|
12444
|
+
'tx_life_counter': frame.slice(45, 49).reduce(msbLsb),
|
|
12445
|
+
'machine_values': {
|
|
12446
|
+
'firmware': frame[2],
|
|
12447
|
+
'debouncing_timeout': frame.slice(16, 18),
|
|
12448
|
+
'input_1_active_edge': frame[18],
|
|
12449
|
+
'input_2_active_edge': frame[19],
|
|
12450
|
+
'input_3_active_edge': frame[20],
|
|
12451
|
+
'counter_threshold': frame.slice(21, 25),
|
|
12452
|
+
'trasnmit_on_change_status': frame[25],
|
|
12453
|
+
'Shift_end_1': frame.slice(26, 28),
|
|
12454
|
+
'Shift_end_2': frame.slice(28, 30),
|
|
12455
|
+
'Shift_end_3': frame.slice(30, 32),
|
|
12456
|
+
'Shift_end_4': frame.slice(32, 34),
|
|
12457
|
+
'reset_timeout': frame.slice(34, 36),
|
|
12458
|
+
'counter_reset_mode': frame[36],
|
|
12459
|
+
'sampling_interval': frame[37],
|
|
12460
|
+
'hardware_id': frame.slice(38, 41),
|
|
12461
|
+
'report_rate': frame.slice(41, 45),
|
|
12462
|
+
'tx_life_counter': frame.slice(45, 49)
|
|
12463
|
+
}
|
|
12464
|
+
}
|
|
12465
|
+
}
|
|
12466
|
+
},
|
|
11452
12467
|
'180': {
|
|
11453
12468
|
name: 'C1D2 One Channel Vibration Plus',
|
|
11454
12469
|
parse: (payload, parsed, mac) => {
|
|
@@ -11496,6 +12511,59 @@ function sensor_types(parent){
|
|
|
11496
12511
|
};
|
|
11497
12512
|
}
|
|
11498
12513
|
},
|
|
12514
|
+
'211': {
|
|
12515
|
+
name: 'D0 and Flow Sensor',
|
|
12516
|
+
parse: (payload, parsed, mac) => {
|
|
12517
|
+
if(payload[0] == 0){ // regular
|
|
12518
|
+
return {
|
|
12519
|
+
msg_type: 'regular',
|
|
12520
|
+
temperature: signInt(payload.slice(1, 3).reduce(msbLsb), 16),
|
|
12521
|
+
oxygen_saturation_percent: payload.slice(3, 7).reduce(msbLsb),
|
|
12522
|
+
oxygen_ppm: payload.slice(7, 11).reduce(msbLsb),
|
|
12523
|
+
oxygen_mg_l: payload.slice(11, 15).reduce(msbLsb)
|
|
12524
|
+
};
|
|
12525
|
+
}
|
|
12526
|
+
else{ // theshold
|
|
12527
|
+
let solenoid_status = payload[2];
|
|
12528
|
+
if(solenoid_status == 1){ // Solenoid On
|
|
12529
|
+
return {
|
|
12530
|
+
msg_type: 'threshold',
|
|
12531
|
+
solenoid_number: payload[1],
|
|
12532
|
+
solenoid_status: 'on',
|
|
12533
|
+
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
12534
|
+
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
12535
|
+
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
12536
|
+
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb),
|
|
12537
|
+
flow_rate: payload.slice(17, 21).reduce(msbLsb)
|
|
12538
|
+
};
|
|
12539
|
+
} else{ // Solenoid Off
|
|
12540
|
+
return {
|
|
12541
|
+
msg_type: 'threshold',
|
|
12542
|
+
solenoid_number: payload[1],
|
|
12543
|
+
solenoid_status: 'off',
|
|
12544
|
+
temperature: signInt(payload.slice(3, 5).reduce(msbLsb), 16),
|
|
12545
|
+
oxygen_saturation_percent: payload.slice(5, 9).reduce(msbLsb),
|
|
12546
|
+
oxygen_ppm: payload.slice(9, 13).reduce(msbLsb),
|
|
12547
|
+
oxygen_mg_l: payload.slice(13, 17).reduce(msbLsb)
|
|
12548
|
+
};
|
|
12549
|
+
}
|
|
12550
|
+
}
|
|
12551
|
+
},
|
|
12552
|
+
'parse_fly': (frame) => {
|
|
12553
|
+
return {
|
|
12554
|
+
'firmware': frame[2],
|
|
12555
|
+
'hardware_id': frame.slice(12, 15),
|
|
12556
|
+
'report_rate': frame.slice(15, 19).reduce(msbLsb) + "Sec",
|
|
12557
|
+
'tx_life_counter': frame.slice(19, 23).reduce(msbLsb),
|
|
12558
|
+
'machine_values': {
|
|
12559
|
+
'firmware': frame[2],
|
|
12560
|
+
'hardware_id': frame.slice(12, 15),
|
|
12561
|
+
'report_rate': frame.slice(15, 19),
|
|
12562
|
+
'tx_life_counter': frame.slice(19, 23)
|
|
12563
|
+
}
|
|
12564
|
+
}
|
|
12565
|
+
}
|
|
12566
|
+
},
|
|
11499
12567
|
'217': {
|
|
11500
12568
|
name: 'Wireless Weight Scale',
|
|
11501
12569
|
parse: (d) => {
|
|
@@ -11504,6 +12572,68 @@ function sensor_types(parent){
|
|
|
11504
12572
|
};
|
|
11505
12573
|
}
|
|
11506
12574
|
},
|
|
12575
|
+
'270': {
|
|
12576
|
+
name: 'Custom Salinity DO sensor',
|
|
12577
|
+
parse: (d) => {
|
|
12578
|
+
return {
|
|
12579
|
+
sensor_status: d[0],
|
|
12580
|
+
do_temperature_1: d.slice(1, 3).reduce(msbLsb) / 100,
|
|
12581
|
+
do_temperature_2: d.slice(3, 5).reduce(msbLsb) / 100,
|
|
12582
|
+
do_temperature_3: d.slice(5, 7).reduce(msbLsb) / 100,
|
|
12583
|
+
do_temperature_4: d.slice(7, 9).reduce(msbLsb) / 100,
|
|
12584
|
+
ec_temperature_1: d.slice(9, 11).reduce(msbLsb) / 100,
|
|
12585
|
+
ec_temperature_2: d.slice(11, 13).reduce(msbLsb) / 100,
|
|
12586
|
+
ec_temperature_3: d.slice(13, 15).reduce(msbLsb) / 100,
|
|
12587
|
+
ec_temperature_4: d.slice(15, 17).reduce(msbLsb) / 100,
|
|
12588
|
+
do_saturation_perc_1: d.slice(17, 19).reduce(msbLsb) / 100,
|
|
12589
|
+
do_saturation_perc_2: d.slice(19, 21).reduce(msbLsb) / 100,
|
|
12590
|
+
do_saturation_perc_3: d.slice(21, 23).reduce(msbLsb) / 100,
|
|
12591
|
+
do_saturation_perc_4: d.slice(23, 25).reduce(msbLsb) / 100,
|
|
12592
|
+
do_ppm_1: d.slice(25, 27).reduce(msbLsb) / 100,
|
|
12593
|
+
do_ppm_2: d.slice(27, 29).reduce(msbLsb) / 100,
|
|
12594
|
+
do_ppm_3: d.slice(29, 31).reduce(msbLsb) / 100,
|
|
12595
|
+
do_ppm_4: d.slice(31, 33).reduce(msbLsb) / 100,
|
|
12596
|
+
do_mgl_1: d.slice(33, 35).reduce(msbLsb) / 100,
|
|
12597
|
+
do_mgl_2: d.slice(35, 37).reduce(msbLsb) / 100,
|
|
12598
|
+
do_mgl_3: d.slice(37, 39).reduce(msbLsb) / 100,
|
|
12599
|
+
do_mgl_4: d.slice(39, 41).reduce(msbLsb) / 100,
|
|
12600
|
+
ec_conductivity_1: d.slice(41, 43).reduce(msbLsb) / 100,
|
|
12601
|
+
ec_conductivity_2: d.slice(43, 45).reduce(msbLsb) / 100,
|
|
12602
|
+
ec_conductivity_3: d.slice(45, 47).reduce(msbLsb) / 100,
|
|
12603
|
+
ec_conductivity_4: d.slice(47, 49).reduce(msbLsb) / 100,
|
|
12604
|
+
ec_salinity_ppt_1: d.slice(49, 57).reduce(msbLsb) / 100,
|
|
12605
|
+
ec_salinity_ppt_2: d.slice(57, 65).reduce(msbLsb) / 100,
|
|
12606
|
+
ec_salinity_ppt_3: d.slice(65, 73).reduce(msbLsb) / 100,
|
|
12607
|
+
ec_salinity_ppt_4: d.slice(73, 81).reduce(msbLsb) / 100,
|
|
12608
|
+
ec_tds_1: d.slice(81, 85).reduce(msbLsb) / 100,
|
|
12609
|
+
ec_tds_2: d.slice(85, 89).reduce(msbLsb) / 100,
|
|
12610
|
+
ec_tds_3: d.slice(89, 93).reduce(msbLsb) / 100,
|
|
12611
|
+
ec_tds_4: d.slice(93, 97).reduce(msbLsb) / 100
|
|
12612
|
+
};
|
|
12613
|
+
},
|
|
12614
|
+
'parse_fly': (frame) => {
|
|
12615
|
+
return {
|
|
12616
|
+
'firmware': frame[2],
|
|
12617
|
+
'do_bootup_time': frame[12] + "Sec",
|
|
12618
|
+
'ec_bootup_time': frame[13] + "Sec",
|
|
12619
|
+
'device_ids_do_sensors': frame.slice(14, 18),
|
|
12620
|
+
'device_ids_ec_sensors': frame.slice(18, 22),
|
|
12621
|
+
'hardware_id': frame.slice(22, 25),
|
|
12622
|
+
'report_rate': frame.slice(25, 29).reduce(msbLsb) + "Sec",
|
|
12623
|
+
'tx_life_counter': frame.slice(29, 33).reduce(msbLsb),
|
|
12624
|
+
'machine_values': {
|
|
12625
|
+
'firmware': frame[2],
|
|
12626
|
+
'do_bootup_time': frame[12],
|
|
12627
|
+
'ec_bootup_time': frame[13],
|
|
12628
|
+
'device_ids_do_sensors': frame.slice(14, 18),
|
|
12629
|
+
'device_ids_ec_sensors': frame.slice(18, 22),
|
|
12630
|
+
'hardware_id': frame.slice(22, 25),
|
|
12631
|
+
'report_rate': frame.slice(25, 29),
|
|
12632
|
+
'tx_life_counter': frame.slice(29, 33)
|
|
12633
|
+
}
|
|
12634
|
+
}
|
|
12635
|
+
}
|
|
12636
|
+
},
|
|
11507
12637
|
'502': {
|
|
11508
12638
|
name: 'Custom Environmental Sensor',
|
|
11509
12639
|
parse: (d, full) => {
|
|
@@ -13872,25 +15002,31 @@ function sensor_types(parent){
|
|
|
13872
15002
|
let firmware = frame[2];
|
|
13873
15003
|
if(firmware > 13){ // firmware 14 and above
|
|
13874
15004
|
let frame_data = {};
|
|
15005
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
15006
|
+
if(!auto_check_interval){
|
|
15007
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
15008
|
+
}else{
|
|
15009
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
15010
|
+
}
|
|
13875
15011
|
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
13876
15012
|
switch(frame[16]){
|
|
13877
15013
|
case 0:
|
|
13878
|
-
frame_data.fsr = "+-
|
|
15014
|
+
frame_data.fsr = "+-6.114 V";
|
|
13879
15015
|
break;
|
|
13880
15016
|
case 1:
|
|
13881
|
-
frame_data.fsr = "+-
|
|
15017
|
+
frame_data.fsr = "+-4.096 V";
|
|
13882
15018
|
break;
|
|
13883
15019
|
case 2:
|
|
13884
|
-
frame_data.fsr = "+-
|
|
15020
|
+
frame_data.fsr = "+-2.048 V";
|
|
13885
15021
|
break;
|
|
13886
15022
|
case 3:
|
|
13887
|
-
frame_data.fsr = "+-
|
|
15023
|
+
frame_data.fsr = "+-1.024 V";
|
|
13888
15024
|
break;
|
|
13889
15025
|
case 4:
|
|
13890
|
-
frame_data.fsr = "+-
|
|
15026
|
+
frame_data.fsr = "+-0.512 V";
|
|
13891
15027
|
break;
|
|
13892
15028
|
case 5:
|
|
13893
|
-
frame_data.fsr = "+-
|
|
15029
|
+
frame_data.fsr = "+-0.256 V";
|
|
13894
15030
|
break;
|
|
13895
15031
|
}
|
|
13896
15032
|
return {
|
|
@@ -13898,12 +15034,15 @@ function sensor_types(parent){
|
|
|
13898
15034
|
'fsr': frame_data.fsr,
|
|
13899
15035
|
'boot_time': frame[17] + " sec",
|
|
13900
15036
|
'power_adc': frame.slice(18, 20).reduce(msbLsb),
|
|
13901
|
-
'auto_check_interval':
|
|
13902
|
-
'
|
|
15037
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
15038
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
13903
15039
|
'always_on': frame_data.always_on,
|
|
13904
|
-
'
|
|
13905
|
-
'
|
|
13906
|
-
'
|
|
15040
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
15041
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
15042
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
15043
|
+
'hardware_id': frame.slice(37, 40),
|
|
15044
|
+
'report_rate': frame.slice(40, 44).reduce(msbLsb) + " sec",
|
|
15045
|
+
'tx_life_counter': frame.slice(44, 48).reduce(msbLsb),
|
|
13907
15046
|
'machine_values': {
|
|
13908
15047
|
'firmware': frame[2],
|
|
13909
15048
|
'fsr': frame[16],
|
|
@@ -13912,9 +15051,92 @@ function sensor_types(parent){
|
|
|
13912
15051
|
'auto_check_interval': frame.slice(20, 22),
|
|
13913
15052
|
'auto_check_percentage': frame.slice(22, 24),
|
|
13914
15053
|
'always_on': frame[24],
|
|
13915
|
-
'
|
|
13916
|
-
'
|
|
13917
|
-
'
|
|
15054
|
+
'calibration_one': frame.slice(25, 29),
|
|
15055
|
+
'calibration_two':frame.slice(29, 33),
|
|
15056
|
+
'calibration_three':frame.slice(33, 37),
|
|
15057
|
+
'hardware_id': frame.slice(37, 40),
|
|
15058
|
+
'report_rate': frame.slice(40, 44),
|
|
15059
|
+
'tx_life_counter': frame.slice(44, 48)
|
|
15060
|
+
}
|
|
15061
|
+
}
|
|
15062
|
+
}
|
|
15063
|
+
}
|
|
15064
|
+
},
|
|
15065
|
+
'541': {
|
|
15066
|
+
name: 'Custom Inline Flow Sensor',
|
|
15067
|
+
parse: (d) => {
|
|
15068
|
+
return {
|
|
15069
|
+
adc1: signInt(d.slice(0, 2).reduce(msbLsb)),
|
|
15070
|
+
adc2: signInt(d.slice(2, 4).reduce(msbLsb)),
|
|
15071
|
+
mA1: signInt(d.slice(4, 6).reduce(msbLsb))/100,
|
|
15072
|
+
mA2: signInt(d.slice(6, 8).reduce(msbLsb))/100,
|
|
15073
|
+
flow_1: signInt(d.slice(8, 12).reduce(msbLsb))/100,
|
|
15074
|
+
flow_2:signInt(d.slice(12, 16).reduce(msbLsb))/100
|
|
15075
|
+
};
|
|
15076
|
+
},
|
|
15077
|
+
'parse_fly': (frame) => {
|
|
15078
|
+
let firmware = frame[2];
|
|
15079
|
+
if(firmware > 13){ // firmware 14 and above
|
|
15080
|
+
let frame_data = {};
|
|
15081
|
+
let auto_check_interval = frame.slice(20, 22).reduce(msbLsb);
|
|
15082
|
+
if(!auto_check_interval){
|
|
15083
|
+
frame_data.auto_check_interval = 'Disabled';
|
|
15084
|
+
}else{
|
|
15085
|
+
frame_data.auto_check_interval = auto_check_interval + " sec";
|
|
15086
|
+
}
|
|
15087
|
+
frame_data.always_on = frame[24]?"Enabled":"Disabled";
|
|
15088
|
+
switch(frame[16]){
|
|
15089
|
+
case 0:
|
|
15090
|
+
frame_data.fsr = "+-6.114 V";
|
|
15091
|
+
break;
|
|
15092
|
+
case 1:
|
|
15093
|
+
frame_data.fsr = "+-4.096 V";
|
|
15094
|
+
break;
|
|
15095
|
+
case 2:
|
|
15096
|
+
frame_data.fsr = "+-2.048 V";
|
|
15097
|
+
break;
|
|
15098
|
+
case 3:
|
|
15099
|
+
frame_data.fsr = "+-1.024 V";
|
|
15100
|
+
break;
|
|
15101
|
+
case 4:
|
|
15102
|
+
frame_data.fsr = "+-0.512 V";
|
|
15103
|
+
break;
|
|
15104
|
+
case 5:
|
|
15105
|
+
frame_data.fsr = "+-0.256 V";
|
|
15106
|
+
break;
|
|
15107
|
+
}
|
|
15108
|
+
return {
|
|
15109
|
+
'firmware': frame[2],
|
|
15110
|
+
'fsr': frame_data.fsr,
|
|
15111
|
+
'boot_up_time': frame[17] + " sec",
|
|
15112
|
+
'adc_pin_reading': frame.slice(18, 20).reduce(msbLsb),
|
|
15113
|
+
'auto_check_interval': frame_data.auto_check_interval,
|
|
15114
|
+
'auto_check_threshold': frame.slice(22, 24).reduce(msbLsb),
|
|
15115
|
+
'always_on': frame_data.always_on,
|
|
15116
|
+
'calibration_one': frame.slice(25, 29).reduce(msbLsb),
|
|
15117
|
+
'calibration_two':frame.slice(29, 33).reduce(msbLsb),
|
|
15118
|
+
'calibration_three':frame.slice(33, 37).reduce(msbLsb),
|
|
15119
|
+
'min_flow_rate':frame.slice(37, 39).reduce(msbLsb),
|
|
15120
|
+
'max_flow_rate':frame.slice(39, 41).reduce(msbLsb),
|
|
15121
|
+
'hardware_id': frame.slice(41, 44),
|
|
15122
|
+
'report_rate': frame.slice(44, 48).reduce(msbLsb) + " sec",
|
|
15123
|
+
'tx_life_counter': frame.slice(48, 52).reduce(msbLsb),
|
|
15124
|
+
'machine_values': {
|
|
15125
|
+
'firmware': frame[2],
|
|
15126
|
+
'fsr': frame[16],
|
|
15127
|
+
'boot_up_time': frame[17],
|
|
15128
|
+
'adc_pin_reading': frame.slice(18, 20),
|
|
15129
|
+
'auto_check_interval': frame.slice(20, 22),
|
|
15130
|
+
'auto_check_percentage': frame.slice(22, 24),
|
|
15131
|
+
'always_on': frame[24],
|
|
15132
|
+
'calibration_one': frame.slice(25, 29),
|
|
15133
|
+
'calibration_two':frame.slice(29, 33),
|
|
15134
|
+
'calibration_three':frame.slice(33, 37),
|
|
15135
|
+
'min_flow_rate':frame.slice(37, 39),
|
|
15136
|
+
'max_flow_rate':frame.slice(39, 41),
|
|
15137
|
+
'hardware_id': frame.slice(41, 44),
|
|
15138
|
+
'report_rate': frame.slice(44, 48),
|
|
15139
|
+
'tx_life_counter': frame.slice(48, 52),
|
|
13918
15140
|
}
|
|
13919
15141
|
}
|
|
13920
15142
|
}
|