From 4cc529b1c2ca60e72189bd1b43948681c27c0771 Mon Sep 17 00:00:00 2001 From: znetsixe <73483679+znetsixe@users.noreply.github.com> Date: Wed, 12 Nov 2025 17:37:09 +0100 Subject: [PATCH] Fixes next idle machine for level control --- src/specificClass.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/specificClass.js b/src/specificClass.js index 8d731ca..4fb2ffe 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -1,5 +1,6 @@ const EventEmitter = require('events'); const {logger,configUtils,configManager,childRegistrationUtils,MeasurementContainer,coolprop,interpolation} = require('generalFunctions'); + class PumpingStation { constructor(config = {}) { this.emitter = new EventEmitter(); @@ -192,7 +193,10 @@ class PumpingStation { } _nextIdleMachine() { - return Object.values(this.machines).find(m => !m._isOperationalState()); + return Object.values(this.machines).find((machine) => { + const position = machine?.config?.functionality?.positionVsParent; + return ( position === 'downstream' || position === 'atEquipment') && !machine._isOperationalState(); + }); } //control logic @@ -370,6 +374,7 @@ class PumpingStation { } } + _onLevelMeasurement(position, value, context = {}) { const levelSeries = this.measurements.type('level').variant('measured').position(position); const levelMeters = levelSeries.getCurrentValue('m'); @@ -688,11 +693,13 @@ class PumpingStation { return 'steady'; } + /* ------------------------------------------------------------------ */ /* Basin Calculations */ /* ------------------------------------------------------------------ */ initBasinProperties() { + const volEmptyBasin = this.config.basin.volume; const heightBasin = this.config.basin.height; const heightInlet = this.config.basin.heightInlet; @@ -718,12 +725,7 @@ class PumpingStation { minVolOut }; - this.measurements - .type('volume') - .variant('predicted') - .position('atEquipment') - .value(maxVolOverflow) - .unit('m3'); + this.measurements.type('volume').variant('predicted').position('atEquipment').value(maxVolOverflow).unit('m3'); this.logger.debug( `Basin initialized | area=${surfaceArea.toFixed(2)} m2, max=${maxVol.toFixed(2)} m3, overflow=${maxVolOverflow.toFixed(2)} m3` @@ -771,7 +773,7 @@ module.exports = PumpingStation; /* ------------------------------------------------------------------------- */ /* Example usage */ /* ------------------------------------------------------------------------- */ - +/* if (require.main === module) { const Measurement = require('../../measurement/src/specificClass'); const RotatingMachine = require('../../rotatingMachine/src/specificClass');