@ncd-io/node-red-enterprise-sensors 0.1.0
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/.gitattributes +2 -0
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/index.js +9 -0
- package/lib/DigiParser.js +357 -0
- package/lib/WirelessGateway.js +5547 -0
- package/package.json +43 -0
- package/test.js +122 -0
- package/wireless.html +1784 -0
- package/wireless.js +1208 -0
package/wireless.html
ADDED
|
@@ -0,0 +1,1784 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType('ncd-gateway-node',{
|
|
3
|
+
category: 'NCD',
|
|
4
|
+
color: '#a6bbcf',
|
|
5
|
+
icon: "serial.png",
|
|
6
|
+
paletteLabel: "Wireless Gateway",
|
|
7
|
+
outputLabels: ["Parsed","Unknown"],
|
|
8
|
+
defaults: {
|
|
9
|
+
name: {value: ""},
|
|
10
|
+
connection: {value: "", type: "ncd-gateway-config"},
|
|
11
|
+
unknown_devices: {value:0},
|
|
12
|
+
outputs:{value:1}
|
|
13
|
+
},
|
|
14
|
+
inputs: 1,
|
|
15
|
+
outputs: 1,
|
|
16
|
+
label: function() {
|
|
17
|
+
return this.name || "Wireless Gateway";
|
|
18
|
+
},
|
|
19
|
+
oneditsave: function(){
|
|
20
|
+
this.outputs = $("#node-input-unknown_devices").is(':checked') ? 2 : 1;
|
|
21
|
+
},
|
|
22
|
+
button: {
|
|
23
|
+
enabled: function() {
|
|
24
|
+
return true;
|
|
25
|
+
},
|
|
26
|
+
onclick: function() {
|
|
27
|
+
if (this.changed) {
|
|
28
|
+
return RED.notify(RED._("notification.warning", {message:RED._("notification.warnings.undeployedChanges")}),"warning");
|
|
29
|
+
}
|
|
30
|
+
var label = this.name;
|
|
31
|
+
if (label.length > 30) {
|
|
32
|
+
label = label.substring(0,50)+"...";
|
|
33
|
+
}
|
|
34
|
+
label = label.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
|
|
35
|
+
if (this.payloadType === "date") { label = this._("inject.timestamp"); }
|
|
36
|
+
if (this.payloadType === "none") { label = this._("inject.blank"); }
|
|
37
|
+
var node = this;
|
|
38
|
+
$.ajax({
|
|
39
|
+
url: "ncd/wireless/gateway/config/"+this.id,
|
|
40
|
+
type:"POST",
|
|
41
|
+
success: function(resp) {
|
|
42
|
+
RED.notify(node._("Modem "+resp,{label:label}),"success");
|
|
43
|
+
},
|
|
44
|
+
error: function(jqXHR,textStatus,errorThrown) {
|
|
45
|
+
RED.notify(node._("common.notification.error",{message:node._("common.notification.errors.not-deployed")}),"error");
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
</script>
|
|
52
|
+
<script type="text/x-red" data-template-name="ncd-gateway-node">
|
|
53
|
+
<div class="form-row">
|
|
54
|
+
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
|
|
55
|
+
<input type="text" id="node-input-name" placeholder="Name">
|
|
56
|
+
</div>
|
|
57
|
+
<div class="form-row">
|
|
58
|
+
<label for="node-input-connection"><i class="icon-tag"></i> Serial Device</label>
|
|
59
|
+
<select id="node-input-connection"></select>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="form-row">
|
|
62
|
+
<label for="node-input-unknown_devices"><i class="icon-tag"></i> Output data from Unknown Devices</label>
|
|
63
|
+
<input type="checkbox" id="node-input-unknown_devices" value="1">
|
|
64
|
+
</div>
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<style>
|
|
68
|
+
.ncd-active-check strong{
|
|
69
|
+
width: 100%;
|
|
70
|
+
}
|
|
71
|
+
.form-row.ncd-active-check{
|
|
72
|
+
margin: 12px 0px;
|
|
73
|
+
border: 1px solid #eee;
|
|
74
|
+
padding: 12px;
|
|
75
|
+
border-radius: 8px;
|
|
76
|
+
}
|
|
77
|
+
.form-row.ncd-active-check > div{
|
|
78
|
+
padding: 4px;
|
|
79
|
+
}
|
|
80
|
+
.form-row.ncd-active-check > div > input[type='checkbox']{
|
|
81
|
+
width: inherit;
|
|
82
|
+
}
|
|
83
|
+
.form-row .caption{
|
|
84
|
+
font-size: .95em;
|
|
85
|
+
padding-left: 1em;
|
|
86
|
+
margin-top: .25em;
|
|
87
|
+
}
|
|
88
|
+
</style>
|
|
89
|
+
|
|
90
|
+
<script type="text/x-red" data-help-name="ncd-gateway-node">
|
|
91
|
+
<h3>Gateway Node</h3>
|
|
92
|
+
<p>This node is primarily useful for debugging and configuring sensors. This node is equipped with a button on the flow that switches the modem between configuration and listening mode.</p>
|
|
93
|
+
<h3>Output</h3>
|
|
94
|
+
<p>Any time sensor data is received from any sensor on the network, this node will output a message containing all pertinant information as in the example below.</p>
|
|
95
|
+
<h3>Input</h3>
|
|
96
|
+
<p>The Input connection to this Gateway node allows for sending data to devices. The input connection expects the payload to be an object containging an address and data variable. Address is a string representation of the destination device. Data is a byte array of data to be transmitted as payload to that device. Example "payload":{"address":"00:13:A2:00:01:02:03:04",data:[254,108,1]}</p>
|
|
97
|
+
<pre>
|
|
98
|
+
msg = {
|
|
99
|
+
topic: "sensor_data",
|
|
100
|
+
payload: {
|
|
101
|
+
nodeId: 0,
|
|
102
|
+
firmware: 3,
|
|
103
|
+
battery: 3.2940600000000004,
|
|
104
|
+
counter: 37,
|
|
105
|
+
sensor_type: 1,
|
|
106
|
+
sensor_data: {
|
|
107
|
+
humidity: 45.51,
|
|
108
|
+
temperature: 23.91,
|
|
109
|
+
},
|
|
110
|
+
type: "sensor_data",
|
|
111
|
+
addr: "00:13:a2:00:41:07:18:81",
|
|
112
|
+
original: {
|
|
113
|
+
mac: "00:13:a2:00:41:07:18:81",
|
|
114
|
+
receive_options: {
|
|
115
|
+
ack: 0,
|
|
116
|
+
broadcast: 0,
|
|
117
|
+
type: ""
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
data: [127,0,3,3,255,37,0,1,0,17,199,9,87],
|
|
121
|
+
type: "receive_packet"
|
|
122
|
+
},
|
|
123
|
+
_msgid: "391caba.5a19454"
|
|
124
|
+
}
|
|
125
|
+
</pre>
|
|
126
|
+
</script>
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
<script type="text/javascript">
|
|
130
|
+
NCD_validators = {
|
|
131
|
+
number_range: function(l, h, base, property_name = false){
|
|
132
|
+
if(!base) base = 10;
|
|
133
|
+
if(property_name === 'on_request_timeout_80'){
|
|
134
|
+
return function(v){
|
|
135
|
+
var int = parseInt(v, base);
|
|
136
|
+
if(this.on_request_timeout_80 == 0){
|
|
137
|
+
console.log('ERROR: Invalid property detect. Setting on_request_timeout_80 to default value');
|
|
138
|
+
$("#node-input-on_request_timeout_80").val(1);
|
|
139
|
+
return true;
|
|
140
|
+
} else if(v == undefined){
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
return int >= l && int <= h;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if(base == 'decimal'){
|
|
147
|
+
return function(v){
|
|
148
|
+
var n = parseFloat(v);
|
|
149
|
+
return n >= l && n <= h;
|
|
150
|
+
}
|
|
151
|
+
}else{
|
|
152
|
+
return function(v){
|
|
153
|
+
var int = parseInt(v, base);
|
|
154
|
+
// Added to remove new settings from interfering with old nodes
|
|
155
|
+
if(v == undefined){
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
return int >= l && int <= h;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
RED.nodes.registerType('ncd-wireless-node',{
|
|
164
|
+
category: 'NCD',
|
|
165
|
+
color: '#a6bbcf',
|
|
166
|
+
icon: "serial.png",
|
|
167
|
+
paletteLabel: "Wireless Device",
|
|
168
|
+
defaults: {
|
|
169
|
+
name: {value: ""},
|
|
170
|
+
connection: {value: "", type: "ncd-gateway-config"},
|
|
171
|
+
config_comm: {value: "", type: "ncd-gateway-config", required: false},
|
|
172
|
+
addr: {value: ""},
|
|
173
|
+
sensor_type: {value: ""},
|
|
174
|
+
auto_config: {value: ""},
|
|
175
|
+
on_the_fly_enable: {value: ""},
|
|
176
|
+
|
|
177
|
+
node_id_delay_active: {value: ""},
|
|
178
|
+
node_id: {value: 0, validate: NCD_validators.number_range(0, 255)},//0 - 255
|
|
179
|
+
|
|
180
|
+
delay: {value: 300, validate: NCD_validators.number_range(0, 16777215)},//1 - 16777215
|
|
181
|
+
|
|
182
|
+
form_network: {value: ""},
|
|
183
|
+
|
|
184
|
+
destination_active: {value: ""},
|
|
185
|
+
destination: {value: '0000FFFF', validate: NCD_validators.number_range(0, 0xFFFFFFFF, 16)},//(0 - 0xFFFFFFFF)
|
|
186
|
+
|
|
187
|
+
power_active: {value: ""},
|
|
188
|
+
power: {value: 4},//(0 - 4)
|
|
189
|
+
|
|
190
|
+
retries_active: {value: ""},
|
|
191
|
+
retries: {value: 10, validate: NCD_validators.number_range(0, 16)},//(0 - 16)
|
|
192
|
+
|
|
193
|
+
pan_id_active: {value: ""},
|
|
194
|
+
pan_id: {value: '7FFF', validate: NCD_validators.number_range(0, 0x7FFF, 16)},//(0 - 0x7FFF)
|
|
195
|
+
|
|
196
|
+
change_enabled: {value: ""},
|
|
197
|
+
change_pr: {value: "0", validate: NCD_validators.number_range(0, 255)},
|
|
198
|
+
change_interval: {value: "0", validate: NCD_validators.number_range(0, 16712198)},
|
|
199
|
+
|
|
200
|
+
cm_calibration: {value: "60.6", validate: NCD_validators.number_range(0, 655.35, 'decimal')},
|
|
201
|
+
|
|
202
|
+
bp_altitude: {value: "0", validate: NCD_validators.number_range(0, 65535)},
|
|
203
|
+
bp_pressure: {value: "0", validate: NCD_validators.number_range(0, 14000)},
|
|
204
|
+
|
|
205
|
+
bp_temp_prec: {value: "0"},
|
|
206
|
+
bp_press_prec: {value: "0"},
|
|
207
|
+
|
|
208
|
+
amgt_accel: {value: "0"},
|
|
209
|
+
amgt_mag: {value: "0"},
|
|
210
|
+
amgt_gyro: {value: "0"},
|
|
211
|
+
|
|
212
|
+
impact_accel: {value: "0"},
|
|
213
|
+
impact_data_rate: {value: "4"},
|
|
214
|
+
impact_threshold: {value: 25, validate: NCD_validators.number_range(1, 127)},
|
|
215
|
+
impact_duration: {value: 1, validate: NCD_validators.number_range(1, 127)},
|
|
216
|
+
|
|
217
|
+
activ_interr_x: {value: 1, validate: RED.validators.number()},
|
|
218
|
+
activ_interr_y: {value: 2, validate: RED.validators.number()},
|
|
219
|
+
activ_interr_z: {value: 4, validate: RED.validators.number()},
|
|
220
|
+
activ_interr_op: {value: 8, validate: RED.validators.number()},
|
|
221
|
+
|
|
222
|
+
force_calibration_co2_auto_config: {value: ""},
|
|
223
|
+
force_calibration_co2: {value: 400, validate: NCD_validators.number_range(400, 2000)},
|
|
224
|
+
|
|
225
|
+
filtering: {value: 0, validate: RED.validators.number()},
|
|
226
|
+
data_rate: {value: 5, validate: RED.validators.number()},
|
|
227
|
+
time_series: {value: 0, validate: RED.validators.number()},
|
|
228
|
+
reading_type: {value: 1, validate: RED.validators.number()},
|
|
229
|
+
|
|
230
|
+
mode_80_active: {value: ""},
|
|
231
|
+
mode_80: {value: 0},
|
|
232
|
+
|
|
233
|
+
measurement_mode_80_active: {value: ""},
|
|
234
|
+
measurement_mode_80: {value: 0},
|
|
235
|
+
|
|
236
|
+
on_request_timeout_80_active: {value: ""},
|
|
237
|
+
on_request_timeout_80: {value: 1, validate: NCD_validators.number_range(1, 10, 10, 'on_request_timeout_80')},
|
|
238
|
+
|
|
239
|
+
sensor_boot_time_420ma_active: {value: ""},
|
|
240
|
+
sensor_boot_time_420ma: {value: 0, validate: NCD_validators.number_range(0, 255)},
|
|
241
|
+
|
|
242
|
+
deadband_80_active: {value: ""},
|
|
243
|
+
deadband_80: {value: 0, validate: NCD_validators.number_range(0, 255)},
|
|
244
|
+
|
|
245
|
+
filter_80_active: {value: ""},
|
|
246
|
+
filter_80: {value: 0},
|
|
247
|
+
|
|
248
|
+
output_data_rate_p1_81_active: {value: ""},
|
|
249
|
+
output_data_rate_p1_81: {value: 0},
|
|
250
|
+
output_data_rate_p2_81_active: {value: ""},
|
|
251
|
+
output_data_rate_p2_81: {value: 0},
|
|
252
|
+
|
|
253
|
+
sampling_duration_p1_81_active: {value: ""},
|
|
254
|
+
sampling_duration_p1_81: {value: 0},
|
|
255
|
+
sampling_duration_p2_81_active: {value: ""},
|
|
256
|
+
sampling_duration_p2_81: {value: 0},
|
|
257
|
+
|
|
258
|
+
led_alert_mode_84_active: {value: ""},
|
|
259
|
+
led_alert_mode_84: {value: 0},
|
|
260
|
+
|
|
261
|
+
led_accelerometer_threshold_84_active: {value: ""},
|
|
262
|
+
led_accelerometer_threshold_84: {},
|
|
263
|
+
|
|
264
|
+
led_velocity_threshold_84_active: {value: ""},
|
|
265
|
+
led_velocity_threshold_84: {},
|
|
266
|
+
|
|
267
|
+
acceleration_interrupt_threshold_84_active: {value: ""},
|
|
268
|
+
acceleration_interrupt_threshold_84: {},
|
|
269
|
+
|
|
270
|
+
set_rtc_101:{value:0},
|
|
271
|
+
|
|
272
|
+
current_calibration_82:{Value:0},
|
|
273
|
+
current_calibration_82_active:{Value:""},
|
|
274
|
+
|
|
275
|
+
current_calibration_c1_80:{value:178, validate: NCD_validators.number_range(0, 655)},
|
|
276
|
+
current_calibration_c1_80_active:{value:""},
|
|
277
|
+
current_calibration_c2_80:{value:178, validate: NCD_validators.number_range(0, 655)},
|
|
278
|
+
current_calibration_c2_80_active:{value:""},
|
|
279
|
+
current_calibration_c3_80:{value:178, validate: NCD_validators.number_range(0, 655)},
|
|
280
|
+
current_calibration_c3_80_active:{value:""},
|
|
281
|
+
current_calibration_c2_82:{Value:0, validate: NCD_validators.number_range(0, 655)},
|
|
282
|
+
current_calibration_c2_82_active:{Value:""},
|
|
283
|
+
|
|
284
|
+
current_calibration_c3_82:{Value:0, validate: NCD_validators.number_range(0, 655)},
|
|
285
|
+
current_calibration_c3_82_active:{Value:""},
|
|
286
|
+
|
|
287
|
+
output_data_rate_101_active: {value: ""},
|
|
288
|
+
output_data_rate_101: {value: 0},
|
|
289
|
+
output_data_rate_101_m2_active: {value: ""},
|
|
290
|
+
output_data_rate_101_m2: {value: 0},
|
|
291
|
+
sampling_duration_101_active: {value: ""},
|
|
292
|
+
sampling_duration_101: {value: 1, validate: NCD_validators.number_range(1, 255)},
|
|
293
|
+
sampling_interval_101_active: {value: ""},
|
|
294
|
+
sampling_interval_101: {value: 1},
|
|
295
|
+
full_scale_range_101_active: {value: ""},
|
|
296
|
+
full_scale_range_101: {value: 1},
|
|
297
|
+
full_scale_range_101_m2_active: {value: ""},
|
|
298
|
+
full_scale_range_101_m2: {value: 1},
|
|
299
|
+
x_axis_101: {value: ""},
|
|
300
|
+
y_axis_101: {value: ""},
|
|
301
|
+
z_axis_101: {value: ""},
|
|
302
|
+
|
|
303
|
+
low_pass_filter_80_active: {value:""},
|
|
304
|
+
low_pass_filter_80: {value:0},
|
|
305
|
+
high_pass_filter_80_active: {value:""},
|
|
306
|
+
high_pass_filter_80: {value:0},
|
|
307
|
+
|
|
308
|
+
low_pass_filter_81_p2_active: {value:""},
|
|
309
|
+
low_pass_filter_81_p2: {value:0},
|
|
310
|
+
high_pass_filter_81_p2_active: {value:""},
|
|
311
|
+
high_pass_filter_81_p2: {value:0},
|
|
312
|
+
|
|
313
|
+
roll_angle_threshold_47:{value:0, validate: NCD_validators.number_range(0, 255)},
|
|
314
|
+
roll_angle_threshold_47_active:{value:""},
|
|
315
|
+
pitch_angle_threshold_47:{value:0, validate: NCD_validators.number_range(0, 255)},
|
|
316
|
+
pitch_angle_threshold_47_active:{value:""},
|
|
317
|
+
|
|
318
|
+
counter_threshold_35:{value:50, validate: NCD_validators.number_range(0, 65534)},
|
|
319
|
+
counter_threshold_35_active:{value:""},
|
|
320
|
+
|
|
321
|
+
payload_length_80_active:{value:""},
|
|
322
|
+
payload_length_80:{value:3, validate: NCD_validators.number_range(0, 3)},
|
|
323
|
+
},
|
|
324
|
+
inputs: 0,
|
|
325
|
+
outputs: 1,
|
|
326
|
+
label: function() {
|
|
327
|
+
if(this.name) return this.name;
|
|
328
|
+
if(this.addr) return this.addr.split(":").slice(4).join(':');
|
|
329
|
+
if(this.sensor_type){
|
|
330
|
+
var types = {
|
|
331
|
+
"1": "Temperature/Humidity",
|
|
332
|
+
"2": "2ch Push Notification/Voltage Detection",
|
|
333
|
+
"3": "ADC/4-20 mA/DC Voltage",
|
|
334
|
+
"4": "Thermocouple",
|
|
335
|
+
"5": "Gyro/Magneto/Temperature",
|
|
336
|
+
"6": "Temperature/Barometeric Pressure",
|
|
337
|
+
"7": "Impact Detection",
|
|
338
|
+
"8": "Vibration",
|
|
339
|
+
"9": "Proximity and Light",
|
|
340
|
+
"10": "Light",
|
|
341
|
+
"12": "3 Channel Thermocouple",
|
|
342
|
+
"13": "Current Monitor",
|
|
343
|
+
"14": "1 Channel 4-20mA Receiver",
|
|
344
|
+
"15": "1 Channel 0-10V Receiver",
|
|
345
|
+
"16": "1 Channel Soil Moisture Sensor",
|
|
346
|
+
"17": "1 Channel AC Voltage Sensor",
|
|
347
|
+
"18": "Pulse Frequency",
|
|
348
|
+
"19": "2 Channel Current Sensor",
|
|
349
|
+
"20": "High Precision Pressure Sensor",
|
|
350
|
+
"21": "Differential Bi directional Pressure Sensor",
|
|
351
|
+
"22": "0-24V AC/DC Optically Isolated Inputs",
|
|
352
|
+
"23": "2 Channel Thermocouple Sensor",
|
|
353
|
+
"24": "Activity Detection",
|
|
354
|
+
"25": "Asset Monitor",
|
|
355
|
+
"26": "Pressure Sensor",
|
|
356
|
+
"27": "Environmental Sensor",
|
|
357
|
+
"28": "3 Channel Current Sensor",
|
|
358
|
+
"29": "Linear Displacement Sensor",
|
|
359
|
+
"30": "Structural Monitoring Sensor",
|
|
360
|
+
"31": "Air Quality TVOC eCO2 Temperature and Humidity Sensor",
|
|
361
|
+
"32": "Particulate Matter Sensor",
|
|
362
|
+
"33": "AC Current Detect Sensor",
|
|
363
|
+
"34": "Tank Level Sensor",
|
|
364
|
+
"35": "1 Channel Counter",
|
|
365
|
+
"36": "2 Channel Counter",
|
|
366
|
+
"37": "7 Channel Push Notification",
|
|
367
|
+
"39": "3 Wire RTD Temperature Sensor",
|
|
368
|
+
"40": "Enterprise Vibration Sensor",
|
|
369
|
+
"41": "RPM Proximity Sensor",
|
|
370
|
+
"42": "0-24VDC Voltage Monitor",
|
|
371
|
+
"43": "Dual Temperature Humidity Current Detection Sensor",
|
|
372
|
+
"44": "CO2 Gas Sensor",
|
|
373
|
+
"45": "4-20mA 16-Bit Input Transmitter",
|
|
374
|
+
"46": "Motion Detection Sensor",
|
|
375
|
+
"47": "Wireless Tilt Sensor",
|
|
376
|
+
"48": "4-20mA 16-Bit Input Transmitter",
|
|
377
|
+
"49": "6 Channel Thermocouple Sensor",
|
|
378
|
+
"50": "Predictive Maintenance Sensor",
|
|
379
|
+
"51": "6 Channel Current Sensor",
|
|
380
|
+
"52": "2 Channel 4-20mA Receiver",
|
|
381
|
+
"53": "Air Quality CO2 and PM Sensor",
|
|
382
|
+
"54": "3 Channel RTD",
|
|
383
|
+
"56": "2 Channel 0-10VDC Receiver",
|
|
384
|
+
"60": "Air Velocity, Pressure, & Temperature Sensor",
|
|
385
|
+
"61": "pH Temperature Sensor",
|
|
386
|
+
"62": "ORP Temperature Sensor",
|
|
387
|
+
"63": "pH and ORPTemperature Sensor",
|
|
388
|
+
"64": "EC Salinity TDS and Temperature Sensor",
|
|
389
|
+
"65": "DO and Temperature Sensor",
|
|
390
|
+
"66": "DO EC Salinity TDS and Temperature Sensor",
|
|
391
|
+
"67": "PAR Sensor",
|
|
392
|
+
"69": "Soil Moisture Temperature and EC Sensor",
|
|
393
|
+
// "70": "2 Channel Soil Moisture Temperature and EC Sensor",
|
|
394
|
+
"71": "3 Channel Soil Moisture Temperature and EC Sensor",
|
|
395
|
+
"72": "SDI Soil Moisture Temperature Moisture Probe",
|
|
396
|
+
"75": "Siemens Air Velocity Probe",
|
|
397
|
+
"76": "Wireless CO Gas Sensor",
|
|
398
|
+
"77": "3 Channel SDI Soil Moisture Temperature Moisture Probe",
|
|
399
|
+
"79": "Oil Analysis Sensor",
|
|
400
|
+
"80": "One Channel Vibration Plus",
|
|
401
|
+
"81": "Two Channel Vibration Plus",
|
|
402
|
+
"82": "Condition Based/Predictive Maintenance Sensor",
|
|
403
|
+
"84": "Type 84 - Standalone Smart Vibration Sensor",
|
|
404
|
+
"101": "Pro Vibration",
|
|
405
|
+
"102": "Strain Gauge",
|
|
406
|
+
"200": "4-20mA Pass Through",
|
|
407
|
+
"202": "Weather Station",
|
|
408
|
+
"502": "C_50-27",
|
|
409
|
+
"505": "Custom_SAP_Current_1C",
|
|
410
|
+
"506": "Custom_SAP_Current_3C",
|
|
411
|
+
"507": "Custom_SAP_Current_7C",
|
|
412
|
+
"510": "GreenLight",
|
|
413
|
+
"515": "Custom_SAP_Current_48C",
|
|
414
|
+
"519": "Type 519: Custom Vibration 1",
|
|
415
|
+
"520": "Type 520: Custom 6 Channel Current Temperature & Humidity",
|
|
416
|
+
"10000": "4-Channel Relay",
|
|
417
|
+
"10006": "4-Channel 4-20 mA Input",
|
|
418
|
+
"10007": "4-Channel Current Monitor",
|
|
419
|
+
"10012": "2-Relay + 2-Input",
|
|
420
|
+
}
|
|
421
|
+
return types[this.sensor_type];
|
|
422
|
+
}
|
|
423
|
+
return 'Wireless Device';
|
|
424
|
+
},
|
|
425
|
+
oneditprepare: function() {
|
|
426
|
+
var that = this;
|
|
427
|
+
try {
|
|
428
|
+
$("#node-config-input-addr").autocomplete( "destroy" );
|
|
429
|
+
} catch(err) {}
|
|
430
|
+
$('.ncd-dependent[sensor_type]').hide();
|
|
431
|
+
// loops through all settings that need validation and sets default values
|
|
432
|
+
// Solves library upgrades that add new properties
|
|
433
|
+
for(let prop in this._def.defaults){
|
|
434
|
+
if(typeof this._def.defaults[prop].validate == 'function'){
|
|
435
|
+
if(this[prop] == undefined || this[prop] == ""){
|
|
436
|
+
$('#node-input-'+prop).val(this._def.defaults[prop].value);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
$('#node-input-connection').change(function(){
|
|
441
|
+
$.getJSON('ncd/wireless/needs_input/'+$(this).val(),function(data) {
|
|
442
|
+
if(data.is_raw){
|
|
443
|
+
that.needs_input = 1;
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
});
|
|
447
|
+
$('#node-input-sensor_type').change(() => {
|
|
448
|
+
var type = $('#node-input-sensor_type').val();
|
|
449
|
+
$('.ncd-dependent').hide();
|
|
450
|
+
$('.ncd-dependent[data-sensor-'+type+']').show();
|
|
451
|
+
if(parseInt(type) >= 10000){
|
|
452
|
+
var current = $('#node-input-auto_config').prop('checked');
|
|
453
|
+
if(!current) $('#node-input-auto_config').click();
|
|
454
|
+
$('#node-input-auto_config').data('_checked', current).closest('.form-row').hide();
|
|
455
|
+
this.inputs = 1;
|
|
456
|
+
}else{
|
|
457
|
+
$("#node-input-auto_config").closest('.form-row').show();
|
|
458
|
+
if (typeof $("#node-input-auto_config").data('_checked') !== 'undefined'){
|
|
459
|
+
$('#node-input-auto_config').prop('checked', $("#node-input-auto_config").data('_checked')).click().removeData('_checked');
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
$("#node-lookup-sensors").click(function() {
|
|
464
|
+
$("#node-lookup-sensors").addClass('disabled');
|
|
465
|
+
var connection = RED.nodes.node($('#node-input-connection').val())
|
|
466
|
+
$.getJSON('ncd/wireless/sensors/list/'+$('#node-input-connection').val(),function(data) {
|
|
467
|
+
$("#node-lookup-sensors").removeClass('disabled');
|
|
468
|
+
var macs = [];
|
|
469
|
+
var sensors = {};
|
|
470
|
+
$.each(data, function(i, sensor) {
|
|
471
|
+
macs.push(sensor.mac);
|
|
472
|
+
sensors[sensor.mac] = sensor;
|
|
473
|
+
});
|
|
474
|
+
$("#node-input-addr").autocomplete({
|
|
475
|
+
source:macs,
|
|
476
|
+
minLength:0,
|
|
477
|
+
close: function( event, ui ) {
|
|
478
|
+
$("#node-input-addr").autocomplete( "destroy" );
|
|
479
|
+
},
|
|
480
|
+
select: function(e, ui){
|
|
481
|
+
$('#node-input-sensor_type option[value="'+sensors[ui.item.value].type+'"]').prop('selected', true);
|
|
482
|
+
$('#node-input-sensor_type').change();
|
|
483
|
+
$('#node-input-node_id').val(sensors[ui.item.value].nodeId);
|
|
484
|
+
}
|
|
485
|
+
}).autocomplete("search","");
|
|
486
|
+
});
|
|
487
|
+
});
|
|
488
|
+
$('.section .section-control').each(function(){
|
|
489
|
+
var handleClick = function(){
|
|
490
|
+
$(this).closest('.section').find('input, select').not('.section-control').prop('disabled', !$(this).is(':checked'));
|
|
491
|
+
}
|
|
492
|
+
$(this).click(handleClick);
|
|
493
|
+
handleClick.apply(this);
|
|
494
|
+
});
|
|
495
|
+
$('#config_sensor').click(function(){
|
|
496
|
+
if($(this).prop('disabled')) return;
|
|
497
|
+
$(this).prop('disabled', true).text('Configuring...');
|
|
498
|
+
$('#config_response').empty();
|
|
499
|
+
$.getJSON('ncd/wireless/sensors/configure/'+that.id,function(data) {
|
|
500
|
+
|
|
501
|
+
var clean = true;
|
|
502
|
+
for(var i in data){
|
|
503
|
+
if(data[i] !== true){
|
|
504
|
+
clean = false;
|
|
505
|
+
$('#config_response').append('<div>Problem setting '+i+': '+data[i]);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
if(clean){
|
|
509
|
+
$('#config_response').append('<div>All configurations successfully set</div>');;
|
|
510
|
+
}
|
|
511
|
+
$('#config_sensor').prop('disabled', false).text('Configure Now');
|
|
512
|
+
});
|
|
513
|
+
});
|
|
514
|
+
$('.ncd-config-toggle').each(function(){
|
|
515
|
+
var handleClick = function(){
|
|
516
|
+
// if($(this).prop('checked') && $(this).data('target-id')) {
|
|
517
|
+
// $('#'+$(this).data('target-id')).prop('disabled', false);
|
|
518
|
+
// }
|
|
519
|
+
// else{
|
|
520
|
+
// $('#'+$(this).data('target-id')).prop('disabled', true);
|
|
521
|
+
// }
|
|
522
|
+
|
|
523
|
+
if($(this).prop('checked')){
|
|
524
|
+
if($(this).data('target-id')){
|
|
525
|
+
$('#'+$(this).data('target-id')).prop('disabled', false);
|
|
526
|
+
}
|
|
527
|
+
if($(this).data('target-class')){
|
|
528
|
+
$('.'+$(this).data('target-class')).prop('disabled', false);
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
else{
|
|
532
|
+
if($(this).data('target-id')){
|
|
533
|
+
$('#'+$(this).data('target-id')).prop('disabled', true);
|
|
534
|
+
}
|
|
535
|
+
if($(this).data('target-class')){
|
|
536
|
+
$('.'+$(this).data('target-class')).prop('disabled', true);
|
|
537
|
+
}
|
|
538
|
+
// $('#'+$(this).data('target-id')).prop('disabled', true);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
$(this).click(handleClick);
|
|
542
|
+
handleClick.apply(this);
|
|
543
|
+
});
|
|
544
|
+
},
|
|
545
|
+
});
|
|
546
|
+
</script>
|
|
547
|
+
<script type="text/x-red" data-template-name="ncd-wireless-node">
|
|
548
|
+
<div class="form-row">
|
|
549
|
+
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
|
|
550
|
+
<input type="text" id="node-input-name" placeholder="Name">
|
|
551
|
+
</div>
|
|
552
|
+
<div class="form-row">
|
|
553
|
+
<label for="node-input-connection"><i class="icon-tag"></i> Serial Device</label>
|
|
554
|
+
<select id="node-input-connection"></select>
|
|
555
|
+
</div>
|
|
556
|
+
<div class="form-row">
|
|
557
|
+
<label for="node-input-config_comm"><i class="icon-tag"></i> Serial Device for Config</label>
|
|
558
|
+
<select id="node-input-config_comm"></select>
|
|
559
|
+
</div>
|
|
560
|
+
<div class="form-row">
|
|
561
|
+
<label for="node-input-addr"><i class="fa fa-random"></i> Mac Address</label>
|
|
562
|
+
<input type="text" id="node-input-addr" style="width:60%;" >
|
|
563
|
+
<a id="node-lookup-sensors" class="btn"><i id="node-lookup-sensors-icon" class="fa fa-search"></i></a>
|
|
564
|
+
</div>
|
|
565
|
+
<div class="form-row">
|
|
566
|
+
<label for="node-input-sensor_type"><i class="icon-tag"></i> Sensor Type</label>
|
|
567
|
+
<select id="node-input-sensor_type">
|
|
568
|
+
<option value="1">Temperature and Humidity</option>
|
|
569
|
+
<option value="2">2ch Push Notification/Voltage Detection</option>
|
|
570
|
+
<option value="3">ADC/4-20 mA/DC Voltage</option>
|
|
571
|
+
<option value="4">Thermocouple</option>
|
|
572
|
+
<option value="5">Accel, Gyro, Magneto and Temperature</option>
|
|
573
|
+
<option value="6">Temperature and Barometeric Pressure</option>
|
|
574
|
+
<option value="7">Impact Detection</option>
|
|
575
|
+
<option value="8">Vibration</option>
|
|
576
|
+
<option value="9">Proximity</option>
|
|
577
|
+
<option value="10">Light</option>
|
|
578
|
+
<option value="12">3-channel Thermocouple</option>
|
|
579
|
+
<option value="13">Current Monitor</option>
|
|
580
|
+
<option value="14">10-Bit 1-Channel 4-20mA</option>
|
|
581
|
+
<option value="15">10-Bit 1-Channel ADC</option>
|
|
582
|
+
<option value="16">Soil Moisture Sensor</option>
|
|
583
|
+
<option value="17">24-Bit AC Voltage Monitor</option>
|
|
584
|
+
<option value="18">Pulse/Frequency</option>
|
|
585
|
+
<option value="19">2-channel 24-bit Current Monitor</option>
|
|
586
|
+
<option value="20">Precision Pressure & Temperature (pA)</option>
|
|
587
|
+
<option value="21">AMS Pressure & Temperature</option>
|
|
588
|
+
<option value="22">0-24V AC/DC Optically Isolated Inputs</option>
|
|
589
|
+
<option value="23">2-channel Thermocouple</option>
|
|
590
|
+
<option value="24">Activity Detection</option>
|
|
591
|
+
<option value="25">Asset Monitor</option>
|
|
592
|
+
<option value="26">Pressure & Temperature (PSI)</option>
|
|
593
|
+
<option value="27">Environmental</option>
|
|
594
|
+
<option value="28">3-Channel Current Monitor</option>
|
|
595
|
+
<option value="29">Linear Displacement Sensor</option>
|
|
596
|
+
<option value="30">Structural Monitoring Sensor</option>
|
|
597
|
+
<option value="31">Air Quality TVOC eCO2 Temperature and Humidity Sensor</option>
|
|
598
|
+
<option value="32">Particulate Matter Sensor</option>
|
|
599
|
+
<option value="33">AC Current Detect Sensor</option>
|
|
600
|
+
<option value="34">Wireless Tank Level</option>
|
|
601
|
+
<option value="35">One Channel Counter</option>
|
|
602
|
+
<option value="36">Two Channel Counter</option>
|
|
603
|
+
<option value="37">7 Channel Push Notification</option>
|
|
604
|
+
<option value="39">RTD Temperature Sensor</option>
|
|
605
|
+
<option value="40">Vibration w/Time Domain (partial support)</option>
|
|
606
|
+
<option value="41">RPM Proximity Sensor</option>
|
|
607
|
+
<option value="42">0-24VDC Voltage Monitor</option>
|
|
608
|
+
<option value="43">Dual Temperature Humidity Current Detection Sensor</option>
|
|
609
|
+
<option value="44">Wireless CO2 Gas Sensor</option>
|
|
610
|
+
<option value="45">4-20mA 16-Bit Input Transmitter</option>
|
|
611
|
+
<option value="46">Motion Detection Sensor</option>
|
|
612
|
+
<option value="47">Type 47: Tilt Sensor</option>
|
|
613
|
+
<option value="48">4-20mA 16-Bit Input Transmitter</option>
|
|
614
|
+
<option value="49">6 Channel Thermocouple Sensor</option>
|
|
615
|
+
<option value="50">Predictive Maintenance Sensor</option>
|
|
616
|
+
<option value="51">6 Channel Current Sensor</option>
|
|
617
|
+
<option value="52">2 Channel 4-20mA Receiver</option>
|
|
618
|
+
<option value="53">Air Quality CO2 and PM Sensor</option>
|
|
619
|
+
<option value="54">3 Channel RTD</option>
|
|
620
|
+
<option value="56">2 Channel 0-10VDC Receiver</option>
|
|
621
|
+
<option value="60">Air Velocity and Precision Pressure & Temperature Sensor</option>
|
|
622
|
+
<option value="61">pH Temperature Sensor</option>
|
|
623
|
+
<option value="62">ORP Temperature Sensor</option>
|
|
624
|
+
<option value="63">pH and ORPTemperature Sensor</option>
|
|
625
|
+
<option value="64">EC Salinity TDS and Temperature Sensor</option>
|
|
626
|
+
<option value="65">DO and Temperature Sensor</option>
|
|
627
|
+
<option value="66">DO EC Salinity TDS and Temperature Sensor</option>
|
|
628
|
+
<option value="67">PAR Sensor</option>
|
|
629
|
+
<option value="69">Soil Moisture Temperature and EC Sensor</option>
|
|
630
|
+
<!--
|
|
631
|
+
<option value="70">2 Channel Soil Moisture Temperature and EC Sensor</option>
|
|
632
|
+
-->
|
|
633
|
+
<option value="71">3 Channel Soil Moisture Temperature and EC Sensor</option>
|
|
634
|
+
<option value="72">SDI-12 Wireless</option>
|
|
635
|
+
<option value="75">Siemens Air Velocity Probe</option>
|
|
636
|
+
<option value="76">Wireless CO Gas Sensor</option>
|
|
637
|
+
<option value="77">3 Channel SDI Soil Moisture Temperature Moisture Probe</option>
|
|
638
|
+
<option value="79">Oil Analysis Sensor</option>
|
|
639
|
+
<option value="80">One Channel Vibration Plus</option>
|
|
640
|
+
<option value="81">Two Channel Vibration Plus</option>
|
|
641
|
+
<option value="82">Condition Based/Predictive Maintenance Sensor</option>
|
|
642
|
+
<option value="84">Type 84 - Standalone Smart Vibration Sensor</option>
|
|
643
|
+
<option value="101">Pro Vibration</option>
|
|
644
|
+
<option value="102">Strain Gauge</option>
|
|
645
|
+
<option value="200">4-20mA Pass Through</option>
|
|
646
|
+
<option value="202">Weather Station</option>
|
|
647
|
+
<option value="502">C_50-27</option>
|
|
648
|
+
<option value="505">Custom_SAP_Current_1C</option>
|
|
649
|
+
<option value="506">Custom_SAP_Current_3C</option>
|
|
650
|
+
<option value="507">Custom_SAP_Current_7C</option>
|
|
651
|
+
<option value="510">GreenLight</option>
|
|
652
|
+
<option value="515">Custom_SAP_Current_48C</option>
|
|
653
|
+
<option value="519">Type 519: Custom Vibration 1</option>
|
|
654
|
+
<option value="520">Type 520: Custom 6 Channel Current Temperature & Humidity</option>
|
|
655
|
+
<option value="10000">4-Channel Relay</option>
|
|
656
|
+
<option value="10006">4-Channel 4-20 mA Input</option>
|
|
657
|
+
<option value="10007">4-Channel Current Monitor</option>
|
|
658
|
+
<option value="10012">2-Relay + 2-Input</option>
|
|
659
|
+
</select>
|
|
660
|
+
</div>
|
|
661
|
+
<div class="section">
|
|
662
|
+
<h3>Advanced</h3>
|
|
663
|
+
<div>
|
|
664
|
+
<div class="form-row">
|
|
665
|
+
<label for="node-input-auto_config"><i class="icon-tag"></i> Auto Config</label>
|
|
666
|
+
<input class="section-control" type="checkbox" id="node-input-auto_config" value="1">
|
|
667
|
+
</div>
|
|
668
|
+
<div class="form-row 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-520>
|
|
669
|
+
<hr>
|
|
670
|
+
<label for="node-input-on_the_fly_enable"><i class="icon-tag"></i> OTF Config*</label>
|
|
671
|
+
<input type="checkbox" id="node-input-on_the_fly_enable" value="1">
|
|
672
|
+
<p class="caption">
|
|
673
|
+
*OTF: On The Fly.<br>This option allows for configuring the sensor without entering configuration mode.<br>
|
|
674
|
+
This option is in development and few configuration options are supported.
|
|
675
|
+
</p>
|
|
676
|
+
<hr>
|
|
677
|
+
</div>
|
|
678
|
+
<div class="form-row ncd-active-check">
|
|
679
|
+
<strong>Wait for Network Formation</strong>
|
|
680
|
+
<div>
|
|
681
|
+
<label for="node-input-form_network"><i class="icon-tag"></i>Enable</label>
|
|
682
|
+
<input type="checkbox" id="node-input-form_network" value="1">
|
|
683
|
+
</div>
|
|
684
|
+
<p class="caption">
|
|
685
|
+
Enabling this adds commands to ensure the mesh network is <br>fully formed before sending configuration<br>
|
|
686
|
+
This will increase the reliability of confiugration commands but slow down configuration
|
|
687
|
+
</p>
|
|
688
|
+
</div>
|
|
689
|
+
<div class="form-row ncd-active-check">
|
|
690
|
+
<strong>Destination Address</strong>
|
|
691
|
+
<div>
|
|
692
|
+
<label for="node-input-destination_active">Active:</label>
|
|
693
|
+
<input type="checkbox" id="node-input-destination_active" class="ncd-config-toggle" data-target-class="node-input-destination" value="1">
|
|
694
|
+
</div>
|
|
695
|
+
<div>
|
|
696
|
+
<label for="node-input-destination"><i class="icon-tag"></i>Address:</label>
|
|
697
|
+
<input type="text" id="node-input-destination" value="0000FFFF">
|
|
698
|
+
</div>
|
|
699
|
+
<p class="caption">
|
|
700
|
+
Default value: 0000FFFF for Broadcast Mode<br>
|
|
701
|
+
Example of targeted address: 41D5EC37
|
|
702
|
+
</p>
|
|
703
|
+
</div>
|
|
704
|
+
<div class="form-row ncd-active-check">
|
|
705
|
+
<strong>Network ID</strong>
|
|
706
|
+
<div>
|
|
707
|
+
<label for="node-input-pan_id_active">Active:</label>
|
|
708
|
+
<input type="checkbox" id="node-input-pan_id_active" class="ncd-config-toggle" data-target-class="node-input-pan_id" value="1">
|
|
709
|
+
</div>
|
|
710
|
+
<div>
|
|
711
|
+
<label for="node-input-pan_id"><i class="icon-tag"></i>Network ID:</label>
|
|
712
|
+
<input type="text" id="node-input-pan_id" value="7FFF">
|
|
713
|
+
</div>
|
|
714
|
+
<p class="caption">
|
|
715
|
+
Network ID Valid Range: 0-0x7FFF. Automatic sensor reboot<br><br>
|
|
716
|
+
<strong>WARNING</strong>: Setting this to active while your sensor supports OTF will put sensors into a reboot cycle.<br>
|
|
717
|
+
Once all of the sensors have had their Network ID updated you must disable this configuration.
|
|
718
|
+
</p>
|
|
719
|
+
</div>
|
|
720
|
+
<div class="form-row ncd-active-check">
|
|
721
|
+
<strong>Node ID and Delay</strong>
|
|
722
|
+
<div>
|
|
723
|
+
<label for="node-input-node_id_delay_active">Active:</label>
|
|
724
|
+
<input type="checkbox" id="node-input-node_id_delay_active" class="ncd-config-toggle" data-target-class="node-input-node_id_delay" value="1">
|
|
725
|
+
</div>
|
|
726
|
+
<div>
|
|
727
|
+
<label for="node-input-node_id"><i class="icon-tag"></i>Node ID:</label>
|
|
728
|
+
<input type="text" id="node-input-node_id" class="node-input-node_id_delay">
|
|
729
|
+
</div>
|
|
730
|
+
<div>
|
|
731
|
+
<label for="node-input-delay"><i class="icon-tag"></i>Delay:</label>
|
|
732
|
+
<input type="text" id="node-input-delay" class="node-input-node_id_delay">
|
|
733
|
+
</div>
|
|
734
|
+
</div>
|
|
735
|
+
<div class="form-row ncd-active-check">
|
|
736
|
+
<strong>Power</strong>
|
|
737
|
+
<div>
|
|
738
|
+
<label for="node-input-power_active">Active:</label>
|
|
739
|
+
<input type="checkbox" id="node-input-power_active" class="ncd-config-toggle" data-target-id="node-input-power" value="1">
|
|
740
|
+
</div>
|
|
741
|
+
<div>
|
|
742
|
+
<label for="node-input-power"><i class="icon-tag"></i>Value:</label>
|
|
743
|
+
<select id="node-input-power">
|
|
744
|
+
<option value="0">+7 dBm (5 mW)</option>
|
|
745
|
+
<option value="1">+15 dBm (32 mW)</option>
|
|
746
|
+
<option value="2">+18 dBm (63 mW)</option>
|
|
747
|
+
<option value="3">+21 dBm (125 mW)</option>
|
|
748
|
+
<option selected="selected" value="4">+24 dBm (250 mW)</option>
|
|
749
|
+
</select>
|
|
750
|
+
</div>
|
|
751
|
+
</div>
|
|
752
|
+
<div class="form-row ncd-active-check">
|
|
753
|
+
<strong>Retries</strong>
|
|
754
|
+
<div>
|
|
755
|
+
<label for="node-input-retries_active">Active:</label>
|
|
756
|
+
<input type="checkbox" id="node-input-retries_active" class="ncd-config-toggle" data-target-id="node-input-retries" value="1">
|
|
757
|
+
</div>
|
|
758
|
+
<div>
|
|
759
|
+
<label for="node-input-retries"><i class="icon-tag"></i>Value:</label>
|
|
760
|
+
<input type="text" id="node-input-retries">
|
|
761
|
+
</div>
|
|
762
|
+
</div>
|
|
763
|
+
<div class="ncd-dependent" data-sensor-13 data-sensor-10 data-sensor-3>
|
|
764
|
+
<div class="form-row">
|
|
765
|
+
<label for="node-input-change_enabled"><i class="icon-tag"></i> Enable Percentage Change Detection</label>
|
|
766
|
+
<input type="checkbox" id="node-input-change_enabled" value="1">
|
|
767
|
+
</div>
|
|
768
|
+
<div class="form-row">
|
|
769
|
+
<label for="node-input-change_pr"><i class="icon-tag"></i> Percentage Change Threshold (0-255)</label>
|
|
770
|
+
<input type="text" id="node-input-change_pr">
|
|
771
|
+
</div>
|
|
772
|
+
<div class="form-row">
|
|
773
|
+
<label for="node-input-change_interval"><i class="icon-tag"></i> Percentage Change Interval (seconds)</label>
|
|
774
|
+
<input type="text" id="node-input-change_interval">
|
|
775
|
+
</div>
|
|
776
|
+
</div>
|
|
777
|
+
<!-- Current Monitor Options -->
|
|
778
|
+
<div class="ncd-dependent" data-sensor-13>
|
|
779
|
+
<div class="form-row">
|
|
780
|
+
<label for="node-input-cm_calibration"><i class="icon-tag"></i> Calibration Option (0 - 655.35)</label>
|
|
781
|
+
<input type="text" id="node-input-cm_calibration">
|
|
782
|
+
</div>
|
|
783
|
+
</div>
|
|
784
|
+
<!-- Barometric Pressure Options -->
|
|
785
|
+
<div class="ncd-dependent" data-sensor-6>
|
|
786
|
+
<div class="form-row">
|
|
787
|
+
<label for="node-input-bp_altitude"><i class="icon-tag"></i> Baseline Altitude (0 - 65535 meters)</label>
|
|
788
|
+
<input type="text" id="node-input-bp_altitude">
|
|
789
|
+
</div>
|
|
790
|
+
<div class="form-row">
|
|
791
|
+
<label for="node-input-bp_pressure"><i class="icon-tag"></i> Baseline Pressure (0 - 14000 mbar)</label>
|
|
792
|
+
<input type="text" id="node-input-bp_pressure">
|
|
793
|
+
</div>
|
|
794
|
+
<div class="form-row">
|
|
795
|
+
<label for="node-input-bp_temp_prec"><i class="icon-tag"></i> Temperature Precision</label>
|
|
796
|
+
<select id="node-input-bp_temp_prec">
|
|
797
|
+
<option selected="selected" value="0">0.012</option>
|
|
798
|
+
<option value="2">0.008</option>
|
|
799
|
+
<option value="4">0.005</option>
|
|
800
|
+
<option value="6">0.003</option>
|
|
801
|
+
<option value="8">0.002</option>
|
|
802
|
+
</select>
|
|
803
|
+
</div>
|
|
804
|
+
<div class="form-row">
|
|
805
|
+
<label for="node-input-bp_press_prec"><i class="icon-tag"></i> Pressure Precision</label>
|
|
806
|
+
<select id="node-input-bp_press_prec">
|
|
807
|
+
<option selected="selected" value="0">0.065</option>
|
|
808
|
+
<option value="2">0.042</option>
|
|
809
|
+
<option value="4">0.027</option>
|
|
810
|
+
<option value="6">0.018</option>
|
|
811
|
+
<option value="8">0.012</option>
|
|
812
|
+
</select>
|
|
813
|
+
</div>
|
|
814
|
+
</div>
|
|
815
|
+
<!-- Magneto/Gyro/Accel/Temp Options -->
|
|
816
|
+
<div class="ncd-dependent" data-sensor-5>
|
|
817
|
+
<div class="form-row">
|
|
818
|
+
<label for="node-input-amgt_accel"><i class="icon-tag"></i> Acceleration Range</label>
|
|
819
|
+
<select id="node-input-amgt_accel">
|
|
820
|
+
<option selected="selected" value="0">±2g</option>
|
|
821
|
+
<option value="1">±4g</option>
|
|
822
|
+
<option value="3">±8g</option>
|
|
823
|
+
<option value="4">±16g</option>
|
|
824
|
+
</select>
|
|
825
|
+
</div>
|
|
826
|
+
<div class="form-row">
|
|
827
|
+
<label for="node-input-amgt_mag"><i class="icon-tag"></i> Magnetometer Gain</label>
|
|
828
|
+
<select id="node-input-amgt_mag">
|
|
829
|
+
<option selected="selected" value="0">±4 gauss</option>
|
|
830
|
+
<option value="1">±8 gauss</option>
|
|
831
|
+
<option value="2">±12 gauss</option>
|
|
832
|
+
<option value="3">±16 gauss</option>
|
|
833
|
+
</select>
|
|
834
|
+
</div>
|
|
835
|
+
<div class="form-row">
|
|
836
|
+
<label for="node-input-amgt_gyro"><i class="icon-tag"></i> Gyroscope Scale</label>
|
|
837
|
+
<select id="node-input-amgt_gyro">
|
|
838
|
+
<option selected="selected" value="0">±245dps</option>
|
|
839
|
+
<option value="1">±500dps</option>
|
|
840
|
+
<option value="2">±2000dps</option>
|
|
841
|
+
</select>
|
|
842
|
+
</div>
|
|
843
|
+
</div>
|
|
844
|
+
<div class="ncd-dependent" data-sensor-7 data-sensor-24>
|
|
845
|
+
<div class="form-row">
|
|
846
|
+
<label for="node-input-impact_accel"><i class="icon-tag"></i> Acceleration Range</label>
|
|
847
|
+
<select id="node-input-impact_accel">
|
|
848
|
+
<option selected="selected" value="0">±2g</option>
|
|
849
|
+
<option value="1">±4g</option>
|
|
850
|
+
<option value="3">±8g</option>
|
|
851
|
+
<option value="4">±16g</option>
|
|
852
|
+
</select>
|
|
853
|
+
</div>
|
|
854
|
+
<div class="form-row">
|
|
855
|
+
<label for="node-input-impact_data_rate"><i class="icon-tag"></i> Data Rate</label>
|
|
856
|
+
<select id="node-input-impact_data_rate">
|
|
857
|
+
<option selected="selected" value="0">Power Down</option>
|
|
858
|
+
<option value="1">1</option>
|
|
859
|
+
<option value="2">10</option>
|
|
860
|
+
<option value="3">25</option>
|
|
861
|
+
<option value="4">50</option>
|
|
862
|
+
<option value="5">100</option>
|
|
863
|
+
<option value="6">200</option>
|
|
864
|
+
<option value="7">400</option>
|
|
865
|
+
<option value="8">1600</option>
|
|
866
|
+
<option value="9">5376</option>
|
|
867
|
+
</select>
|
|
868
|
+
</div>
|
|
869
|
+
<div class="form-row">
|
|
870
|
+
<label for="node-input-impact_threshold"><i class="icon-tag"></i> Threshold (1 - 127)</label>
|
|
871
|
+
<input id="node-input-impact_threshold">
|
|
872
|
+
</div>
|
|
873
|
+
<div class="form-row">
|
|
874
|
+
<label for="node-input-impact_duration"><i class="icon-tag"></i> Duration (1 - 127)</label>
|
|
875
|
+
<input id="node-input-impact_duration">
|
|
876
|
+
</div>
|
|
877
|
+
</div>
|
|
878
|
+
<div class="ncd-dependent" data-sensor-24>
|
|
879
|
+
//activ_interr_x
|
|
880
|
+
<div class="form-row">
|
|
881
|
+
<label for="node-input-activ_interr_x"><i class="icon-tag"></i> Interrupt X-Axis</label>
|
|
882
|
+
<select id="node-input-activ_interr_x">
|
|
883
|
+
<option value="1">High</option>
|
|
884
|
+
<option value="0">Low</option>
|
|
885
|
+
</select>
|
|
886
|
+
</div>
|
|
887
|
+
<div class="form-row">
|
|
888
|
+
<label for="node-input-activ_interr_y"><i class="icon-tag"></i> Interrupt Y-Axis</label>
|
|
889
|
+
<select id="node-input-activ_interr_y">
|
|
890
|
+
<option value="2">High</option>
|
|
891
|
+
<option value="0">Low</option>
|
|
892
|
+
</select>
|
|
893
|
+
</div>
|
|
894
|
+
<div class="form-row">
|
|
895
|
+
<label for="node-input-activ_interr_z"><i class="icon-tag"></i> Interrupt Z-Axis</label>
|
|
896
|
+
<select id="node-input-activ_interr_z">
|
|
897
|
+
<option value="4">High</option>
|
|
898
|
+
<option value="0">Low</option>
|
|
899
|
+
</select>
|
|
900
|
+
</div>
|
|
901
|
+
<div class="form-row">
|
|
902
|
+
<label for="node-input-activ_interr_op"><i class="icon-tag"></i> Interrupt Logic</label>
|
|
903
|
+
<select id="node-input-activ_interr_op">
|
|
904
|
+
<option value="8">And</option>
|
|
905
|
+
<option value="0">Or</option>
|
|
906
|
+
</select>
|
|
907
|
+
</div>
|
|
908
|
+
</div>
|
|
909
|
+
<div class="ncd-dependent" data-sensor-40>
|
|
910
|
+
<div class="form-row">
|
|
911
|
+
<label for="node-input-filtering"><i class="icon-tag"></i> Data Filtering</label>
|
|
912
|
+
<select id="node-input-filtering">
|
|
913
|
+
<option value="1">Enable</option>
|
|
914
|
+
<option value="0">Disable</option>
|
|
915
|
+
</select>
|
|
916
|
+
</div>
|
|
917
|
+
<div class="form-row">
|
|
918
|
+
<label for="node-input-data_rate"><i class="icon-tag"></i> Data Rate</label>
|
|
919
|
+
<select id="node-input-data_rate">
|
|
920
|
+
<option value="5">400 Hz</option>
|
|
921
|
+
<option value="6">800 Hz</option>
|
|
922
|
+
<option value="7">1600 Hz</option>
|
|
923
|
+
<option value="12">3200 Hz</option>
|
|
924
|
+
<option value="13">6400 Hz</option>
|
|
925
|
+
<option value="14">12800 Hz</option>
|
|
926
|
+
<option value="15">25600 Hz</option>
|
|
927
|
+
</select>
|
|
928
|
+
</div>
|
|
929
|
+
<div class="form-row">
|
|
930
|
+
<label for="node-input-time_series"><i class="icon-tag"></i> Time Series Data (unimplemented)</label>
|
|
931
|
+
<select id="node-input-time_series">
|
|
932
|
+
<option value="0">Disabled</option>
|
|
933
|
+
<option value="1">Enabled</option>
|
|
934
|
+
</select>
|
|
935
|
+
</div>
|
|
936
|
+
<div class="form-row">
|
|
937
|
+
<label for="node-input-reading_type"><i class="icon-tag"></i> Reading Type</label>
|
|
938
|
+
<select id="node-input-reading_type">
|
|
939
|
+
<option value="1">Acceleration</option>
|
|
940
|
+
<option value="2">Velocity</option>
|
|
941
|
+
</select>
|
|
942
|
+
</div>
|
|
943
|
+
</div>
|
|
944
|
+
<div class="ncd-dependent" data-sensor-44>
|
|
945
|
+
<hr>
|
|
946
|
+
<div class="form-row">
|
|
947
|
+
<p><strong>Advanced: Set Sensor Forced Calibration</strong></p>
|
|
948
|
+
<p>This command will take 3 minutes to execute as the sensor calibrates. Do not reboot the sensor during this time. The configuration completed command through the UI is referring to the receipt and acknowledgement of the configuration packet.</p>
|
|
949
|
+
</div>
|
|
950
|
+
<div class="form-row">
|
|
951
|
+
<label for="node-input-force_calibration_co2_auto_config"><i class="icon-tag"></i> Auto Config</label>
|
|
952
|
+
<input type="checkbox" id="node-input-force_calibration_co2_auto_config" class="ncd-config-toggle" data-target-id="node-input-force_calibration_co2" value="1">
|
|
953
|
+
</div>
|
|
954
|
+
<div class="form-row">
|
|
955
|
+
<label for="node-input-force_calibration_co2"><i class="icon-tag"></i> Value</label>
|
|
956
|
+
<input type="text" id="node-input-force_calibration_co2" placeholder="455" value="455">
|
|
957
|
+
</div>
|
|
958
|
+
</div>
|
|
959
|
+
|
|
960
|
+
<div class="ncd-dependent" data-sensor-84 data-sensor-519>
|
|
961
|
+
<hr>
|
|
962
|
+
<div class="form-row ncd-active-check">
|
|
963
|
+
<strong>LED Alert Mode</strong>
|
|
964
|
+
<p>Choose whether the LED indicator should be based on Acceleration or Velocity</p>
|
|
965
|
+
<div>
|
|
966
|
+
<label for="node-input-led_alert_mode_84_active"><i class="icon-tag"></i>Active:</label>
|
|
967
|
+
<input type="checkbox" id="node-input-led_alert_mode_84_active" class="ncd-config-toggle" data-target-id="node-input-led_alert_mode_84" value="1">
|
|
968
|
+
</div>
|
|
969
|
+
<div>
|
|
970
|
+
<label for="node-input-led_alert_mode_84"><i class="icon-tag"></i>Value:</label>
|
|
971
|
+
<select id="node-input-led_alert_mode_84">
|
|
972
|
+
<option value="0">Acceleration</option>
|
|
973
|
+
<option value="1">Velocity</option>
|
|
974
|
+
</select>
|
|
975
|
+
</div>
|
|
976
|
+
</div>
|
|
977
|
+
<div class="form-row ncd-active-check">
|
|
978
|
+
<div>
|
|
979
|
+
<strong>LED Accelerometer Threshold</strong>
|
|
980
|
+
<p>Set the minimum acceleration value to make LED indicator red.<br>This will be an integer value that increments the threshold by 50mg. A value of 1 means turn the LED red if acceleration is above 50mg, 2 means 100mg, etc.<br>**Only applies if LED Alert Mode is set to Acceleration.</p>
|
|
981
|
+
</div>
|
|
982
|
+
<div>
|
|
983
|
+
<label for="node-input-led_accelerometer_threshold_84_active"><i class="icon-tag"></i> Auto Config</label>
|
|
984
|
+
<input type="checkbox" id="node-input-led_accelerometer_threshold_84_active" class="ncd-config-toggle" data-target-id="node-input-led_accelerometer_threshold_84" value="1">
|
|
985
|
+
</div>
|
|
986
|
+
<div>
|
|
987
|
+
<label for="node-input-led_accelerometer_threshold_84"><i class="icon-tag"></i> Value</label>
|
|
988
|
+
<input type="text" id="node-input-led_accelerometer_threshold_84" placeholder="10" value="10">
|
|
989
|
+
</div>
|
|
990
|
+
</div>
|
|
991
|
+
<div class="form-row ncd-active-check">
|
|
992
|
+
<div>
|
|
993
|
+
<strong>LED Velocity Threshold</strong>
|
|
994
|
+
<p>Set the minimum velocity value to make LED indicator red.<br>This will be an integer value that increments the threshold by 2mm/second. A value of 1 means turn the LED red if velocity is above 2mm/sec, 2 means 4mm/second, etc.<br>**Only applies if LED Alert Mode is set to Velocity.</p>
|
|
995
|
+
</div>
|
|
996
|
+
<div>
|
|
997
|
+
<label for="node-input-led_velocity_threshold_84_active"><i class="icon-tag"></i> Auto Config</label>
|
|
998
|
+
<input type="checkbox" id="node-input-led_velocity_threshold_84_active" class="ncd-config-toggle" data-target-id="node-input-led_velocity_threshold_84" value="1">
|
|
999
|
+
</div>
|
|
1000
|
+
<div>
|
|
1001
|
+
<label for="node-input-led_velocity_threshold_84"><i class="icon-tag"></i> Value</label>
|
|
1002
|
+
<input type="text" id="node-input-led_velocity_threshold_84" placeholder="10" value="10">
|
|
1003
|
+
</div>
|
|
1004
|
+
</div>
|
|
1005
|
+
<div class="form-row ncd-active-check">
|
|
1006
|
+
<div>
|
|
1007
|
+
<strong>Set Acceleration Wake/Interrupt Threshold</strong>
|
|
1008
|
+
<p>Set a breakpoint for sensor to wake up and broadcast readings. This is an interrupt based configuration ideal for devices with minimal workload/uptime.</p>
|
|
1009
|
+
<p>This will be an integer value that increments the interrupt threshold by 50mg. A value of 1 means turn the wake the sensor if acceleration is above 50mg, 2 means 100mg, etc.</p>
|
|
1010
|
+
</div>
|
|
1011
|
+
<div>
|
|
1012
|
+
<label for="node-input-acceleration_interrupt_threshold_84_active"><i class="icon-tag"></i> Auto Config</label>
|
|
1013
|
+
<input type="checkbox" id="node-input-acceleration_interrupt_threshold_84_active" class="ncd-config-toggle" data-target-id="node-input-acceleration_interrupt_threshold_84" value="1">
|
|
1014
|
+
</div>
|
|
1015
|
+
<div>
|
|
1016
|
+
<label for="node-input-acceleration_interrupt_threshold_84"><i class="icon-tag"></i> Value</label>
|
|
1017
|
+
<input type="text" id="node-input-acceleration_interrupt_threshold_84" placeholder="10" value="10">
|
|
1018
|
+
</div>
|
|
1019
|
+
</div>
|
|
1020
|
+
</div>
|
|
1021
|
+
|
|
1022
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1023
|
+
<hr>
|
|
1024
|
+
<div class="form-row ncd-active-check">
|
|
1025
|
+
<strong>Mode</strong>
|
|
1026
|
+
<div>
|
|
1027
|
+
<label for="node-input-mode_80_active"><i class="icon-tag"></i>Active:</label>
|
|
1028
|
+
<input type="checkbox" id="node-input-mode_80_active" class="ncd-config-toggle" data-target-id="node-input-mode_80" value="1">
|
|
1029
|
+
</div>
|
|
1030
|
+
<div>
|
|
1031
|
+
<label for="node-input-mode_80"><i class="icon-tag"></i>Value:</label>
|
|
1032
|
+
<select id="node-input-mode_80">
|
|
1033
|
+
<option value="0">Processed</option>
|
|
1034
|
+
<option value="1">Raw</option>
|
|
1035
|
+
<option value="2">Processed + Raw on demand</option>
|
|
1036
|
+
</select>
|
|
1037
|
+
</div>
|
|
1038
|
+
</div>
|
|
1039
|
+
<div class="form-row ncd-active-check">
|
|
1040
|
+
<strong>Measurement Mode</strong>
|
|
1041
|
+
<div>
|
|
1042
|
+
<label for="node-input-measurement_mode_80_active">Active:</label>
|
|
1043
|
+
<input type="checkbox" id="node-input-measurement_mode_80_active" class="ncd-config-toggle" data-target-id="node-input-measurement_mode_80" value="1">
|
|
1044
|
+
</div>
|
|
1045
|
+
<div>
|
|
1046
|
+
<label for="node-input-measurement_mode_80"><i class="icon-tag"></i>Value:</label>
|
|
1047
|
+
<select id="node-input-measurement_mode_80">
|
|
1048
|
+
<option value="0">Processed data, acc in mg, velocity in mm/sec and displacement in mm</option>
|
|
1049
|
+
<option value="1">Processed data, acc in ms^2, velocity in inch/sec and displacement in milli</option>
|
|
1050
|
+
</select>
|
|
1051
|
+
</div>
|
|
1052
|
+
</div>
|
|
1053
|
+
<div class="form-row ncd-active-check">
|
|
1054
|
+
<strong>Set On Request Timeout in seconds</strong>
|
|
1055
|
+
<div>
|
|
1056
|
+
<label for="node-input-on_request_timeout_80_active">Active:</label>
|
|
1057
|
+
<input type="checkbox" id="node-input-on_request_timeout_80_active" class="ncd-config-toggle" data-target-id="node-input-on_request_timeout_80" value="1">
|
|
1058
|
+
</div>
|
|
1059
|
+
<div>
|
|
1060
|
+
<label for="node-input-on_request_timeout_80"><i class="icon-tag"></i>Value:</label>
|
|
1061
|
+
<input type="text" id="node-input-on_request_timeout_80" value="1">
|
|
1062
|
+
</div>
|
|
1063
|
+
</div>
|
|
1064
|
+
</div>
|
|
1065
|
+
|
|
1066
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-102 data-sensor-519>
|
|
1067
|
+
<hr>
|
|
1068
|
+
<div class="form-row ncd-active-check">
|
|
1069
|
+
<strong>Set Sampling Duration 1= 50msec, 2= 100msec</strong>
|
|
1070
|
+
<div>
|
|
1071
|
+
<label for="node-input-sampling_duration_101_active">Active:</label>
|
|
1072
|
+
<input type="checkbox" id="node-input-sampling_duration_101_active" class="ncd-config-toggle" data-target-id="node-input-sampling_duration_101" value="1">
|
|
1073
|
+
</div>
|
|
1074
|
+
<div>
|
|
1075
|
+
<label for="node-input-sampling_duration_101"><i class="icon-tag"></i>Value:</label>
|
|
1076
|
+
<input type="text" id="node-input-sampling_duration_101">
|
|
1077
|
+
</div>
|
|
1078
|
+
</div>
|
|
1079
|
+
</div>
|
|
1080
|
+
|
|
1081
|
+
<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>
|
|
1082
|
+
<hr>
|
|
1083
|
+
<div class="form-row ncd-active-check">
|
|
1084
|
+
<strong>Sampling Interval</strong>
|
|
1085
|
+
<div>
|
|
1086
|
+
<label for="node-input-sampling_interval_101_active">Active: </label>
|
|
1087
|
+
<input type="checkbox" id="node-input-sampling_interval_101_active" class="ncd-config-toggle" data-target-id="node-input-sampling_interval_101" value="1">
|
|
1088
|
+
</div>
|
|
1089
|
+
<div>
|
|
1090
|
+
<label for="node-input-sampling_interval_101"><i class="icon-tag"></i>Value:</label>
|
|
1091
|
+
<select id="node-input-sampling_interval_101">
|
|
1092
|
+
<option value="0">5 Minutes</option>
|
|
1093
|
+
<option value="1">10 Minutes</option>
|
|
1094
|
+
<option value="2">15 Minutes</option>
|
|
1095
|
+
<option value="3">20 Minutes</option>
|
|
1096
|
+
<option value="4">30 Minutes</option>
|
|
1097
|
+
<option value="5">60 Minutes</option>
|
|
1098
|
+
<option value="6">120 Minutes</option>
|
|
1099
|
+
<option value="7">180 Minutes</option>
|
|
1100
|
+
<option value="8">1 Minutes</option>
|
|
1101
|
+
</select>
|
|
1102
|
+
</div>
|
|
1103
|
+
</div>
|
|
1104
|
+
<div class="form-row ncd-active-check">
|
|
1105
|
+
<strong>Set RTC</strong>
|
|
1106
|
+
<div>
|
|
1107
|
+
<label for="node-input-set_rtc_101"><i class="icon-tag"></i>Active:</label>
|
|
1108
|
+
<input type="checkbox" id="node-input-set_rtc_101" value="1">
|
|
1109
|
+
</div>
|
|
1110
|
+
</div>
|
|
1111
|
+
</div>
|
|
1112
|
+
|
|
1113
|
+
<div class="ncd-dependent" data-sensor-81>
|
|
1114
|
+
<hr>
|
|
1115
|
+
<div class="form-row ncd-active-check">
|
|
1116
|
+
<strong>Probe 1: Output Data Rate</strong>
|
|
1117
|
+
<div>
|
|
1118
|
+
<label for="node-input-output_data_rate_p1_81_active"><i class="icon-tag"></i>Active:</label>
|
|
1119
|
+
<input type="checkbox" id="node-input-output_data_rate_p1_81_active" class="ncd-config-toggle" data-target-id="node-input-output_data_rate_p1_81" value="1">
|
|
1120
|
+
</div>
|
|
1121
|
+
<div>
|
|
1122
|
+
<label for="node-input-output_data_rate_p1_81"><i class="icon-tag"></i>Value:</label>
|
|
1123
|
+
<select id="node-input-output_data_rate_p1_81">
|
|
1124
|
+
<option value="6">50Hz</option>
|
|
1125
|
+
<option value="7">100Hz</option>
|
|
1126
|
+
<option value="8">200Hz</option>
|
|
1127
|
+
<option value="9">400Hz</option>
|
|
1128
|
+
<option value="10">800Hz</option>
|
|
1129
|
+
<option value="11">1600Hz</option>
|
|
1130
|
+
<option value="12">3200Hz</option>
|
|
1131
|
+
<option value="13">6400Hz</option>
|
|
1132
|
+
<option value="14">12800Hz</option>
|
|
1133
|
+
<option value="15">25600Hz</option>
|
|
1134
|
+
</select>
|
|
1135
|
+
</div>
|
|
1136
|
+
</div>
|
|
1137
|
+
<div class="form-row ncd-active-check">
|
|
1138
|
+
<strong>Probe 1: Sampling Duration 1= 50msec, 2= 100msec</strong>
|
|
1139
|
+
<div>
|
|
1140
|
+
<label for="node-input-sampling_duration_p1_81_active">Active:</label>
|
|
1141
|
+
<input type="checkbox" id="node-input-sampling_duration_p1_81_active" class="ncd-config-toggle" data-target-id="node-input-sampling_duration_p1_81" value="1">
|
|
1142
|
+
</div>
|
|
1143
|
+
<div>
|
|
1144
|
+
<label for="node-input-sampling_duration_p1_81"><i class="icon-tag"></i>Value:</label>
|
|
1145
|
+
<input type="text" id="node-input-sampling_duration_p1_81">
|
|
1146
|
+
</div>
|
|
1147
|
+
</div>
|
|
1148
|
+
<div class="form-row ncd-active-check">
|
|
1149
|
+
<strong>Probe 2: Output Data Rate</strong>
|
|
1150
|
+
<div>
|
|
1151
|
+
<label for="node-input-output_data_rate_p2_81_active"><i class="icon-tag"></i>Active:</label>
|
|
1152
|
+
<input type="checkbox" id="node-input-output_data_rate_p2_81_active" class="ncd-config-toggle" data-target-id="node-input-output_data_rate_p2_81" value="1">
|
|
1153
|
+
</div>
|
|
1154
|
+
<div>
|
|
1155
|
+
<label for="node-input-output_data_rate_p2_81"><i class="icon-tag"></i>Value:</label>
|
|
1156
|
+
<select id="node-input-output_data_rate_p2_81">
|
|
1157
|
+
<option value="6">50Hz</option>
|
|
1158
|
+
<option value="7">100Hz</option>
|
|
1159
|
+
<option value="8">200Hz</option>
|
|
1160
|
+
<option value="9">400Hz</option>
|
|
1161
|
+
<option value="10">800Hz</option>
|
|
1162
|
+
<option value="11">1600Hz</option>
|
|
1163
|
+
<option value="12">3200Hz</option>
|
|
1164
|
+
<option value="13">6400Hz</option>
|
|
1165
|
+
<option value="14">12800Hz</option>
|
|
1166
|
+
<option value="15">25600Hz</option>
|
|
1167
|
+
</select>
|
|
1168
|
+
</div>
|
|
1169
|
+
</div>
|
|
1170
|
+
<div class="form-row ncd-active-check">
|
|
1171
|
+
<strong>Probe 2: Sampling Duration 1= 50msec, 2= 100msec</strong>
|
|
1172
|
+
<div>
|
|
1173
|
+
<label for="node-input-sampling_duration_p2_81_active">Active:</label>
|
|
1174
|
+
<input type="checkbox" id="node-input-sampling_duration_p2_81_active" class="ncd-config-toggle" data-target-id="node-input-sampling_duration_p2_81" value="1">
|
|
1175
|
+
</div>
|
|
1176
|
+
<div>
|
|
1177
|
+
<label for="node-input-sampling_duration_p2_81"><i class="icon-tag"></i>Value:</label>
|
|
1178
|
+
<input type="text" id="node-input-sampling_duration_p2_81">
|
|
1179
|
+
</div>
|
|
1180
|
+
</div>
|
|
1181
|
+
</div>
|
|
1182
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-82 data-sensor-84 data-sensor-102 data-sensor-519>
|
|
1183
|
+
<hr>
|
|
1184
|
+
<div class="form-row ncd-active-check">
|
|
1185
|
+
<strong>Output Data Rate</strong>
|
|
1186
|
+
<div>
|
|
1187
|
+
<label for="node-input-output_data_rate_101_active"><i class="icon-tag"></i>Active:</label>
|
|
1188
|
+
<input type="checkbox" id="node-input-output_data_rate_101_active" class="ncd-config-toggle" data-target-id="node-input-output_data_rate_101" value="1">
|
|
1189
|
+
</div>
|
|
1190
|
+
<div>
|
|
1191
|
+
<label for="node-input-output_data_rate_101"><i class="icon-tag"></i>Value:</label>
|
|
1192
|
+
<select id="node-input-output_data_rate_101">
|
|
1193
|
+
<option value="6">50Hz</option>
|
|
1194
|
+
<option value="7">100Hz</option>
|
|
1195
|
+
<option value="8">200Hz</option>
|
|
1196
|
+
<option value="9">400Hz</option>
|
|
1197
|
+
<option value="10">800Hz</option>
|
|
1198
|
+
<option value="11">1600Hz</option>
|
|
1199
|
+
<option value="12">3200Hz</option>
|
|
1200
|
+
<option value="13">6400Hz</option>
|
|
1201
|
+
<option value="14">12800Hz</option>
|
|
1202
|
+
<option value="15">25600Hz</option>
|
|
1203
|
+
</select>
|
|
1204
|
+
</div>
|
|
1205
|
+
</div>
|
|
1206
|
+
</div>
|
|
1207
|
+
<div class="ncd-dependent" data-sensor-101>
|
|
1208
|
+
<hr>
|
|
1209
|
+
<div class="form-row ncd-active-check">
|
|
1210
|
+
<strong>Output Data Rate</strong>
|
|
1211
|
+
<div>
|
|
1212
|
+
<label for="node-input-output_data_rate_101_m2_active"><i class="icon-tag"></i>Active:</label>
|
|
1213
|
+
<input type="checkbox" id="node-input-output_data_rate_101_m2_active" class="ncd-config-toggle" data-target-id="node-input-output_data_rate_101_m2" value="1">
|
|
1214
|
+
</div>
|
|
1215
|
+
<div>
|
|
1216
|
+
<label for="node-input-output_data_rate_101_m2"><i class="icon-tag"></i>Value:</label>
|
|
1217
|
+
<select id="node-input-output_data_rate_101_m2">
|
|
1218
|
+
<option value="0">4000 SPS</option>
|
|
1219
|
+
<option value="1">2000 SPS</option>
|
|
1220
|
+
<option value="2">1000 SPS</option>
|
|
1221
|
+
<option value="3">500 SPS</option>
|
|
1222
|
+
<option value="4">250 SPS</option>
|
|
1223
|
+
<option value="5">125 SPS</option>
|
|
1224
|
+
<option value="6">62.5 SPS</option>
|
|
1225
|
+
<option value="7">31.25 SPS</option>
|
|
1226
|
+
<option value="8">15.625 SPS</option>
|
|
1227
|
+
<option value="9">7.813 SPS</option>
|
|
1228
|
+
<option value="10">3.906 SPS</option>
|
|
1229
|
+
</select>
|
|
1230
|
+
</div>
|
|
1231
|
+
</div>
|
|
1232
|
+
</div>
|
|
1233
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1234
|
+
<div class="form-row ncd-active-check">
|
|
1235
|
+
<strong>Set Filtering</strong>
|
|
1236
|
+
<div>
|
|
1237
|
+
<label for="node-input-filter_80_active">Active:</label>
|
|
1238
|
+
<input type="checkbox" id="node-input-filter_80_active" class="ncd-config-toggle" data-target-id="node-input-filter_80" value="1">
|
|
1239
|
+
</div>
|
|
1240
|
+
<div>
|
|
1241
|
+
<label for="node-input-filter_80"><i class="icon-tag"></i>Value:</label>
|
|
1242
|
+
<select id="node-input-filter_80">
|
|
1243
|
+
<option value="0">Disabled</option>
|
|
1244
|
+
<option value="1">Enabled</option>
|
|
1245
|
+
</select>
|
|
1246
|
+
</div>
|
|
1247
|
+
</div>
|
|
1248
|
+
<div class="form-row ncd-active-check">
|
|
1249
|
+
<strong>Set Low Pass Filter Probe 1</strong>
|
|
1250
|
+
<p>
|
|
1251
|
+
This setting will set the LPF freq to ODR divided by Selected Value<br>
|
|
1252
|
+
Example: ODR = 800 and Filter Coefficient = 4<br>
|
|
1253
|
+
LPF freq = 800/4 = 200Hz
|
|
1254
|
+
</p>
|
|
1255
|
+
<div>
|
|
1256
|
+
<label for="node-input-low_pass_filter_80_active">Active:</label>
|
|
1257
|
+
<input type="checkbox" id="node-input-low_pass_filter_80_active" class="ncd-config-toggle" data-target-id="node-input-low_pass_filter_80" value="1">
|
|
1258
|
+
</div>
|
|
1259
|
+
<div>
|
|
1260
|
+
<label for="node-input-low_pass_filter_80"><i class="icon-tag"></i>Value:</label>
|
|
1261
|
+
<select id="node-input-low_pass_filter_80">
|
|
1262
|
+
<option value="0">4</option>
|
|
1263
|
+
<option value="1">8</option>
|
|
1264
|
+
<option value="2">16</option>
|
|
1265
|
+
<option value="3">32</option>
|
|
1266
|
+
<option value="4">64</option>
|
|
1267
|
+
<option value="5">128</option>
|
|
1268
|
+
<option value="6">256</option>
|
|
1269
|
+
<option value="7">512</option>
|
|
1270
|
+
<option value="8">1024</option>
|
|
1271
|
+
<option value="9">2048</option>
|
|
1272
|
+
</select>
|
|
1273
|
+
</div>
|
|
1274
|
+
</div>
|
|
1275
|
+
<div class="form-row ncd-active-check">
|
|
1276
|
+
<strong>Set High Pass Filter Probe 1</strong>
|
|
1277
|
+
<p>
|
|
1278
|
+
This setting will set the HPF freq to ODR divided by Selected Value<br>
|
|
1279
|
+
Example: ODR = 800 and Filter Coefficient = 64<br>
|
|
1280
|
+
HPF freq = 800/64 = 12.5Hz
|
|
1281
|
+
</p>
|
|
1282
|
+
<div>
|
|
1283
|
+
<label for="node-input-high_pass_filter_80_active">Active:</label>
|
|
1284
|
+
<input type="checkbox" id="node-input-high_pass_filter_80_active" class="ncd-config-toggle" data-target-id="node-input-high_pass_filter_80" value="1">
|
|
1285
|
+
</div>
|
|
1286
|
+
<div>
|
|
1287
|
+
<label for="node-input-high_pass_filter_80"><i class="icon-tag"></i>Value:</label>
|
|
1288
|
+
<select id="node-input-high_pass_filter_80">
|
|
1289
|
+
<option value="0">4</option>
|
|
1290
|
+
<option value="1">8</option>
|
|
1291
|
+
<option value="2">16</option>
|
|
1292
|
+
<option value="3">32</option>
|
|
1293
|
+
<option value="4">64</option>
|
|
1294
|
+
<option value="5">128</option>
|
|
1295
|
+
<option value="6">256</option>
|
|
1296
|
+
<option value="7">512</option>
|
|
1297
|
+
<option value="8">1024</option>
|
|
1298
|
+
<option value="9">2048</option>
|
|
1299
|
+
</select>
|
|
1300
|
+
</div>
|
|
1301
|
+
</div>
|
|
1302
|
+
</div>
|
|
1303
|
+
<div class="ncd-dependent" data-sensor-81>
|
|
1304
|
+
<div class="form-row ncd-active-check">
|
|
1305
|
+
<strong>Set Low Pass Filter Probe 2</strong>
|
|
1306
|
+
<p>
|
|
1307
|
+
This setting will set the LPF freq to ODR divided by Selected Value<br>
|
|
1308
|
+
Example: ODR = 800 and Filter Coefficient = 4<br>
|
|
1309
|
+
LPF freq = 800/4 = 200Hz
|
|
1310
|
+
</p>
|
|
1311
|
+
<div>
|
|
1312
|
+
<label for="node-input-low_pass_filter_81_p2_active">Active:</label>
|
|
1313
|
+
<input type="checkbox" id="node-input-low_pass_filter_81_p2_active" class="ncd-config-toggle" data-target-id="node-input-low_pass_filter_81_p2" value="1">
|
|
1314
|
+
</div>
|
|
1315
|
+
<div>
|
|
1316
|
+
<label for="node-input-low_pass_filter_81_p2"><i class="icon-tag"></i>Value:</label>
|
|
1317
|
+
<select id="node-input-low_pass_filter_81_p2">
|
|
1318
|
+
<option value="0">4</option>
|
|
1319
|
+
<option value="1">8</option>
|
|
1320
|
+
<option value="2">16</option>
|
|
1321
|
+
<option value="3">32</option>
|
|
1322
|
+
<option value="4">64</option>
|
|
1323
|
+
<option value="5">128</option>
|
|
1324
|
+
<option value="6">256</option>
|
|
1325
|
+
<option value="7">512</option>
|
|
1326
|
+
<option value="8">1024</option>
|
|
1327
|
+
<option value="9">2048</option>
|
|
1328
|
+
</select>
|
|
1329
|
+
</div>
|
|
1330
|
+
</div>
|
|
1331
|
+
<div class="form-row ncd-active-check">
|
|
1332
|
+
<strong>Set High Pass Filter Probe 2</strong>
|
|
1333
|
+
<p>
|
|
1334
|
+
This setting will set the HPF freq to ODR divided by Selected Value<br>
|
|
1335
|
+
Example: ODR = 800 and Filter Coefficient = 64<br>
|
|
1336
|
+
HPF freq = 800/64 = 12.5Hz
|
|
1337
|
+
</p>
|
|
1338
|
+
<div>
|
|
1339
|
+
<label for="node-input-high_pass_filter_81_p2_active">Active:</label>
|
|
1340
|
+
<input type="checkbox" id="node-input-high_pass_filter_81_p2_active" class="ncd-config-toggle" data-target-id="node-input-high_pass_filter_81_p2" value="1">
|
|
1341
|
+
</div>
|
|
1342
|
+
<div>
|
|
1343
|
+
<label for="node-input-high_pass_filter_81_p2"><i class="icon-tag"></i>Value:</label>
|
|
1344
|
+
<select id="node-input-high_pass_filter_81_p2">
|
|
1345
|
+
<option value="0">4</option>
|
|
1346
|
+
<option value="1">8</option>
|
|
1347
|
+
<option value="2">16</option>
|
|
1348
|
+
<option value="3">32</option>
|
|
1349
|
+
<option value="4">64</option>
|
|
1350
|
+
<option value="5">128</option>
|
|
1351
|
+
<option value="6">256</option>
|
|
1352
|
+
<option value="7">512</option>
|
|
1353
|
+
<option value="8">1024</option>
|
|
1354
|
+
<option value="9">2048</option>
|
|
1355
|
+
</select>
|
|
1356
|
+
</div>
|
|
1357
|
+
</div>
|
|
1358
|
+
</div>
|
|
1359
|
+
|
|
1360
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1361
|
+
<div class="form-row ncd-active-check">
|
|
1362
|
+
<strong>Full Scale Range</strong>
|
|
1363
|
+
<div>
|
|
1364
|
+
<label for="node-input-full_scale_range_101_active">Active:</label>
|
|
1365
|
+
<input type="checkbox" id="node-input-full_scale_range_101_active" class="ncd-config-toggle" data-target-id="node-input-full_scale_range_101" value="1">
|
|
1366
|
+
</div>
|
|
1367
|
+
<div>
|
|
1368
|
+
<label for="node-input-full_scale_range_101"><i class="icon-tag"></i>Value:</label>
|
|
1369
|
+
<select id="node-input-full_scale_range_101">
|
|
1370
|
+
<option value="0">+/- 2g</option>
|
|
1371
|
+
<option value="1">+/- 4g</option>
|
|
1372
|
+
<option value="2">+/- 8g</option>
|
|
1373
|
+
<option value="3">+/- 16g</option>
|
|
1374
|
+
<option value="4">+/- 32g</option>
|
|
1375
|
+
<option value="5">+/- 64g</option>
|
|
1376
|
+
</select>
|
|
1377
|
+
</div>
|
|
1378
|
+
</div>
|
|
1379
|
+
</div>
|
|
1380
|
+
<div class="ncd-dependent" data-sensor-101>
|
|
1381
|
+
<div class="form-row ncd-active-check">
|
|
1382
|
+
<strong>Full Scale Range</strong>
|
|
1383
|
+
<div>
|
|
1384
|
+
<label for="node-input-full_scale_range_101_m2_active">Active:</label>
|
|
1385
|
+
<input type="checkbox" id="node-input-full_scale_range_101_m2_active" class="ncd-config-toggle" data-target-id="node-input-full_scale_range_101_m2" value="1">
|
|
1386
|
+
</div>
|
|
1387
|
+
<div>
|
|
1388
|
+
<label for="node-input-full_scale_range_101_m2"><i class="icon-tag"></i>Value:</label>
|
|
1389
|
+
<select id="node-input-full_scale_range_101_m2">
|
|
1390
|
+
<option value="0">+/- 10g</option>
|
|
1391
|
+
<option value="1">+/- 20g</option>
|
|
1392
|
+
<option value="2">+/- 40g</option>
|
|
1393
|
+
</select>
|
|
1394
|
+
</div>
|
|
1395
|
+
</div>
|
|
1396
|
+
</div>
|
|
1397
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-101 data-sensor-519>
|
|
1398
|
+
<div class="form-row ncd-active-check">
|
|
1399
|
+
<strong>Set Dead Band in mg</strong>
|
|
1400
|
+
<div>
|
|
1401
|
+
<label for="node-input-deadband_80_active">Active:</label>
|
|
1402
|
+
<input type="checkbox" id="node-input-deadband_80_active" class="ncd-config-toggle" data-target-id="node-input-deadband_80" value="35">
|
|
1403
|
+
</div>
|
|
1404
|
+
<div>
|
|
1405
|
+
<label for="node-input-deadband_80"><i class="icon-tag"></i>Value:</label>
|
|
1406
|
+
<input type="text" id="node-input-deadband_80">
|
|
1407
|
+
</div>
|
|
1408
|
+
</div>
|
|
1409
|
+
<div class="form-row ncd-active-check">
|
|
1410
|
+
<strong>Configure Enabled Axes</strong>
|
|
1411
|
+
<div>
|
|
1412
|
+
<label for="node-input-x_axis_101"><i class="icon-tag"></i>X Axis Enabled:</label>
|
|
1413
|
+
<input type="checkbox" id="node-input-x_axis_101" value="1">
|
|
1414
|
+
</div>
|
|
1415
|
+
<div>
|
|
1416
|
+
<label for="node-input-y_axis_101"><i class="icon-tag"></i>Y Axis Enabled:</label>
|
|
1417
|
+
<input type="checkbox" id="node-input-y_axis_101" value="2">
|
|
1418
|
+
</div>
|
|
1419
|
+
<div>
|
|
1420
|
+
<label for="node-input-z_axis_101"><i class="icon-tag"></i>Z Axis Enabled:</label>
|
|
1421
|
+
<input type="checkbox" id="node-input-z_axis_101" value="4">
|
|
1422
|
+
</div>
|
|
1423
|
+
</div>
|
|
1424
|
+
</div>
|
|
1425
|
+
|
|
1426
|
+
<div class="ncd-dependent" data-sensor-82>
|
|
1427
|
+
<div class="form-row ncd-active-check">
|
|
1428
|
+
<strong>Set Current Calibration Value</strong>
|
|
1429
|
+
<div>
|
|
1430
|
+
<label for="node-input-current_calibration_82_active">Active:</label>
|
|
1431
|
+
<input type="checkbox" id="node-input-current_calibration_82_active" class="ncd-config-toggle" data-target-id="node-input-current_calibration_82" value="1">
|
|
1432
|
+
</div>
|
|
1433
|
+
<div>
|
|
1434
|
+
<label for="node-input-current_calibration_82"><i class="icon-tag"></i>Value:</label>
|
|
1435
|
+
<input type="text" id="node-input-current_calibration_82">
|
|
1436
|
+
</div>
|
|
1437
|
+
</div>
|
|
1438
|
+
</div>
|
|
1439
|
+
|
|
1440
|
+
<div class="ncd-dependent" data-sensor-14 data-sensor-45 data-sensor-48 data-sensor-52>
|
|
1441
|
+
<div class="form-row ncd-active-check">
|
|
1442
|
+
<strong>Sensor Boot Time</strong>
|
|
1443
|
+
<p class="caption">
|
|
1444
|
+
This value represents the number of seconds to wait after applying power to the sensor before taking a reading.
|
|
1445
|
+
Only recommended for sensors powered by the Wireless Sensor's power supply.
|
|
1446
|
+
</p>
|
|
1447
|
+
<div>
|
|
1448
|
+
<label for="node-input-sensor_boot_time_420ma_active">Active:</label>
|
|
1449
|
+
<input type="checkbox" id="node-input-sensor_boot_time_420ma_active" class="ncd-config-toggle" data-target-id="node-input-sensor_boot_time_420ma" value="1">
|
|
1450
|
+
</div>
|
|
1451
|
+
<div>
|
|
1452
|
+
<label for="node-input-sensor_boot_time_420ma"><i class="icon-tag"></i>Value:</label>
|
|
1453
|
+
<input type="text" id="node-input-sensor_boot_time_420ma" placeholder="0" value="0">
|
|
1454
|
+
</div>
|
|
1455
|
+
</div>
|
|
1456
|
+
</div>
|
|
1457
|
+
|
|
1458
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-505 data-sensor-506>
|
|
1459
|
+
<div class="form-row ncd-active-check">
|
|
1460
|
+
<strong>Channel 1 Current Calibration Value</strong>
|
|
1461
|
+
<p class="caption">
|
|
1462
|
+
Default 200A Calibration: 178<br>
|
|
1463
|
+
Default 600A Calibration: 548
|
|
1464
|
+
</p>
|
|
1465
|
+
<div>
|
|
1466
|
+
<label for="node-input-current_calibration_c1_80_active">Active:</label>
|
|
1467
|
+
<input type="checkbox" id="node-input-current_calibration_c1_80_active" class="ncd-config-toggle" data-target-id="node-input-current_calibration_c1_80" value="1">
|
|
1468
|
+
</div>
|
|
1469
|
+
<div>
|
|
1470
|
+
<label for="node-input-current_calibration_c1_80"><i class="icon-tag"></i>Value:</label>
|
|
1471
|
+
<input type="text" id="node-input-current_calibration_c1_80" placeholder="178" value="178">
|
|
1472
|
+
</div>
|
|
1473
|
+
</div>
|
|
1474
|
+
</div>
|
|
1475
|
+
|
|
1476
|
+
<div class="ncd-dependent" data-sensor-81 data-sensor-506>
|
|
1477
|
+
<div class="form-row ncd-active-check">
|
|
1478
|
+
<strong>Channel 2 Current Calibration Value</strong>
|
|
1479
|
+
<p class="caption">
|
|
1480
|
+
Default 200A Calibration: 178<br>
|
|
1481
|
+
Default 600A Calibration: 548
|
|
1482
|
+
</p>
|
|
1483
|
+
<div>
|
|
1484
|
+
<label for="node-input-current_calibration_c2_80_active">Active:</label>
|
|
1485
|
+
<input type="checkbox" id="node-input-current_calibration_c2_80_active" class="ncd-config-toggle" data-target-id="node-input-current_calibration_c2_80" value="1">
|
|
1486
|
+
</div>
|
|
1487
|
+
<div>
|
|
1488
|
+
<label for="node-input-current_calibration_c2_80"><i class="icon-tag"></i>Value:</label>
|
|
1489
|
+
<input type="text" id="node-input-current_calibration_c2_80" placeholder="178" value="178">
|
|
1490
|
+
</div>
|
|
1491
|
+
</div>
|
|
1492
|
+
</div>
|
|
1493
|
+
|
|
1494
|
+
<div class="ncd-dependent" data-sensor-506>
|
|
1495
|
+
<div class="form-row ncd-active-check">
|
|
1496
|
+
<strong>Channel 3 Current Calibration Value</strong>
|
|
1497
|
+
<p class="caption">
|
|
1498
|
+
Default 200A Calibration: 178<br>
|
|
1499
|
+
Default 600A Calibration: 548
|
|
1500
|
+
</p>
|
|
1501
|
+
<div>
|
|
1502
|
+
<label for="node-input-current_calibration_c3_80_active">Active:</label>
|
|
1503
|
+
<input type="checkbox" id="node-input-current_calibration_c3_80_active" class="ncd-config-toggle" data-target-id="node-input-current_calibration_c3_80" value="1">
|
|
1504
|
+
</div>
|
|
1505
|
+
<div>
|
|
1506
|
+
<label for="node-input-current_calibration_c3_80"><i class="icon-tag"></i>Value:</label>
|
|
1507
|
+
<input type="text" id="node-input-current_calibration_c3_80" placeholder="178" value="178">
|
|
1508
|
+
</div>
|
|
1509
|
+
</div>
|
|
1510
|
+
</div>
|
|
1511
|
+
|
|
1512
|
+
<div class="ncd-dependent" data-sensor-47>
|
|
1513
|
+
<div class="form-row ncd-active-check">
|
|
1514
|
+
<strong>Roll Angle Threshold</strong>
|
|
1515
|
+
<p class="caption">
|
|
1516
|
+
This settings forces the sensor to transmit a packet when it detects a change in Roll angle at the chosen value or a multiple of the chosen value.<br>
|
|
1517
|
+
A value of 20 will force the sensor to transmit a packet at a roll angle of 20 degrees, -20 degrees, 40 degrees, -40 degrees, etc.
|
|
1518
|
+
</p>
|
|
1519
|
+
<div>
|
|
1520
|
+
<label for="node-input-roll_angle_threshold_47_active">Active:</label>
|
|
1521
|
+
<input type="checkbox" id="node-input-roll_angle_threshold_47_active" class="ncd-config-toggle" data-target-id="node-input-roll_angle_threshold_47" value="1">
|
|
1522
|
+
</div>
|
|
1523
|
+
<div>
|
|
1524
|
+
<label for="node-input-roll_angle_threshold_47"><i class="icon-tag"></i>Value:</label>
|
|
1525
|
+
<input type="text" id="node-input-roll_angle_threshold_47" placeholder="10" value="10">
|
|
1526
|
+
</div>
|
|
1527
|
+
</div>
|
|
1528
|
+
<div class="form-row ncd-active-check">
|
|
1529
|
+
<strong>Pitch Angle Threshold</strong>
|
|
1530
|
+
<p class="caption">
|
|
1531
|
+
This settings forces the sensor to transmit a packet when it detects a change in Pitch angle at the chosen value or a multiple of the chosen value.<br>
|
|
1532
|
+
A value of 20 will force the sensor to transmit a packet at a pitch angle of 20 degrees, -20 degrees, 40 degrees, -40 degrees, etc.
|
|
1533
|
+
</p>
|
|
1534
|
+
<div>
|
|
1535
|
+
<label for="node-input-pitch_angle_threshold_47_active">Active:</label>
|
|
1536
|
+
<input type="checkbox" id="node-input-pitch_angle_threshold_47_active" class="ncd-config-toggle" data-target-id="node-input-pitch_angle_threshold_47" value="1">
|
|
1537
|
+
</div>
|
|
1538
|
+
<div>
|
|
1539
|
+
<label for="node-input-pitch_angle_threshold_47"><i class="icon-tag"></i>Value:</label>
|
|
1540
|
+
<input type="text" id="node-input-pitch_angle_threshold_47" placeholder="10" value="10">
|
|
1541
|
+
</div>
|
|
1542
|
+
</div>
|
|
1543
|
+
</div>
|
|
1544
|
+
<div class="ncd-dependent" data-sensor-35 data-sensor-36>
|
|
1545
|
+
<hr>
|
|
1546
|
+
<div class="form-row ncd-active-check">
|
|
1547
|
+
<strong>Counter Threshold</strong>
|
|
1548
|
+
<div>
|
|
1549
|
+
<label for="node-input-counter_threshold_35_active">Active:</label>
|
|
1550
|
+
<input type="checkbox" id="node-input-counter_threshold_35_active" class="ncd-config-toggle" data-target-id="node-input-counter_threshold_35" value="1">
|
|
1551
|
+
</div>
|
|
1552
|
+
<div>
|
|
1553
|
+
<label for="node-input-counter_threshold_35"><i class="icon-tag"></i>Value:</label>
|
|
1554
|
+
<input type="text" id="node-input-counter_threshold_35" placeholder="50" value="50">
|
|
1555
|
+
</div>
|
|
1556
|
+
</div>
|
|
1557
|
+
</div>
|
|
1558
|
+
<div class="ncd-dependent" data-sensor-80 data-sensor-81 data-sensor-82 data-sensor-84 data-sensor-519>
|
|
1559
|
+
<hr>
|
|
1560
|
+
<div class="form-row ncd-active-check">
|
|
1561
|
+
<strong>Payload Length</strong>
|
|
1562
|
+
<div>
|
|
1563
|
+
<label for="node-input-payload_length_80_active">Active:</label>
|
|
1564
|
+
<input type="checkbox" id="node-input-payload_length_80_active" class="ncd-config-toggle" data-target-id="node-input-payload_length_80" value="1">
|
|
1565
|
+
</div>
|
|
1566
|
+
<div>
|
|
1567
|
+
<label for="node-input-payload_length_80"><i class="icon-tag"></i>Value:</label>
|
|
1568
|
+
<select id="node-input-payload_length_80">
|
|
1569
|
+
<option value="0">55 Bytes</option>
|
|
1570
|
+
<option value="1">100 Bytes</option>
|
|
1571
|
+
<option value="2">150 Bytes</option>
|
|
1572
|
+
<option selected="selected" value="3">180 Bytes</option>
|
|
1573
|
+
</select>
|
|
1574
|
+
</div>
|
|
1575
|
+
</div>
|
|
1576
|
+
</div>
|
|
1577
|
+
<div class="ncd-dependent" data-sensor-10000 data-sensor-10012>
|
|
1578
|
+
<div class="form-row">
|
|
1579
|
+
<button id="config_sensor">Configure Now</button>
|
|
1580
|
+
<div id="config_response"></div>
|
|
1581
|
+
</div>
|
|
1582
|
+
</div>
|
|
1583
|
+
</div>
|
|
1584
|
+
</div>
|
|
1585
|
+
</script>
|
|
1586
|
+
|
|
1587
|
+
<script type="text/x-red" data-help-name="ncd-wireless-node">
|
|
1588
|
+
<h3>Wireless Node</h3>
|
|
1589
|
+
<p>This node is used to filter sensor data coming from a modem. It can filter by mac address, or sensor type, and can be used to configure wireless devices automatically when they enter configuration mode.</p>
|
|
1590
|
+
<h4>Serial Devices</h4>
|
|
1591
|
+
<p>The Serial Device field refers to the modem that will be recieving the packets from the device. The Serial Device for Config field refers to a modem that is always set to the config network ID (0x7BCD), this is the recommended setup as it allows you to configure nodes without missing potentially important sensor data, however, the config button on the Wireless Gateway node may be used if a single modem will be acting as both the listener, and config endpoints, making the second selection optional.</p>
|
|
1592
|
+
<h4>Mac Address</h4>
|
|
1593
|
+
<p>The mac address of the device you wish to listen for, if you have already deployed a flow using the connected serial device, you may use the magnifying glass icon to pull a list of mac addresses that have already checked in, otherwise you can enter the mac address manually. </b>Optional</b></p>
|
|
1594
|
+
<h4>Sensor Type</h4>
|
|
1595
|
+
<p>If you wish to capture all data from sensors that match a particular type, you can use this instead of the mac address. </b>Optional</b></p>
|
|
1596
|
+
<h4>Advanced/Auto config</h4>
|
|
1597
|
+
<p>If the Auto Config checkbox is active, the settings below it will propogate to the sensor when the modem detects that it has entered configuration mode. You can find more information about these settings on the appropriate product manual, and information about deploying these settings in <a href="https://ncd.io/configuring-the-wireless-enterprise-line-with-node-red/" target="_blank">this tutorial</a></p>
|
|
1598
|
+
<h4>Output</h4>
|
|
1599
|
+
<p>This node will output detailed information about incoming sensor data, and the device identity and status including. The payload will contain an object containing sensor data, an example can be seen below:</p>
|
|
1600
|
+
<pre>
|
|
1601
|
+
msg = {
|
|
1602
|
+
topic: "sensor_data",
|
|
1603
|
+
payload: {
|
|
1604
|
+
humidity: 45.51,
|
|
1605
|
+
temperature: 23.91,
|
|
1606
|
+
}
|
|
1607
|
+
data: {
|
|
1608
|
+
nodeId: 0,
|
|
1609
|
+
firmware: 3,
|
|
1610
|
+
battery: 3.2940600000000004,
|
|
1611
|
+
counter: 37,
|
|
1612
|
+
sensor_type: 1,
|
|
1613
|
+
sensor_data: {
|
|
1614
|
+
humidity: 45.51,
|
|
1615
|
+
temperature: 23.91,
|
|
1616
|
+
},
|
|
1617
|
+
type: "sensor_data",
|
|
1618
|
+
addr: "00:13:a2:00:41:07:18:81",
|
|
1619
|
+
original: {
|
|
1620
|
+
mac: "00:13:a2:00:41:07:18:81",
|
|
1621
|
+
receive_options: {
|
|
1622
|
+
ack: 0,
|
|
1623
|
+
broadcast: 0,
|
|
1624
|
+
type: ""
|
|
1625
|
+
}
|
|
1626
|
+
},
|
|
1627
|
+
data: [127,0,3,3,255,37,0,1,0,17,199,9,87],
|
|
1628
|
+
type: "receive_packet"
|
|
1629
|
+
},
|
|
1630
|
+
_msgid: "391caba.5a19454"
|
|
1631
|
+
}
|
|
1632
|
+
</pre>
|
|
1633
|
+
</script>
|
|
1634
|
+
|
|
1635
|
+
<script type="text/javascript">
|
|
1636
|
+
NCD_validators = {
|
|
1637
|
+
number_range: function(l, h, base){
|
|
1638
|
+
if(!base) base = 10;
|
|
1639
|
+
return function(v){
|
|
1640
|
+
var int = parseInt(v, 16);
|
|
1641
|
+
return int >= l && int <= h;
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1645
|
+
RED.nodes.registerType('ncd-gateway-config', {
|
|
1646
|
+
category: 'config',
|
|
1647
|
+
defaults: {
|
|
1648
|
+
name: {value: ""},
|
|
1649
|
+
comm_type: {value: "serial"},
|
|
1650
|
+
ip_address: {value: ""},
|
|
1651
|
+
tcp_port: {value: 2101, validate:RED.validators.number()},
|
|
1652
|
+
port: {value: ""},
|
|
1653
|
+
baudRate: {value: 115200, validate:RED.validators.number()},
|
|
1654
|
+
pan_id: {value: '7FFF', validate: NCD_validators.number_range(0, 0x7FFF, 16)},
|
|
1655
|
+
rssi: {value: ""}
|
|
1656
|
+
},
|
|
1657
|
+
label: function(){
|
|
1658
|
+
if(this.name) return this.name;
|
|
1659
|
+
return this.port+' ('+this.baudRate+')';
|
|
1660
|
+
},
|
|
1661
|
+
oneditprepare: function() {
|
|
1662
|
+
if(typeof NCD_GatewayConfig == 'undefined'){
|
|
1663
|
+
NCD_GatewayConfig = {};
|
|
1664
|
+
}
|
|
1665
|
+
NCD_GatewayConfig[this.id] = this;
|
|
1666
|
+
$('#node-config-input-comm_type').change(function(){
|
|
1667
|
+
switch($(this).val()){
|
|
1668
|
+
case 'tcp':
|
|
1669
|
+
$('.tcp-options').show();
|
|
1670
|
+
$('.serial-options').hide();
|
|
1671
|
+
break;
|
|
1672
|
+
case 'serial':
|
|
1673
|
+
$('.serial-options').show();
|
|
1674
|
+
$('.tcp-options').hide();
|
|
1675
|
+
break;
|
|
1676
|
+
}
|
|
1677
|
+
$('.serial-op')
|
|
1678
|
+
}).find('[value='+this.comm_type+']').prop('selected', true);
|
|
1679
|
+
//$('#node-input-comm_type').change();
|
|
1680
|
+
var blist = [
|
|
1681
|
+
{value:"115200",label:"115200",hasValue:false},
|
|
1682
|
+
{value:"57600",label:"57600",hasValue:false},
|
|
1683
|
+
{value:"38400",label:"38400",hasValue:false},
|
|
1684
|
+
{value:"19200",label:"19200",hasValue:false},
|
|
1685
|
+
{value:"9600",label:"9600",hasValue:false},
|
|
1686
|
+
{value:"4800",label:"4800",hasValue:false},
|
|
1687
|
+
{value:"2400",label:"2400",hasValue:false},
|
|
1688
|
+
{value:"1200",label:"1200",hasValue:false},
|
|
1689
|
+
{value:"600",label:"600",hasValue:false},
|
|
1690
|
+
{value:"300",label:"300",hasValue:false}
|
|
1691
|
+
];
|
|
1692
|
+
|
|
1693
|
+
$("#node-config-input-baudRate").typedInput({
|
|
1694
|
+
default: this.baudRate,
|
|
1695
|
+
types:blist
|
|
1696
|
+
});
|
|
1697
|
+
|
|
1698
|
+
try {
|
|
1699
|
+
$("#node-config-input-port").autocomplete( "destroy" );
|
|
1700
|
+
} catch(err) {}
|
|
1701
|
+
|
|
1702
|
+
$("#node-lookup-modems").click(function() {
|
|
1703
|
+
$("#node-lookup-modems").addClass('disabled');
|
|
1704
|
+
$.getJSON('ncd/wireless/modems/list',function(data) {
|
|
1705
|
+
$("#node-lookup-modems").removeClass('disabled');
|
|
1706
|
+
var ports = [];
|
|
1707
|
+
$.each(data, function(i, port) {
|
|
1708
|
+
ports.push(port);
|
|
1709
|
+
});
|
|
1710
|
+
$("#node-config-input-port").autocomplete({
|
|
1711
|
+
source:ports,
|
|
1712
|
+
minLength:0,
|
|
1713
|
+
close: function( event, ui ) {
|
|
1714
|
+
$("#node-input-port").autocomplete( "destroy" );
|
|
1715
|
+
}
|
|
1716
|
+
}).autocomplete("search","");
|
|
1717
|
+
});
|
|
1718
|
+
});
|
|
1719
|
+
|
|
1720
|
+
$('#node-config-input-port').on('autocompleteselect', function(e, ui){
|
|
1721
|
+
var mytype = $("#node-config-input-baudRate").typedInput('type');
|
|
1722
|
+
$("#node-config-input-baudRate").typedInput('value',mytype);
|
|
1723
|
+
var baudRate = $("#node-config-input-baudRate").typedInput('value');
|
|
1724
|
+
var port = ui.item.value;
|
|
1725
|
+
$.ajax({
|
|
1726
|
+
url: "ncd/wireless/modem/info/"+encodeURIComponent(port)+'/'+baudRate,
|
|
1727
|
+
type: "GET",
|
|
1728
|
+
success: function(resp) {
|
|
1729
|
+
if(resp && typeof resp.pan_id != 'undefined'){
|
|
1730
|
+
$('#node-config-input-pan_id').val(resp.pan_id);
|
|
1731
|
+
}
|
|
1732
|
+
},
|
|
1733
|
+
});
|
|
1734
|
+
});
|
|
1735
|
+
},
|
|
1736
|
+
oneditsave: function() {
|
|
1737
|
+
var mytype = $("#node-config-input-baudRate").typedInput('type');
|
|
1738
|
+
$("#node-config-input-baudRate").typedInput('value',mytype);
|
|
1739
|
+
this.serialbaud = $("#node-config-input-baudRate").typedInput('value');
|
|
1740
|
+
}
|
|
1741
|
+
});
|
|
1742
|
+
</script>
|
|
1743
|
+
<script type="text/x-red" data-template-name="ncd-gateway-config">
|
|
1744
|
+
<div class="form-row">
|
|
1745
|
+
<label for="node-config-input-name"><i class="icon-tag"></i> Name</label>
|
|
1746
|
+
<input type="text" id="node-config-input-name" placeholder="Name">
|
|
1747
|
+
</div>
|
|
1748
|
+
<div class="form-row">
|
|
1749
|
+
<label for="node-config-input-comm_type"><i class="icon-tag"></i> Modem Type</label>
|
|
1750
|
+
<select id="node-config-input-comm_type">
|
|
1751
|
+
<option value="serial">USB (Serial)</option>
|
|
1752
|
+
<option value="tcp">TCP (Ethernet/Network)</option>
|
|
1753
|
+
</select>
|
|
1754
|
+
</div>
|
|
1755
|
+
<div class="tcp-options">
|
|
1756
|
+
<div class="form-row">
|
|
1757
|
+
<label for="node-config-input-tcp_port"><i class="fa fa-random"></i> TCP Port</label>
|
|
1758
|
+
<input type="text" id="node-config-input-tcp_port" style="width:60%;" >
|
|
1759
|
+
</div>
|
|
1760
|
+
<div class="form-row">
|
|
1761
|
+
<label for="node-config-input-ip_address"><i class="fa fa-random"></i> IP Address</label>
|
|
1762
|
+
<input type="text" id="node-config-input-ip_address" style="width:60%;" >
|
|
1763
|
+
</div>
|
|
1764
|
+
</div>
|
|
1765
|
+
<div class="serial-options">
|
|
1766
|
+
<div class="form-row">
|
|
1767
|
+
<label for="node-config-input-port"><i class="fa fa-random"></i> Serial Port</label>
|
|
1768
|
+
<input type="text" id="node-config-input-port" style="width:60%;" >
|
|
1769
|
+
<a id="node-lookup-modems" class="btn"><i id="node-lookup-modems-icon" class="fa fa-search"></i></a>
|
|
1770
|
+
</div>
|
|
1771
|
+
<div class="form-row">
|
|
1772
|
+
<label for="node-config-input-baudRate"><i class="icon-tag"></i> Baud Rate</label>
|
|
1773
|
+
<input type="text" id="node-config-input-baudRate">
|
|
1774
|
+
</div>
|
|
1775
|
+
</div>
|
|
1776
|
+
<div class="form-row">
|
|
1777
|
+
<label for="node-config-input-pan_id"><i class="icon-tag"></i> Network ID (0 - 0x7FFF)</label>
|
|
1778
|
+
0x<input type="text" id="node-config-input-pan_id" value="7FFF">
|
|
1779
|
+
</div>
|
|
1780
|
+
<div class="form-row">
|
|
1781
|
+
<label for="node-config-input-rssi"><i class="icon-tag"></i> Add RSSI to incoming packets</label>
|
|
1782
|
+
<input type="checkbox" id="node-config-input-rssi" value="1">
|
|
1783
|
+
</div>
|
|
1784
|
+
</script>
|