3.20 Remote Start Transaction

The RemoteStartTransaction message in OCPP 1.6J is sent by the central system to remotely start a charging session at a charge point. It includes the ID tag (for user authorization) and connector ID (to specify where to start charging). The charge point responds with a confirmation or error based on whether the session started successfully. This enables remote charging control.

API Syntax

Description

Input Params

Return Value

SetRemoteStartTransactionStatus

Sets the status for the Remote Start Transaction.

REMOTE_START_STOP_STATUS_T status

void

Example:


   char chargePointStatus[CHARGE_POINT_STATUS_SIZE];
            GetChargePointStatus(chargePointStatus);
            if((strncmp(chargePointStatus, "Charging", strlen(chargePointStatus)) == 0 ) || (remoteStartStatus == REMOTE_START_STOP_ACCEPTED))
            {
              LogDebug("APP_LOG", " Second Remote Start Transaction rejected \n");
              SetRemoteStartTransactionStatus(REMOTE_START_STOP_REJECTED);
              (void)SendRemoteStartTransactionResponse();
            }

API Syntax

Description

Input Params

Return Value

ResetRemoteStartAuthorizeRemoteTxRequestParms

Resets the authorization request parameters for the Remote Start Transaction.

void

void

Example:


    if (strncmp(authorizeRemoteTxRequests, "true", strlen(authorizeRemoteTxRequests)) != 0)
    {
        ResetRemoteStartAuthorizeRemoteTxRequestParms();
        int reservationId = 0;
        if (GetReserveNowStatus() == RESERVE_NOW_ACCEPTED)
        {
            GetReserveNowParams(&reserveParams);
            reservationId = reserveParams.reservationId;
        }
        else
        {
            LogDebug("APP_LOG", "ReserveNow status is not accepted\n\r");
        }
        UpdateAndSendStartTransaction(IdTag, 0, connectorId, reservationId);
    }

API Syntax

Description

Input Params

Return Value

GetRemoteStartConnectorIdParms

Retrieves the connector ID parameters for the Remote Start Transaction.

u_int32_t *connectorId

void

Example:

  GetRemoteStartConnectorIdParms((u_int32_t *)&connectorId);
                                if(strncmp(AuthorizeRemoteTxRequests, "true", strlen(AuthorizeRemoteTxRequests)) != 0)
                                { 
                                    if(reserveStatus ==  RESERVE_NOW_ACCEPTED)
                                    {
                                        GetReserveNowParams(&params);
                                        reservationId = params.reservationId;
                                    }
                                    else
                                    {
                                        reservationId = 0;
                                    }
                                    UpdateAndSendStartTransaction(IdTag, 0, connectorId, reservationId);                                  
                                }
                                else
                                {

                                }

API Syntax

Description

Input Params

Return Value

GetRemoteStartIdTagParms

Retrieves the ID tag parameters for the Remote Start Transaction.

char idTag[]

void

Example:

               GetRemoteStartIdTagParms(IdTag);
                GetRemoteStartConnectorIdParms((u_int32_t *)&connectorId);
                if(strncmp(AuthorizeRemoteTxRequests, "true", strlen(AuthorizeRemoteTxRequests)) != 0)
                                { 
                                    if(reserveStatus ==  RESERVE_NOW_ACCEPTED)
                                    {
                                        GetReserveNowParams(&params);
                                        reservationId = params.reservationId;
                                    }
                                    else
                                    {
                                        reservationId = 0;
                                    }
                                    UpdateAndSendStartTransaction(IdTag, 0, connectorId, 

API Syntax

Description

Input Params

Return Value

RemoteStartTransactionInit

This function initializes the status to REMOTE_START_STOP_REJECTED and the authorization request to 0.

void

void

Example:

void OCPPMessagesInit(void)
{
    DataTransferInit();
    ResetInit();
    MeterValueStructInit();
    SetLocalListVersionNumber(DEFAULT_SEND_LOCAL_LIST_VERSION);   
    SetChargePointConnectorId(CHARGEPOINT_DEFAULT_CONTROLLER);
    ChargePointStatusInit();
    (void)SetAuthorizeStatus(AUTHORIZE_INVALID);
    SetOCPPWebsocketOnlineMode();
    UnlockConnectorInit();
    ReserveNowInit();
    ChangeAvailabilityInit();
    ClearCacheInit();
    ChangeConfigurationInit();
    CancelReservationInit();
    GetAllIDsFromDB();
    CheckAndStartClockAlignedMeterValueTimer();
    ClearChargingProfileInit();
    GetCompositeScheduleInit();
    GetLocalListVersionInit();
    SendLocalListInit();
    SetChargingProfileInit();
    TriggerMessageInit();
    RemoteStopTransactionInit();
    RemoteStartTransactionInit();
}

Syntax

Description

Constants/Members

RX_REMOTESTARTTRANSACTION_T

Structure to hold the details of a received Remote Start Transaction

char uuid[];

int connectorId;

idToken idTag[];

int authorizeRemoteTxRequest;

CSCHARGINGPROFILE_DATA_T csChargingProfile;

REMOTESTARTTRANSACTION_RESPONSE_T

Structure to hold the response of a Remote Start Transaction

REMOTE_START_STOP_STATUS_T status;

char *remoteStartTransactionStatusType[]

Array of status strings corresponding to the REMOTE_START_STOP_STATUS_T values

Accepted

Rejected