Przeglądaj źródła

2020-01-09 / Folus Wen

Actions:
1. EVSE/Modularization/WebService.c StoreUsrConfigData function check sum method modify.

Files:
1. As follow commit history.
FolusWen 5 lat temu
rodzic
commit
db933655a7

BIN
EVSE/Modularization/Module_4g


BIN
EVSE/Modularization/Module_Wifi


BIN
EVSE/Modularization/OcppBackend


BIN
EVSE/Modularization/WebService


+ 53 - 37
EVSE/Modularization/WebService.c

@@ -40,6 +40,9 @@
 #define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
 #define FAIL				-1
+
+#define MtdBlockSize 0x600000
+
 struct SysConfigAndInfo *ShmSysConfigAndInfo;
 struct StatusCodeData *ShmStatusCodeData;
 
@@ -241,55 +244,68 @@ int InitShareMemory() {
 
 int StoreUsrConfigData(struct SysConfigData *UsrData)
 {
+	int result = PASS;
 	int fd,wrd;
 	unsigned int i,Chk;
-	unsigned char *ptr;
+	unsigned char *ptr, *BufTmp;
 
 	Chk=0;
 	ptr=(unsigned char *)UsrData;
-	for(i=0;i<sizeof(struct SysConfigData)-4;i++)
+	if((BufTmp=malloc(MtdBlockSize))!=NULL)
 	{
-		Chk+=*(ptr+i);
-	}
-	UsrData->Checksum=Chk;
+		memset(BufTmp,0,MtdBlockSize);
+		memcpy(BufTmp,ptr,sizeof(struct SysConfigData));
+		for(i=0;i<MtdBlockSize-4;i++)
+			Chk+=*(ptr+i);
+		memcpy(	BufTmp+MtdBlockSize-4,&Chk,4);
+		fd = open("/dev/mtdblock10", O_RDWR);
+		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\r\n");
+				   		result = FAIL;
+					}
+			    	}
+			    	else
+			    	{
+			    		DEBUG_ERROR("open /dev/mtdblock11(backup) NG\r\n");
+					result = FAIL;
+			    	}
+			}
+			else
+			{
+		    		DEBUG_ERROR("write /dev/mtdblock10 NG\r\n");
+		    		result = FAIL;
+			}
 
-	fd = open("/dev/mtdblock10", O_RDWR);
-	if (fd < 0)
-	{
-		#ifdef SystemLogMessage
-		StoreLogMsg("[WebService]StoreUsrConfigData: open /dev/mtdblock10 NG");
-		#endif
-		return 0;
+		}
+		else
+		{
+			DEBUG_ERROR("open /dev/mtdblock10 NG\r\n");
+			result = FAIL;
+		}
 	}
-   	wrd=write(fd, UsrData, sizeof(struct SysConfigData));
-	close(fd);
-	if(wrd!=(sizeof(struct SysConfigData)))
+	else
 	{
-		#ifdef SystemLogMessage
-		StoreLogMsg("[WebService]StoreUsrConfigData: write /dev/mtdblock10 NG");
-		#endif
-		return 0;
+		DEBUG_ERROR("alloc BlockSize NG\r\n");
+    		result = FAIL;
 	}
+	if(BufTmp!=NULL)
+		free(BufTmp);
 
-	fd = open("/dev/mtdblock11", O_RDWR);
-	if (fd < 0)
-	{
-		#ifdef SystemLogMessage
-		StoreLogMsg("[WebService]StoreUsrConfigData: open /dev/mtdblock11(backup) NG");
-		#endif
-		return 0;
-	}
-	wrd=write(fd, UsrData, sizeof(struct SysConfigData));
-	close(fd);
-   	if(wrd!=(sizeof(struct SysConfigData)))
-	{
-		#ifdef SystemLogMessage
-		StoreLogMsg("[WebService]StoreUsrConfigData: write /dev/mtdblock11(backup) NG");
-		#endif
-		return 0;
-	}
-	return 1;
+	return result;
 }
+
 //================================================
 // Main process
 //================================================

BIN
EVSE/Modularization/libInfypwr_PsuCommObj.a


BIN
EVSE/Modularization/libModule_RFID.a


BIN
EVSE/Modularization/libModule_Upgrade.a


BIN
EVSE/Modularization/libPhihong_PsuCommObj.a


BIN
EVSE/Modularization/logPackTools


BIN
EVSE/Projects/AW-Regular/Images/ramdisk.gz


BIN
EVSE/rootfs/root/OcppBackend


BIN
EVSE/rootfs/root/WebService