- ): Promise<CommandResponse | undefined> {
- switch (command) {
- case BroadcastChannelProcedureName.START_CHARGING_STATION:
- this.chargingStation.start();
- break;
- case BroadcastChannelProcedureName.STOP_CHARGING_STATION:
- await this.chargingStation.stop();
- break;
- case BroadcastChannelProcedureName.OPEN_CONNECTION:
- this.chargingStation.openWSConnection();
- break;
- case BroadcastChannelProcedureName.CLOSE_CONNECTION:
- this.chargingStation.closeWSConnection();
- break;
- case BroadcastChannelProcedureName.START_TRANSACTION:
- return this.chargingStation.ocppRequestService.requestHandler<
- StartTransactionRequest,
- StartTransactionResponse
- >(this.chargingStation, RequestCommand.START_TRANSACTION, {
- connectorId: requestPayload.connectorId,
- idTag: requestPayload.idTag,
- });
- case BroadcastChannelProcedureName.STOP_TRANSACTION:
- return this.chargingStation.ocppRequestService.requestHandler<
- StopTransactionRequest,
- StopTransactionResponse
- >(this.chargingStation, RequestCommand.STOP_TRANSACTION, {
- transactionId: requestPayload.transactionId,
- meterStop: this.chargingStation.getEnergyActiveImportRegisterByTransactionId(
- requestPayload.transactionId,
- true
- ),
- idTag: requestPayload.idTag,
- reason: requestPayload.reason,
- });
- case BroadcastChannelProcedureName.START_AUTOMATIC_TRANSACTION_GENERATOR:
- this.chargingStation.startAutomaticTransactionGenerator(requestPayload.connectorIds);
- break;
- case BroadcastChannelProcedureName.STOP_AUTOMATIC_TRANSACTION_GENERATOR:
- this.chargingStation.stopAutomaticTransactionGenerator(requestPayload.connectorIds);
- break;
- case BroadcastChannelProcedureName.STATUS_NOTIFICATION:
- return this.chargingStation.ocppRequestService.requestHandler<
- StatusNotificationRequest,
- StatusNotificationResponse
- >(this.chargingStation, RequestCommand.STATUS_NOTIFICATION, {
- connectorId: requestPayload.connectorId,
- errorCode: requestPayload.errorCode,
- status: requestPayload.status,
- ...(requestPayload.info && { info: requestPayload.info }),
- ...(requestPayload.timestamp && { timestamp: requestPayload.timestamp }),
- ...(requestPayload.vendorId && { vendorId: requestPayload.vendorId }),
- ...(requestPayload.vendorErrorCode && {
- vendorErrorCode: requestPayload.vendorErrorCode,
- }),
- });
- case BroadcastChannelProcedureName.HEARTBEAT:
- delete requestPayload.hashId;
- delete requestPayload.hashIds;
- delete requestPayload.connectorIds;
- return this.chargingStation.ocppRequestService.requestHandler<
- HeartbeatRequest,
- HeartbeatResponse
- >(this.chargingStation, RequestCommand.HEARTBEAT, requestPayload);
- default:
- // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
- throw new BaseError(`Unknown worker broadcast channel command: ${command}`);