Compare commits
2 Commits
91f98414d1
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c96ad94c40 | ||
|
|
bd67b22197 |
@@ -9,6 +9,16 @@ function _logger(source, ctx) {
|
||||
return ctx?.logger || source?.logger || null;
|
||||
}
|
||||
|
||||
// Resolve the command origin (control authority: parent | GUI | fysical).
|
||||
// The shared commandRegistry stamps msg.origin (default 'parent'); legacy flows
|
||||
// carried it as payload.source. Prefer the legacy field when present so existing
|
||||
// flows keep working, otherwise use the registry-stamped msg.origin.
|
||||
function _origin(msg) {
|
||||
const p = msg && msg.payload;
|
||||
if (p && typeof p === 'object' && typeof p.source === 'string' && p.source) return p.source;
|
||||
return (typeof msg?.origin === 'string' && msg.origin) ? msg.origin : 'parent';
|
||||
}
|
||||
|
||||
exports.setMode = (source, msg) => {
|
||||
source.setMode(msg.payload);
|
||||
};
|
||||
@@ -31,25 +41,18 @@ exports.registerChild = (source, msg, ctx) => {
|
||||
};
|
||||
|
||||
exports.execSequence = async (source, msg) => {
|
||||
const { source: seqSource, action: seqAction, parameter } = msg.payload || {};
|
||||
await source.handleInput(seqSource, seqAction, parameter);
|
||||
const { action: seqAction, parameter } = msg.payload || {};
|
||||
await source.handleInput(_origin(msg), seqAction, parameter);
|
||||
};
|
||||
|
||||
exports.totalFlowChange = async (source, msg) => {
|
||||
const payload = msg.payload || {};
|
||||
if (payload && typeof payload === 'object' && Object.prototype.hasOwnProperty.call(payload, 'source')) {
|
||||
const src = payload.source || 'parent';
|
||||
const action = payload.action || 'totalFlowChange';
|
||||
await source.handleInput(src, action, payload);
|
||||
return;
|
||||
}
|
||||
await source.handleInput('parent', 'totalFlowChange', payload);
|
||||
const action = payload.action || 'totalFlowChange';
|
||||
await source.handleInput(_origin(msg), action, payload);
|
||||
};
|
||||
|
||||
exports.emergencyStop = async (source, msg) => {
|
||||
const payload = msg.payload || {};
|
||||
const src = payload.source || 'parent';
|
||||
await source.handleInput(src, 'emergencystop');
|
||||
await source.handleInput(_origin(msg), 'emergencystop');
|
||||
};
|
||||
|
||||
exports.setReconcileInterval = (source, msg) => {
|
||||
|
||||
3
vgc.html
3
vgc.html
@@ -14,7 +14,7 @@
|
||||
<script>
|
||||
RED.nodes.registerType('valveGroupControl',{
|
||||
category: "EVOLV",
|
||||
color: "#50a8d9",
|
||||
color: "#2A8A82",
|
||||
defaults: {
|
||||
// Define default properties
|
||||
name: { value: "" },
|
||||
@@ -91,6 +91,7 @@
|
||||
<label for="node-input-dbaseOutputFormat"><i class="fa fa-database"></i> Database Output</label>
|
||||
<select id="node-input-dbaseOutputFormat" style="width:60%;">
|
||||
<option value="influxdb">influxdb</option>
|
||||
<option value="frost">frost</option>
|
||||
<option value="json">json</option>
|
||||
<option value="csv">csv</option>
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user