浏览代码

2021-05-17 / Eason Yang
Action :
1. Improve : Improve flash protection logic.

File :
1. main.c
Action

Version :D0.52.XX.XXXX.XX

8009 3 年之前
父节点
当前提交
14fcc46f3f
共有 1 个文件被更改,包括 39 次插入5 次删除
  1. 39 5
      EVSE/Projects/AW-CCS/Apps/main.c

+ 39 - 5
EVSE/Projects/AW-CCS/Apps/main.c

@@ -1650,11 +1650,45 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	
 	// 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)))
+	   (strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber)) ||
+	   (strlen((char*)ShmSysConfigAndInfo->SysConfig.SystemId) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SystemId)) ||
+	   (ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthDhcpClient == 0xff))
 	{
-		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");
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.ModelName) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.ModelName))
+		{
+			memset(ShmSysConfigAndInfo->SysConfig.ModelName, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.ModelName));
+		}
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber))
+		{
+			memset(ShmSysConfigAndInfo->SysConfig.SerialNumber, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SerialNumber));
+		}
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.SystemId) > ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SystemId))
+		{
+			memset(ShmSysConfigAndInfo->SysConfig.SystemId, 0x00, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.SystemId));
+		}
+
+		if(ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthDhcpClient == 0xff)
+		{
+			DEBUG_INFO("Ethernet dhcp config is null.\n");
+		}
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.ModelName) == 0x00)
+		{
+			DEBUG_INFO("Model name over length.\n");
+		}
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.SerialNumber) == 0x00)
+		{
+			DEBUG_INFO("Model serial number over length.\n");
+		}
+
+		if(strlen((char*)ShmSysConfigAndInfo->SysConfig.SystemId) == 0x00)
+		{
+			DEBUG_INFO("SystemId over length.\n");
+		}
+
 		system("cd /root;./Module_FactoryConfig -m");
 		sleep(3);
 		system("/usr/bin/run_evse_restart.sh");
@@ -2271,7 +2305,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.51.00.0000.00");
+	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "D0.52.00.0000.00");
 
 	// Get AC connector type from model name
 	for(uint8_t idx=0;idx<3;idx++)