diff --git a/src/specificClass.js b/src/specificClass.js index ede5709..c39e01d 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -96,6 +96,10 @@ class Machine { this.measurements.type('temperature').variant('measured').position('atEquipment').value(15).unit('C'); //assume standard atm pressure is at sea level 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(){ @@ -344,15 +348,15 @@ _callMeasurementHandler(measurementType, value, position, context) { calcFlow(x) { if(this.hasCurve) { if (!this._isOperationalState()) { - this.measurements.type("flow").variant("predicted").position("downstream").value(0); - this.measurements.type("flow").variant("predicted").position("atEquipment").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,Date.now(),this.config.general.unit); this.logger.debug(`Machine is not operational. Setting predicted flow to 0.`); return 0; } const cFlow = this.predictFlow.y(x); - this.measurements.type("flow").variant("predicted").position("downstream").value(cFlow); - this.measurements.type("flow").variant("predicted").position("atEquipment").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,Date.now(),this.config.general.unit); //this.logger.debug(`Calculated flow: ${cFlow} for pressure: ${this.getMeasuredPressure()} and position: ${x}`); return cFlow; } @@ -479,8 +483,8 @@ _callMeasurementHandler(measurementType, value, position, context) { //update the distance from peak this.calcDistanceBEP(efficiency,cog,minEfficiency); //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').variant('min').value(this.predictFlow.currentFxyYMin).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').position('min').value(this.predictFlow.currentFxyYMin).unit(this.config.general.unit); return 0; } @@ -694,7 +698,9 @@ _callMeasurementHandler(measurementType, value, position, context) { const pressureDiff = this.measurements.type('pressure').variant('measured').difference('Pa'); const g = gravity.getStandardGravity(); 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'); @@ -765,15 +771,8 @@ _callMeasurementHandler(measurementType, value, position, context) { getOutput() { // Improved output object generation - const output = {}; - Object.entries(this.measurements.measurements).forEach(([type, variants]) => { - Object.entries(variants).forEach(([variant, positions]) => { - Object.entries(positions).forEach(([position, measurement]) => { - output[`${type}.${variant}.${position}`] = measurement.getCurrentValue(); - }); - }); - }); + const output = this.measurements.getFlattenedOutput(); //fill in the rest of the output object output["state"] = this.state.getCurrentState();