3.3 Data Transfer
The DataTransfer message in OCPP 1.6J allows the charge point and central system to exchange custom data. It includes a VendorId, MessageId and data payload, enabling proprietary or vendor-specific information to be sent. The central system responds with an acknowledgment, or an error if the data is invalid.
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
OCPPDataTransferResetGlobals |
Function to reset global variables for Data Transfer. |
void |
void |
Example:
void OCPPResetAllGlobals(void)
{
UtilitiesGlobalVariablesReset();
UtilitiesLocalStorageResetGlobals();
OCPPSetChargingProfileResetGlobals();
OCPPGetCompositeScheduleResetGlobals();
…………..
OCPPGetConfigurationResetGlobals();
OCPPDataTransferResetGlobals();
OCPPClearCacheResetGlobals();
OCPPChangeConfigurationResetGlobals();
OCPPChangeAvailabilityResetGlobals();
OCPPBootNotificationResetGlobals();
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SendDataTransferRequest |
This function creates and sends a Data Transfer request frame to the server. It handles the creation of the OCPP frame and manages the transmission state. |
(void) |
void |
Example:
if (result != 1)
{
LogDebug("APP_LOG", "Error reading data\n");
}
SetDataTransferRequestData(data);
SendDataTransferRequest();
return result;
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SetDataTransferRequestData |
Sets the data field of the Data Transfer request. |
char *data |
void |
Example:
if (result != 1)
{
LogDebug("APP_LOG", "Error reading data\n");
}
SetDataTransferRequestData(data);
SendDataTransferRequest();
return result;
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SetDataTransferRequestMessageId |
Sets the messageId field of the Data Transfer request. |
char *messageId |
void |
Example:
if (result != 1)
{
LogDebug("APP_LOG", "Error reading messageId\n");
}
SetDataTransferRequestMessageId(messageId);
LogDebug("APP_LOG", "Enter the Data : ");
result = scanf("%1023s", data);
if (result != 1)
{
LogDebug("APP_LOG", "Error reading data\n");
}
SetDataTransferRequestData(data);
SendDataTransferRequest();
return result;
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SetDataTransferResponseStatus |
Sets the status of the Data Transfer response. |
DATA_TRANSFER_STATUS_T Status |
void |
Example:
if (strncmp(DataTransferParms.vendorId, TESTING_VENDOR_ID, VENDOR_ID_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown VedorId\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_UNKNOWN_VENDOR_ID);
}
else if (strncmp(DataTransferParms.messageId, TESTING_MESSAGE_ID, MESSAGE_ID_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown MessageId\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_UNKNOWN_MESSAGE_ID);
}
else if (strncmp(DataTransferParms.data, TESTING_DATA, DATA_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown message\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_REJECTED);
}
else
{
SetDataTransferResponseStatus(DATA_TRANSFER_ACCEPTED);
}
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SetDataTransferResponseData |
Sets the data field of the Data Transfer response. |
char *data |
void |
Example: if((DATA_TRANSFER_INITIATOR)responsecode==DATA_TRANSFER_INITIATOR_CSMS)
{
SetDataTransferResponseData(GetDataTransferRequestData());
LogDebug("APP_LOG", " DataTransfer Params Request: vendorId: %s messageId: %s data: %s\n\r", GetDataTransferRequestVendorId(), GetDataTransferRequestMessageId(), GetDataTransferRequestData());
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
DataTransferInit() |
This function initializes the Data Transfer request and response structures with default values. |
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();
TriggerMessageInit();
RemoteStopTransactionInit();
RemoteStartTransactionInit();
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
SetDataTransferRequestVendorId |
Sets the VendorId field of the Data Transfer request. |
char *vendorID |
void |
Example:
int TestDataTransfer(void)
{
char vendorId[VENDOR_ID_MAX_LEN]; /* Vendor ID associated with the Data Transfer request. */
char messageId[MESSAGE_ID_MAX_LEN]; /* Message ID for the Data Transfer request. */
char data[DATA_MAX_LEN]; /* Data to be transferred. */
LogDebug("APP_LOG", "Enter the Vendor ID : ");
int result = scanf("%254s", vendorId);
if (result != 1)
{
LogDebug("APP_LOG", "Error reading vendorId\n");
}
SetDataTransferRequestVendorId(vendorId);
LogDebug("APP_LOG", "Enter the Message ID : ");
result = scanf("%49s", messageId);
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
GetDataTransferStatusType |
This function returns the status of the DataTransfer. |
DATA_TRANSFER_STATUS_T status |
char |
Example:
else if ((DATA_TRANSFER_INITIATOR)responsecode == DATA_TRANSFER_INITIATOR_CHARGE_STATION)
{
RX_DATATRANSFER_RESPONSE_T DataTransferParms;
GetDataTransferRequestParmsTX(&DataTransferParms);
LogDebug("APP_LOG", " DataTransfer Response Params: statusENUM: %d status: %s hasData: %d data: %s\n\r", DataTransferParms.status, GetDataTransferStatusType(DataTransferParms.status), DataTransferParms.hasData, DataTransferParms.data);
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
GetDataTransferRequestData |
This function returns the data of the DataTransfer. |
void |
char |
Example:
else if(strncmp(GetDataTransferRequestData(),
TESTING_DATA, DATA_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown message\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_REJECTED);
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
GetDataTransferRequestMessageId |
This function returns the MessageId of the DataTransfer. |
void |
char |
Example:
else if (strncmp(GetDataTransferRequestMessageId(), TESTING_MESSAGE_ID, MESSAGE_ID_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown MessageId\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_UNKNOWN_MESSAGE_ID);
}
| API Syntax | Description | Input Params | Return Value |
|---|---|---|---|
|
GetDataTransferRequestVendorId |
This function returns the VendorId of the DataTransfer. |
void |
char |
Example:
if (strncmp(GetDataTransferRequestVendorId(), TESTING_VENDOR_ID, VENDOR_ID_MAX_LEN) == 0)
{
LogDebug("APP_LOG", " DataTransfer CSMS send Unknown VedorId\n\r");
SetDataTransferResponseStatus(DATA_TRANSFER_UNKNOWN_VENDOR_ID);
}
| Syntax | Description | Constants/Members |
|---|---|---|
TX_DATATRANSFER_RESPONSE_T | This structure contains the fields for a Data Transfer response to be sent to the central system. |
|
RX_DATATRANSFER_REQUEST_T | This structure contains the fields required for a Data Transfer request from the central system. |
|
TX_DATATRANSFER_REQUEST_T | This structure contains the fields required for a Data Transfer request from the Charge Station. |
|
RX_DATATRANSFER_RESPONSE_T | This structure contains the fields for a Data Transfer response received from the central system. |
|
DATA_TRANSFER_INITIATOR | Enum represents the possible initiators of a Data Transfer operation. | DATA_TRANSFER_INITIATOR_CSMS DATA_TRANSFER_INITIATOR_CHARGE_STATION DATA_TRANSFER_INITIATOR_CSMS_REQUEST_ERROR DATA_TRANSFER_INITIATOR_CHARGE_STATION_RESPONSE_ERROR |
DATA_TRANSFER_STATUS_T | Enum represents the possible statuses of a Data Transfer operation. | DATA_TRANSFER_ACCEPTED DATA_TRANSFER_REJECTED DATA_TRANSFER_UNKNOWN_MESSAGE_ID DATA_TRANSFER_UNKNOWN_VENDOR_ID |
