}
const connectorStatus = this.getConnectorStatus(reservation.connectorId);
connectorStatus.reservation = reservation;
- connectorStatus.status = ConnectorStatusEnum.Reserved;
- if (reservation.connectorId === 0) {
- return;
- }
- await this.ocppRequestService.requestHandler<
- StatusNotificationRequest,
- StatusNotificationResponse
- >(
+ await OCPPServiceUtils.sendAndSetConnectorStatus(
this,
- RequestCommand.STATUS_NOTIFICATION,
- OCPPServiceUtils.buildStatusNotificationRequest(
- this,
- reservation.connectorId,
- ConnectorStatusEnum.Reserved
- )
+ reservation.connectorId,
+ ConnectorStatusEnum.Reserved,
+ null,
+ { send: reservation.connectorId !== 0 }
);
}
): Promise<void> {
const connector = this.getConnectorStatus(reservation.connectorId);
switch (reason) {
- case ReservationTerminationReason.TRANSACTION_STARTED: {
- delete connector.reservation;
- if (reservation.connectorId === 0) {
- connector.status = ConnectorStatusEnum.Available;
- }
- break;
- }
case ReservationTerminationReason.CONNECTOR_STATE_CHANGED: {
delete connector.reservation;
break;
}
- default: {
- // ReservationTerminationReason.EXPIRED, ReservationTerminationReason.CANCELED
- connector.status = ConnectorStatusEnum.Available;
- delete connector.reservation;
- await this.ocppRequestService.requestHandler<
- StatusNotificationRequest,
- StatusNotificationResponse
- >(
+ case ReservationTerminationReason.TRANSACTION_STARTED:
+ case ReservationTerminationReason.EXPIRED:
+ case ReservationTerminationReason.RESERVATION_CANCELED:
+ await OCPPServiceUtils.sendAndSetConnectorStatus(
this,
- RequestCommand.STATUS_NOTIFICATION,
- OCPPServiceUtils.buildStatusNotificationRequest(
- this,
- reservation.connectorId,
- ConnectorStatusEnum.Available
- )
+ reservation.connectorId,
+ ConnectorStatusEnum.Available,
+ null,
+ { send: reservation.connectorId !== 0 }
);
+ delete connector.reservation;
break;
- }
}
}
chargingStation: ChargingStation,
connectorId: number,
status: ConnectorStatusEnum,
- evseId?: number
+ evseId?: number,
+ options: { send: boolean } = { send: true }
) {
- OCPPServiceUtils.checkConnectorStatusTransition(chargingStation, connectorId, status);
- await chargingStation.ocppRequestService.requestHandler<
- StatusNotificationRequest,
- StatusNotificationResponse
- >(
- chargingStation,
- RequestCommand.STATUS_NOTIFICATION,
- OCPPServiceUtils.buildStatusNotificationRequest(chargingStation, connectorId, status, evseId)
- );
+ options = { send: true, ...options };
+ if (options.send) {
+ OCPPServiceUtils.checkConnectorStatusTransition(chargingStation, connectorId, status);
+ await chargingStation.ocppRequestService.requestHandler<
+ StatusNotificationRequest,
+ StatusNotificationResponse
+ >(
+ chargingStation,
+ RequestCommand.STATUS_NOTIFICATION,
+ OCPPServiceUtils.buildStatusNotificationRequest(
+ chargingStation,
+ connectorId,
+ status,
+ evseId
+ )
+ );
+ }
chargingStation.getConnectorStatus(connectorId).status = status;
}