4.11 SignedUpdateFirmware

The SignedUpdateFirmware message is used by the central system to send a signed firmware update to the charge point. This message ensures that the firmware update is securely transmitted and can be verified by the charge point using the provided signature.

API Syntax

Description

Input Params

Return Value

CreateSignedUpdateFirmwareResponsePacket

This function creates a JSON packet that represents the response to a signed firmware update request.

void

static cJSON

Example:

    updateFirmwareSendFrame = CreateOCPPReplyFrame(OCPP_MESSAGE_RESPONSE_CODE, uuid, CreateSignedUpdateFirmwareResponsePacket());
    if (updateFirmwareSendFrame == NULL)
    {
        OCPPLogMessage(LOG_ERROR, LOG_SENDING, "Could not create response frame for signed update FW\n");
        return UPDATE_FW_PROCESS_ERR;
    }

API Syntax

Description

Input Params

Return Value

SendSignedUpdateFirmwareResponse

This function sends a signed firmware update response to the requester after processing a signed firmware update request.

char *uuid

SIGNED_UPDATE_STATUS_T

Example:

    else
    {
      LogDebug("APP_LOG", " Invalid SignedUpdateFirmware Code\n\r");
      SetSignedUpdateFirmwareStatus(UPDATE_FW_REJECTED);
    }
    SendSignedUpdateFirmwareResponse(params.uuid);

API Syntax

Description

Input Params

Return Value

GetSignedUpdateFirmwareParams

This function populates the provided “params” structure with the necessary information required to perform a signed firmware update.

RX_UPDATE_FIRMWARE_T *params

void

Example:

    GetSignedUpdateFirmwareParams(&params);
    if ((SIGNED_UPDATE_STATE_T)responsecode == SIGNED_UPDATE_OK)
    {
      LogDebug("APP_LOG", " SignedUpdateFirmware Params requestId: %d\n\tlocation: %s\n\tretrieveDateTime: %s\n\tinstallDateTime: %s\n\tsigningCertificate: %s\n\tsignature: %s\n\tretryInterval: %dretries: %d\n", params.requestId, params.firmware.location, params.firmware.retrieveDateTime, params.firmware.installDateTime, params.firmware.signingCertificate, params.firmware.signature ,params.retryInterval, params.retries);
      SetSignedUpdateFirmwareStatus(UPDATE_FW_ACCEPTED);
    }

API Syntax

Description

Input Params

Return Value

SetSignedUpdateFirmwareStatus

This function updates the internal status to reflect the current state of the signed firmware update process.

SIGNED_UPDATE_FW_STATUS_T status

void

Example:

    if ((SIGNED_UPDATE_STATE_T)responsecode == SIGNED_UPDATE_OK)
    {
      LogDebug("APP_LOG", " SignedUpdateFirmware Params requestId: %d\n\tlocation: %s\n\tretrieveDateTime: %s\n\tinstallDateTime: %s\n\tsigningCertificate: %s\n\tsignature: %s\n\tretryInterval: %dretries: %d\n", params.requestId, params.firmware.location, params.firmware.retrieveDateTime, params.firmware.installDateTime, params.firmware.signingCertificate, params.firmware.signature ,params.retryInterval, params.retries);
      SetSignedUpdateFirmwareStatus(UPDATE_FW_ACCEPTED);
    }