|
@@ -746,7 +746,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)
|
|
|
{
|
|
@@ -881,10 +881,27 @@ uint8_t ocpp_get_remotestop(uint8_t gun_index)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+void ocpp_set_auth_conf(uint8_t status)
|
|
|
+{
|
|
|
+ if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
+ {
|
|
|
+ if(ShmOCPP16Data->SpMsg.bits.AuthorizeConf != status)
|
|
|
+ ShmOCPP16Data->SpMsg.bits.AuthorizeConf = status;
|
|
|
+ }
|
|
|
+ else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
|
|
|
+ {
|
|
|
+ if(ShmOCPP20Data->SpMsg.bits.AuthorizeConf != status)
|
|
|
+ ShmOCPP20Data->SpMsg.bits.AuthorizeConf = status;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void ocpp_set_auth_req(uint8_t status, ...)
|
|
|
{
|
|
|
va_list args;
|
|
|
|
|
|
+ if(status == ON)
|
|
|
+ ocpp_set_auth_conf(OFF);
|
|
|
+
|
|
|
if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
{
|
|
|
if(ShmOCPP16Data->SpMsg.bits.AuthorizeReq != status)
|
|
@@ -928,20 +945,6 @@ uint8_t ocpp_get_auth_req()
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-void ocpp_set_auth_conf(uint8_t status)
|
|
|
-{
|
|
|
- if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
- {
|
|
|
- if(ShmOCPP16Data->SpMsg.bits.AuthorizeConf != status)
|
|
|
- ShmOCPP16Data->SpMsg.bits.AuthorizeConf = status;
|
|
|
- }
|
|
|
- else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
|
|
|
- {
|
|
|
- if(ShmOCPP20Data->SpMsg.bits.AuthorizeConf != status)
|
|
|
- ShmOCPP20Data->SpMsg.bits.AuthorizeConf = status;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
uint8_t ocpp_get_auth_conf()
|
|
|
{
|
|
|
uint8_t result = OFF;
|
|
@@ -986,6 +989,19 @@ uint8_t ocpp_get_auth_result(uint8_t isValidParent, ...)
|
|
|
result = PASS;
|
|
|
}
|
|
|
break;
|
|
|
+ case SYS_MODE_CHARGING:
|
|
|
+ case SYS_MODE_TERMINATING:
|
|
|
+ if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
+ {
|
|
|
+ if((strcmp((char*)ShmOCPP16Data->Authorize.ResponseIdTagInfo.Status, "Accepted")==0) && (strcmp((char*)ShmOCPP16Data->Authorize.ResponseIdTagInfo.ParentIdTag, (char*)ShmOCPP16Data->StartTransaction[gun_index].ResponseIdTagInfo.ParentIdTag)==0))
|
|
|
+ result = PASS;
|
|
|
+ }
|
|
|
+ else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
|
|
|
+ {
|
|
|
+ if((strcmp((char*)ShmOCPP20Data->Authorize.Response_idTokenInfo.status, "Accepted")==0) && (strcmp((char*)ShmOCPP20Data->Authorize.Response_idTokenInfo.groupIdToken.idToken, (char*)ShmOCPP20Data->TransactionEvent[gun_index].Response_idTokenInfo.groupIdToken.idToken)==0))
|
|
|
+ result = PASS;
|
|
|
+ }
|
|
|
+ break;
|
|
|
default:
|
|
|
if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
{
|
|
@@ -4836,7 +4852,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");
|
|
@@ -4861,6 +4877,32 @@ void checkRemoteUpgradeStatus()
|
|
|
DEBUG_INFO("Remote update fail.\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
|
|
|
{}
|
|
|
}
|
|
@@ -4872,7 +4914,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");
|
|
@@ -4996,7 +5038,6 @@ void checkRfidAuthrize()
|
|
|
memcpy(lastIdtag, ShmSysConfigAndInfo->SysConfig.UserId, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.UserId));
|
|
|
memcpy(ShmSysConfigAndInfo->SysConfig.UserId, bufferRFID, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.UserId));
|
|
|
refreshStartTimer(&startTime[0][TMR_IDX_AUTH]);
|
|
|
- ocpp_set_auth_conf(OFF);
|
|
|
ocpp_set_auth_req(ON, "ISO14443");
|
|
|
setLedMotion(0,LED_ACTION_AUTHED);
|
|
|
ShmCharger->isAuthrizing = TRUE;
|
|
@@ -6155,7 +6196,6 @@ int main(void)
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_REFRESH_CHARGING_INFO]);
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PROFILE_PREPARE]);
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PWN_CHANGE]);
|
|
|
- ocpp_set_auth_req(OFF);
|
|
|
ocpp_set_profile_req(gun_index, ON);
|
|
|
ShmCharger->gun_info[gun_index].isChargerStopByCondition = NO;
|
|
|
ShmCharger->gun_info[gun_index].resultAuthorization = DEFAULT_RFID;
|
|
@@ -6583,11 +6623,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);
|