From: Jérôme Benoit Date: Thu, 6 Jun 2024 19:57:22 +0000 (+0200) Subject: fix: fix date handling connectorsStatus configuration file section X-Git-Tag: v1.3.4~4 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=1fa9df8ce0e186387ecaa80efb9f40180fc36a7d;hp=52f1dd569da1eac66de821796cdfbcef09b48c87;p=e-mobility-charging-stations-simulator.git fix: fix date handling connectorsStatus configuration file section Signed-off-by: Jérôme Benoit --- diff --git a/src/charging-station/ChargingStation.ts b/src/charging-station/ChargingStation.ts index 20223052..6b194f80 100644 --- a/src/charging-station/ChargingStation.ts +++ b/src/charging-station/ChargingStation.ts @@ -131,6 +131,7 @@ import { hasFeatureProfile, hasReservationExpired, initializeConnectorsMapStatus, + prepareDatesInConnectorStatus, propagateSerialNumber, setChargingStationOptions, stationTemplateToStationInfo, @@ -1472,7 +1473,10 @@ export class ChargingStation extends EventEmitter { private initializeConnectorsOrEvsesFromFile (configuration: ChargingStationConfiguration): void { if (configuration.connectorsStatus != null && configuration.evsesStatus == null) { for (const [connectorId, connectorStatus] of configuration.connectorsStatus.entries()) { - this.connectors.set(connectorId, clone(connectorStatus)) + this.connectors.set( + connectorId, + prepareDatesInConnectorStatus(clone(connectorStatus)) + ) } } else if (configuration.evsesStatus != null && configuration.connectorsStatus == null) { for (const [evseId, evseStatusConfiguration] of configuration.evsesStatus.entries()) { @@ -1484,7 +1488,7 @@ export class ChargingStation extends EventEmitter { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion evseStatusConfiguration.connectorsStatus!.map((connectorStatus, connectorId) => [ connectorId, - connectorStatus + prepareDatesInConnectorStatus(connectorStatus) ]) ) }) diff --git a/src/charging-station/Helpers.ts b/src/charging-station/Helpers.ts index 804eb7a1..8f9d833a 100644 --- a/src/charging-station/Helpers.ts +++ b/src/charging-station/Helpers.ts @@ -327,27 +327,6 @@ export const checkStationInfoConnectorStatus = ( } } -export const buildConnectorsMap = ( - connectors: Record, - logPrefix: string, - templateFile: string -): Map => { - const connectorsMap = new Map() - if (getMaxNumberOfConnectors(connectors) > 0) { - for (const connector in connectors) { - const connectorStatus = connectors[connector] - const connectorId = convertToInt(connector) - checkStationInfoConnectorStatus(connectorId, connectorStatus, logPrefix, templateFile) - connectorsMap.set(connectorId, clone(connectorStatus)) - } - } else { - logger.warn( - `${logPrefix} Charging station information from template ${templateFile} with no connectors, cannot build connectors map` - ) - } - return connectorsMap -} - export const setChargingStationOptions = ( stationInfo: ChargingStationInfo, options?: ChargingStationOptions @@ -379,6 +358,27 @@ export const setChargingStationOptions = ( return stationInfo } +export const buildConnectorsMap = ( + connectors: Record, + logPrefix: string, + templateFile: string +): Map => { + const connectorsMap = new Map() + if (getMaxNumberOfConnectors(connectors) > 0) { + for (const connector in connectors) { + const connectorStatus = connectors[connector] + const connectorId = convertToInt(connector) + checkStationInfoConnectorStatus(connectorId, connectorStatus, logPrefix, templateFile) + connectorsMap.set(connectorId, clone(connectorStatus)) + } + } else { + logger.warn( + `${logPrefix} Charging station information from template ${templateFile} with no connectors, cannot build connectors map` + ) + } + return connectorsMap +} + export const initializeConnectorsMapStatus = ( connectors: Map, logPrefix: string @@ -435,6 +435,26 @@ export const resetConnectorStatus = (connectorStatus: ConnectorStatus | undefine delete connectorStatus.transactionBeginMeterValue } +export const prepareDatesInConnectorStatus = ( + connectorStatus: ConnectorStatus +): ConnectorStatus => { + if (connectorStatus.reservation != null) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + connectorStatus.reservation.expiryDate = convertToDate(connectorStatus.reservation.expiryDate)! + } + if (isNotEmptyArray(connectorStatus.chargingProfiles)) { + connectorStatus.chargingProfiles = connectorStatus.chargingProfiles.map(chargingProfile => { + chargingProfile.chargingSchedule.startSchedule = convertToDate( + chargingProfile.chargingSchedule.startSchedule + ) + chargingProfile.validFrom = convertToDate(chargingProfile.validFrom) + chargingProfile.validTo = convertToDate(chargingProfile.validTo) + return chargingProfile + }) + } + return connectorStatus +} + export const createBootNotificationRequest = ( stationInfo: ChargingStationInfo, bootReason: BootReasonEnumType = BootReasonEnumType.PowerUp