@pickdata/node-red-contrib-emod-simulator
Version:
eManager is an IoT controller designed with eMOD tech for monitoring, control and automation applications. The following nodes are pre-installed in all eMOD devices, although here we present a simulator to practice & test our modular industrial solution.
107 lines (103 loc) • 5.63 kB
HTML
<!--
Copyright (c) 2020,2021 PickData SL (https://www.pickdata.net/)
All rights reserved.
node-red-contrib-emod-simulator - The BSD 3-Clause License
-->
<script type="text/javascript">
RED.nodes.registerType('10DI-S-Config',{
category: 'config',
defaults: {
name: {value:""},
pulseFilterMsI1: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI2: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI3: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI4: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI5: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI6: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI7: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI8: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI9: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
pulseFilterMsI10: {value:10, required: false, validate:RED.validators.regex(/^$|^[0-9]+$/)},
eventMode: {value:"poll"},
threshold: {value:1, required: false, validate:function(v) {return /^$|^[0-9]+$/.test(v) && parseInt(v) >= 1}},
//resetPulseCount: {value:false, required: false} Disabled for now
},
label: function() {
return this.name||"10DI-S-Config";
}
});
function DISeventModeChanged() {
switch ($("#node-config-input-eventMode").val()) {
case "pulse-count":
$("#threshold-row").show();
break;
default:
$("#threshold-row").hide();
break;
}
}
</script>
<script type="text/html" data-template-name="10DI-S-Config">
<div class="form-row">
<label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-config-input-name" placeholder="Name">
</div>
<!-- <div class="form-row" id="resetPulseCount-row">
<label for="node-config-input-resetPulseCount"><i class="fa fa-eraser"></i> Reset pulse count at start</label>
<input type="checkbox" id="node-config-input-resetPulseCount" style="max-width:30px">
</div> Disabled for now --->
<div class="form-row">
<label for="node-config-input-eventMode"><i class="fa fa-bars"></i> Working mode</label>
<select id="node-config-input-eventMode" onchange="DISeventModeChanged()">
<option value="poll">Poll</option>
<option value="status">[Event] Input value change</option>
<option value="pulse-count">[Event] Pulse count change</option>
</select>
</div>
<div class="form-row" id="threshold-row" style="display: none;">
<label for="node-config-input-threshold"><i class="fa fa-minus"></i> Pulse count threshold</label>
<input type="number" id="node-config-input-threshold" placeholder="1" min="1">
</div>
<hr>
<h5>Pulse filter milliseconds</h5>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI1"><i class="fa fa-bolt"></i> Input 0</label>
<input type="number" id="node-config-input-pulseFilterMsI1" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI2"><i class="fa fa-bolt"></i> Input 1</label>
<input type="number" id="node-config-input-pulseFilterMsI2" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI3"><i class="fa fa-bolt"></i> Input 2</label>
<input type="number" id="node-config-input-pulseFilterMsI3" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI4"><i class="fa fa-bolt"></i> Input 3</label>
<input type="number" id="node-config-input-pulseFilterMsI4" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI5"><i class="fa fa-bolt"></i> Input 4</label>
<input type="number" id="node-config-input-pulseFilterMsI5" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI6"><i class="fa fa-bolt"></i> Input 5</label>
<input type="number" id="node-config-input-pulseFilterMsI6" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI7"><i class="fa fa-bolt"></i> Input 6</label>
<input type="number" id="node-config-input-pulseFilterMsI7" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI8"><i class="fa fa-bolt"></i> Input 7</label>
<input type="number" id="node-config-input-pulseFilterMsI8" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI9"><i class="fa fa-bolt"></i> Input 8</label>
<input type="number" id="node-config-input-pulseFilterMsI9" placeholder="10" min="0">
</div>
<div class="form-row">
<label for="node-config-input-pulseFilterMsI10"><i class="fa fa-bolt"></i> Input 9</label>
<input type="number" id="node-config-input-pulseFilterMsI10" placeholder="10" min="0">
</div>
</script>