From: Jérôme Benoit Date: Wed, 5 Jun 2024 15:11:29 +0000 (+0200) Subject: fix: properly handle undefined connector id at remote start transaction X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=c0bbb3eaf0c5dc704ea92820a2666a68ffdc27ff;p=e-mobility-charging-stations-simulator.git fix: properly handle undefined connector id at remote start transaction Signed-off-by: Jérôme Benoit --- diff --git a/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts b/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts index 6ec517c0..fc519046 100644 --- a/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts +++ b/src/charging-station/ocpp/1.6/OCPP16IncomingRequestService.ts @@ -420,7 +420,7 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { if (response.status === GenericStatus.Accepted) { const { connectorId, idTag } = request // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - chargingStation.getConnectorStatus(connectorId)!.transactionRemoteStarted = true + chargingStation.getConnectorStatus(connectorId!)!.transactionRemoteStarted = true chargingStation.ocppRequestService .requestHandler, OCPP16StartTransactionResponse>( chargingStation, @@ -1165,6 +1165,13 @@ export class OCPP16IncomingRequestService extends OCPPIncomingRequestService { chargingStation: ChargingStation, commandPayload: RemoteStartTransactionRequest ): Promise { + if (commandPayload.connectorId == null) { + do { + commandPayload.connectorId = randomInt(1, chargingStation.getNumberOfConnectors()) + } while ( + chargingStation.getConnectorStatus(commandPayload.connectorId)?.transactionStarted === true + ) + } const { connectorId: transactionConnectorId, idTag, chargingProfile } = commandPayload if (!chargingStation.hasConnector(transactionConnectorId)) { return this.notifyRemoteStartTransactionRejected( diff --git a/src/charging-station/ocpp/OCPPIncomingRequestService.ts b/src/charging-station/ocpp/OCPPIncomingRequestService.ts index b8a18463..8cfc8bc8 100644 --- a/src/charging-station/ocpp/OCPPIncomingRequestService.ts +++ b/src/charging-station/ocpp/OCPPIncomingRequestService.ts @@ -61,7 +61,6 @@ export abstract class OCPPIncomingRequestService extends EventEmitter { `${chargingStation.logPrefix()} ${moduleName}.handleIncomingRequestError: Incoming request command '${commandName}' error:`, error ) - console.error('params set', params) if (params.throwError === false && params.errorResponse != null) { return params.errorResponse } diff --git a/src/types/ocpp/1.6/Requests.ts b/src/types/ocpp/1.6/Requests.ts index c57be203..e186679f 100644 --- a/src/types/ocpp/1.6/Requests.ts +++ b/src/types/ocpp/1.6/Requests.ts @@ -77,7 +77,7 @@ export interface ChangeConfigurationRequest extends JsonObject { } export interface RemoteStartTransactionRequest extends JsonObject { - connectorId: number + connectorId?: number idTag: string chargingProfile?: OCPP16ChargingProfile }