From: Jérôme Benoit Date: Tue, 24 Mar 2026 00:16:06 +0000 (+0100) Subject: refactor(ocpp): extract buildEmptyMeterValue helper for empty MeterValue construction X-Git-Tag: v3.3~5 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=e19ff6c4e109105f061f70525771015dc48fed5c;p=e-mobility-charging-stations-simulator.git refactor(ocpp): extract buildEmptyMeterValue helper for empty MeterValue construction Replace 4 inline { sampledValue: [], timestamp: new Date() } constructions with buildEmptyMeterValue() helper in OCPPServiceUtils and OCPP16ServiceUtils. --- diff --git a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts index 3166fb90..0604a4ba 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ServiceUtils.ts @@ -52,6 +52,7 @@ import { roundTo, } from '../../../utils/index.js' import { + buildEmptyMeterValue, buildMeterValue, buildTransactionEndMeterValue, OCPPServiceUtils, @@ -102,10 +103,7 @@ export class OCPP16ServiceUtils extends OCPPServiceUtils { connectorId: number, meterStart: number | undefined ): OCPP16MeterValue { - const meterValue: OCPP16MeterValue = { - sampledValue: [], - timestamp: new Date(), - } + const meterValue = buildEmptyMeterValue() as OCPP16MeterValue // Energy.Active.Import.Register measurand (default) const sampledValueTemplate = OCPP16ServiceUtils.getSampledValueTemplate( chargingStation, diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index 7b30acd1..c90013a6 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -1553,6 +1553,11 @@ const buildCurrentMeasurandValue = ( } } +export const buildEmptyMeterValue = (): MeterValue => ({ + sampledValue: [], + timestamp: new Date(), +}) + export const buildMeterValue = ( chargingStation: ChargingStation, transactionId: number | string | undefined, @@ -1560,7 +1565,7 @@ export const buildMeterValue = ( debug = false ): MeterValue => { if (transactionId == null) { - return { sampledValue: [], timestamp: new Date() } + return buildEmptyMeterValue() } switch (chargingStation.stationInfo?.ocppVersion) { case OCPPVersion.VERSION_16: { @@ -1573,10 +1578,7 @@ export const buildMeterValue = ( ) } const connector = chargingStation.getConnectorStatus(connectorId) - const meterValue: OCPP16MeterValue = { - sampledValue: [], - timestamp: new Date(), - } + const meterValue = buildEmptyMeterValue() as OCPP16MeterValue const buildVersionedSampledValue = ( sampledValueTemplate: SampledValueTemplate, value: number, @@ -1795,10 +1797,7 @@ export const buildMeterValue = ( ) } const connector = chargingStation.getConnectorStatus(connectorId) - const meterValue: OCPP20MeterValue = { - sampledValue: [], - timestamp: new Date(), - } + const meterValue = buildEmptyMeterValue() as OCPP20MeterValue const buildVersionedSampledValue = ( sampledValueTemplate: SampledValueTemplate, value: number, @@ -1938,10 +1937,7 @@ export const buildTransactionEndMeterValue = ( const unitDivider = sampledValueTemplate.unit === MeterValueUnit.KILO_WATT_HOUR ? 1000 : 1 switch (chargingStation.stationInfo?.ocppVersion) { case OCPPVersion.VERSION_16: { - const meterValue: OCPP16MeterValue = { - sampledValue: [], - timestamp: new Date(), - } + const meterValue = buildEmptyMeterValue() as OCPP16MeterValue meterValue.sampledValue.push( buildSampledValueForOCPP16( sampledValueTemplate, @@ -1953,10 +1949,7 @@ export const buildTransactionEndMeterValue = ( } case OCPPVersion.VERSION_20: case OCPPVersion.VERSION_201: { - const meterValue: OCPP20MeterValue = { - sampledValue: [], - timestamp: new Date(), - } + const meterValue = buildEmptyMeterValue() as OCPP20MeterValue meterValue.sampledValue.push( buildSampledValueForOCPP20( sampledValueTemplate,