From 5b1bd2d2c3c606aeef58cb1098def9a20c50dc4e Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sat, 8 Jun 2024 17:54:14 +0200 Subject: [PATCH] perf: compute power limitation only once MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- src/charging-station/ocpp/OCPPServiceUtils.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index 9d2d386d..b077b03a 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -305,6 +305,7 @@ export const buildMeterValue = ( ): MeterValue => { const connector = chargingStation.getConnectorStatus(connectorId) let meterValue: MeterValue + let connectorMaximumAvailablePower: number | undefined let socSampledValueTemplate: SampledValueTemplate | undefined let voltageSampledValueTemplate: SampledValueTemplate | undefined let powerSampledValueTemplate: SampledValueTemplate | undefined @@ -504,7 +505,7 @@ export const buildMeterValue = ( // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const powerMeasurandValues: MeasurandValues = {} as MeasurandValues const unitDivider = powerSampledValueTemplate.unit === MeterValueUnit.KILO_WATT ? 1000 : 1 - const connectorMaximumAvailablePower = + connectorMaximumAvailablePower = chargingStation.getConnectorMaximumAvailablePower(connectorId) const connectorMaximumPower = Math.round(connectorMaximumAvailablePower) const connectorMaximumPowerPerPhase = Math.round( @@ -774,8 +775,9 @@ export const buildMeterValue = ( } measurand value` // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const currentMeasurandValues: MeasurandValues = {} as MeasurandValues - const connectorMaximumAvailablePower = - chargingStation.getConnectorMaximumAvailablePower(connectorId) + connectorMaximumAvailablePower == null && + (connectorMaximumAvailablePower = + chargingStation.getConnectorMaximumAvailablePower(connectorId)) const connectorMinimumAmperage = currentSampledValueTemplate.minimumValue ?? 0 let connectorMaximumAmperage: number switch (chargingStation.stationInfo.currentOutType) { @@ -991,8 +993,9 @@ export const buildMeterValue = ( checkMeasurandPowerDivider(chargingStation, energySampledValueTemplate.measurand) const unitDivider = energySampledValueTemplate.unit === MeterValueUnit.KILO_WATT_HOUR ? 1000 : 1 - const connectorMaximumAvailablePower = - chargingStation.getConnectorMaximumAvailablePower(connectorId) + connectorMaximumAvailablePower == null && + (connectorMaximumAvailablePower = + chargingStation.getConnectorMaximumAvailablePower(connectorId)) const connectorMaximumEnergyRounded = roundTo( (connectorMaximumAvailablePower * interval) / (3600 * 1000), 2 -- 2.34.1