X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2FOCPPServiceUtils.ts;h=256544fa50090a5a88319f08fdcbe47c2c845f05;hb=cffc32b7bc5a6569525e92b562af8a93760bc339;hp=8a42bf67a7b05f361374a1d04bf996ab5d6b304f;hpb=16c46962f43a692c996b1c89a94dc572fea52d63;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index 8a42bf67..256544fa 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -18,7 +18,8 @@ import { type AuthorizeResponse, ChargePointErrorCode, ChargingStationEvents, - type ConnectorStatusEnum, + type ConnectorStatus, + ConnectorStatusEnum, CurrentType, ErrorType, FileType, @@ -194,6 +195,21 @@ export const sendAndSetConnectorStatus = async ( }) } +export const restoreConnectorStatus = async ( + chargingStation: ChargingStation, + connectorId: number, + connectorStatus: ConnectorStatus | undefined +): Promise => { + if ( + connectorStatus?.reservation != null && + connectorStatus.status !== ConnectorStatusEnum.Reserved + ) { + await sendAndSetConnectorStatus(chargingStation, connectorId, ConnectorStatusEnum.Reserved) + } else if (connectorStatus?.status !== ConnectorStatusEnum.Available) { + await sendAndSetConnectorStatus(chargingStation, connectorId, ConnectorStatusEnum.Available) + } +} + const checkConnectorStatusTransition = ( chargingStation: ChargingStation, connectorId: number, @@ -1228,6 +1244,7 @@ const getMeasurandDefaultLocation = ( export class OCPPServiceUtils { public static readonly getMessageTypeString = getMessageTypeString public static readonly sendAndSetConnectorStatus = sendAndSetConnectorStatus + public static readonly restoreConnectorStatus = restoreConnectorStatus public static readonly isIdTagAuthorized = isIdTagAuthorized public static readonly buildTransactionEndMeterValue = buildTransactionEndMeterValue protected static getSampledValueTemplate = getSampledValueTemplate