3.22 Reserve Now
The ReserveNow message in OCPP 1.6J is sent by the central system to reserve a connector for a specific user for a set period. It includes the connector ID, reservation ID, expiry date and ID tag. The charge point responds to confirm the reservation or indicate any issues (such as connector availability). This helps ensure that a charging spot is available for a user at a designated time.
|
API Syntax |
Description |
Input Params |
Return Value |
|---|---|---|---|
SetReserveNowStatus | Sets the status of the ReserveNow response. | RESERVE_NOW_STATUS_T status | void |
Example:
static void handleReservedState(RX_RESERVENOW_T *params)
{
RESERVE_NOW_STATUS_T reserveStatus = isReservationByCurrentUser(params->idTag, reservedIdtag) ? RESERVE_NOW_ACCEPTED : RESERVE_NOW_OCCUPIED;
SetReserveNowStatus(reserveStatus);
(void)SendReserveNowResponse();
}
|
API Syntax |
Description |
Input Params |
Return Value |
|---|---|---|---|
ReserveNowInit | Initializes the ReserveNow response status. | void | void |
Example:
void OCPPMessagesInit(void)
{
DataTransferInit();
ResetInit();
MeterValueStructInit();
SetLocalListVersionNumber(DEFAULT_SEND_LOCAL_LIST_VERSION);
SetChargePointConnectorId(CHARGEPOINT_DEFAULT_CONTROLLER);
SetChargePointError(NOERROR);
SetChargePointStatus(AVAILABLE);
SetAuthorizeStatus(AUTHORIZE_INVALID);
SetRemoteStartTransactionStatus(REMOTE_START_STOP_REJECTED);
SetOCPPWebsocketOnlineMode();
UnlockConnectorInit();
ReserveNowInit();
ChangeAvailabilityInit();
ClearCacheInit();
ChangeConfigurationInit();
CancelReservationInit();
GetAllIDsFromDB();
CheckAndStartClockAlignedMeterValueTimer();
}
|
API Syntax |
Description |
Input Params |
Return Value |
|---|---|---|---|
GetReserveNowParams | Retrieves the parameters of the ReserveNow request. | RX_RESERVENOW_T *params | void |
Example:
if (responsecode == CANCEL_RESERVATION_MISSING_RESERVATION_ID)
{
LogDebug("APP_LOG", " CancelReservation request missing Reservation Id\n");
SetCancelReservationStatus(CANCEL_RESERVATION_REJECTED); /* Set for testing */
SendCancelReservationResponse();
}
else
{
uint16_t reservationId;
uint8_t connectorId = GetChargePointConnectorId();
GetCancelReservationParams(&reservationId);
GetReserveNowParams(¶ms);
LogDebug("APP_LOG", " CancelReservationId:%d ReserveNowRservationId: %d\n", reservationId, params.reservationId);
|
Syntax |
Description |
Constants/Members |
|---|---|---|
RESERVENOW_RESPONSE_T | Structure defining the response for a ReserveNow request | RESERVE_NOW_STATUS_T status |
RX_RESERVENOW_T | Structure defining the parameters received in a ReserveNow request | char uuid[]; uint16_t connectorId; char expiryDate[]; idToken idTag[]; idToken parentIdTag[]; uint16_t reservationId; |
RESERVE_NOW_STATUS_T | Enumeration defining various status codes for the ReserveNow process | RESERVE_NOW_ACCEPTED, RESERVE_NOW_FAULTED, RESERVE_NOW_OCCUPIED, RESERVE_NOW_REJECTED, RESERVE_NOW_UNAVAILABLE, RESERVE_NOW_MISSING_CONNECTOR_ID, RESERVE_NOW_MISSING_EXPIRY_DATE, RESERVE_NOW_MISSING_ID_TAG, RESERVE_NOW_MISSING_RESERVATION_ID, |
