adjusted input for measurement container

This commit is contained in:
znetsixe
2025-11-28 09:59:51 +01:00
parent 966ba06faa
commit 446ef81f24

View File

@@ -96,6 +96,10 @@ class Machine {
this.measurements.type('temperature').variant('measured').position('atEquipment').value(15).unit('C'); this.measurements.type('temperature').variant('measured').position('atEquipment').value(15).unit('C');
//assume standard atm pressure is at sea level //assume standard atm pressure is at sea level
this.measurements.type('atmPressure').variant('measured').position('atEquipment').value(101325).unit('Pa'); this.measurements.type('atmPressure').variant('measured').position('atEquipment').value(101325).unit('Pa');
//populate min and max
const flowunit = this.config.general.unit;
this.measurements.type('flow').variant('predicted').position('max').value(this.predictFlow.currentFxyYMax, Date.now() , flowunit)
this.measurements.type('flow').variant('predicted').position('min').value(this.predictFlow.currentFxyYMin).unit(this.config.general.unit);
} }
_updateState(){ _updateState(){
@@ -344,15 +348,15 @@ _callMeasurementHandler(measurementType, value, position, context) {
calcFlow(x) { calcFlow(x) {
if(this.hasCurve) { if(this.hasCurve) {
if (!this._isOperationalState()) { if (!this._isOperationalState()) {
this.measurements.type("flow").variant("predicted").position("downstream").value(0); this.measurements.type("flow").variant("predicted").position("downstream").value(0,Date.now(),this.config.general.unit);
this.measurements.type("flow").variant("predicted").position("atEquipment").value(0); this.measurements.type("flow").variant("predicted").position("atEquipment").value(0,Date.now(),this.config.general.unit);
this.logger.debug(`Machine is not operational. Setting predicted flow to 0.`); this.logger.debug(`Machine is not operational. Setting predicted flow to 0.`);
return 0; return 0;
} }
const cFlow = this.predictFlow.y(x); const cFlow = this.predictFlow.y(x);
this.measurements.type("flow").variant("predicted").position("downstream").value(cFlow); this.measurements.type("flow").variant("predicted").position("downstream").value(cFlow,Date.now(),this.config.general.unit);
this.measurements.type("flow").variant("predicted").position("atEquipment").value(cFlow); this.measurements.type("flow").variant("predicted").position("atEquipment").value(cFlow,Date.now(),this.config.general.unit);
//this.logger.debug(`Calculated flow: ${cFlow} for pressure: ${this.getMeasuredPressure()} and position: ${x}`); //this.logger.debug(`Calculated flow: ${cFlow} for pressure: ${this.getMeasuredPressure()} and position: ${x}`);
return cFlow; return cFlow;
} }
@@ -479,8 +483,8 @@ _callMeasurementHandler(measurementType, value, position, context) {
//update the distance from peak //update the distance from peak
this.calcDistanceBEP(efficiency,cog,minEfficiency); this.calcDistanceBEP(efficiency,cog,minEfficiency);
//place min and max flow capabilities in containerthis.predictFlow.currentFxyYMax - this.predictFlow.currentFxyYMin //place min and max flow capabilities in containerthis.predictFlow.currentFxyYMax - this.predictFlow.currentFxyYMin
this.measurements.type('flow').variant('predicted').variant('max').value(this.predictFlow.currentFxyYMax).unit(this.config.general.unit); this.measurements.type('flow').variant('predicted').position('max').value(this.predictFlow.currentFxyYMax).unit(this.config.general.unit);
this.measurements.type('flow').variant('predicted').variant('min').value(this.predictFlow.currentFxyYMin).unit(this.config.general.unit); this.measurements.type('flow').variant('predicted').position('min').value(this.predictFlow.currentFxyYMin).unit(this.config.general.unit);
return 0; return 0;
} }
@@ -694,7 +698,9 @@ _callMeasurementHandler(measurementType, value, position, context) {
const pressureDiff = this.measurements.type('pressure').variant('measured').difference('Pa'); const pressureDiff = this.measurements.type('pressure').variant('measured').difference('Pa');
const g = gravity.getStandardGravity(); const g = gravity.getStandardGravity();
const temp = this.measurements.type('temperature').variant('measured').position('atEquipment').getCurrentValue('K'); const temp = this.measurements.type('temperature').variant('measured').position('atEquipment').getCurrentValue('K');
const atmPressure = this.measurements.type('atmPressure').variant('measured').position('atEquipment').getCurrentValue('Pa'); const atmPressure = this.measurements.type('atmPressure').variant('measured').position('atEquipment').getCurrentValue('Pa');
console.log(`--------------------calc efficiency : Pressure diff:${pressureDiff},${temp}, ${g} `);
const rho = coolprop.PropsSI('D', 'T', temp, 'P', atmPressure, 'WasteWater'); const rho = coolprop.PropsSI('D', 'T', temp, 'P', atmPressure, 'WasteWater');
@@ -765,15 +771,8 @@ _callMeasurementHandler(measurementType, value, position, context) {
getOutput() { getOutput() {
// Improved output object generation // Improved output object generation
const output = {};
Object.entries(this.measurements.measurements).forEach(([type, variants]) => { const output = this.measurements.getFlattenedOutput();
Object.entries(variants).forEach(([variant, positions]) => {
Object.entries(positions).forEach(([position, measurement]) => {
output[`${type}.${variant}.${position}`] = measurement.getCurrentValue();
});
});
});
//fill in the rest of the output object //fill in the rest of the output object
output["state"] = this.state.getCurrentState(); output["state"] = this.state.getCurrentState();