Эх сурвалжийг харах

2021-05-13 / Eason Ynag
Action :
1. Added : Protection for sysConfig in flash is empty.
2. Added : Delete the file when upgrade failed.
3. Rename : Version.

File :
1. main.c
Action 1
Action 2
Action 3

Version : D0.51.XX.XXXX.XX

8009 3 жил өмнө
parent
commit
9ff6bfe1ed

+ 17 - 1
EVSE/Projects/AW-CCS/Apps/main.c

@@ -1647,6 +1647,19 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	free(buf);
 
 	system("rm -f /mnt/EvseConfig.bin");
+	
+	// SysConfig in flash is empty (0xffffffff)
+	if((strlen((char*)ShmSysConfigAndInfo->SysConfig.ModelName) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.ModelName)) ||
+	   (strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber)))
+	{
+		memset(ShmSysConfigAndInfo->SysConfig.ModelName, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.ModelName));
+		memset(ShmSysConfigAndInfo->SysConfig.SerialNumber, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber));
+		DEBUG_INFO("Model name or serial number over length.\n");
+		system("cd /root;./Module_FactoryConfig -m");
+		sleep(3);
+		system("/usr/bin/run_evse_restart.sh");
+	}
+	
 	DEBUG_INFO("Load SysConfigData OK\n");
 
 	ShmCharger->isCcsEnable = OFF;
@@ -2258,7 +2271,7 @@ void get_firmware_version(unsigned char gun_index)
 	strcpy((char*)ShmSysConfigAndInfo->SysInfo.CsuPrimFwRev, ShmCharger->gun_info[gun_index].ver.Version_FW);
 
 	// Get CSU root file system version
-	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "D0.50.00.0000.00");
+	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "D0.51.00.0000.00");
 
 	// Get AC connector type from model name
 	for(uint8_t idx=0;idx<3;idx++)
@@ -5441,6 +5454,9 @@ int main(void)
 								sprintf((char*)ShmOCPP20Data->FirmwareStatusNotification.status, "InstallationFailed");
 								ShmOCPP20Data->SpMsg.bits.FirmwareStatusNotificationReq = ON;
 								DEBUG_WARN("Firmware upgrade fail.\n");
+								
+								sleep(5);
+								system("rm -rvf /mnt/* ");
 								close(wtdFd);
 								system("/usr/bin/run_evse_restart.sh");
 							}