Sfoglia il codice sorgente

Merge branch 'master' of https://git.phihong.com.tw:30000/System_Integration/CSU3_AM335x

ct_chen 5 anni fa
parent
commit
13676bd25b

+ 1 - 1
EVSE/Modularization/Makefile

@@ -37,7 +37,7 @@ Module_4g:
 
 WebServiceLib:
 	rm -f WebService
-	$(CC) -I ../GPL/json-c-json-c-0.13.1-20180305/release/include/json-c -O0 -g3 -Wall -c -fmessage-length=0 -o WebService.o -ljson-c -w WebService.c
+	$(CC) -I ../GPL/json-c-json-c-0.13.1-20180305/release/include/json-c -I ../Projects -O0 -g3 -Wall -c -fmessage-length=0 -o WebService.o -ljson-c -w WebService.c
 	$(CC) -L ../GPL/json-c-json-c-0.13.1-20180305/release/lib -o WebService WebService.o -ljson-c
 	rm -f WebService.o
 	$(CC) -O0 -g3 -Wall -c -fmessage-length=0 -o logPackTools.o logPackTools.c

+ 93 - 78
EVSE/Modularization/WebService.c

@@ -26,9 +26,8 @@
 #include	<time.h>
 #include	<ctype.h>
 #include 	<ifaddrs.h>
-#include	"../Projects/define.h"
-#include 	"json.h"
-//#include	<json-c/json.h>
+#include	"define.h"
+#include	"json.h"
 
 
 #include <math.h>
@@ -41,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;
 
@@ -242,62 +244,75 @@ 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
 //================================================
 int main(int argc, char *argv[]) {
-	int InitShMry = 1;
+	//int InitShMry = 1;
 	if (InitShareMemory() == FAIL) {
-		InitShMry = 0;
+		//InitShMry = 0;
 		#ifdef SystemLogMessage
 		DEBUG_ERROR("InitShareMemory NG\n");
 		#endif
@@ -323,10 +338,10 @@ int main(int argc, char *argv[]) {
 			int PsuAcInputType = 0;
 
 			if( json_object_object_get_ex(jobj, "SystemId", &val_obj) ) {
-				SystemId = json_object_get_string(val_obj);
+				SystemId = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "SystemDateTime", &val_obj) ) {
-				SystemDateTime = json_object_get_string(val_obj);
+				SystemDateTime = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "AcPhaseCount", &val_obj) ) {
 				AcPhaseCount = json_object_get_int(val_obj);
@@ -398,34 +413,34 @@ int main(int argc, char *argv[]) {
 				PhaseLossPolicy = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard0", &val_obj) ) {
-				LocalWhiteCard0 = json_object_get_string(val_obj);
+				LocalWhiteCard0 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard1", &val_obj) ) {
-				LocalWhiteCard1 = json_object_get_string(val_obj);
+				LocalWhiteCard1 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard2", &val_obj) ) {
-				LocalWhiteCard2 = json_object_get_string(val_obj);
+				LocalWhiteCard2 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard3", &val_obj) ) {
-				LocalWhiteCard3 = json_object_get_string(val_obj);
+				LocalWhiteCard3 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard4", &val_obj) ) {
-				LocalWhiteCard4 = json_object_get_string(val_obj);
+				LocalWhiteCard4 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard5", &val_obj) ) {
-				LocalWhiteCard5 = json_object_get_string(val_obj);
+				LocalWhiteCard5 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard6", &val_obj) ) {
-				LocalWhiteCard6 = json_object_get_string(val_obj);
+				LocalWhiteCard6 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard7", &val_obj) ) {
-				LocalWhiteCard7 = json_object_get_string(val_obj);
+				LocalWhiteCard7 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard8", &val_obj) ) {
-				LocalWhiteCard8 = json_object_get_string(val_obj);
+				LocalWhiteCard8 = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "LocalWhiteCard9", &val_obj) ) {
-				LocalWhiteCard9 = json_object_get_string(val_obj);
+				LocalWhiteCard9 = (char*)json_object_get_string(val_obj);
 			}
 			ShmSysConfigAndInfo->SysConfig.MaxChargingEnergy = MaxChargingEnergy;
 			ShmSysConfigAndInfo->SysConfig.MaxChargingPower = MaxChargingPower;
@@ -468,40 +483,40 @@ int main(int argc, char *argv[]) {
 			char *TelcomChapPapPwd=NULL;
 			char *TelcomIpAddress=NULL;
 			if( json_object_object_get_ex(jobj, "FtpServer", &val_obj) ) {
-				FtpServer = json_object_get_string(val_obj);
+				FtpServer = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth0DhcpClient", &val_obj) ) {
 				Eth0DhcpClient = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth0IpAddress", &val_obj) ) {
-				Eth0IpAddress = json_object_get_string(val_obj);
+				Eth0IpAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth0SubmaskAddress", &val_obj) ) {
-				Eth0SubmaskAddress = json_object_get_string(val_obj);
+				Eth0SubmaskAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth0GatewayAddress", &val_obj) ) {
-				Eth0GatewayAddress = json_object_get_string(val_obj);
+				Eth0GatewayAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth1DhcpClient", &val_obj) ) {
 				Eth1DhcpClient = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth1IpAddress", &val_obj) ) {
-				Eth1IpAddress = json_object_get_string(val_obj);
+				Eth1IpAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth1SubmaskAddress", &val_obj) ) {
-				Eth1SubmaskAddress = json_object_get_string(val_obj);
+				Eth1SubmaskAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "Eth1GatewayAddress", &val_obj) ) {
-				Eth1GatewayAddress = json_object_get_string(val_obj);
+				Eth1GatewayAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiMode", &val_obj) ) {
 				WifiMode = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiSsid", &val_obj) ) {
-				WifiSsid = json_object_get_string(val_obj);
+				WifiSsid = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiPassword", &val_obj) ) {
-				WifiPassword = json_object_get_string(val_obj);
+				WifiPassword = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiDhcpServer", &val_obj) ) {
 				WifiDhcpServer = json_object_get_int(val_obj);
@@ -510,25 +525,25 @@ int main(int argc, char *argv[]) {
 				WifiDhcpClient = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiIpAddress", &val_obj) ) {
-				WifiIpAddress = json_object_get_string(val_obj);
+				WifiIpAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiSubmaskAddress", &val_obj) ) {
-				WifiSubmaskAddress = json_object_get_string(val_obj);
+				WifiSubmaskAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "WifiGatewayAddress", &val_obj) ) {
-				WifiGatewayAddress = json_object_get_string(val_obj);
+				WifiGatewayAddress = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "TelcomApn", &val_obj) ) {
-				TelcomApn = json_object_get_string(val_obj);
+				TelcomApn = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "TelcomChapPapId", &val_obj) ) {
-				TelcomChapPapId = json_object_get_string(val_obj);
+				TelcomChapPapId = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "TelcomChapPapPwd", &val_obj) ) {
-				TelcomChapPapPwd = json_object_get_string(val_obj);
+				TelcomChapPapPwd = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "TelcomIpAddress", &val_obj) ) {
-				TelcomIpAddress = json_object_get_string(val_obj);
+				TelcomIpAddress = (char*)json_object_get_string(val_obj);
 			}
 
 			strcpy((char *)&ShmSysConfigAndInfo->SysConfig.FtpServer,FtpServer);
@@ -576,10 +591,10 @@ int main(int argc, char *argv[]) {
 				OfflineMaxChargeDuration = json_object_get_int(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "OcppServerURL", &val_obj) ) {
-				OcppServerURL = json_object_get_string(val_obj);
+				OcppServerURL = (char*)json_object_get_string(val_obj);
 			}
 			if( json_object_object_get_ex(jobj, "ChargeBoxId", &val_obj) ) {
-				ChargeBoxId = json_object_get_string(val_obj);
+				ChargeBoxId = (char*)json_object_get_string(val_obj);
 			}
 
 			ShmSysConfigAndInfo->SysConfig.BackendConnTimeout = BackendConnTimeout;
@@ -622,7 +637,7 @@ int main(int argc, char *argv[]) {
 	}
 	if (argc == 2) {	//init share memory for test
 		if (strcmp(argv[1], "aaa") == 0) {
-			struct SysConfigData 	SysConfig;
+			//struct SysConfigData 	SysConfig;
 		//system
 		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.ModelName, "AWLU770100T1P0D");
 		strcpy((char *)&ShmSysConfigAndInfo->SysConfig.SerialNumber, "SerialNumber");
@@ -768,7 +783,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *jobj;
 		struct json_object *Result;
 		struct json_object *Message;
-		char cmd[100];
+		//char cmd[100];
 		jobj=json_object_new_object();
 		//system
 		//if((char)ShmSysConfigAndInfo->SysInfo.FirmwareUpdate == '0'){
@@ -868,7 +883,7 @@ int main(int argc, char *argv[]) {
 		struct json_object *LocalWhiteCardArr= json_object_new_array();
 //		struct json_object *CcsAuthentication;
 //		struct json_object *AcCcsChargingMode;
-		struct json_object *UserId;
+//		struct json_object *UserId;
 		struct json_object *ChargingInfo1;
 		struct json_object *ChargingInfo2;
 		struct json_object *ChargingInfo3;
@@ -1021,7 +1036,7 @@ int main(int argc, char *argv[]) {
 		LocalWhiteCard[7] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[7]);
 		LocalWhiteCard[8] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[8]);
 		LocalWhiteCard[9] = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[9]);
-		UserId = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.UserId);
+		//UserId = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.UserId);
 		if(connectorType1 != 0){
 			if(connectorType1 == 1){//CCS
 				PresentChargingVoltage[0] = json_object_new_double(ShmSysConfigAndInfo->SysInfo.CcsChargingData[CcsGunQty].PresentChargingVoltage);
@@ -1407,7 +1422,7 @@ int main(int argc, char *argv[]) {
 		TelcomChapPapPwd = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomChapPapPwd);
 		TelcomModemImei = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomModemImei);
 		TelcomSimImsi = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimImsi);
-		TelcomSimIccid = json_object_new_string(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimIccid);
+		TelcomSimIccid = json_object_new_string((char*)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimIccid);
 		TelcomSimStatus = json_object_new_int(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimStatus);
 		TelcomModemMode = json_object_new_int(ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomModemMode);
 		TelcomIpAddress = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomIpAddress);
@@ -1417,7 +1432,7 @@ int main(int argc, char *argv[]) {
 		OfflinePolicy = json_object_new_int(ShmSysConfigAndInfo->SysConfig.OfflinePolicy);
 		OfflineMaxChargeEnergy = json_object_new_int(ShmSysConfigAndInfo->SysConfig.OfflineMaxChargeEnergy);
 		OfflineMaxChargeDuration = json_object_new_int(ShmSysConfigAndInfo->SysConfig.OfflineMaxChargeDuration);
-		OcppConnStatus = json_object_new_string_len((char *)&ShmSysConfigAndInfo->SysInfo.OcppConnStatus,1);
+		OcppConnStatus = json_object_new_int(ShmSysConfigAndInfo->SysInfo.OcppConnStatus);
 		OcppServerURL = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL);
 		ChargeBoxId = json_object_new_string((char *)&ShmSysConfigAndInfo->SysConfig.ChargeBoxId);
 

File diff suppressed because it is too large
+ 410 - 242
EVSE/Modularization/ocppfiles/MessageHandler.c


+ 1 - 0
EVSE/Modularization/ocppfiles/MessageHandler.h

@@ -15,6 +15,7 @@ struct StructProfile
 	struct StructPeriod	Period[10];
 };
 
+
 //===============================================
 // Common routine
 //===============================================

+ 30 - 12
EVSE/Modularization/ocppfiles/Module_OcppBackend.c

@@ -29,9 +29,7 @@
 #include 	<ifaddrs.h>
 #include 	"libwebsockets.h"
 #include 	<lws_config.h>
-
 #include	"hashmap.h"
-
 #include    "SystemLogMessage.h"
 #include 	"ShareMemory.h"
 #include 	<pthread.h>
@@ -39,6 +37,7 @@
 #include	"sqlite3.h"
 
 
+
 #if 0
 #define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
 #define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
@@ -56,8 +55,8 @@ struct lws 								*wsi_client;
 struct lws_context 						*context;
 static int sendbuffer = 0;
 extern int server_sign;
-extern int TransactionMessageAttemptsValue;
-extern int TransactionMessageRetryIntervalValue;
+//extern int TransactionMessageAttemptsValue;
+//extern int TransactionMessageRetryIntervalValue;
 //extern int server_pending;
 
 //extern struct OCPP16Data 				*ShmOCPP16Data;
@@ -69,6 +68,7 @@ extern int TransactionMessageAttemptsGet(void);
 extern int TransactionMessageRetryIntervalGet(void);
 extern int GetOcppConnStatus(void);
 
+
 pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
 pthread_mutex_t lock_sentData = PTHREAD_MUTEX_INITIALIZER;
 
@@ -107,7 +107,7 @@ static int ConnectionEstablished=0;
 static int TransactionMessageResend = 1;
 static int TransactionQueueInterval = 10;//3; // TransactionMessageAttempts
 static int TransactionQueueNum = 0;
-static int  OfflineTransaction = 0;  // 1:offline  0: online
+static int  OfflineTransaction = 0;
 int defaultWaitingTime = 10; //10 second
 
 extern int BootNotificationInterval;
@@ -353,7 +353,7 @@ int SendData(struct lws *wsi)
 
     memcpy (out + LWS_SEND_BUFFER_PRE_PADDING, SendBuffer, len );
 
-    DEBUG_INFO("out + LWS_SEND_BUFFER_PRE_PADDING = %s\n", out + LWS_SEND_BUFFER_PRE_PADDING);
+    DEBUG_OCPPMESSAGE_INFO("out + LWS_SEND_BUFFER_PRE_PADDING = %s\n", out + LWS_SEND_BUFFER_PRE_PADDING);
     n = lws_write(wsi, out + LWS_SEND_BUFFER_PRE_PADDING, len, LWS_WRITE_TEXT);
 
     memset(SendBuffer, 0, len);
@@ -462,9 +462,8 @@ static int OCPP16Callback(struct lws *wsi, enum lws_callback_reasons reason, voi
 			((char *)in)[len] = '\0';
 			#ifdef SystemLogMessage
 			DEBUG_INFO("LWS_CALLBACK_CLIENT_RECEIVE, RX length: %d\n", (int)len);
-			//DEBUG_INFO("Message: %s\n", (char *)in);
 			#endif
-
+			DEBUG_OCPPMESSAGE_INFO("%s\n", (char *)in);
 			ReceivedMessage(in, len);
 
 			break;
@@ -613,7 +612,7 @@ stat("../Storage/OCPP", &stats);
 // Check for directory existence
 if (S_ISDIR(stats.st_mode) == 1)
 {
-	DEBUG_INFO("\n OCPP directory exist \n");
+	//DEBUG_INFO("\n OCPP directory exist \n");
 }
 else
 {
@@ -626,7 +625,7 @@ memset(&rmFileCmd, 0, sizeof rmFileCmd);
 
 if((access("../Storage/OCPP/TransactionRelatedQueue",F_OK))!=-1)
 {
-	DEBUG_INFO("TransactionRelatedQueue exist.\n");
+	//DEBUG_INFO("TransactionRelatedQueue exist.\n");
 }
 else
 {
@@ -651,7 +650,7 @@ if(fp == NULL) {
 	DEBUG_INFO("Error opening TransactionRelatedQueue file");
 	return FALSE;
 }
-printf("test\n");
+
 if( fgets (str, 1200, fp)!=NULL ) {
 	/* writing content to stdout */
 
@@ -691,7 +690,7 @@ if( fgets (str, 1200, fp)!=NULL ) {
 }
 else
 {
-	DEBUG_INFO("queue is null\n");
+	//DEBUG_INFO("queue is null\n");
 	strcpy(uuid,"");
 	strcpy(data,"");
 	result = FALSE;
@@ -1323,6 +1322,8 @@ return 0;
 //================================================
 int main(void)
 {
+	char rmFileCmd[100]={0};
+	struct stat stats;
 	pthread_t t;
 	#ifdef SystemLogMessage
 	DEBUG_INFO("Initialization...\n");
@@ -1333,6 +1334,23 @@ int main(void)
 		return FAIL;
 	}
 
+	//Create OCPP dir
+	stat("../Storage/OCPP", &stats);
+
+	// Check for directory existence
+	if (S_ISDIR(stats.st_mode) == 1)
+	{
+		DEBUG_INFO("\n OCPP directory exist \n");
+	}
+	else
+	{
+		DEBUG_INFO("\n OCPP directory not exist, create dir \n");
+		sprintf(rmFileCmd,"mkdir -p %s","../Storage/OCPP");
+		system(rmFileCmd);
+	}
+
+	memset(&rmFileCmd, 0, sizeof rmFileCmd);
+
 	//Create Process: Resend Transaction
 	pthread_create(&t, NULL, processTransactionQueue, NULL); //
 

+ 28 - 1
EVSE/Modularization/ocppfiles/SystemLogMessage.c

@@ -4,7 +4,7 @@
 #include 	<string.h>
 #include	<time.h>
 #include	<stdarg.h>
-#include 	<unistd.h>
+//#include    "SystemLogMessage.h"
 
 #define Debug
 #define SystemLogMessage
@@ -35,4 +35,31 @@ int StoreLogMsg(const char *fmt, ...)
 	#endif
 	return rc;
 }
+
+int StoreOcppMsg(const char *fmt, ...)
+{
+	char Buf[4096+256];
+	char buffer[4096];
+	time_t CurrentTime;
+	struct tm *tm;
+	va_list args;
+
+	va_start(args, fmt);
+	int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
+	va_end(args);
+	memset(Buf,0,sizeof(Buf));
+	CurrentTime = time(NULL);
+	tm=localtime(&CurrentTime);
+	sprintf(Buf,"echo \"[%04d.%02d.%02d %02d:%02d:%02d] - %s\" >>  /Storage/OCPP/[%04d.%02d]OcppMessage",
+			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,
+			buffer,
+			tm->tm_year+1900,tm->tm_mon+1);
+	printf("buffer: %s\n",Buf );
+	//execl("sh", "sh", "-c", Buf, NULL);//system((const char*)Buf);
+	system((const char*)Buf);
+	#ifdef Debug
+	printf("[%04d.%02d.%02d %02d:%02d:%02d] - %s", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec, buffer);
+	#endif
+	return rc;
+}
 #endif

+ 2 - 0
EVSE/Modularization/ocppfiles/SystemLogMessage.h

@@ -5,7 +5,9 @@
 #define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
 #define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
 #define DEBUG_ERROR(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
+#define DEBUG_OCPPMESSAGE_INFO(format, args...) StoreOcppMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
 
 int StoreLogMsg(const char *fmt, ...);
+int StoreOcppMsg(const char *fmt, ...);
 
 #endif

BIN
EVSE/Projects/AW-Regular/Images/MLO


BIN
EVSE/Projects/AW-Regular/Images/am335x-evm.dtb


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


BIN
EVSE/Projects/AW-Regular/Images/u-boot.img


BIN
EVSE/Projects/AW-Regular/Images/zImage


+ 328 - 14
EVSE/Projects/define.h

@@ -77,13 +77,14 @@ enum SYSTEM_STATUS
 	SYS_MODE_TERMINATING		= 9,
 	SYS_MODE_COMPLETE		= 10,
 	SYS_MODE_ALARM			= 11,
-	SYS_MODE_RESERVATION		= 12,
-	SYS_MODE_BOOKING		= 13,
-	SYS_MODE_MAINTAIN		= 14,
-	SYS_MODE_DEBUG			= 15,
-	SYS_MODE_CCS_PRECHARGE_STEP0	= 16,
-	SYS_MODE_CCS_PRECHARGE_STEP1	= 17,
-	SYS_MODE_SINGLE_RUN		= 18
+	SYS_MODE_FAULT			= 12,
+	SYS_MODE_RESERVATION		= 13,
+	SYS_MODE_BOOKING		= 14,
+	SYS_MODE_MAINTAIN		= 15,
+	SYS_MODE_DEBUG			= 16,
+	SYS_MODE_CCS_PRECHARGE_STEP0	= 17,
+	SYS_MODE_CCS_PRECHARGE_STEP1	= 18,
+	SYS_MODE_SINGLE_RUN		= 19
 };
 
 enum AUTHORIZATION_MODE
@@ -202,6 +203,7 @@ struct BtConfigData
 struct SysConfigData
 {
 	/**************System***************/
+	unsigned char 			CsuBootLoadFwRev[32];			//CSU board bootloader firmware version
 	unsigned char			ModelName[64];				//charger model name
 	unsigned char			SerialNumber[64];			//charger system serial number
 	unsigned char			SystemId[128];				//charger system ID
@@ -292,6 +294,8 @@ struct ChargingInfoData
 	struct timeval		TimeoutTimer;
 	unsigned char 		MaxChargeEnable;
 	unsigned char		IsReadyToCharging;
+	unsigned char		CcsAuthentication;		// 0:EIM, 1:EIM & PnC mixed
+	unsigned char		AcCcsChargingMode;		// 0:BC (PWM) only, 1:BC & PLC mixed
 };
 
 struct SysInfoData
@@ -663,7 +667,7 @@ struct AlarmCodeData
 	}AlarmEvents;
 };
 
-char InfoStatusCode[128][6]=
+char InfoStatusCode[256][6]=
 {
 	//Information comes from EVSE
 	"013600",	//Normal stop charging by user
@@ -736,6 +740,158 @@ char InfoStatusCode[128][6]=
 	"023734",	//CHAdeMO:	Request Current More Than Limit
 	"023735",	//CHAdeMO: 	Re Cap BMS Eqr Current Exceed
 	"023736",	//CHAdeMO:	Charge Remain Count Down
+	"023737",	//CCS:CCS_EVCC_EVErrorCode_FAILED_RESSTemperatureInhibit
+	"023738",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EVShiftPosition
+	"023739",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargerConnectorLockFault
+	"023740",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EVRESSMalfunction
+	"023741",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingCurrentdifferential
+	"023742",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingVoltageOutOfRange
+	"023743",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingSystemIncompatibility
+	"023744",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EmergencyEvent
+	"023745",	//CCS:CCS_EVCC_EVErrorCode_FAILED_Breaker
+	"023746",	//CCS:CCS_EVCC_EVErrorCode_FAILED_NoData
+	"023747",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_A
+	"023748",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_B
+	"023749",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_C
+	"023750",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_1
+	"023751",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_2
+	"023752",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_3
+	"023753",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_1
+	"023754",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_2
+	"023755",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_3
+	"023756",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_4
+	"023757",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_5
+	"023758",	//CCS:CCS_SECC_ResponseCode_FAILED_SequenceError
+	"023759",	//CCS:CCS_SECC_ResponseCode_FAILED_SignatureError
+	"023760",	//CCS:CCS_SECC_ResponseCode_FAILED_UnknownSession
+	"023761",	//CCS:CCS_SECC_ResponseCode_FAILED_ServiceIDInvalid
+	"023762",	//CCS:CCS_SECC_ResponseCode_FAILED_Payment SelectionInvalid
+	"023763",	//CCS:CCS_SECC_ResponseCode_FAILED_IdentificationSelectionInvalid
+	"023764",	//CCS:CCS_SECC_ResponseCode_FAILED_ServiceSelectionInvalid
+	"023765",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateExpired
+	"023766",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateNotYetValid
+	"023767",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateRevoked
+	"023768",	//CCS:CCS_SECC_ResponseCode_FAILED_NoCertificateAvailable
+	"023769",	//CCS:CCS_SECC_ResponseCode_FAILED_CertChainError
+	"023770",	//CCS:CCS_SECC_ResponseCode_FAILED_CertValidationError
+	"023771",	//CCS:CCS_SECC_ResponseCode_FAILED_CertVerificationError
+	"023772",	//CCS:CCS_SECC_ResponseCode_FAILED_ContractCanceled
+	"023773",	//CCS:CCS_SECC_ResponseCode_FAILED_ChallengeInvalid
+	"023774",	//CCS:CCS_SECC_ResponseCode_FAILED_WrongEnergyTransferMode
+	"023775",	//CCS:CCS_SECC_ResponseCode_FAILED_WrongChargeParameter
+	"023776",	//CCS:CCS_SECC_ResponseCode_FAILED_ChargingProfileInvalid
+	"023777",	//CCS:CCS_SECC_ResponseCode_FAILED_TariffSelectionInvalid
+	"023778",	//CCS:CCS_SECC_ResponseCode_FAILED_EVSEPresentVoltageToLow
+	"023779",	//CCS:CCS_SECC_ResponseCode_FAILED_PowerDeliveryNotApplied
+	"023780",	//CCS:CCS_SECC_ResponseCode_FAILED_MeteringSignatureNotValid
+	"023781",	//CCS:CCS_SECC_ResponseCode_FAILED_NoChargeServiceSelected
+	"023782",	//CCS:CCS_SECC_ResponseCode_FAILED_ContactorError
+	"023783",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateNotAllowedAtThisEVSE
+	"023784",	//CCS:CCS_SECC_ResponseCode_FAILED_GAChargeStop
+	"023785",	//CCS:CCS_SECC_ResponseCode_FAILED_AlignmentError
+	"023786",	//CCS:CCS_SECC_ResponseCode_FAILED_ACDError
+	"023787",	//CCS:CCS_SECC_ResponseCode_FAILED_AssociationError
+	"023788",	//CCS:CCS_SECC_ResponseCode_FAILED_EVSEChargeAbort
+	"023789",	//CCS:CCS_SECC_ResponseCode_FAILED_NoSupportedApp-Protocol-Protocol
+	"023790",	//CCS:CCS_SECC_ResponseCode_FAILED_ContractNotAccepted
+	"023791",	//CCS:CCS_SECC_ResponseCode_FAILED_MOUnknown
+	"023792",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_Prov_CertificateRevoke
+	"023793",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_SubCA1_CertificateRevoked
+	"023794",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_SubCA2_CertificateRevoked
+	"023795",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_RootCA_CertificateRevoked
+	"023796",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_Prov_CertificateRevoked
+	"023797",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_SubCA1_CertificateRevoked
+	"023798",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_SubCA2_CertificateRevoked
+	"023799",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_RootCA_CertificateRevoked
+	"023800",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_Prov_CertificateRevoked
+	"023801",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_SubCA1_CertificateRevoked
+	"023802",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_SubCA2_CertificateRevoked
+	"023803",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_RootCA_CertificateRevoked
+	"023804",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_1
+	"023805",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_2
+	"023806",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_3
+	"023807",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_4
+	"023808",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_5
+	"023809",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_SLAC_init
+	"023810",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_match_response
+	"023811",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_match_sequence
+	"023812",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_match_MNBC
+	"023813",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_EVSE_avg_atten_calc
+	"023814",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_match_response
+	"023815",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_EVSE_match_session
+	"023816",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_assoc_session
+	"023817",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_vald_toggle
+	"023818",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_1
+	"023819",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_2
+	"023820",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_3
+	"023821",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_4
+	"023822",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_5
+	"023823",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_UDP_TT_match_join
+	"023824",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TCP_TT_match_join
+	"023825",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TP_amp_map_exchange
+	"023826",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TP_link_ready_notification
+	"023827",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_1
+	"023828",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_2
+	"023829",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_3
+	"023830",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_4
+	"023831",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_5
+	"023832",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SupportedAppProtocolRes
+	"023833",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SessionSetupRes
+	"023834",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ServiceDiscoveryRes
+	"023835",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ServicePaymentSelectionRes
+	"023836",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ContractAuthenticationRes
+	"023837",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ChargeParameterDiscoveryRes
+	"023838",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_PowerDeliveryRes
+	"023839",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_CableCheckRes
+	"023840",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_PreChargeRes
+	"023841",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_CurrentDemandRes
+	"023842",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_WeldingDetectionRes
+	"023843",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SessionStopRes
+	"023844",	//CCS:CCS_SECC_TIMEOUT_V2G_Sequence_Time
+	"023845",	//CCS:CCS_SECC_TIMEOUT_V2G_ReadyToCharge_Performance_Time
+	"023846",	//CCS:CCS_SECC_TIMEOUT_V2G_CommunicationSetup_Performance_Time
+	"023847",	//CCS:CCS_SECC_TIMEOUT_V2G_CableCheck_Performance_Time
+	"023848",	//CCS:CCS_SECC_TIMEOUT_V2G_CPState_Detection_Time
+	"023849",	//CCS:CCS_SECC_TIMEOUT_V2G_CPOscillator_Retain_Time
+	"023850",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_1
+	"023851",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_2
+	"023852",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_3
+	"023853",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_4
+	"023854",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_5
+	"023855",	//CCS:CCS_CAN_TIMEOUT_TP_GET_EV_TARGET_INFO
+	"023856",	//CCS:CCS_CAN_TIMEOUT_TT_GET_EV_TARGET_INFO
+	"023857",	//CCS:CCS_CAN_TIMEOUT_TP_GET_EV_BATTERY_INFO
+	"023858",	//CCS:CCS_CAN_TIMEOUT_TT_GET_EV_BATTERY_INFO
+	"023859",	//CCS:CCS_CAN_TIMEOUT_TP_EV_STOP_EVENT
+	"023860",	//CCS:CCS_CAN_TIMEOUT_TT_EV_STOP_EVENT
+	"023861",	//CCS:CCS_CAN_TIMEOUT_TP_EVSE_STOP_EVENT
+	"023862",	//CCS:CCS_CAN_TIMEOUT_TT_EVSE_STOP_EVENT
+	"023863",	//CCS:CCS_CAN_TIMEOUT_TP_GET_MISC_INFO
+	"023864",	//CCS:CCS_CAN_TIMEOUT_TT_GET_MISC_INFO
+	"023865",	//CCS:CCS_CAN_TIMEOUT_TP_DOWNLOAD_REQUEST
+	"023866",	//CCS:CCS_CAN_TIMEOUT_TT_DOWNLOAD_REQUEST
+	"023867",	//CCS:CCS_CAN_TIMEOUT_TP_START_BLOCK_TRANSFER
+	"023868",	//CCS:CCS_CAN_TIMEOUT_TT_START_BLOCK_TRANSFER
+	"023869",	//CCS:CCS_CAN_TIMEOUT_TP_DATA_TRANSFER
+	"023870",	//CCS:CCS_CAN_TIMEOUT_TT_DATA_TRANSFER
+	"023871",	//CCS:CCS_CAN_TIMEOUT_TP_DOWNLOAD_FINISH
+	"023872",	//CCS:CCS_CAN_TIMEOUT_TT_DOWNLOAD_FINISH
+	"023873",	//CCS:CCS_CAN_TIMEOUT_TP_ISOLATION_STATUS
+	"023874",	//CCS:CCS_CAN_TIMEOUT_TT_ISOLATION_STATUS
+	"023875",	//CCS:CCS_CAN_TIMEOUT_TP_CONNECTOR_INFO
+	"023876",	//CCS:CCS_CAN_TIMEOUT_TT_CONNECTOR_INFO
+	"023877",	//CCS:CCS_CAN_TIMEOUT_TT_RTC_INFO
+	"023878",	//CCS:CCS_CAN_TIMEOUT_TP_RTC_INFO
+	"023879",	//CCS:CCS_CAN_TIMEOUT_TP_EVSE_PRECHARGE_INFO
+	"023880",	//CCS:CCS_CAN_TIMEOUT_TT_EVSE_PRECHARGE_INFO
+	"023881",	//CCS:CCS_CAN_TIMEOUT_MSG_Sequence
+	"023882",	//CCS:CCS_CAN_MSG_Unrecognized_CMD_ID
+	"023883",	//CCS:CCS_SECC_DIN_Msg_Decode_Error
+	"023884",	//CCS:CCS_SECC_DIN_Msg_Encode_Error
+	"023885",	//CCS:CCS_SECC_ISO1_Msg_Decode_Error
+	"023886",	//CCS:CCS_SECC_ISO1_Msg_Encode_Error
+	"023887",	//CCS:CCS_SECC_ISO2_Msg_Decode_Error
+	"023888",	//CCS:CCS_SECC_ISO2_Msg_Encode_Error
 	 //Information comes from Backend
 	"033900",	//disconnected from backend through Ethernet
 	"033901",	//disconnected from backend through WiFi
@@ -748,10 +904,10 @@ char InfoStatusCode[128][6]=
 };
 struct InfoCodeData
 {
-	unsigned char PreviousInfoVal[10];
+	unsigned char PreviousInfoVal[29];
 	union
 	{
-		unsigned char InfoVal[10];
+		unsigned char InfoVal[29];
 		struct
 		{
 			//InfoVal[0]
@@ -828,8 +984,166 @@ struct InfoCodeData
 			unsigned char ChademoReqCurrentMoreThanLimit :1;				//bit 2
 			unsigned char ChademoReCapBmsEqrCurrentExceed :1;				//bit 3
 			unsigned char ChademoChargeRemainCountDown :1;		//bit 4
-			unsigned char :3;				//bit 5 ~ 7 reserved
+			unsigned char CcsRESTemperatureInhibit:1;				//bit 5
+			unsigned char CcsEVShiftPosition:1;				//bit 6
+			unsigned char CcsChargerConnectorLockFault:1;				//bit 7
 			//InfoVal[9]
+			unsigned char CcsEVRESSMalfunction:1;					//bit 0
+			unsigned char CcsChargingCurrentdifferential:1;		//bit 1
+			unsigned char CcsChargingVoltageOutOfRange:1;		//bit 2
+			unsigned char CcsChargingSystemIncompatibility:1;		//bit 3
+			unsigned char CcsEmergencyEvent:1;				//bit 4
+			unsigned char CcsBreaker:1;					//bit 5
+			unsigned char CcsNoData:1;							//bit 6
+			unsigned char Ccsreserved_by_DIN_A:1;				//bit 7
+			//InfoVal[10]
+			unsigned char Ccsreserved_by_DIN_B:1;				//bit 0
+			unsigned char Ccsreserved_by_DIN_C:1;					//bit 1
+			unsigned char Ccsreserved_by_ISO_1:1;				//bit 2
+			unsigned char Ccsreserved_by_ISO_2:1;					//bit 3
+			unsigned char Ccsreserved_by_ISO_3:1;					//bit 4
+			unsigned char Ccsreserved_by_OEM_1:1;				//bit 5
+			unsigned char Ccsreserved_by_OEM_2:1;			//bit 6
+			unsigned char Ccsreserved_by_OEM_3:1;				//bit 7
+			//InfoVal[11]
+			unsigned char Ccsreserved_by_OEM_4:1;			//bit 0
+			unsigned char Ccsreserved_by_OEM_5:1;			//bit 1
+			unsigned char CcsSequenceError:1;			//bit 2
+			unsigned char CcsSignatureError:1;		//bit 3
+			unsigned char CcsUnknownSession:1;					//bit 4
+			unsigned char CcsServiceIDInvalid:1;					//bit 5
+			unsigned char CcsPaymentSelectionInvalid:1;					//bit 6
+			unsigned char CcsIdentificationSelectionInvalid:1;			//bit 7
+			//InfoVal[12]
+			unsigned char CcsServiceSelectionInvalid:1;			//bit 0
+			unsigned char CcsCertificateExpired:1;			//bit 1
+			unsigned char CcsCertificateNotYetValid:1;			//bit 2
+			unsigned char CcsCertificateRevoked:1;			//bit 3
+			unsigned char CcsNoCertificateAvailable:1;			//bit 4
+			unsigned char CcsCertChainError:1;			//bit 5
+			unsigned char CcsCertValidationError:1;			//bit 6
+			unsigned char CcsCertVerificationError:1;			//bit 7
+			//InfoVal[13]
+			unsigned char CcsContractCanceled:1;				//bit 0
+			unsigned char CcsChallengeInvalid:1;				//bit 1
+			unsigned char CcsWrongEnergyTransferMode:1;				//bit 2
+			unsigned char CcsWrongChargeParameter:1;				//bit 3
+			unsigned char CcsChargingProfileInvalid:1;				//bit 4
+			unsigned char CcsTariffSelectionInvalid:1;				//bit 5
+			unsigned char CcsEVSEPresentVoltageToLow:1;				//bit 6
+			unsigned char CcsPowerDeliveryNotApplied:1;			//bit 7
+			//InfoVal[14]
+			unsigned char CcsMeteringSignatureNotValid:1;			//bit 0
+			unsigned char CcsNoChargeServiceSelected:1;			//bit 1
+			unsigned char CcsContactorError:1;					//bit 2
+			unsigned char CcsCertificateNotAllowedAtThisEVSE:1;			//bit 3
+			unsigned char CcsGAChargeStop:1;				//bit 4
+			unsigned char CcsAlignmentError:1;					//bit 5
+			unsigned char CcsACDError:1;					//bit 6
+			unsigned char CcsAssociationError:1;			//bit 7
+			//InfoVal[15]
+			unsigned char CcsEVSEChargeAbort:1;				//bit 0
+			unsigned char CcsNoSupportedAppProtocol:1;					//bit 1
+			unsigned char CcsContractNotAccepted:1;				//bit 2
+			unsigned char CcsMOUnknown:1;					//bit 3
+			unsigned char CcsOEM_Prov_CertificateRevoke:1;				//bit 4
+			unsigned char CcsOEM_SubCA1_CertificateRevoked:1;		//bit 5
+			unsigned char CcsOEM_SubCA2_CertificateRevoked:1;		//bit 6
+			unsigned char CcsOEM_RootCA_CertificateRevoked:1;		//bit 7
+			//InfoVal[16]
+			unsigned char CcsMO_Prov_CertificateRevoked:1;			//bit 0
+			unsigned char CcsMO_SubCA1_CertificateRevoked:1;		//bit 1
+			unsigned char CcsMO_SubCA2_CertificateRevoked:1;		//bit 2
+			unsigned char CcsMO_RootCA_CertificateRevoked:1;		//bit 3
+			unsigned char CcsCPS_Prov_CertificateRevoked:1;		//bit 4
+			unsigned char CcsCPS_SubCA1_CertificateRevoked:1;		//bit 5
+			unsigned char CcsCPS_SubCA2_CertificateRevoked:1;		//bit 6
+			unsigned char CcsCPS_RootCA_CertificateRevoked:1;		//bit 7
+			//InfoVal[17]
+			unsigned char :5;					//bit 0~4 reserved
+			unsigned char CcsTT_EVSE_SLAC_init:1;				//bit 5
+			unsigned char CcsTP_match_response:1;			//bit 6
+			unsigned char CcsTT_match_sequence:1;			//bit 7
+			//InfoVal[18]
+			unsigned char CcsTT_EVSE_match_MNBC:1;				//bit 0
+			unsigned char CcsTP_EVSE_avg_atten_calc:1;				//bit 1
+			unsigned char CcsTT_match_response:1;			//bit 2
+			unsigned char CcsTP_EVSE_match_session:1;			//bit 3
+			unsigned char CcsTT_EVSE_assoc_session:1;			//bit 4
+			unsigned char CcsTT_EVSE_vald_toggle:1;			//bit 5
+			unsigned char :2;					//bit 6~7 reserved
+			//InfoVal[19]
+			unsigned char :3;					//bit 0~2 reserved
+			unsigned char CcsUDP_TT_match_join:1;			//bit 3
+			unsigned char CcsTCP_TT_match_join:1;				//bit 4
+			unsigned char CcsTP_amp_map_exchange:1;			//bit 5
+			unsigned char CcsTP_link_ready_notification:1;			//bit 6
+			unsigned char :1;				//bit 7 resetved
+			//InfoVal[20]
+			unsigned char :4;						//bit 0~3 reserved
+			unsigned char CcsSupportedAppProtocolRes:1;			//bit 4
+			unsigned char CcsSessionSetupRes:1;				//bit 5
+			unsigned char CcsServiceDiscoveryRes:1;				//bit 6
+			unsigned char CcsServicePaymentSelectionRes:1;		//bit 7
+			//InfoVal[21]
+			unsigned char CcsContractAuthenticationRes:1;			//bit 0
+			unsigned char CcsChargeParameterDiscoveryRes:1;			//bit 1
+			unsigned char CcsPowerDeliveryRes:1;			//bit 2
+			unsigned char CcsCableCheckRes:1;			//bit 3
+			unsigned char CcsPreChargeRes:1;					//bit 4
+			unsigned char CcsCurrentDemandRes:1;					//bit 5
+			unsigned char CcsWeldingDetectionRes:1;				//bit 6
+			unsigned char CcsSessionStopRes:1;					//bit 7
+			//InfoVal[22]
+			unsigned char CcsSequence_Time:1;						//bit 0
+			unsigned char CcsReadyToCharge_Performance_Time:1;				//bit 1
+			unsigned char CcsCommunicationSetup_Performance_Time:1;					//bit 2
+			unsigned char CcsCableCheck_Performance_Time:1;				//bit 3
+			unsigned char CcsCPState_Detection_Time:1;			//bit 4
+			unsigned char CcsCPOscillator_Retain_Time:1;					//bit 5
+			unsigned char :2;			//bit 6~7 reserved
+			//InfoVal[23]
+			unsigned char :3;					//bit 0~2 reserved
+			unsigned char CcsTP_GET_EV_TARGET_INFO:1;			//bit 3
+			unsigned char CcsTT_GET_EV_TARGET_INFO:1;		//bit 4
+			unsigned char CcsTP_GET_EV_BATTERY_INFO:1;		//bit 5
+			unsigned char CcsTT_GET_EV_BATTERY_INFO:1;		//bit 6
+			unsigned char CcsTP_EV_STOP_EVENT:1;				//bit 7
+			//InfoVal[24]
+			unsigned char CcsTT_EV_STOP_EVENT:1;			//bit 0
+			unsigned char CcsTP_EVSE_STOP_EVENT:1;			//bit 1
+			unsigned char CcsTT_EVSE_STOP_EVENT:1;			//bit 2
+			unsigned char CcsTP_GET_MISC_INFO:1;			//bit 3
+			unsigned char CcsTT_GET_MISC_INFO:1;			//bit 4
+			unsigned char CcsTP_DOWNLOAD_REQUEST:1;			//bit 5
+			unsigned char CcsTT_DOWNLOAD_REQUEST:1;			//bit 6
+			unsigned char CcsTP_START_BLOCK_TRANSFER:1;			//bit 7
+			//InfoVal[25]
+			unsigned char CcsTT_START_BLOCK_TRANSFER:1;		//bit 0
+			unsigned char CcsTP_DATA_TRANSFER:1;			//bit 1
+			unsigned char CcsTT_DATA_TRANSFER:1;			//bit 2
+			unsigned char CcsTP_DOWNLOAD_FINISH:1;			//bit 3
+			unsigned char CcsTT_DOWNLOAD_FINISH:1;			//bit 4
+			unsigned char CcsTP_ISOLATION_STATUS:1;			//bit 5
+			unsigned char CcsTT_ISOLATION_STATUS:1;			//bit 6
+			unsigned char CcsTP_CONNECTOR_INFO:1;			//bit 7
+			//InfoVal[26]
+			unsigned char CcsTT_CONNECTOR_INFO:1;			//bit 0
+			unsigned char CcsTT_RTC_INFO:1;				//bit 1
+			unsigned char CcsTP_RTC_INFO:1;			//bit 2
+			unsigned char CcsTP_EVSE_PRECHARGE_INFO:1;		//bit 3
+			unsigned char CcsTT_EVSE_PRECHARGE_INFO:1;			//bit 4
+			unsigned char CcsMSG_Sequence:1;			//bit 5
+			unsigned char CcsCAN_MSG_Unrecognized_CMD_ID:1;			//bit 6
+			unsigned char CcsDIN_Msg_Decode_Error:1;			//bit 7
+			//InfoVal[27]
+			unsigned char CcsDIN_Msg_Encode_Error:1;			//bit 0
+			unsigned char CcsISO1_Msg_Decode_Error:1;			//bit 1
+			unsigned char CcsISO1_Msg_Encode_Error:1;			//bit 2
+			unsigned char CcsISO2_Msg_Decode_Error:1;			//bit 3
+			unsigned char CcsISO2_Msg_Encode_Error:1;			//bit 4
+			unsigned char :3;									//bit 5~7 reserved
+			//InfoVal[28]
 			unsigned char BackendDisconnectedViaEthernet:1;		//bit 0
 			unsigned char BackendDisconnectViaWiFi:1;				//bit 1
 			unsigned char BackendDisconnectVia4G:1;				//bit 2
@@ -2649,7 +2963,7 @@ struct StructSampledValue
 struct StructMeterValue
 {
 	unsigned char 				TimeStamp[28];
-	struct StructSampledValue	*SampledValue;
+	struct StructSampledValue	SampledValue[10];
 };
 struct StructConfigurationKeyItems
 {
@@ -2741,7 +3055,7 @@ struct StructStopTransaction
 															"UnlockCommand",
 															"DeAuthorized"
 														*/
-	struct StructMeterValue		*TransactionData;
+	struct StructMeterValue		TransactionData[0];
 	struct StructIdTagInfo		ResponseIdTagInfo;
 };
 
@@ -2865,7 +3179,7 @@ struct StructMeterValues
 {
 	int					 			ConnectorId;
 	int 							TransactionId;
-	struct StructMeterValue			*MeterValue;
+	struct StructMeterValue			MeterValue[0];
 };
 struct StructRemoteStartTransaction
 {

BIN
EVSE/rootfs/root/Module_4g


BIN
EVSE/rootfs/root/Module_Wifi


BIN
EVSE/rootfs/root/OcppBackend


BIN
EVSE/rootfs/root/WebService


BIN
EVSE/rootfs/root/logPackTools


BIN
board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/.tmp_vmlinux1


BIN
board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/.tmp_vmlinux2


+ 1 - 1
board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/.version

@@ -1 +1 @@
-347
+348

+ 4 - 3
board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/arch/arm/boot/dts/.am335x-evm.dtb.dts.tmp

@@ -1444,6 +1444,7 @@
                 compatible = "nxp,pcf85063";
                 reg = <0x51>;
         };
+
 };
 
 &usb {
@@ -1478,7 +1479,7 @@
 &elm {
  status = "okay";
 };
-# 402 "arch/arm/boot/dts/am335x-evm.dts"
+# 403 "arch/arm/boot/dts/am335x-evm.dts"
 &gpmc {
  status = "okay";
  pinctrl-names = "default", "sleep";
@@ -1664,7 +1665,7 @@
   };
  };
 };
-# 508 "arch/arm/boot/dts/am335x-evm.dts" 2
+# 509 "arch/arm/boot/dts/am335x-evm.dts" 2
 
 &tps {
  vcc1-supply = <&vbat>;
@@ -1763,7 +1764,7 @@
   phy-mode = "mii";
 
 };
-# 614 "arch/arm/boot/dts/am335x-evm.dts"
+# 615 "arch/arm/boot/dts/am335x-evm.dts"
 &tscadc {
  status = "okay";
 

+ 1 - 0
board-support/linux-4.9.59+gitAUTOINC+a75d8e9305-ga75d8e9305/arch/arm/boot/dts/am335x-evm.dts

@@ -344,6 +344,7 @@
                 compatible = "nxp,pcf85063";
                 reg = <0x51>;
         };
+
 };
 #endif
 &usb {

+ 19 - 0
board-support/u-boot-2017.01+gitAUTOINC+340fb36f04-g340fb36f04/common/autoboot.c

@@ -17,6 +17,8 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#define uboot_version "01.00"
+
 #define MAX_DELAY_STOP_STR 32
 
 #ifndef DEBUG_BOOTKEYS
@@ -343,6 +345,23 @@ void autoboot_command(const char *s)
 {
 	debug("### main_loop: bootcmd=\"%s\"\n", s ? s : "<UNDEFINED>");
 
+	{
+		unsigned char *BufTmp;
+		unsigned int i,Chk=0;
+		
+		BufTmp=0x80000000;	
+		memset(BufTmp,0,0x600000);
+		run_command_list("nand read 0x80000000 0x09000000 0x00600000", -1, 0);
+		sprintf(BufTmp,&uboot_version,strlen(uboot_version));
+		for(i=0;i<(0x00600000-4);i++)
+		{
+			Chk+=*(BufTmp+i);
+		}
+		memcpy(BufTmp+(0x00600000-4),&Chk,4);
+		run_command_list("nand erase 0x09000000 0x00600000", -1, 0);
+		run_command_list("nand write 0x80000000 0x09000000 0x00600000", -1, 0);
+	}
+	
 	if (stored_bootdelay != -1 && s && !abortboot(stored_bootdelay)) {
 #if defined(CONFIG_AUTOBOOT_KEYED) && !defined(CONFIG_AUTOBOOT_KEYED_CTRLC)
 		int prev = disable_ctrlc(1);	/* disable Control C checking */

Some files were not shown because too many files changed in this diff