|
@@ -529,7 +529,7 @@ uint8_t ocpp_get_update_firmware_req()
|
|
|
|
|
|
if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
{
|
|
|
- result = ShmOCPP16Data->MsMsg.bits.UpdateFirmwareReq;
|
|
|
+ result = ShmOCPP16Data->MsMsg.bits.UpdateFirmwareReq || ShmOCPP16Data->MsMsg.bits.SignedUpdateFirmwareReq;
|
|
|
}
|
|
|
else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
|
|
|
{
|
|
@@ -4167,7 +4167,7 @@ void checkRemoteUpgradeStatus()
|
|
|
ShmOCPP16Data->MsMsg.bits.UpdateFirmwareReq = OFF;
|
|
|
ShmCharger->isUpdateSuccess = NO;
|
|
|
}
|
|
|
- else if(strcmp((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Downloaded")==0)
|
|
|
+ else if((strcmp((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Downloaded")==0))
|
|
|
{
|
|
|
DEBUG_INFO("Firmware remote upgrading...\n");
|
|
|
sprintf((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Installing");
|
|
@@ -4194,6 +4194,32 @@ void checkRemoteUpgradeStatus()
|
|
|
DEBUG_INFO("Remote update unsuccess...\n");
|
|
|
}
|
|
|
}
|
|
|
+ else if((strcmp((char*)ShmOCPP16Data->SignedFirmwareStatusNotification.status, "SignatureVerified")==0))
|
|
|
+ {
|
|
|
+ DEBUG_INFO("Signature firmware remote upgrading...\n");
|
|
|
+ ShmOCPP16Data->SignedFirmwareStatusNotification.requestId = ShmOCPP16Data->SignedUpdateFirmware.requestId;
|
|
|
+ sprintf((char*)ShmOCPP16Data->SignedFirmwareStatusNotification.status, "Installing");
|
|
|
+ sleep(1);
|
|
|
+ ShmOCPP16Data->SpMsg.bits.SignedFirmwareStatusNotificationReq = ON;
|
|
|
+ ShmOCPP16Data->MsMsg.bits.SignedUpdateFirmwareReq = OFF;
|
|
|
+
|
|
|
+ if(upgrade_check() == PASS)
|
|
|
+ {
|
|
|
+ if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == ON)
|
|
|
+ ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = OFF;
|
|
|
+
|
|
|
+ ShmCharger->isUpdateSuccess = YES;
|
|
|
+ DEBUG_INFO("Remote update success.\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == OFF)
|
|
|
+ ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = ON;
|
|
|
+
|
|
|
+ ShmCharger->isUpdateSuccess = NO;
|
|
|
+ DEBUG_INFO("Remote update fail.\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
else
|
|
|
{}
|
|
|
}
|
|
@@ -4205,7 +4231,7 @@ void checkRemoteUpgradeStatus()
|
|
|
ShmOCPP20Data->MsMsg.bits.UpdateFirmwareReq = OFF;
|
|
|
ShmCharger->isUpdateSuccess = NO;
|
|
|
}
|
|
|
- else if(strcmp((char*)ShmOCPP20Data->FirmwareStatusNotification.status, "Downloaded")==0)
|
|
|
+ else if((strcmp((char*)ShmOCPP20Data->FirmwareStatusNotification.status, "Downloaded")==0))
|
|
|
{
|
|
|
DEBUG_INFO("Firmware remote upgrading...\n");
|
|
|
sprintf((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Installing");
|
|
@@ -5495,11 +5521,21 @@ int main(void)
|
|
|
{
|
|
|
if(ShmCharger->isUpdateSuccess == YES)
|
|
|
{
|
|
|
- sprintf((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Installed");
|
|
|
- ShmOCPP16Data->SpMsg.bits.FirmwareStatusNotificationReq = ON;
|
|
|
+ if((strcmp((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Installing")==0))
|
|
|
+ {
|
|
|
+ sprintf((char*)ShmOCPP16Data->FirmwareStatusNotification.Status, "Installed");
|
|
|
+ ShmOCPP16Data->SpMsg.bits.FirmwareStatusNotificationReq = ON;
|
|
|
+ }
|
|
|
+ else if((strcmp((char*)ShmOCPP16Data->SignedFirmwareStatusNotification.status, "Installing")==0))
|
|
|
+ {
|
|
|
+ ShmOCPP16Data->SignedFirmwareStatusNotification.requestId = ShmOCPP16Data->SignedUpdateFirmware.requestId;
|
|
|
+ sprintf((char*)ShmOCPP16Data->SignedFirmwareStatusNotification.status, "Installed");
|
|
|
+ ShmOCPP16Data->SpMsg.bits.SignedFirmwareStatusNotificationReq = ON;
|
|
|
+ }
|
|
|
|
|
|
sprintf((char*)ShmOCPP20Data->FirmwareStatusNotification.status, "Installed");
|
|
|
ShmOCPP20Data->SpMsg.bits.FirmwareStatusNotificationReq = ON;
|
|
|
+
|
|
|
DEBUG_WARN("Firmware upgrade success.\n");
|
|
|
|
|
|
sleep(5);
|