فهرست منبع

[Bug fix][AW-CCS/AW-Regular/AW-ChargerLab/Noodoe/Modularization][main/Webservice/Module_Wifi/ModuleProduceUtils/Module_FactoryConfig]

2021.06.11 / Folus Wen

Actions:
1. Configuration data maximum size from 0x600000 to 0x300000.
2. Configuration data check sum calculation skip uboot version info.

Files:
1. As follow commit history

Image version: D0.00.XX.XXXX.XX
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 سال پیش
والد
کامیت
2a660e8d01

+ 4 - 4
EVSE/Modularization/Module_InitUpgrade.c

@@ -55,7 +55,7 @@
 #define NO							0
 #define true			    		1
 #define false						0
-#define MtdBlockSize				0x600000
+#define MtdBlockSize				0x300000
 
 struct SysConfigAndInfo		*ShmSysConfigAndInfo;
 struct StatusCodeData 		*ShmStatusCodeData;
@@ -143,7 +143,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 
@@ -169,12 +169,12 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 
 
 		DEBUG_INFO("Erase /dev/mtd10.\n");
-		runShellCmd("flash_erase /dev/mtd10 0 12");
+		runShellCmd("flash_erase /dev/mtd10 0 0");
 		DEBUG_INFO("Write /dev/mtd10.\n");
 		runShellCmd("nandwrite -p /dev/mtd10 /mnt/EvseConfig.bin");
 
 		DEBUG_INFO("Erase /dev/mtd11.\n");
-		runShellCmd("flash_erase /dev/mtd11 0 12");
+		runShellCmd("flash_erase /dev/mtd11 0 0");
 		DEBUG_INFO("Write /dev/mtd11.\n");
 		runShellCmd("nandwrite -p /dev/mtd11 /mnt/EvseConfig.bin");
 

+ 2 - 2
EVSE/Modularization/Module_ProduceUtils.c

@@ -36,7 +36,7 @@
 #define FAIL					0
 #define ON						1
 #define OFF						0
-#define MtdBlockSize			0x600000
+#define MtdBlockSize			0x300000
 
 #define LISTEN_PORT				8234
 #define	CONNECTION_LIMIT		3
@@ -214,7 +214,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 		{
 			memset(BufTmp,0,MtdBlockSize);
 			memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-			for(i=0;i<MtdBlockSize-4;i++)
+			for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 				Chk+=*(BufTmp+i);
 			memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 59 - 38
EVSE/Modularization/Module_Wifi.c

@@ -86,7 +86,7 @@
 #define LISTEN_PORT_TCP				54089
 
 #define	CONNECTION_LIMIT			3
-#define MtdBlockSize				0x600000
+#define MtdBlockSize				0x300000
 
 #define REGISTER					0x01
 #define CLEAR_REGISTER				0x02
@@ -342,6 +342,27 @@ void displayMessage(uint8_t *data, uint16_t len, uint8_t isRX)
 #endif
 }
 
+int runShellCmd(const char*cmd)
+{
+	int result = FAIL;
+	char buf[256];
+	FILE *fp;
+
+	fp = popen(cmd, "r");
+	if(fp != NULL)
+	{
+		while(fgets(buf, sizeof(buf), fp) != NULL)
+		{
+			DEBUG_INFO("%s\n", buf);
+		}
+
+		result = PASS;
+	}
+	pclose(fp);
+
+	return result;
+}
+
 //==========================================
 // Init all share memory
 //==========================================
@@ -1636,58 +1657,58 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	int fd,wrd;
 	unsigned int i,Chk;
 	unsigned char *ptr, *BufTmp;
-	
+
 	Chk=0;
 	ptr=(unsigned char *)UsrData;
 	if((BufTmp=malloc(MtdBlockSize))!=NULL)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
-		memcpy(	BufTmp+MtdBlockSize-4,&Chk,4);
-		fd = open("/dev/mtdblock10", O_RDWR);
-		if (fd>0)
+		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
+
+		// Output configuration to file.
+		fd = open("/mnt/EvseConfig.bin", O_RDWR|O_CREAT);
+		if (fd < 0)
 		{
-			wrd=write(fd, BufTmp, MtdBlockSize);
-			close(fd);
-			if(wrd>=MtdBlockSize)
-			{
-				fd = open("/dev/mtdblock11", O_RDWR);
-				if (fd>0)
-				{
-					wrd=write(fd, BufTmp, MtdBlockSize);
-    				close(fd);
-				    if(wrd<MtdBlockSize)
-					{
-						DEBUG_ERROR("write /dev/mtdblock11(backup) NG\n");
-				   		result = FAIL;
-					}
-				}
-				else
-				{
-					DEBUG_ERROR("open /dev/mtdblock11(backup) NG\n");
-					result = FAIL;
-				}
-			}
-			else
-			{
-		    	DEBUG_ERROR("write /dev/mtdblock10 NG\n");
-		    	result = FAIL;
-			}
+			DEBUG_ERROR("open /mnt/EvseConfig.bin NG\n");
+
+			free(BufTmp);
+			return 0;
 		}
-		else
+		wrd=write(fd, BufTmp, MtdBlockSize);
+		close(fd);
+		if(wrd<MtdBlockSize)
 		{
-			DEBUG_ERROR("open /dev/mtdblock10 NG\n");
-			result = FAIL;
+			DEBUG_ERROR("write /mnt/EvseConfig.bin NG\n");
+
+			free(BufTmp);
+			return 0;
 		}
+		DEBUG_INFO("EvseConfig write to file in /mnt OK.\n");
+
+
+		DEBUG_INFO("Erase /dev/mtd10.\n");
+		runShellCmd("flash_erase /dev/mtd10 0 0");
+		DEBUG_INFO("Write /dev/mtd10.\n");
+		runShellCmd("nandwrite -p /dev/mtd10 /mnt/EvseConfig.bin");
+
+		DEBUG_INFO("Erase /dev/mtd11.\n");
+		runShellCmd("flash_erase /dev/mtd11 0 0");
+		DEBUG_INFO("Write /dev/mtd11.\n");
+		runShellCmd("nandwrite -p /dev/mtd11 /mnt/EvseConfig.bin");
+
+
+		system("rm -f /mnt/EvseConfig.bin");
+		DEBUG_INFO("EvseConfig write to flash OK\n");
 	}
 	else
 	{
-		DEBUG_ERROR("alloc BlockSize NG\n");
-    	result = FAIL;
+		DEBUG_ERROR("alloc BlockSize NG\r\n");
+			result = FAIL;
 	}
-	
+
 	if(BufTmp!=NULL)
 		free(BufTmp);
 

+ 2 - 2
EVSE/Modularization/WebService.c

@@ -41,7 +41,7 @@
 #define PASS				1
 #define FAIL				-1
 
-#define MtdBlockSize 0x600000
+#define MtdBlockSize 0x300000
 
 struct SysConfigAndInfo		*ShmSysConfigAndInfo;
 struct StatusCodeData		*ShmStatusCodeData;
@@ -316,7 +316,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 2 - 2
EVSE/Projects/AW-CCS/Apps/Module_ConfigTools.c

@@ -52,7 +52,7 @@
 #define NO								0
 #define ON								1
 #define OFF								0
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData			*ShmStatusCodeData;
@@ -126,7 +126,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 3 - 3
EVSE/Projects/AW-CCS/Apps/Module_FactoryConfig.c

@@ -230,7 +230,7 @@ void helpOutput(void)
 int main(int argc, char *argv[])
 {
 	unsigned char outType=0;
-	unsigned int i,Chk,MtdBlockSize=0x600000;
+	unsigned int i,Chk,MtdBlockSize=0x300000;
 	unsigned char *ptr;
 	int fd,wrd;
 
@@ -347,7 +347,7 @@ int main(int argc, char *argv[])
 
 	// Calculate CRC
 	Chk=0;
-	for(i=0;i<(MtdBlockSize-4);i++)
+	for(i=ARRAY_SIZE(SysConfig.CsuBootLoadFwRev);i<(MtdBlockSize-4);i++)
 	{
 		Chk+=*(ptr+i);
 	}
@@ -393,7 +393,7 @@ int main(int argc, char *argv[])
 	 * Configuration bin file generate
 	 */
 	// Save factory default setting value to file
-	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT);
+	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT|O_TRUNC);
 	if (fd < 0)
 	{
 

+ 16 - 18
EVSE/Projects/AW-CCS/Apps/main.c

@@ -39,7 +39,7 @@
 #define GPIO_OUT_RST_QCA				115
 #define GPIO_OUT_RST_ETH				89
 
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 #define DB_FILE							"/Storage/ChargeLog/localCgargingRecord.db"
 //==========================
@@ -1782,12 +1782,15 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 		sleep(5);
 		system("reboot -f");
 	}
+
 	ChkSum=0;
-	for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+	for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 	{
 		ChkSum+=buf[wrd];
 	}
 	memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+	memcpy(&ptr->ModelName,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)),ARRAY_SIZE(ptr->ModelName));
+	memcpy(&ptr->SerialNumber,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)),ARRAY_SIZE(ptr->SerialNumber));
 
 	//================================================
 	// Load configuration from mtdblock11
@@ -1796,7 +1799,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	{
 		DEBUG_ERROR("Primary SysConfigData checksum NG, read backup\n");
 		system("nanddump /dev/mtd11 -f /mnt/EvseConfig.bin");
-		fd = open("/mnt/EvseConfig", O_RDWR);
+		fd = open("/mnt/EvseConfig.bin", O_RDWR);
 		if (fd < 0)
 		{
 			free(buf);
@@ -1830,8 +1833,9 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 			sleep(5);
 			system("reboot -f");
 		}
+
 		ChkSum=0;
-		for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+		for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 		{
 			ChkSum+=buf[wrd];
 		}
@@ -1876,12 +1880,16 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 				sleep(5);
 				system("reboot -f");
 			}
+
 			ChkSum=0;
-			for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+			for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 			{
 				ChkSum+=buf[wrd];
 			}
 			memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)), &ptr->ModelName, ARRAY_SIZE(ptr->ModelName));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)), &ptr->SerialNumber, ARRAY_SIZE(ptr->SerialNumber));
+
 			if(ChkSum!=ChkSumOrg)
 			{
 				DEBUG_WARN("factory default  SysConfigData checksum NG, restore factory default\n");
@@ -5276,7 +5284,6 @@ int main(void)
 								if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
 								{
 									setRelay(gun_index, OFF);
-									setRequest(gun_index, OFF);
 									ShmCharger->gun_info[gun_index].isChargerStopByCondition = YES;
 								}
 								else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
@@ -5291,7 +5298,6 @@ int main(void)
 								if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
 								{
 									setRelay(gun_index, OFF);
-									setRequest(gun_index, OFF);
 									ShmCharger->gun_info[gun_index].isChargerStopByCondition = YES;
 								}
 								else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
@@ -5329,7 +5335,6 @@ int main(void)
 									if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
 									{
 										setRelay(gun_index, OFF);
-										setRequest(gun_index, OFF);
 										ShmCharger->gun_info[gun_index].isChargerStopByCondition = YES;
 									}
 									else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
@@ -5344,7 +5349,6 @@ int main(void)
 									if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
 									{
 										setRelay(gun_index, OFF);
-										setRequest(gun_index, OFF);
 										ShmCharger->gun_info[gun_index].isChargerStopByCondition = YES;
 									}
 									else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
@@ -5373,12 +5377,10 @@ int main(void)
 							}
 							else
 							{
-								if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
-								{
-									setRequest(gun_index, OFF);
-								}
+								if(ShmCharger->gun_info[gun_index].primaryMcuState.relay_state > 0)
+									DEBUG_INFO("Connector-%d can not charging in off line\n", gun_index);
+
 								setRelay(gun_index, OFF);
-								DEBUG_INFO("Connector-%d can not charging in off line\n", gun_index);
 							}
 						}
 
@@ -5433,9 +5435,6 @@ int main(void)
 					   (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].schedule.isTriggerStop == ON) ||
 					   ((ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC) && (ShmCharger->gun_info[gun_index].acCcsInfo.EVChargeProgress == HLC_STOP_MODE)))
 					{
-						if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS)
-							setRequest(gun_index, OFF);
-
 						setRelay(gun_index, OFF);
 						setLedMotion(gun_index, LED_ACTION_STOP);
 
@@ -5534,7 +5533,6 @@ int main(void)
 					else
 					{
 						setRelay(gun_index, OFF);
-						setRequest(gun_index, OFF);	
 					}
 
 					if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode == 0))

+ 2 - 2
EVSE/Projects/AW-ChargeLab/Apps/Module_ConfigTools.c

@@ -52,7 +52,7 @@
 #define NO								0
 #define ON								1
 #define OFF								0
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData			*ShmStatusCodeData;
@@ -126,7 +126,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 3 - 3
EVSE/Projects/AW-ChargeLab/Apps/Module_FactoryConfig.c

@@ -241,7 +241,7 @@ void helpOutput(void)
 int main(int argc, char *argv[])
 {
 	unsigned char outType=0;
-	unsigned int i,Chk,MtdBlockSize=0x600000;
+	unsigned int i,Chk,MtdBlockSize=0x300000;
 	unsigned char *ptr;
 	int fd,wrd;
 
@@ -344,7 +344,7 @@ int main(int argc, char *argv[])
 
 	// Calculate CRC
 	Chk=0;
-	for(i=0;i<(MtdBlockSize-4);i++)
+	for(i=ARRAY_SIZE(SysConfig.CsuBootLoadFwRev);i<(MtdBlockSize-4);i++)
 	{
 		Chk+=*(ptr+i);
 	}
@@ -390,7 +390,7 @@ int main(int argc, char *argv[])
 	 * Configuration bin file generate
 	 */
 	// Save factory default setting value to file
-	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT);
+	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT|O_TRUNC);
 	if (fd < 0)
 	{
 

+ 10 - 5
EVSE/Projects/AW-ChargeLab/Apps/main.c

@@ -34,7 +34,7 @@
 #define TIMEOUT_SPEC_PROFILE_PREPARE	5000
 #define TIMEOUT_SPEC_PWN_CHANGE			5000
 
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 #define DB_FILE							"/Storage/ChargeLog/localCgargingRecord.db"
 //==========================
@@ -1485,11 +1485,13 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 		system("reboot -f");
 	}
 	ChkSum=0;
-	for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+	for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 	{
 		ChkSum+=buf[wrd];
 	}
 	memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+	memcpy(&ptr->ModelName,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)),ARRAY_SIZE(ptr->ModelName));
+	memcpy(&ptr->SerialNumber,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)),ARRAY_SIZE(ptr->SerialNumber));
 
 	//================================================
 	// Load configuration from mtdblock11
@@ -1498,7 +1500,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	{
 		DEBUG_ERROR("Primary SysConfigData checksum NG, read backup\n");
 		system("nanddump /dev/mtd11 -f /mnt/EvseConfig.bin");
-		fd = open("/mnt/EvseConfig", O_RDWR);
+		fd = open("/mnt/EvseConfig.bin", O_RDWR);
 		if (fd < 0)
 		{
 			free(buf);
@@ -1533,7 +1535,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 			system("reboot -f");
 		}
 		ChkSum=0;
-		for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+		for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 		{
 			ChkSum+=buf[wrd];
 		}
@@ -1579,11 +1581,14 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 				system("reboot -f");
 			}
 			ChkSum=0;
-			for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+			for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 			{
 				ChkSum+=buf[wrd];
 			}
 			memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)), &ptr->ModelName, ARRAY_SIZE(ptr->ModelName));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)), &ptr->SerialNumber, ARRAY_SIZE(ptr->SerialNumber));
+
 			if(ChkSum!=ChkSumOrg)
 			{
 				DEBUG_WARN("factory default  SysConfigData checksum NG, restore factory default\n");

+ 2 - 2
EVSE/Projects/AW-Regular/Apps/Module_ConfigTools.c

@@ -52,7 +52,7 @@
 #define NO								0
 #define ON								1
 #define OFF								0
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData			*ShmStatusCodeData;
@@ -126,7 +126,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 3 - 3
EVSE/Projects/AW-Regular/Apps/Module_FactoryConfig.c

@@ -241,7 +241,7 @@ void helpOutput(void)
 int main(int argc, char *argv[])
 {
 	unsigned char outType=0;
-	unsigned int i,Chk,MtdBlockSize=0x600000;
+	unsigned int i,Chk,MtdBlockSize=0x300000;
 	unsigned char *ptr;
 	int fd,wrd;
 
@@ -341,7 +341,7 @@ int main(int argc, char *argv[])
 
 	// Calculate CRC
 	Chk=0;
-	for(i=0;i<(MtdBlockSize-4);i++)
+	for(i=ARRAY_SIZE(SysConfig.CsuBootLoadFwRev);i<(MtdBlockSize-4);i++)
 	{
 		Chk+=*(ptr+i);
 	}
@@ -387,7 +387,7 @@ int main(int argc, char *argv[])
 	 * Configuration bin file generate
 	 */
 	// Save factory default setting value to file
-	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT);
+	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT|O_TRUNC);
 	if (fd < 0)
 	{
 

+ 10 - 5
EVSE/Projects/AW-Regular/Apps/main.c

@@ -34,7 +34,7 @@
 #define TIMEOUT_SPEC_PROFILE_PREPARE	5000
 #define TIMEOUT_SPEC_PWN_CHANGE			5000
 
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 #define DB_FILE							"/Storage/ChargeLog/localCgargingRecord.db"
 //==========================
@@ -1485,11 +1485,13 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 		system("reboot -f");
 	}
 	ChkSum=0;
-	for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+	for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 	{
 		ChkSum+=buf[wrd];
 	}
 	memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+	memcpy(&ptr->ModelName,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)),ARRAY_SIZE(ptr->ModelName));
+	memcpy(&ptr->SerialNumber,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)),ARRAY_SIZE(ptr->SerialNumber));
 
 	//================================================
 	// Load configuration from mtdblock11
@@ -1498,7 +1500,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	{
 		DEBUG_ERROR("Primary SysConfigData checksum NG, read backup\n");
 		system("nanddump /dev/mtd11 -f /mnt/EvseConfig.bin");
-		fd = open("/mnt/EvseConfig", O_RDWR);
+		fd = open("/mnt/EvseConfig.bin", O_RDWR);
 		if (fd < 0)
 		{
 			free(buf);
@@ -1533,7 +1535,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 			system("reboot -f");
 		}
 		ChkSum=0;
-		for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+		for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 		{
 			ChkSum+=buf[wrd];
 		}
@@ -1579,11 +1581,14 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 				system("reboot -f");
 			}
 			ChkSum=0;
-			for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+			for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 			{
 				ChkSum+=buf[wrd];
 			}
 			memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)), &ptr->ModelName, ARRAY_SIZE(ptr->ModelName));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)), &ptr->SerialNumber, ARRAY_SIZE(ptr->SerialNumber));
+
 			if(ChkSum!=ChkSumOrg)
 			{
 				DEBUG_WARN("factory default  SysConfigData checksum NG, restore factory default\n");

+ 2 - 2
EVSE/Projects/Noodoe/Apps/Module_ConfigTools.c

@@ -52,7 +52,7 @@
 #define NO								0
 #define ON								1
 #define OFF								0
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 struct SysConfigAndInfo			*ShmSysConfigAndInfo;
 struct StatusCodeData			*ShmStatusCodeData;
@@ -126,7 +126,7 @@ int StoreUsrConfigData(struct SysConfigData *UsrData)
 	{
 		memset(BufTmp,0,MtdBlockSize);
 		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
-		for(i=0;i<MtdBlockSize-4;i++)
+		for(i=ARRAY_SIZE(UsrData->CsuBootLoadFwRev);i<MtdBlockSize-4;i++)
 			Chk+=*(BufTmp+i);
 		memcpy(BufTmp+MtdBlockSize-4, &Chk, 4);
 

+ 3 - 3
EVSE/Projects/Noodoe/Apps/Module_FactoryConfig.c

@@ -241,7 +241,7 @@ void helpOutput(void)
 int main(int argc, char *argv[])
 {
 	unsigned char outType=0;
-	unsigned int i,Chk,MtdBlockSize=0x600000;
+	unsigned int i,Chk,MtdBlockSize=0x300000;
 	unsigned char *ptr;
 	int fd,wrd;
 
@@ -333,7 +333,7 @@ int main(int argc, char *argv[])
 
 	// Calculate CRC
 	Chk=0;
-	for(i=0;i<(MtdBlockSize-4);i++)
+	for(i=ARRAY_SIZE(SysConfig.CsuBootLoadFwRev);i<(MtdBlockSize-4);i++)
 	{
 		Chk+=*(ptr+i);
 	}
@@ -379,7 +379,7 @@ int main(int argc, char *argv[])
 	 * Configuration bin file generate
 	 */
 	// Save factory default setting value to file
-	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT);
+	fd = open("/mnt/FactoryDefaultConfig.bin", O_RDWR|O_CREAT|O_TRUNC);
 	if (fd < 0)
 	{
 

+ 10 - 5
EVSE/Projects/Noodoe/Apps/main.c

@@ -34,7 +34,7 @@
 #define TIMEOUT_SPEC_PROFILE_PREPARE	5000
 #define TIMEOUT_SPEC_PWN_CHANGE			5000
 
-#define MtdBlockSize 					0x600000
+#define MtdBlockSize 					0x300000
 
 #define DB_FILE							"/Storage/ChargeLog/localCgargingRecord.db"
 //==========================
@@ -743,11 +743,13 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 		system("reboot -f");
 	}
 	ChkSum=0;
-	for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+	for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 	{
 		ChkSum+=buf[wrd];
 	}
 	memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+	memcpy(&ptr->ModelName,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)),ARRAY_SIZE(ptr->ModelName));
+	memcpy(&ptr->SerialNumber,buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)),ARRAY_SIZE(ptr->SerialNumber));
 
 	//================================================
 	// Load configuration from mtdblock11
@@ -756,7 +758,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 	{
 		DEBUG_ERROR("Primary SysConfigData checksum NG, read backup\n");
 		system("nanddump /dev/mtd11 -f /mnt/EvseConfig.bin");
-		fd = open("/mnt/EvseConfig", O_RDWR);
+		fd = open("/mnt/EvseConfig.bin", O_RDWR);
 		if (fd < 0)
 		{
 			free(buf);
@@ -791,7 +793,7 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 			system("reboot -f");
 		}
 		ChkSum=0;
-		for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+		for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 		{
 			ChkSum+=buf[wrd];
 		}
@@ -837,11 +839,14 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
 				system("reboot -f");
 			}
 			ChkSum=0;
-			for(wrd=0;wrd<MtdBlockSize-4;wrd++)
+			for(wrd=ARRAY_SIZE(ptr->CsuBootLoadFwRev);wrd<MtdBlockSize-4;wrd++)
 			{
 				ChkSum+=buf[wrd];
 			}
 			memcpy(&ChkSumOrg,buf+(MtdBlockSize-4),sizeof(ChkSumOrg));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)), &ptr->ModelName, ARRAY_SIZE(ptr->ModelName));
+			memcpy(buf+(ARRAY_SIZE(ptr->CsuBootLoadFwRev)+ARRAY_SIZE(ptr->ModelName)+ARRAY_SIZE(ptr->AcModelName)), &ptr->SerialNumber, ARRAY_SIZE(ptr->SerialNumber));
+
 			if(ChkSum!=ChkSumOrg)
 			{
 				DEBUG_WARN("factory default  SysConfigData checksum NG, restore factory default\n");