X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2Focpp%2F1.6%2FOCPP16ResponseService.ts;h=aec5d65f31ba851e199aa865b8b759694b81faea;hb=3024d5b2497e97bdd355243a5d236fa3f7a4d874;hp=e6c3b43472c8ef0975f3e855deebf51b7c013919;hpb=923ac728c8636e5d8e7cc387ade07990385c6fdd;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts index e6c3b434..aec5d65f 100644 --- a/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16ResponseService.ts @@ -13,6 +13,7 @@ import { import { OCPPError } from '../../../exception/index.js' import { type ChangeConfigurationResponse, + ChargingStationEvents, ErrorType, type GenericResponse, type GetConfigurationResponse, @@ -468,7 +469,7 @@ export class OCPP16ResponseService extends OCPPResponseService { // Throw exception throw new OCPPError( ErrorType.NOT_IMPLEMENTED, - `'${commandName}' is not implemented to handle response PDU ${JSON.stringify( + `${commandName} is not implemented to handle response PDU ${JSON.stringify( payload, undefined, 2 @@ -509,24 +510,30 @@ export class OCPP16ResponseService extends OCPPResponseService { chargingStation: ChargingStation, payload: OCPP16BootNotificationResponse ): void { - if (payload.status === RegistrationStatusEnumType.ACCEPTED) { - addConfigurationKey( - chargingStation, - OCPP16StandardParametersKey.HeartbeatInterval, - payload.interval.toString(), - {}, - { overwrite: true, save: true } - ) - addConfigurationKey( - chargingStation, - OCPP16StandardParametersKey.HeartBeatInterval, - payload.interval.toString(), - { visible: false }, - { overwrite: true, save: true } - ) - OCPP16ServiceUtils.startHeartbeatInterval(chargingStation, payload.interval) - } if (Object.values(RegistrationStatusEnumType).includes(payload.status)) { + chargingStation.bootNotificationResponse = payload + if (chargingStation.isRegistered()) { + chargingStation.emit(ChargingStationEvents.registered) + if (chargingStation.inAcceptedState()) { + addConfigurationKey( + chargingStation, + OCPP16StandardParametersKey.HeartbeatInterval, + payload.interval.toString(), + {}, + { overwrite: true, save: true } + ) + addConfigurationKey( + chargingStation, + OCPP16StandardParametersKey.HeartBeatInterval, + payload.interval.toString(), + { visible: false }, + { overwrite: true, save: true } + ) + chargingStation.emit(ChargingStationEvents.accepted) + } + } else if (chargingStation.inRejectedState()) { + chargingStation.emit(ChargingStationEvents.rejected) + } const logMsg = `${chargingStation.logPrefix()} Charging station in '${ payload.status }' state on the central server` @@ -534,6 +541,7 @@ export class OCPP16ResponseService extends OCPPResponseService { ? logger.warn(logMsg) : logger.info(logMsg) } else { + delete chargingStation.bootNotificationResponse logger.error( `${chargingStation.logPrefix()} Charging station boot notification response received: %j with undefined registration status`, payload @@ -583,9 +591,9 @@ export class OCPP16ResponseService extends OCPPResponseService { authorizeConnectorStatus.idTagAuthorized = false delete authorizeConnectorStatus.authorizeIdTag logger.debug( - `${chargingStation.logPrefix()} idTag '${requestPayload.idTag}' rejected with status '${ - payload.idTagInfo.status - }'` + `${chargingStation.logPrefix()} idTag '${ + requestPayload.idTag + }' rejected with status '${payload.idTagInfo.status}'` ) } } else { @@ -698,7 +706,9 @@ export class OCPP16ResponseService extends OCPPResponseService { connectorStatus?.status !== OCPP16ChargePointStatus.Preparing ) { logger.error( - `${chargingStation.logPrefix()} Trying to start a transaction on connector id ${connectorId} with status ${connectorStatus?.status}` + `${chargingStation.logPrefix()} Trying to start a transaction on connector id ${connectorId} with status ${ + connectorStatus?.status + }` ) return } @@ -733,9 +743,9 @@ export class OCPP16ResponseService extends OCPPResponseService { logger.warn( `${chargingStation.logPrefix()} Reserved transaction ${ payload.transactionId - } started with a different idTag ${requestPayload.idTag} than the reservation one ${ - reservation.idTag - }` + } started with a different idTag ${ + requestPayload.idTag + } than the reservation one ${reservation.idTag}` ) } if (hasReservationExpired(reservation)) { @@ -774,11 +784,9 @@ export class OCPP16ResponseService extends OCPPResponseService { OCPP16ChargePointStatus.Charging ) logger.info( - `${chargingStation.logPrefix()} Transaction with id ${ - payload.transactionId - } STARTED on ${chargingStation.stationInfo?.chargingStationId}#${connectorId} for idTag '${ - requestPayload.idTag - }'` + `${chargingStation.logPrefix()} Transaction with id ${payload.transactionId} STARTED on ${ + chargingStation.stationInfo?.chargingStationId + }#${connectorId} for idTag '${requestPayload.idTag}'` ) if (chargingStation.stationInfo?.powerSharedByConnectors === true) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion