From 7820bd2ad20746f552194153c02eb28cc2320594 Mon Sep 17 00:00:00 2001 From: znetsixe <73483679+znetsixe@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:58:59 +0200 Subject: [PATCH] improvement on business handler of specific class child handling. --- src/specificClass.js | 69 ++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/src/specificClass.js b/src/specificClass.js index 109a681..8317f2e 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -128,41 +128,48 @@ class Machine { } this.logger.debug(`Found ${sensors.length} sensors to register events for`); - - // ✅ PRESSURE - Your existing logic but enhanced + + // ✅ Register events for each sensor sensors.forEach(sensor => { - // ✅ Enhanced upstream pressure handling - sensor.measurements.emitter.on('pressure.measured.upstream', (eventData) => { - this.logger.debug(`🔄 Upstream pressure from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); - - // ✅ Your existing logic - but with enhanced context - this.updateMeasuredPressure(eventData.value, 'upstream', eventData); - }); + switch (sensor.config.asset.type) { + case 'pressure': + this.logger.debug(`Registering pressure events for sensor: ${sensor.config.general.name}`); + // upstream pressure handling + sensor.measurements.emitter.on('pressure.measured.upstream', (eventData) => { + this.logger.debug(`🔄 Upstream pressure from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); + // Update the measured pressure + this.updateMeasuredPressure(eventData.value, 'upstream', eventData); + }); - // ✅ Enhanced downstream pressure handling - sensor.measurements.emitter.on('pressure.measured.downstream', (eventData) => { - this.logger.debug(`🔄 Downstream pressure from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); - - // ✅ Your existing logic - but with enhanced context - this.updateMeasuredPressure(eventData.value, 'downstream', eventData); - }); + // downstream pressure handling + sensor.measurements.emitter.on('pressure.measured.downstream', (eventData) => { + this.logger.debug(`🔄 Downstream pressure from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); + // Update the measured pressure + this.updateMeasuredPressure(eventData.value, 'downstream', eventData); + }); + break; + case 'flow': + this.logger.debug(`Registering flow events for sensor: ${sensor.config.general.name}`); + // upstream flow handling + sensors.forEach(sensor => { + sensor.measurements.emitter.on('flow.measured.upstream', (eventData) => { + this.logger.debug(`🔄 Upstream flow from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); + this.updateMeasuredFlow(eventData.value, 'upstream', eventData); + }); + // downstream flow handling + sensor.measurements.emitter.on('flow.measured.downstream', (eventData) => { + this.logger.debug(`🔄 Downstream flow from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); + this.updateMeasuredFlow(eventData.value, 'downstream', eventData); + }); + }); + break; - this.logger.debug(`✅ Pressure events registered for sensor: ${sensor.config.general.name}`); + default: + this.logger.warn(`Unknown sensor type: ${sensor.config.asset.type}. No events registered.`); + break; + } }); - - // ✅ FLOW - Add your flow handling (following same pattern) - sensors.forEach(sensor => { - sensor.measurements.emitter.on('flow.measured.upstream', (eventData) => { - this.logger.debug(`🔄 Upstream flow from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); - this.updateMeasuredFlow(eventData.value, 'upstream', eventData); - }); - - sensor.measurements.emitter.on('flow.measured.downstream', (eventData) => { - this.logger.debug(`🔄 Downstream flow from ${eventData.childName}: ${eventData.value} ${eventData.unit}`); - this.updateMeasuredFlow(eventData.value, 'downstream', eventData); - }); - }); - + // ✅ Log registration summary this.logger.info(`✅ Event listeners registered for ${sensors.length} measurement sensors`);