this.incomingRequestHandlers = new Map<IncomingRequestCommand, IncomingRequestHandler>([
[
OCPP16IncomingRequestCommand.CANCEL_RESERVATION,
- this.handleRequestCancelReservation.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestCancelReservation.bind(this)),
],
[
OCPP16IncomingRequestCommand.CHANGE_AVAILABILITY,
- this.handleRequestChangeAvailability.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestChangeAvailability.bind(this)),
],
[
OCPP16IncomingRequestCommand.CHANGE_CONFIGURATION,
- this.handleRequestChangeConfiguration.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestChangeConfiguration.bind(this)),
],
[
OCPP16IncomingRequestCommand.CLEAR_CACHE,
- this.handleRequestClearCache.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestClearCache.bind(this)),
],
[
OCPP16IncomingRequestCommand.CLEAR_CHARGING_PROFILE,
- this.handleRequestClearChargingProfile.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestClearChargingProfile.bind(this)),
],
[
OCPP16IncomingRequestCommand.DATA_TRANSFER,
- this.handleRequestDataTransfer.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestDataTransfer.bind(this)),
],
[
OCPP16IncomingRequestCommand.GET_COMPOSITE_SCHEDULE,
- this.handleRequestGetCompositeSchedule.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestGetCompositeSchedule.bind(this)),
],
[
OCPP16IncomingRequestCommand.GET_CONFIGURATION,
- this.handleRequestGetConfiguration.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestGetConfiguration.bind(this)),
],
[
OCPP16IncomingRequestCommand.GET_DIAGNOSTICS,
- this.handleRequestGetDiagnostics.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestGetDiagnostics.bind(this)),
],
[
OCPP16IncomingRequestCommand.REMOTE_START_TRANSACTION,
- this.handleRequestRemoteStartTransaction.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestRemoteStartTransaction.bind(this)),
],
[
OCPP16IncomingRequestCommand.REMOTE_STOP_TRANSACTION,
- this.handleRequestRemoteStopTransaction.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestRemoteStopTransaction.bind(this)),
],
[
OCPP16IncomingRequestCommand.RESERVE_NOW,
- this.handleRequestReserveNow.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestReserveNow.bind(this)),
],
[
OCPP16IncomingRequestCommand.RESET,
- this.handleRequestReset.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestReset.bind(this)),
],
[
OCPP16IncomingRequestCommand.SET_CHARGING_PROFILE,
- this.handleRequestSetChargingProfile.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestSetChargingProfile.bind(this)),
],
[
OCPP16IncomingRequestCommand.TRIGGER_MESSAGE,
- this.handleRequestTriggerMessage.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestTriggerMessage.bind(this)),
],
[
OCPP16IncomingRequestCommand.UNLOCK_CONNECTOR,
- this.handleRequestUnlockConnector.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestUnlockConnector.bind(this)),
],
[
OCPP16IncomingRequestCommand.UPDATE_FIRMWARE,
- this.handleRequestUpdateFirmware.bind(this) as unknown as IncomingRequestHandler,
+ this.toRequestHandler(this.handleRequestUpdateFirmware.bind(this)),
],
])
this.payloadValidatorFunctions = OCPP16ServiceUtils.createPayloadValidatorMap(
public constructor () {
super(OCPPVersion.VERSION_16)
this.responseHandlers = new Map<RequestCommand, ResponseHandler>([
- [OCPP16RequestCommand.AUTHORIZE, this.handleResponseAuthorize.bind(this) as ResponseHandler],
+ [
+ OCPP16RequestCommand.AUTHORIZE,
+ this.toResponseHandler(this.handleResponseAuthorize.bind(this)),
+ ],
[
OCPP16RequestCommand.BOOT_NOTIFICATION,
- this.handleResponseBootNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseBootNotification.bind(this)),
],
[OCPP16RequestCommand.DATA_TRANSFER, this.emptyResponseHandler],
[
OCPP16RequestCommand.DIAGNOSTICS_STATUS_NOTIFICATION,
- this.emptyResponseHandler.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.emptyResponseHandler.bind(this)),
],
[OCPP16RequestCommand.FIRMWARE_STATUS_NOTIFICATION, this.emptyResponseHandler],
[OCPP16RequestCommand.HEARTBEAT, this.emptyResponseHandler],
[OCPP16RequestCommand.METER_VALUES, this.emptyResponseHandler],
[
OCPP16RequestCommand.START_TRANSACTION,
- this.handleResponseStartTransaction.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseStartTransaction.bind(this)),
],
[
OCPP16RequestCommand.STATUS_NOTIFICATION,
- this.emptyResponseHandler.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.emptyResponseHandler.bind(this)),
],
[
OCPP16RequestCommand.STOP_TRANSACTION,
- this.handleResponseStopTransaction.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseStopTransaction.bind(this)),
],
])
this.payloadValidatorFunctions = OCPP16ServiceUtils.createPayloadValidatorMap(
this.incomingRequestHandlers = new Map<IncomingRequestCommand, IncomingRequestHandler>([
[
OCPP20IncomingRequestCommand.CERTIFICATE_SIGNED,
- this.toHandler(this.handleRequestCertificateSigned.bind(this)),
+ this.toRequestHandler(this.handleRequestCertificateSigned.bind(this)),
],
[
OCPP20IncomingRequestCommand.CHANGE_AVAILABILITY,
- this.toHandler(this.handleRequestChangeAvailability.bind(this)),
+ this.toRequestHandler(this.handleRequestChangeAvailability.bind(this)),
],
[
OCPP20IncomingRequestCommand.CLEAR_CACHE,
- this.toHandler(this.handleRequestClearCache.bind(this)),
+ this.toRequestHandler(this.handleRequestClearCache.bind(this)),
],
[
OCPP20IncomingRequestCommand.CUSTOMER_INFORMATION,
- this.toHandler(this.handleRequestCustomerInformation.bind(this)),
+ this.toRequestHandler(this.handleRequestCustomerInformation.bind(this)),
],
[
OCPP20IncomingRequestCommand.DATA_TRANSFER,
- this.toHandler(this.handleRequestDataTransfer.bind(this)),
+ this.toRequestHandler(this.handleRequestDataTransfer.bind(this)),
],
[
OCPP20IncomingRequestCommand.DELETE_CERTIFICATE,
- this.toHandler(this.handleRequestDeleteCertificate.bind(this)),
+ this.toRequestHandler(this.handleRequestDeleteCertificate.bind(this)),
],
[
OCPP20IncomingRequestCommand.GET_BASE_REPORT,
- this.toHandler(this.handleRequestGetBaseReport.bind(this)),
+ this.toRequestHandler(this.handleRequestGetBaseReport.bind(this)),
],
[
OCPP20IncomingRequestCommand.GET_INSTALLED_CERTIFICATE_IDS,
- this.toHandler(this.handleRequestGetInstalledCertificateIds.bind(this)),
+ this.toRequestHandler(this.handleRequestGetInstalledCertificateIds.bind(this)),
+ ],
+ [
+ OCPP20IncomingRequestCommand.GET_LOG,
+ this.toRequestHandler(this.handleRequestGetLog.bind(this)),
],
- [OCPP20IncomingRequestCommand.GET_LOG, this.toHandler(this.handleRequestGetLog.bind(this))],
[
OCPP20IncomingRequestCommand.GET_TRANSACTION_STATUS,
- this.toHandler(this.handleRequestGetTransactionStatus.bind(this)),
+ this.toRequestHandler(this.handleRequestGetTransactionStatus.bind(this)),
],
[
OCPP20IncomingRequestCommand.GET_VARIABLES,
- this.toHandler(this.handleRequestGetVariables.bind(this)),
+ this.toRequestHandler(this.handleRequestGetVariables.bind(this)),
],
[
OCPP20IncomingRequestCommand.INSTALL_CERTIFICATE,
- this.toHandler(this.handleRequestInstallCertificate.bind(this)),
+ this.toRequestHandler(this.handleRequestInstallCertificate.bind(this)),
],
[
OCPP20IncomingRequestCommand.REQUEST_START_TRANSACTION,
- this.toHandler(this.handleRequestStartTransaction.bind(this)),
+ this.toRequestHandler(this.handleRequestStartTransaction.bind(this)),
],
[
OCPP20IncomingRequestCommand.REQUEST_STOP_TRANSACTION,
- this.toHandler(this.handleRequestStopTransaction.bind(this)),
+ this.toRequestHandler(this.handleRequestStopTransaction.bind(this)),
+ ],
+ [
+ OCPP20IncomingRequestCommand.RESET,
+ this.toRequestHandler(this.handleRequestReset.bind(this)),
],
- [OCPP20IncomingRequestCommand.RESET, this.toHandler(this.handleRequestReset.bind(this))],
[
OCPP20IncomingRequestCommand.SET_NETWORK_PROFILE,
- this.toHandler(this.handleRequestSetNetworkProfile.bind(this)),
+ this.toRequestHandler(this.handleRequestSetNetworkProfile.bind(this)),
],
[
OCPP20IncomingRequestCommand.SET_VARIABLES,
- this.toHandler(this.handleRequestSetVariables.bind(this)),
+ this.toRequestHandler(this.handleRequestSetVariables.bind(this)),
],
[
OCPP20IncomingRequestCommand.TRIGGER_MESSAGE,
- this.toHandler(this.handleRequestTriggerMessage.bind(this)),
+ this.toRequestHandler(this.handleRequestTriggerMessage.bind(this)),
],
[
OCPP20IncomingRequestCommand.UNLOCK_CONNECTOR,
- this.toHandler(this.handleRequestUnlockConnector.bind(this)),
+ this.toRequestHandler(this.handleRequestUnlockConnector.bind(this)),
],
[
OCPP20IncomingRequestCommand.UPDATE_FIRMWARE,
- this.toHandler(this.handleRequestUpdateFirmware.bind(this)),
+ this.toRequestHandler(this.handleRequestUpdateFirmware.bind(this)),
],
])
this.payloadValidatorFunctions = OCPP20ServiceUtils.createPayloadValidatorMap(
)
}
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- bridges contravariant handler signatures into IncomingRequestHandler
- private toHandler<P extends JsonType, R extends JsonType>(
- handler: (chargingStation: ChargingStation, commandPayload: P) => Promise<R> | R
- ): IncomingRequestHandler {
- return handler as unknown as IncomingRequestHandler
- }
-
private triggerAllEvseStatusNotifications (
chargingStation: ChargingStation,
errorHandler: (error: unknown) => void
public constructor () {
super(OCPPVersion.VERSION_201)
this.responseHandlers = new Map<RequestCommand, ResponseHandler>([
- [OCPP20RequestCommand.AUTHORIZE, this.handleResponseAuthorize.bind(this) as ResponseHandler],
+ [
+ OCPP20RequestCommand.AUTHORIZE,
+ this.toResponseHandler(this.handleResponseAuthorize.bind(this)),
+ ],
[
OCPP20RequestCommand.BOOT_NOTIFICATION,
- this.handleResponseBootNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseBootNotification.bind(this)),
],
[
OCPP20RequestCommand.DATA_TRANSFER,
- this.handleResponseDataTransfer.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseDataTransfer.bind(this)),
],
[
OCPP20RequestCommand.FIRMWARE_STATUS_NOTIFICATION,
- this.handleResponseFirmwareStatusNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseFirmwareStatusNotification.bind(this)),
],
[
OCPP20RequestCommand.GET_15118_EV_CERTIFICATE,
- this.handleResponseGet15118EVCertificate.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseGet15118EVCertificate.bind(this)),
],
[
OCPP20RequestCommand.GET_CERTIFICATE_STATUS,
- this.handleResponseGetCertificateStatus.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseGetCertificateStatus.bind(this)),
+ ],
+ [
+ OCPP20RequestCommand.HEARTBEAT,
+ this.toResponseHandler(this.handleResponseHeartbeat.bind(this)),
],
- [OCPP20RequestCommand.HEARTBEAT, this.handleResponseHeartbeat.bind(this) as ResponseHandler],
[
OCPP20RequestCommand.LOG_STATUS_NOTIFICATION,
- this.handleResponseLogStatusNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseLogStatusNotification.bind(this)),
],
[
OCPP20RequestCommand.METER_VALUES,
- this.handleResponseMeterValues.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseMeterValues.bind(this)),
],
[
OCPP20RequestCommand.NOTIFY_CUSTOMER_INFORMATION,
- this.handleResponseNotifyCustomerInformation.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseNotifyCustomerInformation.bind(this)),
],
[
OCPP20RequestCommand.NOTIFY_REPORT,
- this.handleResponseNotifyReport.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseNotifyReport.bind(this)),
],
[
OCPP20RequestCommand.SECURITY_EVENT_NOTIFICATION,
- this.handleResponseSecurityEventNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseSecurityEventNotification.bind(this)),
],
[
OCPP20RequestCommand.SIGN_CERTIFICATE,
- this.handleResponseSignCertificate.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseSignCertificate.bind(this)),
],
[
OCPP20RequestCommand.STATUS_NOTIFICATION,
- this.handleResponseStatusNotification.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseStatusNotification.bind(this)),
],
[
OCPP20RequestCommand.TRANSACTION_EVENT,
- this.handleResponseTransactionEvent.bind(this) as ResponseHandler,
+ this.toResponseHandler(this.handleResponseTransactionEvent.bind(this)),
],
])
this.payloadValidatorFunctions = OCPP20ServiceUtils.createPayloadValidatorMap(
chargingStation: ChargingStation,
commandName: IncomingRequestCommand
): boolean
+
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- bridges contravariant handler signatures into IncomingRequestHandler
+ protected toRequestHandler<P extends JsonType, R extends JsonType>(
+ handler: (chargingStation: ChargingStation, commandPayload: P) => Promise<R> | R
+ ): IncomingRequestHandler {
+ return handler as unknown as IncomingRequestHandler
+ }
+
/**
* Validates incoming request payload against JSON schema
* @param chargingStation - The charging station instance processing the request
commandName: RequestCommand
): boolean
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- bridges contravariant handler signatures into ResponseHandler
+ protected toResponseHandler<P extends JsonType, R extends JsonType>(
+ handler: (
+ chargingStation: ChargingStation,
+ payload: P,
+ requestPayload: R
+ ) => Promise<void> | void
+ ): ResponseHandler {
+ return handler as unknown as ResponseHandler
+ }
+
/**
* Validates incoming response payload against JSON schema
* @param chargingStation - The charging station instance receiving the response