@ncd-io/node-red-enterprise-sensors 0.1.13 → 0.1.14
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 +632 -9
- package/package.json +1 -1
- package/wireless.html +38 -10
- package/wireless.js +62 -2
package/lib/WirelessGateway.js
CHANGED
|
@@ -62,7 +62,7 @@ module.exports = class WirelessSensor{
|
|
|
62
62
|
var new_mode = is_new;
|
|
63
63
|
var mode = (type == 'power_up') ? data.mode : ((type == 'sensor_data') ? 'RUN' : ((type == 'config_ack') ? 'ACK' : 'PGM'));
|
|
64
64
|
// #OTF
|
|
65
|
-
var otf_devices = [26,45,48,78,79,80,81,82,84,88,89,91,101,102,519,520,521];
|
|
65
|
+
var otf_devices = [23,26,45,48,78,79,80,81,82,84,88,89,91,101,102,519,520,521,531,537];
|
|
66
66
|
var device_type = msbLsb(frame.data[6], frame.data[7]);
|
|
67
67
|
// var device_type = frame.data[7];
|
|
68
68
|
|
|
@@ -214,7 +214,7 @@ module.exports = class WirelessSensor{
|
|
|
214
214
|
};
|
|
215
215
|
|
|
216
216
|
// #OTF
|
|
217
|
-
var otf_devices = [26,45,48,78,79,80,81,82,84,88,89,91,101,102,519,520,521];
|
|
217
|
+
var otf_devices = [23,26,45,48,78,79,80,81,82,84,88,89,91,101,102,519,520,521,531,537];
|
|
218
218
|
if(otf_devices.includes(parsed.sensor_type)){
|
|
219
219
|
// If the message says FLY and there is not FLY timer in progress.
|
|
220
220
|
if(payload[8] == 70 && payload[9] == 76 && payload[10] == 89) {
|
|
@@ -272,8 +272,8 @@ module.exports = class WirelessSensor{
|
|
|
272
272
|
console.log('Total Expected Packets:');
|
|
273
273
|
console.log(expected_packets);
|
|
274
274
|
// console.log(current_packet in globalDevices[deviceAddr].data);
|
|
275
|
-
// console.log(current_packet
|
|
276
|
-
// console.log(
|
|
275
|
+
// console.log(!(((current_packet&127)-1) in globalDevices[deviceAddr].data));
|
|
276
|
+
// console.log(typeof current_packet in globalDevices[deviceAddr].data);
|
|
277
277
|
if(this.hasOwnProperty('failure_no')){
|
|
278
278
|
this.failure_no = this.failure_no + 1;
|
|
279
279
|
}
|
|
@@ -297,6 +297,10 @@ module.exports = class WirelessSensor{
|
|
|
297
297
|
if(expected_packets == 1){
|
|
298
298
|
this.build_101_data(payload, deviceAddr, hour, minute, sdata_start, current_packet, firmware);
|
|
299
299
|
} else{
|
|
300
|
+
// console.log('------');
|
|
301
|
+
// console.log(current_packet);
|
|
302
|
+
// console.log(expected_packets);
|
|
303
|
+
// console.log(Object.keys(globalDevices[deviceAddr].data).length);
|
|
300
304
|
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
301
305
|
}
|
|
302
306
|
|
|
@@ -640,7 +644,7 @@ module.exports = class WirelessSensor{
|
|
|
640
644
|
data: payload.slice(8)
|
|
641
645
|
};
|
|
642
646
|
// #OTF
|
|
643
|
-
}else if(parsed.sensor_type == 80 || parsed.sensor_type == 81 || parsed.sensor_type == 82 || parsed.sensor_type == 84 || parsed.sensor_type == 515 || parsed.sensor_type == 519){
|
|
647
|
+
}else if(parsed.sensor_type == 80 || parsed.sensor_type == 81 || parsed.sensor_type == 82 || parsed.sensor_type == 84 || parsed.sensor_type == 515 || parsed.sensor_type == 519 || parsed.sensor_type == 537){
|
|
644
648
|
parsed.sensor_data = this.sensor_types[parsed.sensor_type].parse(payload, parsed, frame.mac);
|
|
645
649
|
if(!parsed.sensor_data){
|
|
646
650
|
return;
|
|
@@ -1092,6 +1096,12 @@ module.exports = class WirelessSensor{
|
|
|
1092
1096
|
console.log(packet);
|
|
1093
1097
|
return this.config_send(sensor_mac, packet);
|
|
1094
1098
|
}
|
|
1099
|
+
config_set_thermocouple_type_23(sensor_mac, value){
|
|
1100
|
+
console.log('config_set_thermocouple_type_23');
|
|
1101
|
+
let packet = [244, 83, 0, 0, 23, value];
|
|
1102
|
+
console.log(packet);
|
|
1103
|
+
return this.config_send(sensor_mac, packet);
|
|
1104
|
+
}
|
|
1095
1105
|
|
|
1096
1106
|
config_get_delay(sensor_mac){
|
|
1097
1107
|
return new Promise((fulfill, reject) => {
|
|
@@ -5982,13 +5992,626 @@ function sensor_types(parent){
|
|
|
5982
5992
|
name: 'Custom Noise Sensor',
|
|
5983
5993
|
parse: (d) => {
|
|
5984
5994
|
return {
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5995
|
+
rms_dba: d[0],
|
|
5996
|
+
c1_dba: d[1],
|
|
5997
|
+
c1_freq: d.slice(2, 4).reduce(msbLsb),
|
|
5998
|
+
c2_dba: d[4],
|
|
5999
|
+
c2_freq: d.slice(5, 7).reduce(msbLsb),
|
|
6000
|
+
c3_dba: d[7],
|
|
6001
|
+
c3_freq: d.slice(8, 10).reduce(msbLsb),
|
|
5989
6002
|
};
|
|
5990
6003
|
}
|
|
5991
6004
|
},
|
|
6005
|
+
'537': {
|
|
6006
|
+
name: 'Type 537 - Custom Standalone Smart Vibration Sensor',
|
|
6007
|
+
parse: (payload, parsed, mac) => {
|
|
6008
|
+
if(payload[7] >> 1 != 0){
|
|
6009
|
+
console.log('Error found');
|
|
6010
|
+
parsed.data = {error: 'Error found, Sensor Probe may be unattached'};
|
|
6011
|
+
return parsed;
|
|
6012
|
+
}
|
|
6013
|
+
|
|
6014
|
+
if(payload[8] === 1){
|
|
6015
|
+
var deviceAddr = mac;
|
|
6016
|
+
var firmware = payload[1];
|
|
6017
|
+
var hour = payload[11];
|
|
6018
|
+
var minute = payload[12];
|
|
6019
|
+
var expected_packets = payload[15];
|
|
6020
|
+
var current_packet = payload[16];
|
|
6021
|
+
var sdata_start = 17;
|
|
6022
|
+
|
|
6023
|
+
if(globalDevices.hasOwnProperty(deviceAddr) || expected_packets == 1){
|
|
6024
|
+
if(expected_packets != 1){
|
|
6025
|
+
// if a packet is already stored with the same packet ID, or if packet ID is 1, or if current packet ID is not one more than last packet ID
|
|
6026
|
+
if(current_packet in globalDevices[deviceAddr].data || current_packet == 1 || !((current_packet-1) in globalDevices[deviceAddr].data)) {
|
|
6027
|
+
console.log('-----');
|
|
6028
|
+
console.log('bad packet breakdown deleting stream');
|
|
6029
|
+
console.log(current_packet);
|
|
6030
|
+
console.log(expected_packets);
|
|
6031
|
+
console.log(current_packet in globalDevices[deviceAddr].data);
|
|
6032
|
+
console.log(current_packet == 1);
|
|
6033
|
+
console.log(!((current_packet-1) in globalDevices[deviceAddr].data));
|
|
6034
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6035
|
+
this.failure_no = this.failure_no + 1;
|
|
6036
|
+
}
|
|
6037
|
+
else{
|
|
6038
|
+
this.failure_no = 1;
|
|
6039
|
+
}
|
|
6040
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6041
|
+
console.log('####falure no');
|
|
6042
|
+
console.log(this.failure_no);
|
|
6043
|
+
}
|
|
6044
|
+
// console.log(globalDevices[deviceAddr].data);
|
|
6045
|
+
delete globalDevices[deviceAddr];
|
|
6046
|
+
if(current_packet != 1){
|
|
6047
|
+
return;
|
|
6048
|
+
} else{
|
|
6049
|
+
|
|
6050
|
+
var mode = payload[8];
|
|
6051
|
+
var odr = payload[9];
|
|
6052
|
+
var en_axis = payload[10] & 7;
|
|
6053
|
+
var fsr = payload[10] >> 5;
|
|
6054
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6055
|
+
|
|
6056
|
+
|
|
6057
|
+
switch(odr){
|
|
6058
|
+
case 6:
|
|
6059
|
+
odr = 50;
|
|
6060
|
+
break;
|
|
6061
|
+
case 7:
|
|
6062
|
+
odr = 100;
|
|
6063
|
+
break;
|
|
6064
|
+
case 8:
|
|
6065
|
+
odr = 200;
|
|
6066
|
+
break;
|
|
6067
|
+
case 9:
|
|
6068
|
+
odr = 400;
|
|
6069
|
+
break;
|
|
6070
|
+
case 10:
|
|
6071
|
+
odr = 800;
|
|
6072
|
+
break;
|
|
6073
|
+
case 11:
|
|
6074
|
+
odr = 1600;
|
|
6075
|
+
break;
|
|
6076
|
+
case 12:
|
|
6077
|
+
odr = 3200;
|
|
6078
|
+
break;
|
|
6079
|
+
case 13:
|
|
6080
|
+
odr = 6400;
|
|
6081
|
+
break;
|
|
6082
|
+
case 14:
|
|
6083
|
+
odr = 12800;
|
|
6084
|
+
break;
|
|
6085
|
+
case 15:
|
|
6086
|
+
odr = 25600;
|
|
6087
|
+
break;
|
|
6088
|
+
default:
|
|
6089
|
+
odr = 0;
|
|
6090
|
+
}
|
|
6091
|
+
|
|
6092
|
+
globalDevices[deviceAddr] = {
|
|
6093
|
+
// stream_size: expected_packets,
|
|
6094
|
+
data: {},
|
|
6095
|
+
odr: odr,
|
|
6096
|
+
mo: mode,
|
|
6097
|
+
en_axis: en_axis,
|
|
6098
|
+
fsr: fsr,
|
|
6099
|
+
hour: hour,
|
|
6100
|
+
minute: minute,
|
|
6101
|
+
device_temp: device_temp,
|
|
6102
|
+
}
|
|
6103
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6104
|
+
return;
|
|
6105
|
+
}
|
|
6106
|
+
}
|
|
6107
|
+
else{
|
|
6108
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6109
|
+
}
|
|
6110
|
+
}
|
|
6111
|
+
else{
|
|
6112
|
+
var mode = payload[8];
|
|
6113
|
+
var odr = payload[9];
|
|
6114
|
+
var en_axis = payload[10] & 7;
|
|
6115
|
+
var fsr = payload[10] >> 5;
|
|
6116
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6117
|
+
|
|
6118
|
+
|
|
6119
|
+
switch(odr){
|
|
6120
|
+
case 6:
|
|
6121
|
+
odr = 50;
|
|
6122
|
+
break;
|
|
6123
|
+
case 7:
|
|
6124
|
+
odr = 100;
|
|
6125
|
+
break;
|
|
6126
|
+
case 8:
|
|
6127
|
+
odr = 200;
|
|
6128
|
+
break;
|
|
6129
|
+
case 9:
|
|
6130
|
+
odr = 400;
|
|
6131
|
+
break;
|
|
6132
|
+
case 10:
|
|
6133
|
+
odr = 800;
|
|
6134
|
+
break;
|
|
6135
|
+
case 11:
|
|
6136
|
+
odr = 1600;
|
|
6137
|
+
break;
|
|
6138
|
+
case 12:
|
|
6139
|
+
odr = 3200;
|
|
6140
|
+
break;
|
|
6141
|
+
case 13:
|
|
6142
|
+
odr = 6400;
|
|
6143
|
+
break;
|
|
6144
|
+
case 14:
|
|
6145
|
+
odr = 12800;
|
|
6146
|
+
break;
|
|
6147
|
+
case 15:
|
|
6148
|
+
odr = 25600;
|
|
6149
|
+
break;
|
|
6150
|
+
default:
|
|
6151
|
+
odr = 0;
|
|
6152
|
+
}
|
|
6153
|
+
|
|
6154
|
+
globalDevices[deviceAddr] = {
|
|
6155
|
+
// stream_size: expected_packets,
|
|
6156
|
+
data: {},
|
|
6157
|
+
odr: odr,
|
|
6158
|
+
mo: mode,
|
|
6159
|
+
en_axis: en_axis,
|
|
6160
|
+
fsr: fsr,
|
|
6161
|
+
hour: hour,
|
|
6162
|
+
minute: minute,
|
|
6163
|
+
device_temp: device_temp,
|
|
6164
|
+
}
|
|
6165
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6166
|
+
}
|
|
6167
|
+
if(Object.keys(globalDevices[deviceAddr].data).length == expected_packets){
|
|
6168
|
+
var raw_data = new Array();
|
|
6169
|
+
for(const packet in globalDevices[deviceAddr].data){
|
|
6170
|
+
raw_data = raw_data.concat(globalDevices[deviceAddr].data[packet]);
|
|
6171
|
+
}
|
|
6172
|
+
var label = 0;
|
|
6173
|
+
|
|
6174
|
+
var fft = new Array();
|
|
6175
|
+
var fft_concat = {};
|
|
6176
|
+
|
|
6177
|
+
var en_axis_data = {};
|
|
6178
|
+
switch (globalDevices[deviceAddr].en_axis){
|
|
6179
|
+
case 1:
|
|
6180
|
+
en_axis_data.x_offset = 0;
|
|
6181
|
+
en_axis_data.increment = 2;
|
|
6182
|
+
break;
|
|
6183
|
+
case 2:
|
|
6184
|
+
en_axis_data.y_offset = 0;
|
|
6185
|
+
en_axis_data.increment = 2;
|
|
6186
|
+
break;
|
|
6187
|
+
case 3:
|
|
6188
|
+
en_axis_data.x_offset = 0;
|
|
6189
|
+
en_axis_data.y_offset = 2;
|
|
6190
|
+
en_axis_data.increment = 4;
|
|
6191
|
+
break;
|
|
6192
|
+
case 4:
|
|
6193
|
+
en_axis_data.z_offset = 0;
|
|
6194
|
+
en_axis_data.increment = 2;
|
|
6195
|
+
break;
|
|
6196
|
+
case 5:
|
|
6197
|
+
en_axis_data.x_offset = 0;
|
|
6198
|
+
en_axis_data.z_offset = 2;
|
|
6199
|
+
en_axis_data.increment = 4;
|
|
6200
|
+
break;
|
|
6201
|
+
case 6:
|
|
6202
|
+
en_axis_data.y_offset = 0;
|
|
6203
|
+
en_axis_data.z_offset = 2;
|
|
6204
|
+
en_axis_data.increment = 4;
|
|
6205
|
+
break;
|
|
6206
|
+
case 7:
|
|
6207
|
+
en_axis_data.x_offset = 0;
|
|
6208
|
+
en_axis_data.y_offset = 2;
|
|
6209
|
+
en_axis_data.z_offset = 4;
|
|
6210
|
+
en_axis_data.increment = 6;
|
|
6211
|
+
break;
|
|
6212
|
+
default:
|
|
6213
|
+
en_axis_data.increment = 0;
|
|
6214
|
+
}
|
|
6215
|
+
|
|
6216
|
+
var fsr_mult = .00006;
|
|
6217
|
+
var fsr_text = "";
|
|
6218
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
6219
|
+
case 0:
|
|
6220
|
+
fsr_mult = 0.00006;
|
|
6221
|
+
break;
|
|
6222
|
+
case 1:
|
|
6223
|
+
fsr_mult = 0.00012;
|
|
6224
|
+
break;
|
|
6225
|
+
case 2:
|
|
6226
|
+
fsr_mult = 0.00024;
|
|
6227
|
+
break;
|
|
6228
|
+
case 3:
|
|
6229
|
+
fsr_mult = 0.00049;
|
|
6230
|
+
break;
|
|
6231
|
+
}
|
|
6232
|
+
switch(globalDevices[deviceAddr].fsr){
|
|
6233
|
+
case 0:
|
|
6234
|
+
fsr_text = "2g";
|
|
6235
|
+
break;
|
|
6236
|
+
case 1:
|
|
6237
|
+
fsr_text = "4g";
|
|
6238
|
+
break;
|
|
6239
|
+
case 2:
|
|
6240
|
+
fsr_text = "8g";
|
|
6241
|
+
break;
|
|
6242
|
+
case 3:
|
|
6243
|
+
fsr_text = "16g";
|
|
6244
|
+
break;
|
|
6245
|
+
}
|
|
6246
|
+
|
|
6247
|
+
for(var i = 0; i < raw_data.length; i+=en_axis_data.increment){
|
|
6248
|
+
label++;
|
|
6249
|
+
|
|
6250
|
+
fft_concat[label] = {};
|
|
6251
|
+
|
|
6252
|
+
if('x_offset' in en_axis_data){
|
|
6253
|
+
fft_concat[label].x = parseFloat((signInt(((raw_data[i+en_axis_data.x_offset]<<8)+(raw_data[i+en_axis_data.x_offset+1])), 16)*fsr_mult).toFixed(5));
|
|
6254
|
+
}
|
|
6255
|
+
if('y_offset' in en_axis_data){
|
|
6256
|
+
fft_concat[label].y = parseFloat((signInt(((raw_data[i+en_axis_data.y_offset]<<8)+(raw_data[i+en_axis_data.y_offset+1])), 16)*fsr_mult).toFixed(5));
|
|
6257
|
+
}
|
|
6258
|
+
if('z_offset' in en_axis_data){
|
|
6259
|
+
fft_concat[label].z = parseFloat((signInt(((raw_data[i+en_axis_data.z_offset]<<8)+(raw_data[i+en_axis_data.z_offset+1])), 16)*fsr_mult).toFixed(5));
|
|
6260
|
+
}
|
|
6261
|
+
}
|
|
6262
|
+
var fft_concat_obj = {
|
|
6263
|
+
time_id: globalDevices[deviceAddr].hour +':'+ globalDevices[deviceAddr].minute,
|
|
6264
|
+
mac_address: deviceAddr,
|
|
6265
|
+
en_axis: globalDevices[deviceAddr].en_axis,
|
|
6266
|
+
fsr: fsr_text,
|
|
6267
|
+
odr: globalDevices[deviceAddr].odr,
|
|
6268
|
+
device_temp: globalDevices[deviceAddr].device_temp,
|
|
6269
|
+
data: fft_concat
|
|
6270
|
+
};
|
|
6271
|
+
sensor_data = fft_concat_obj;
|
|
6272
|
+
delete globalDevices[deviceAddr];
|
|
6273
|
+
if(this.hasOwnProperty('failure_no')){
|
|
6274
|
+
console.log('####falure no');
|
|
6275
|
+
console.log(this.failure_no);
|
|
6276
|
+
}
|
|
6277
|
+
|
|
6278
|
+
return sensor_data;
|
|
6279
|
+
}
|
|
6280
|
+
else{
|
|
6281
|
+
return;
|
|
6282
|
+
}
|
|
6283
|
+
}else{
|
|
6284
|
+
|
|
6285
|
+
var mode = payload[8];
|
|
6286
|
+
var odr = payload[9];
|
|
6287
|
+
var en_axis = payload[10] & 7;
|
|
6288
|
+
var fsr = payload[10] >> 5;
|
|
6289
|
+
var device_temp = msbLsb(payload[13], payload[14])/100;
|
|
6290
|
+
|
|
6291
|
+
|
|
6292
|
+
switch(odr){
|
|
6293
|
+
case 6:
|
|
6294
|
+
odr = 50;
|
|
6295
|
+
break;
|
|
6296
|
+
case 7:
|
|
6297
|
+
odr = 100;
|
|
6298
|
+
break;
|
|
6299
|
+
case 8:
|
|
6300
|
+
odr = 200;
|
|
6301
|
+
break;
|
|
6302
|
+
case 9:
|
|
6303
|
+
odr = 400;
|
|
6304
|
+
break;
|
|
6305
|
+
case 10:
|
|
6306
|
+
odr = 800;
|
|
6307
|
+
break;
|
|
6308
|
+
case 11:
|
|
6309
|
+
odr = 1600;
|
|
6310
|
+
break;
|
|
6311
|
+
case 12:
|
|
6312
|
+
odr = 3200;
|
|
6313
|
+
break;
|
|
6314
|
+
case 13:
|
|
6315
|
+
odr = 6400;
|
|
6316
|
+
break;
|
|
6317
|
+
case 14:
|
|
6318
|
+
odr = 12800;
|
|
6319
|
+
break;
|
|
6320
|
+
case 15:
|
|
6321
|
+
odr = 25600;
|
|
6322
|
+
break;
|
|
6323
|
+
default:
|
|
6324
|
+
odr = 0;
|
|
6325
|
+
}
|
|
6326
|
+
|
|
6327
|
+
globalDevices[deviceAddr] = {
|
|
6328
|
+
// stream_size: expected_packets,
|
|
6329
|
+
data: {},
|
|
6330
|
+
odr: odr,
|
|
6331
|
+
mo: mode,
|
|
6332
|
+
en_axis: en_axis,
|
|
6333
|
+
fsr: fsr,
|
|
6334
|
+
hour: hour,
|
|
6335
|
+
minute: minute,
|
|
6336
|
+
device_temp: device_temp,
|
|
6337
|
+
}
|
|
6338
|
+
globalDevices[deviceAddr].data[current_packet] = payload.slice(sdata_start);
|
|
6339
|
+
return;
|
|
6340
|
+
}
|
|
6341
|
+
}
|
|
6342
|
+
else if(payload[8] === 0 || payload[8] === 2){
|
|
6343
|
+
// mode byte most significant bit will indicate fft data.
|
|
6344
|
+
// console.log(d);
|
|
6345
|
+
var odr;
|
|
6346
|
+
switch(payload[9]){
|
|
6347
|
+
case 6:
|
|
6348
|
+
odr = "50Hz"
|
|
6349
|
+
break;
|
|
6350
|
+
case 7:
|
|
6351
|
+
odr = "100Hz";
|
|
6352
|
+
break;
|
|
6353
|
+
case 8:
|
|
6354
|
+
odr = "200Hz";
|
|
6355
|
+
break;
|
|
6356
|
+
case 9:
|
|
6357
|
+
odr = "400Hz";
|
|
6358
|
+
break;
|
|
6359
|
+
case 10:
|
|
6360
|
+
odr = "800Hz";
|
|
6361
|
+
break;
|
|
6362
|
+
case 11:
|
|
6363
|
+
odr = "1600Hz";
|
|
6364
|
+
break;
|
|
6365
|
+
case 12:
|
|
6366
|
+
odr = "3200Hz";
|
|
6367
|
+
break;
|
|
6368
|
+
case 13:
|
|
6369
|
+
odr = "6400Hz";
|
|
6370
|
+
break;
|
|
6371
|
+
case 14:
|
|
6372
|
+
odr = "12800Hz";
|
|
6373
|
+
break;
|
|
6374
|
+
case 15:
|
|
6375
|
+
odr = "25600Hz";
|
|
6376
|
+
break;
|
|
6377
|
+
}
|
|
6378
|
+
return {
|
|
6379
|
+
mode: payload[8],
|
|
6380
|
+
|
|
6381
|
+
odr: odr,
|
|
6382
|
+
temperature: signInt(payload.slice(10, 12).reduce(msbLsb), 16) / 100,
|
|
6383
|
+
|
|
6384
|
+
x_rms_ACC_G: payload.slice(12, 14).reduce(msbLsb)/1000,
|
|
6385
|
+
x_max_ACC_G: payload.slice(14, 16).reduce(msbLsb)/1000,
|
|
6386
|
+
x_velocity_mm_sec: payload.slice(16, 18).reduce(msbLsb) / 100,
|
|
6387
|
+
x_displacement_mm: payload.slice(18, 20).reduce(msbLsb) / 100,
|
|
6388
|
+
x_peak_one_Hz: payload.slice(20, 22).reduce(msbLsb),
|
|
6389
|
+
x_peak_two_Hz: payload.slice(22, 24).reduce(msbLsb),
|
|
6390
|
+
x_peak_three_Hz: payload.slice(24, 26).reduce(msbLsb),
|
|
6391
|
+
|
|
6392
|
+
y_rms_ACC_G: payload.slice(26, 28).reduce(msbLsb)/1000,
|
|
6393
|
+
y_max_ACC_G: payload.slice(28, 30).reduce(msbLsb)/1000,
|
|
6394
|
+
y_velocity_mm_sec: payload.slice(30, 32).reduce(msbLsb) / 100,
|
|
6395
|
+
y_displacement_mm: payload.slice(32, 34).reduce(msbLsb) / 100,
|
|
6396
|
+
y_peak_one_Hz: payload.slice(34, 36).reduce(msbLsb),
|
|
6397
|
+
y_peak_two_Hz: payload.slice(36, 38).reduce(msbLsb),
|
|
6398
|
+
y_peak_three_Hz: payload.slice(38, 40).reduce(msbLsb),
|
|
6399
|
+
|
|
6400
|
+
z_rms_ACC_G: payload.slice(40, 42).reduce(msbLsb)/1000,
|
|
6401
|
+
z_max_ACC_G: payload.slice(42, 44).reduce(msbLsb)/1000,
|
|
6402
|
+
z_velocity_mm_sec: payload.slice(44, 46).reduce(msbLsb) / 100,
|
|
6403
|
+
z_displacement_mm: payload.slice(46, 48).reduce(msbLsb) / 100,
|
|
6404
|
+
z_peak_one_Hz: payload.slice(48, 50).reduce(msbLsb),
|
|
6405
|
+
z_peak_two_Hz: payload.slice(50, 52).reduce(msbLsb),
|
|
6406
|
+
z_peak_three_Hz: payload.slice(52, 54).reduce(msbLsb),
|
|
6407
|
+
};
|
|
6408
|
+
}
|
|
6409
|
+
// else{
|
|
6410
|
+
// parsed.data = {'error': 'Vibration mode error'}
|
|
6411
|
+
// return parsed;
|
|
6412
|
+
// }
|
|
6413
|
+
},
|
|
6414
|
+
'parse_fly': (frame) => {
|
|
6415
|
+
let frame_data = {};
|
|
6416
|
+
switch(frame[16]){
|
|
6417
|
+
case 0:
|
|
6418
|
+
frame_data.mode = "Processed";
|
|
6419
|
+
break;
|
|
6420
|
+
case 1:
|
|
6421
|
+
frame_data.mode = "Raw";
|
|
6422
|
+
break;
|
|
6423
|
+
case 2:
|
|
6424
|
+
frame_data.mode = "Processed + Raw on demand";
|
|
6425
|
+
break;
|
|
6426
|
+
}
|
|
6427
|
+
switch(frame[17]){
|
|
6428
|
+
case 6:
|
|
6429
|
+
frame_data.odr_1 = 50;
|
|
6430
|
+
break;
|
|
6431
|
+
case 7:
|
|
6432
|
+
frame_data.odr_1 = 100;
|
|
6433
|
+
break;
|
|
6434
|
+
case 8:
|
|
6435
|
+
frame_data.odr_1 = 200;
|
|
6436
|
+
break;
|
|
6437
|
+
case 9:
|
|
6438
|
+
frame_data.odr_1 = 400;
|
|
6439
|
+
break;
|
|
6440
|
+
case 10:
|
|
6441
|
+
frame_data.odr_1 = 800;
|
|
6442
|
+
break;
|
|
6443
|
+
case 11:
|
|
6444
|
+
frame_data.odr_1 = 1600;
|
|
6445
|
+
break;
|
|
6446
|
+
case 12:
|
|
6447
|
+
frame_data.odr_1 = 3200;
|
|
6448
|
+
break;
|
|
6449
|
+
case 13:
|
|
6450
|
+
frame_data.odr_1 = 6400;
|
|
6451
|
+
break;
|
|
6452
|
+
case 14:
|
|
6453
|
+
frame_data.odr_1 = 12800;
|
|
6454
|
+
break;
|
|
6455
|
+
case 15:
|
|
6456
|
+
frame_data.odr_1 = 25600;
|
|
6457
|
+
break;
|
|
6458
|
+
}
|
|
6459
|
+
frame_data.sampling_duration_1 = frame[19]*50 + "ms";
|
|
6460
|
+
switch(frame[21]){
|
|
6461
|
+
case 0:
|
|
6462
|
+
frame_data.filter_status = "Disabled";
|
|
6463
|
+
break;
|
|
6464
|
+
case 1:
|
|
6465
|
+
frame_data.filter_status = "Enabled";
|
|
6466
|
+
break;
|
|
6467
|
+
}
|
|
6468
|
+
switch(frame[22]){
|
|
6469
|
+
case 0:
|
|
6470
|
+
frame_data.lpf_coeff_1 = 4;
|
|
6471
|
+
break;
|
|
6472
|
+
case 1:
|
|
6473
|
+
frame_data.lpf_coeff_1 = 8;
|
|
6474
|
+
break;
|
|
6475
|
+
case 2:
|
|
6476
|
+
frame_data.lpf_coeff_1 = 16;
|
|
6477
|
+
break;
|
|
6478
|
+
case 2:
|
|
6479
|
+
frame_data.lpf_coeff_1 = 32;
|
|
6480
|
+
break;
|
|
6481
|
+
case 4:
|
|
6482
|
+
frame_data.lpf_coeff_1 = 64;
|
|
6483
|
+
break;
|
|
6484
|
+
case 5:
|
|
6485
|
+
frame_data.lpf_coeff_1 = 128;
|
|
6486
|
+
break;
|
|
6487
|
+
case 6:
|
|
6488
|
+
frame_data.lpf_coeff_1 = 256;
|
|
6489
|
+
break;
|
|
6490
|
+
case 7:
|
|
6491
|
+
frame_data.lpf_coeff_1 = 512;
|
|
6492
|
+
break;
|
|
6493
|
+
case 8:
|
|
6494
|
+
frame_data.lpf_coeff_1 = 1024;
|
|
6495
|
+
break;
|
|
6496
|
+
case 9:
|
|
6497
|
+
frame_data.lpf_coeff_1 = 2048;
|
|
6498
|
+
break;
|
|
6499
|
+
}
|
|
6500
|
+
frame_data.lpf_freq_1 = frame_data.odr_1 / frame_data.lpf_coeff_1;
|
|
6501
|
+
switch(frame[24]){
|
|
6502
|
+
case 0:
|
|
6503
|
+
frame_data.hpf_coeff_1 = 4;
|
|
6504
|
+
break;
|
|
6505
|
+
case 1:
|
|
6506
|
+
frame_data.hpf_coeff_1 = 8;
|
|
6507
|
+
break;
|
|
6508
|
+
case 2:
|
|
6509
|
+
frame_data.hpf_coeff_1 = 16;
|
|
6510
|
+
break;
|
|
6511
|
+
case 2:
|
|
6512
|
+
frame_data.hpf_coeff_1 = 32;
|
|
6513
|
+
break;
|
|
6514
|
+
case 4:
|
|
6515
|
+
frame_data.hpf_coeff_1 = 64;
|
|
6516
|
+
break;
|
|
6517
|
+
case 5:
|
|
6518
|
+
frame_data.hpf_coeff_1 = 128;
|
|
6519
|
+
break;
|
|
6520
|
+
case 6:
|
|
6521
|
+
frame_data.hpf_coeff_1 = 256;
|
|
6522
|
+
break;
|
|
6523
|
+
case 7:
|
|
6524
|
+
frame_data.hpf_coeff_1 = 512;
|
|
6525
|
+
break;
|
|
6526
|
+
case 8:
|
|
6527
|
+
frame_data.hpf_coeff_1 = 1024;
|
|
6528
|
+
break;
|
|
6529
|
+
case 9:
|
|
6530
|
+
frame_data.hpf_coeff_1 = 2048;
|
|
6531
|
+
break;
|
|
6532
|
+
}
|
|
6533
|
+
frame_data.hpf_freq_1 = frame_data.odr_1 / frame_data.hpf_coeff_1;
|
|
6534
|
+
switch(frame[26]){
|
|
6535
|
+
case 0:
|
|
6536
|
+
frame_data.sampling_interval = "5 Minutes";
|
|
6537
|
+
break;
|
|
6538
|
+
case 1:
|
|
6539
|
+
frame_data.sampling_interval = "10 Minutes";
|
|
6540
|
+
break;
|
|
6541
|
+
case 2:
|
|
6542
|
+
frame_data.sampling_interval = "15 Minutes";
|
|
6543
|
+
break;
|
|
6544
|
+
case 2:
|
|
6545
|
+
frame_data.sampling_interval = "20 Minutes";
|
|
6546
|
+
break;
|
|
6547
|
+
case 4:
|
|
6548
|
+
frame_data.sampling_interval = "30 Minutes";
|
|
6549
|
+
break;
|
|
6550
|
+
case 5:
|
|
6551
|
+
frame_data.sampling_interval = "60 Minutes";
|
|
6552
|
+
break;
|
|
6553
|
+
case 6:
|
|
6554
|
+
frame_data.sampling_interval = "120 Minutes";
|
|
6555
|
+
break;
|
|
6556
|
+
case 7:
|
|
6557
|
+
frame_data.sampling_interval = "180 Minutes";
|
|
6558
|
+
break;
|
|
6559
|
+
case 8:
|
|
6560
|
+
frame_data.sampling_interval = "1 Minute";
|
|
6561
|
+
break;
|
|
6562
|
+
}
|
|
6563
|
+
frame_data.on_request_timeout = frame[27] + " Seconds";
|
|
6564
|
+
frame_data.deadband = frame[28] + "mg";
|
|
6565
|
+
|
|
6566
|
+
switch(frame[29]){
|
|
6567
|
+
case 0:
|
|
6568
|
+
frame_data.payload_length = "50 Bytes";
|
|
6569
|
+
break;
|
|
6570
|
+
case 1:
|
|
6571
|
+
frame_data.payload_length = "100 Bytes";
|
|
6572
|
+
break;
|
|
6573
|
+
case 2:
|
|
6574
|
+
frame_data.payload_length = "150 Bytes";
|
|
6575
|
+
break;
|
|
6576
|
+
case 3:
|
|
6577
|
+
frame_data.payload_length = "180 Bytes";
|
|
6578
|
+
break;
|
|
6579
|
+
}
|
|
6580
|
+
|
|
6581
|
+
return {
|
|
6582
|
+
'firmware': frame[2],
|
|
6583
|
+
'destination_address': toMac(frame.slice(12, 16)),
|
|
6584
|
+
'mode': frame_data.mode,
|
|
6585
|
+
'odr_1': frame_data.odr_1+'Hz',
|
|
6586
|
+
'sampling_duration_1': frame_data.sampling_duration_1,
|
|
6587
|
+
'sampling_duration_2': frame_data.sampling_duration_2,
|
|
6588
|
+
'filter_status': frame_data.filter_status,
|
|
6589
|
+
'lpf_coeff_1': frame_data.lpf_coeff_1,
|
|
6590
|
+
'lpf_freq_1': frame_data.lpf_freq_1+'Hz',
|
|
6591
|
+
'hpf_coeff_1': frame_data.hpf_coeff_1,
|
|
6592
|
+
'hpf_freq_1': frame_data.hpf_freq_1+'Hz',
|
|
6593
|
+
'sampling_interval': frame_data.sampling_interval,
|
|
6594
|
+
'on_request_timeout': frame_data.on_request_timeout,
|
|
6595
|
+
'deadband': frame_data.deadband,
|
|
6596
|
+
'payload_length': frame_data.payload_length,
|
|
6597
|
+
'machine_values': {
|
|
6598
|
+
'firmware': frame[2],
|
|
6599
|
+
'destination_address': toMac(frame.slice(12, 16), false),
|
|
6600
|
+
'mode': frame[16],
|
|
6601
|
+
'odr_1': frame[17],
|
|
6602
|
+
'sampling_duration_1': frame[19],
|
|
6603
|
+
'sampling_duration_2': frame[20],
|
|
6604
|
+
'filter_status': frame[21],
|
|
6605
|
+
'lpf_coeff_1': frame[22],
|
|
6606
|
+
'hpf_coeff_1': frame[24],
|
|
6607
|
+
'sampling_interval': frame[26],
|
|
6608
|
+
'on_request_timeout': frame[27],
|
|
6609
|
+
'deadband': frame[28],
|
|
6610
|
+
'payload_length': frame[29]
|
|
6611
|
+
}
|
|
6612
|
+
}
|
|
6613
|
+
}
|
|
6614
|
+
},
|
|
5992
6615
|
'10000': {
|
|
5993
6616
|
name: '4-Relay',
|
|
5994
6617
|
parse: (d) => {
|
package/package.json
CHANGED
package/wireless.html
CHANGED
|
@@ -337,6 +337,9 @@
|
|
|
337
337
|
mid_calibration_420ma:{value: 68724, validate: NCD_validators.number_range(0, 4294967295)},
|
|
338
338
|
high_calibration_420ma_active:{value:""},
|
|
339
339
|
high_calibration_420ma:{value: 68714, validate: NCD_validators.number_range(0, 4294967295)},
|
|
340
|
+
|
|
341
|
+
thermocouple_type_23_active:{value:""},
|
|
342
|
+
thermocouple_type_23:{value: 0},
|
|
340
343
|
},
|
|
341
344
|
inputs: 0,
|
|
342
345
|
outputs: 1,
|
|
@@ -440,6 +443,7 @@
|
|
|
440
443
|
"521": "521 - Custom 3 Channel Light Sensor",
|
|
441
444
|
"524": "524 - SDI Multi Soil Probe",
|
|
442
445
|
"531": "531 - Custom Noise Sensor",
|
|
446
|
+
"537": "537 - Custom Standalone Smart Vibration Sensor",
|
|
443
447
|
"10000": "10000 - 4-Channel Relay",
|
|
444
448
|
"10006": "10006 - 4-Channel 4-20 mA Input",
|
|
445
449
|
"10007": "10007 - 4-Channel Current Monitor",
|
|
@@ -689,6 +693,7 @@
|
|
|
689
693
|
<option value="521">521 - Custom 3 Channel Light Sensor</option>
|
|
690
694
|
<option value="524">524 - SDI Multi Soil Probe</option>
|
|
691
695
|
<option value="531">531 - Custom Noise Sensor</option>
|
|
696
|
+
<option value="537">537 - Custom Standalone Smart Vibration Sensor</option>
|
|
692
697
|
<option value="10000">10000 - 4-Channel Relay</option>
|
|
693
698
|
<option value="10006">10006 - 4-Channel 4-20 mA Input</option>
|
|
694
699
|
<option value="10007">10007 - 4-Channel Current Monitor</option>
|
|
@@ -702,7 +707,7 @@
|
|
|
702
707
|
<label for="node-input-auto_config"><i class="icon-tag"></i> Auto Config</label>
|
|
703
708
|
<input class="section-control" type="checkbox" id="node-input-auto_config" value="1">
|
|
704
709
|
</div>
|
|
705
|
-
<div class="form-row ncd-dependent" data-sensor-26 data-sensor-45 data-sensor-48 data-sensor-78 data-sensor-79 data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-88 data-sensor-89 data-sensor-91 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-520 data-sensor-521>
|
|
710
|
+
<div class="form-row ncd-dependent" data-sensor-23 data-sensor-26 data-sensor-45 data-sensor-48 data-sensor-78 data-sensor-79 data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-88 data-sensor-89 data-sensor-91 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-520 data-sensor-521 data-sensor-531 data-sensor-537>
|
|
706
711
|
<hr>
|
|
707
712
|
<label for="node-input-on_the_fly_enable"><i class="icon-tag"></i> OTF Config*</label>
|
|
708
713
|
<input type="checkbox" id="node-input-on_the_fly_enable" value="1">
|
|
@@ -1032,7 +1037,7 @@
|
|
|
1032
1037
|
</div>
|
|
1033
1038
|
</div>
|
|
1034
1039
|
|
|
1035
|
-
<div class="ncd-dependent" data-sensor-84 data-sensor-519>
|
|
1040
|
+
<div class="ncd-dependent" data-sensor-84 data-sensor-519 data-sensor-537>
|
|
1036
1041
|
<hr>
|
|
1037
1042
|
<div class="form-row ncd-active-check">
|
|
1038
1043
|
<strong>LED Alert Mode</strong>
|
|
@@ -1094,7 +1099,7 @@
|
|
|
1094
1099
|
</div>
|
|
1095
1100
|
</div>
|
|
1096
1101
|
|
|
1097
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1102
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
|
|
1098
1103
|
<hr>
|
|
1099
1104
|
<div class="form-row ncd-active-check">
|
|
1100
1105
|
<strong>Mode</strong>
|
|
@@ -1138,7 +1143,7 @@
|
|
|
1138
1143
|
</div>
|
|
1139
1144
|
</div>
|
|
1140
1145
|
|
|
1141
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519>
|
|
1146
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-537>
|
|
1142
1147
|
<hr>
|
|
1143
1148
|
<div class="form-row ncd-active-check">
|
|
1144
1149
|
<strong>Set Sampling Duration 1= 50msec, 2= 100msec</strong>
|
|
@@ -1153,7 +1158,7 @@
|
|
|
1153
1158
|
</div>
|
|
1154
1159
|
</div>
|
|
1155
1160
|
|
|
1156
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519>
|
|
1161
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519 data-sensor-537>
|
|
1157
1162
|
<hr>
|
|
1158
1163
|
<div class="form-row ncd-active-check">
|
|
1159
1164
|
<strong>Sampling Interval</strong>
|
|
@@ -1254,7 +1259,7 @@
|
|
|
1254
1259
|
</div>
|
|
1255
1260
|
</div>
|
|
1256
1261
|
</div>
|
|
1257
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-102 data-sensor-519>
|
|
1262
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-102 data-sensor-519 data-sensor-537>
|
|
1258
1263
|
<hr>
|
|
1259
1264
|
<div class="form-row ncd-active-check">
|
|
1260
1265
|
<strong>Output Data Rate</strong>
|
|
@@ -1305,7 +1310,7 @@
|
|
|
1305
1310
|
</div>
|
|
1306
1311
|
</div>
|
|
1307
1312
|
</div>
|
|
1308
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1313
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
|
|
1309
1314
|
<div class="form-row ncd-active-check">
|
|
1310
1315
|
<strong>Set Filtering</strong>
|
|
1311
1316
|
<div>
|
|
@@ -1432,7 +1437,7 @@
|
|
|
1432
1437
|
</div>
|
|
1433
1438
|
</div>
|
|
1434
1439
|
|
|
1435
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1440
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
|
|
1436
1441
|
<div class="form-row ncd-active-check">
|
|
1437
1442
|
<strong>Full Scale Range</strong>
|
|
1438
1443
|
<div>
|
|
@@ -1469,7 +1474,7 @@
|
|
|
1469
1474
|
</div>
|
|
1470
1475
|
</div>
|
|
1471
1476
|
</div>
|
|
1472
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-519>
|
|
1477
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-519 data-sensor-537>
|
|
1473
1478
|
<div class="form-row ncd-active-check">
|
|
1474
1479
|
<strong>Set Dead Band in mg</strong>
|
|
1475
1480
|
<div>
|
|
@@ -1683,7 +1688,7 @@
|
|
|
1683
1688
|
</div>
|
|
1684
1689
|
</div>
|
|
1685
1690
|
</div>
|
|
1686
|
-
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1691
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519 data-sensor-537>
|
|
1687
1692
|
<hr>
|
|
1688
1693
|
<div class="form-row ncd-active-check">
|
|
1689
1694
|
<strong>Payload Length</strong>
|
|
@@ -1702,6 +1707,29 @@
|
|
|
1702
1707
|
</div>
|
|
1703
1708
|
</div>
|
|
1704
1709
|
</div>
|
|
1710
|
+
<div class="ncd-dependent" data-sensor-23>
|
|
1711
|
+
<hr>
|
|
1712
|
+
<div class="form-row ncd-active-check">
|
|
1713
|
+
<strong>Thermocouple Type</strong>
|
|
1714
|
+
<div>
|
|
1715
|
+
<label for="node-input-thermocouple_type_23_active">Active:</label>
|
|
1716
|
+
<input type="checkbox" id="node-input-thermocouple_type_23_active" class="ncd-config-toggle" data-target-id="node-input-thermocouple_type_23" value="1">
|
|
1717
|
+
</div>
|
|
1718
|
+
<div>
|
|
1719
|
+
<label for="node-input-thermocouple_type_23"><i class="icon-tag"></i>Value:</label>
|
|
1720
|
+
<select id="node-input-thermocouple_type_23">
|
|
1721
|
+
<option selected="selected" value="0">K </option>
|
|
1722
|
+
<option value="16">J Type</option>
|
|
1723
|
+
<option value="32">T Type</option>
|
|
1724
|
+
<option value="48">N Type</option>
|
|
1725
|
+
<option value="64">S Type</option>
|
|
1726
|
+
<option value="80">E Type</option>
|
|
1727
|
+
<option value="96">B Type</option>
|
|
1728
|
+
<option value="112">R Type</option>
|
|
1729
|
+
</select>
|
|
1730
|
+
</div>
|
|
1731
|
+
</div>
|
|
1732
|
+
</div>
|
|
1705
1733
|
<div class="ncd-dependent" data-sensor-46>
|
|
1706
1734
|
<hr>
|
|
1707
1735
|
<div class="form-row ncd-active-check">
|
package/wireless.js
CHANGED
|
@@ -315,7 +315,7 @@ module.exports = function(RED) {
|
|
|
315
315
|
setTimeout(() => {
|
|
316
316
|
var tout = setTimeout(() => {
|
|
317
317
|
node.status(modes.PGM_ERR);
|
|
318
|
-
node.send({topic: 'Config Results', payload: success, time: Date.now()});
|
|
318
|
+
node.send({topic: 'Config Results', payload: success, time: Date.now(), addr: sensor.mac});
|
|
319
319
|
}, 60000);
|
|
320
320
|
node.status(modes.PGM_NOW);
|
|
321
321
|
if(parseInt(config.sensor_type) >= 10000){
|
|
@@ -432,6 +432,10 @@ module.exports = function(RED) {
|
|
|
432
432
|
promises.high_calibration_420ma = node.config_gateway.config_set_high_calibration_420ma(mac, parseInt(config.high_calibration_420ma));
|
|
433
433
|
}
|
|
434
434
|
break;
|
|
435
|
+
case 23:
|
|
436
|
+
if(config.thermocouple_type_23_active){
|
|
437
|
+
promises.thermocouple_type_23 = node.config_gateway.config_set_thermocouple_type_23(mac, parseInt(config.thermocouple_type_23));
|
|
438
|
+
}
|
|
435
439
|
case 24:
|
|
436
440
|
if(config.impact_accel_active){
|
|
437
441
|
promises.impact_accel = node.config_gateway.config_set_acceleration_range_24(mac, parseInt(config.impact_accel));
|
|
@@ -894,6 +898,62 @@ module.exports = function(RED) {
|
|
|
894
898
|
promises.set_rtc_101 = node.config_gateway.config_set_rtc_101(mac);
|
|
895
899
|
}
|
|
896
900
|
break;
|
|
901
|
+
case 537:
|
|
902
|
+
if(config.output_data_rate_101_active){
|
|
903
|
+
promises.output_data_rate_101 = node.config_gateway.config_set_output_data_rate_101(mac, parseInt(config.output_data_rate_101));
|
|
904
|
+
}
|
|
905
|
+
if(config.sampling_duration_101_active){
|
|
906
|
+
promises.sampling_duration_101 = node.config_gateway.config_set_sampling_duration_101(mac, parseInt(config.sampling_duration_101));
|
|
907
|
+
}
|
|
908
|
+
if(config.x_axis_101 || config.y_axis_101 || config.z_axis_101){
|
|
909
|
+
promises.axis_enabled_101 = node.config_gateway.config_set_axis_enabled_101(mac, config.x_axis_101, config.y_axis_101, config.z_axis_101);
|
|
910
|
+
}
|
|
911
|
+
if(config.sampling_interval_101_active){
|
|
912
|
+
promises.sampling_interval_101 = node.config_gateway.config_set_sampling_interval_101(mac, parseInt(config.sampling_interval_101));
|
|
913
|
+
}
|
|
914
|
+
if(config.full_scale_range_101_active){
|
|
915
|
+
promises.full_scale_range_101 = node.config_gateway.config_set_full_scale_range_101(mac, parseInt(config.full_scale_range_101));
|
|
916
|
+
}
|
|
917
|
+
if(config.mode_80_active){
|
|
918
|
+
promises.mode = node.config_gateway.config_set_operation_mode_80(mac, parseInt(config.mode_80));
|
|
919
|
+
}
|
|
920
|
+
if(config.filter_80_active){
|
|
921
|
+
promises.filter = node.config_gateway.config_set_filters_80(mac, parseInt(config.filter_80));
|
|
922
|
+
}
|
|
923
|
+
if(config.low_pass_filter_80_active){
|
|
924
|
+
promises.low_pass_filter = node.config_gateway.config_set_low_pass_filter_80(mac, parseInt(config.low_pass_filter_80));
|
|
925
|
+
}
|
|
926
|
+
if(config.high_pass_filter_80_active){
|
|
927
|
+
promises.high_pass_filter = node.config_gateway.config_set_high_pass_filter_80(mac, parseInt(config.high_pass_filter_80));
|
|
928
|
+
}
|
|
929
|
+
if(config.measurement_mode_80_active){
|
|
930
|
+
promises.measurement_mode = node.config_gateway.config_set_measurement_mode_80(mac, parseInt(config.measurement_mode_80));
|
|
931
|
+
}
|
|
932
|
+
if(config.on_request_timeout_80_active){
|
|
933
|
+
promises.on_request_timeout = node.config_gateway.config_set_filters_80(mac, parseInt(config.on_request_timeout_80));
|
|
934
|
+
}
|
|
935
|
+
if(config.deadband_80_active){
|
|
936
|
+
promises.deadband = node.config_gateway.config_set_deadband_80(mac, parseInt(config.deadband_80));
|
|
937
|
+
}
|
|
938
|
+
if(config.led_alert_mode_84_active){
|
|
939
|
+
promises.led_alert_mode_84 = node.config_gateway.config_set_led_alert_mode_84(mac, parseInt(config.led_alert_mode_84));
|
|
940
|
+
}
|
|
941
|
+
if(config.led_accelerometer_threshold_84_active){
|
|
942
|
+
promises.led_accelerometer_threshold_84 = node.config_gateway.config_set_led_accelerometer_threshold_84(mac, parseInt(config.led_accelerometer_threshold_84));
|
|
943
|
+
}
|
|
944
|
+
if(config.led_velocity_threshold_84_active){
|
|
945
|
+
promises.led_velocity_threshold_84 = node.config_gateway.config_set_led_velocity_threshold_84(mac, parseInt(config.led_velocity_threshold_84));
|
|
946
|
+
}
|
|
947
|
+
if(config.acceleration_interrupt_threshold_84_active){
|
|
948
|
+
promises.acceleration_interrupt_threshold_84 = node.config_gateway.config_set_acceleration_interrupt_threshold_84(mac, parseInt(config.acceleration_interrupt_threshold_84));
|
|
949
|
+
}
|
|
950
|
+
if(config.payload_length_80_active){
|
|
951
|
+
promises.payload_length_80 = node.config_gateway.config_set_payload_length_80(mac, parseInt(config.payload_length_80));
|
|
952
|
+
}
|
|
953
|
+
if(config.set_rtc_101){
|
|
954
|
+
promises.set_rtc_101 = node.config_gateway.config_set_rtc_101(mac);
|
|
955
|
+
}
|
|
956
|
+
break;
|
|
897
957
|
}
|
|
898
958
|
}
|
|
899
959
|
// These sensors listed in original_otf_devices use a different OTF code.
|
|
@@ -925,7 +985,7 @@ module.exports = function(RED) {
|
|
|
925
985
|
if(name != 'finish') success[name] = true;
|
|
926
986
|
else{
|
|
927
987
|
// #OTF
|
|
928
|
-
node.send({topic: 'Config Results', payload: success, time: Date.now()});
|
|
988
|
+
node.send({topic: 'Config Results', payload: success, time: Date.now(), addr: mac});
|
|
929
989
|
top_fulfill(success);
|
|
930
990
|
}
|
|
931
991
|
}).catch((err) => {
|