浏览代码

2021-05-11 / Eason Yang
Action :
1. Added : Protection logic for sysConfig in flash is empty.

File :
1. main.c
Action 1

Version : V0.52.XX.XXXX.XX

8009 3 年之前
父节点
当前提交
77e48750dd
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      EVSE/Projects/Noodoe/Apps/main.c

+ 13 - 0
EVSE/Projects/Noodoe/Apps/main.c

@@ -864,6 +864,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");
 
 	return PASS;