}
}
)
+ this.on(
+ OCPP16IncomingRequestCommand.UPDATE_FIRMWARE,
+ (
+ chargingStation: ChargingStation,
+ request: OCPP16UpdateFirmwareRequest,
+ _response: OCPP16UpdateFirmwareResponse
+ ) => {
+ const retrieveDate = convertToDate(request.retrieveDate)
+ if (retrieveDate == null) return
+ const now = Date.now()
+ if (retrieveDate.getTime() <= now) {
+ this.updateFirmwareSimulation(chargingStation).catch((error: unknown) => {
+ logger.error(
+ `${chargingStation.logPrefix()} ${moduleName}.constructor: UpdateFirmware simulation error:`,
+ error
+ )
+ })
+ } else {
+ setTimeout(() => {
+ this.updateFirmwareSimulation(chargingStation).catch((error: unknown) => {
+ logger.error(
+ `${chargingStation.logPrefix()} ${moduleName}.constructor: UpdateFirmware simulation error:`,
+ error
+ )
+ })
+ }, retrieveDate.getTime() - now)
+ }
+ }
+ )
}
public override stop (chargingStation: ChargingStation): void {
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
commandPayload.retrieveDate = convertToDate(commandPayload.retrieveDate)!
- const { retrieveDate } = commandPayload
if (
chargingStation.stationInfo?.firmwareStatus === OCPP16FirmwareStatus.Downloading ||
chargingStation.stationInfo?.firmwareStatus === OCPP16FirmwareStatus.Downloaded ||
)
return OCPP16Constants.OCPP_RESPONSE_EMPTY
}
- const now = Date.now()
- if (retrieveDate.getTime() <= now) {
- this.updateFirmwareSimulation(chargingStation).catch((error: unknown) => {
- logger.error(
- `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: Firmware update simulation error:`,
- error
- )
- })
- } else {
- setTimeout(() => {
- this.updateFirmwareSimulation(chargingStation).catch((error: unknown) => {
- logger.error(
- `${chargingStation.logPrefix()} ${moduleName}.handleRequestUpdateFirmware: Firmware update simulation error:`,
- error
- )
- })
- }, retrieveDate.getTime() - now)
- }
return OCPP16Constants.OCPP_RESPONSE_EMPTY
}
}
}
)
+ this.on(
+ OCPP20IncomingRequestCommand.REQUEST_STOP_TRANSACTION,
+ (
+ chargingStation: ChargingStation,
+ request: OCPP20RequestStopTransactionRequest,
+ response: OCPP20RequestStopTransactionResponse
+ ) => {
+ if (response.status === RequestStartStopStatusEnumType.Accepted) {
+ const connectorId = chargingStation.getConnectorIdByTransactionId(request.transactionId)
+ const evseId = chargingStation.getEvseIdByTransactionId(request.transactionId)
+ if (connectorId != null && evseId != null) {
+ OCPP20ServiceUtils.requestStopTransaction(chargingStation, connectorId, evseId).catch(
+ (error: unknown) => {
+ logger.error(
+ `${chargingStation.logPrefix()} ${moduleName}.constructor: RequestStopTransaction error:`,
+ error
+ )
+ }
+ )
+ }
+ }
+ }
+ )
this.on(
OCPP20IncomingRequestCommand.TRIGGER_MESSAGE,
(
}
}
- private async handleRequestStopTransaction (
+ private handleRequestStopTransaction (
chargingStation: ChargingStation,
commandPayload: OCPP20RequestStopTransactionRequest
- ): Promise<OCPP20RequestStopTransactionResponse> {
+ ): OCPP20RequestStopTransactionResponse {
const { transactionId } = commandPayload
logger.info(
`${chargingStation.logPrefix()} ${moduleName}.handleRequestStopTransaction: Remote stop transaction request received for transaction ID ${transactionId as string}`
}
}
- try {
- const stopResponse = await OCPP20ServiceUtils.requestStopTransaction(
- chargingStation,
- connectorId,
- evseId
- )
-
- if (stopResponse.status === GenericStatus.Accepted) {
- logger.info(
- `${chargingStation.logPrefix()} ${moduleName}.handleRequestStopTransaction: Remote stop transaction ACCEPTED for transactionId '${transactionId as string}'`
- )
- return {
- status: RequestStartStopStatusEnumType.Accepted,
- }
- }
-
- logger.warn(
- `${chargingStation.logPrefix()} ${moduleName}.handleRequestStopTransaction: Remote stop transaction REJECTED for transactionId '${transactionId as string}'`
- )
- return {
- status: RequestStartStopStatusEnumType.Rejected,
- statusInfo: {
- additionalInfo: 'Remote stop transaction rejected',
- reasonCode: ReasonCodeEnumType.Unspecified,
- },
- }
- } catch (error) {
- logger.error(
- `${chargingStation.logPrefix()} ${moduleName}.handleRequestStopTransaction: Error occurred during remote stop transaction for transaction ID ${transactionId as string} on connector ${connectorId.toString()}:`,
- error
- )
- return {
- status: RequestStartStopStatusEnumType.Rejected,
- statusInfo: {
- additionalInfo: 'Error occurred during remote stop transaction',
- reasonCode: ReasonCodeEnumType.InternalError,
- },
- }
+ logger.info(
+ `${chargingStation.logPrefix()} ${moduleName}.handleRequestStopTransaction: Remote stop transaction ACCEPTED for transactionId '${transactionId as string}'`
+ )
+ return {
+ status: RequestStartStopStatusEnumType.Accepted,
}
}