This commit is contained in:
znetsixe
2026-02-23 12:51:10 +01:00
parent 2b9ad5fd19
commit 460b872053
5 changed files with 74 additions and 39 deletions

View File

@@ -30,35 +30,42 @@ class nodeClass {
*/
_attachInputHandler() {
this.node.on('input', (msg, send, done) => {
switch (msg.topic) {
case "clock":
this.source.updateState(msg.timestamp);
send([msg, null, null]);
break;
case "Fluent":
this.source.setInfluent = msg;
break;
case "OTR":
this.source.setOTR = msg;
break;
case "Temperature":
this.source.setTemperature = msg;
break;
case "Dispersion":
this.source.setDispersion = msg;
break;
case 'registerChild':
// Register this node as a parent of the child node
const childId = msg.payload;
const childObj = this.RED.nodes.getNode(childId);
this.source.childRegistrationUtils.registerChild(childObj.source, msg.positionVsParent);
break;
default:
console.log("Unknown topic: " + msg.topic);
try {
switch (msg.topic) {
case "clock":
this.source.updateState(msg.timestamp);
send([msg, null, null]);
break;
case "Fluent":
this.source.setInfluent = msg;
break;
case "OTR":
this.source.setOTR = msg;
break;
case "Temperature":
this.source.setTemperature = msg;
break;
case "Dispersion":
this.source.setDispersion = msg;
break;
case 'registerChild': {
const childId = msg.payload;
const childObj = this.RED.nodes.getNode(childId);
if (!childObj || !childObj.source) {
this.source?.logger?.warn(`registerChild skipped: missing child/source for id=${childId}`);
break;
}
this.source.childRegistrationUtils.registerChild(childObj.source, msg.positionVsParent);
break;
}
default:
this.source?.logger?.warn(`Unknown topic: ${msg.topic}`);
}
} catch (error) {
this.source?.logger?.error(`Input handler failure: ${error.message}`);
}
if (done) {
if (typeof done === 'function') {
done();
}
});
@@ -137,7 +144,8 @@ class nodeClass {
new_reactor = new Reactor_PFR(this.config);
break;
default:
console.warn("Unknown reactor type: " + uiConfig.reactor_type);
this.node.warn("Unknown reactor type: " + this.config.reactor_type + ". Falling back to CSTR.");
new_reactor = new Reactor_CSTR(this.config);
}
this.source = new_reactor; // protect from reassignment
@@ -157,9 +165,9 @@ class nodeClass {
_attachCloseHandler() {
this.node.on('close', (done) => {
clearInterval(this._tickInterval);
done();
if (typeof done === 'function') done();
});
}
}
module.exports = nodeClass;
module.exports = nodeClass;