X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FChargingStationUtils.ts;h=4564f389674f45e4dba051e2bf0432e8db11dafa;hb=c3b8313087c651563b66173c2d6dd41034d194f9;hp=9f93e5ffe0c8be18c33d26604f3d96af65be7682;hpb=52952bf8f73e5ad1a85c0c9205412a9198bfc720;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ChargingStationUtils.ts b/src/charging-station/ChargingStationUtils.ts index 9f93e5ff..4564f389 100644 --- a/src/charging-station/ChargingStationUtils.ts +++ b/src/charging-station/ChargingStationUtils.ts @@ -19,6 +19,7 @@ import { type ChargingStationInfo, type ChargingStationTemplate, type ConnectorStatus, + ConnectorStatusEnum, CurrentType, type EvseTemplate, type OCPP16BootNotificationRequest, @@ -125,6 +126,31 @@ export class ChargingStationUtils { } } + public static getBootConnectorStatus( + chargingStation: ChargingStation, + connectorId: number, + connectorStatus: ConnectorStatus + ): ConnectorStatusEnum { + let connectorBootStatus: ConnectorStatusEnum; + if ( + !connectorStatus?.status && + (chargingStation.isChargingStationAvailable() === false || + chargingStation.isConnectorAvailable(connectorId) === false) + ) { + connectorBootStatus = ConnectorStatusEnum.Unavailable; + } else if (!connectorStatus?.status && connectorStatus?.bootStatus) { + // Set boot status in template at startup + connectorBootStatus = connectorStatus?.bootStatus; + } else if (connectorStatus?.status) { + // Set previous status at startup + connectorBootStatus = connectorStatus?.status; + } else { + // Set default status + connectorBootStatus = ConnectorStatusEnum.Available; + } + return connectorBootStatus; + } + public static getConfiguredNumberOfConnectors(stationInfo: ChargingStationInfo): number { let configuredMaxConnectors: number; if (Utils.isNotEmptyArray(stationInfo.numberOfConnectors) === true) { @@ -171,7 +197,7 @@ export class ChargingStationUtils { ): void { if (!Utils.isNullOrUndefined(connectorStatus?.status)) { logger.warn( - `${logPrefix} Charging station information from template ${templateFile} with connector ${connectorId} status configuration defined, undefine it` + `${logPrefix} Charging station information from template ${templateFile} with connector id ${connectorId} status configuration defined, undefine it` ); delete connectorStatus.status; } @@ -210,15 +236,12 @@ export class ChargingStationUtils { for (const connectorId of connectors.keys()) { if (connectorId > 0 && connectors.get(connectorId)?.transactionStarted === true) { logger.warn( - `${logPrefix} Connector ${connectorId} at initialization has a transaction started: ${ + `${logPrefix} Connector id ${connectorId} at initialization has a transaction started with id ${ connectors.get(connectorId)?.transactionId }` ); } - if ( - connectorId === 0 && - Utils.isNullOrUndefined(connectors.get(connectorId)?.transactionStarted) - ) { + if (connectorId === 0) { connectors.get(connectorId).availability = AvailabilityType.Operative; if (Utils.isUndefined(connectors.get(connectorId)?.chargingProfiles)) { connectors.get(connectorId).chargingProfiles = []; @@ -559,7 +582,7 @@ export class ChargingStationUtils { } /** - * Charging profiles should already be sorted by connectorId and stack level (highest stack level has priority) + * Charging profiles should already be sorted by connector id and stack level (highest stack level has priority) * * @param chargingProfiles - * @param logPrefix -