diff --git a/rotatingMachine.html b/rotatingMachine.html index 6d54b66..77ffcb5 100644 --- a/rotatingMachine.html +++ b/rotatingMachine.html @@ -54,7 +54,7 @@ icon: "font-awesome/fa-cog", label: function () { - return this.positionIcon + " " + this.category.slice(0, -1) || "Machine"; + return this.positionIcon + " " + this.category || "Machine"; }, oneditprepare: function() { diff --git a/src/specificClass.js b/src/specificClass.js index ef679e9..c8bf307 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -35,10 +35,8 @@ class Machine { } else{ this.hasCurve = true; - this.config = this.configUtils.updateConfig(this.config, { - asset: { ...this.config.asset, machineCurve: this.curve } - }); - machineConfig = { ...machineConfig, asset: { ...machineConfig.asset, machineCurve: this.curve } }; // Merge curve into machineConfig + this.config = this.configUtils.updateConfig(this.config, { asset: { ...this.config.asset, machineCurve: this.curve } }); + //machineConfig = { ...machineConfig, asset: { ...machineConfig.asset, machineCurve: this.curve } }; // Merge curve into machineConfig this.predictFlow = new predict({ curve: this.config.asset.machineCurve.nq }); // load nq (x : ctrl , y : flow relationship) this.predictPower = new predict({ curve: this.config.asset.machineCurve.np }); // load np (x : ctrl , y : power relationship) this.predictCtrl = new predict({ curve: this.reverseCurve(this.config.asset.machineCurve.nq) }); // load reversed nq (x: flow, y: ctrl relationship) @@ -106,6 +104,7 @@ class Machine { if(!isOperational){ //overrule the last prediction this should be 0 now this.measurements.type("flow").variant("predicted").position("downstream").value(0); + this.measurements.type("flow").variant("predicted").position("atEquipment").value(0); } } @@ -127,7 +126,7 @@ class Machine { this.logger.debug(`🔄 ${position} ${measurementType} from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); - console.log(` Emitting... ${eventName} with data:`); + this.logger.debug(` Emitting... ${eventName} with data:`); // Store directly in parent's measurement container this.measurements .type(measurementType) @@ -347,13 +346,14 @@ _callMeasurementHandler(measurementType, value, position, context) { 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.logger.debug(`Machine is not operational. Setting predicted flow to 0.`); return 0; } - //this.predictFlow.currentX = x; Decrepated 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.logger.debug(`Calculated flow: ${cFlow} for pressure: ${this.getMeasuredPressure()} and position: ${x}`); return cFlow; } @@ -361,6 +361,7 @@ _callMeasurementHandler(measurementType, value, position, context) { // If no curve data is available, log a warning and return 0 this.logger.warn(`No curve data available for flow calculation. Returning 0.`); this.measurements.type("flow").variant("predicted").position("downstream").value(0); + this.measurements.type("flow").variant("predicted").position("atEquipment").value(0); return 0; } @@ -425,6 +426,11 @@ _callMeasurementHandler(measurementType, value, position, context) { // returns the best available pressure measurement to use in the prediction calculation // this will be either the differential pressure, downstream or upstream pressure getMeasuredPressure() { + if(this.hasCurve === false){ + this.logger.error(`No valid curve available to calculate prediction using last known pressure`); + return 0; + } + const pressureDiff = this.measurements.type('pressure').variant('measured').difference(); // Both upstream & downstream => differential @@ -560,6 +566,7 @@ _callMeasurementHandler(measurementType, value, position, context) { // Update predicted flow if you have prediction capability if (this.predictFlow) { this.measurements.type("flow").variant("predicted").position("downstream").value(this.predictFlow.outputY || 0); + this.measurements.type("flow").variant("predicted").position("atEquipment").value(this.predictFlow.outputY || 0); } }