Browse Source

Merge branch 'master' into BYTON-GB

FolusWen 5 năm trước cách đây
mục cha
commit
fb5f4a4326

+ 6 - 9
EVSE/Modularization/ocppfiles/MessageHandler.c

@@ -2037,7 +2037,6 @@ int sendStartTransactionRequest(int gun_index)
 
 	}//END OF ELSE
 
-
 	random_uuid(guid);
 
 	sprintf(message, "[%d,\"%s\",\"StartTransaction\",{\"connectorId\":%d,\"idTag\":\"%s\",\"meterStart\":%d,\"reservationId\":%d,\"timestamp\":\"%s\"}]"
@@ -11159,13 +11158,6 @@ DEBUG_INFO("idTagInfo-status: %s\n", ShmOCPP16Data->StartTransaction[gun_index].
 DEBUG_INFO("transactionId: %d\n", ShmOCPP16Data->StartTransaction[gun_index].ResponseTransactionId);
 #endif
 
-	//if(strcmp((const char *)ShmOCPP16Data->StartTransaction[gun_index].ResponseIdTagInfo.Status, "Accepted") == 0)
-	//{
-	//	//add Charging Record
-	//	SettingChargingRecord(gun_index, transactionIdInt);
-	//}
-
-	//DEBUG_INFO("Start Charging ErrorCode=%s\n", ShmOCPP16Data->StatusNotification[gun_index].ErrorCode);
 }
 
 void handleStatusNotificationResponse(char *payload, int gun_index)
@@ -16884,7 +16876,12 @@ void FillStartTransaction(int ConnectorId, unsigned char IdTag[], int MeterStart
 
 int GetWebSocketPingInterval(void)
 {
-  return atoi((const char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[WebSocketPingInterval].ItemData);
+	return atoi((const char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[WebSocketPingInterval].ItemData);
+}
+
+int GetInternetConn(void)
+{
+	return ShmSysConfigAndInfo->SysInfo.InternetConn;
 }
 
 void LWS_Send(char * str)

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

@@ -128,6 +128,7 @@ void GetChargingProfileRequest(int gunindex);
 void FillStartTransaction(int ConnectorId, unsigned char IdTag[], int MeterStart,int ReservationId,unsigned char Timestamp[]);
 void splitstring(char *src,const char *separator,char **dest,int *num);
 int GetWebSocketPingInterval(void);
+int GetInternetConn(void);
  //===============================================
  // sqlite related routine
  //===============================================

+ 40 - 48
EVSE/Modularization/ocppfiles/Module_OcppBackend.c

@@ -33,11 +33,11 @@
 #include    	"MessageHandler.h"
 #include	"sqlite3.h"
 
-
 #ifndef SPEC_LATEST_SUPPORTED
 #define SPEC_LATEST_SUPPORTED 13
 #endif
 
+
 #define Debug
 //#define ARRAY_SIZE(A)		(sizeof(A) / sizeof(A[0]))
 #define PASS				1
@@ -96,10 +96,10 @@ int SendBufLen=(1024*4);//(1024*3);
 int SendBufLen=(1024*4);//(1024*3);
 unsigned char SendBuffer[1024*4]={0};
 static int ConnectionEstablished=0;
-static int TransactionMessageResend = 1;
-static int TransactionQueueInterval = 10;//3; // TransactionMessageAttempts
+static int TransactionMessageResend = 1;  // the number of retry to submit a transaction-related message when the Central System fails to process it.
+static int TransactionQueueInterval = 10;//3;
 static int TransactionQueueNum = 0;
-static int OfflineTransactionQueueNum = 0;
+static int OfflineTransactionQueueNum = 0;  // Number of offline transactions
 static int  OfflineTransaction = 0;
 int defaultWaitingTime = 10; //10 second
 char OcppPath[160]={0};
@@ -497,18 +497,6 @@ static int OCPP16Callback(struct lws *wsi, enum lws_callback_reasons reason, voi
 		#ifdef SystemLogMessage
 		DEBUG_INFO("LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER\n");
 		#endif
-#if 0
-		unsigned char **p, *end;
-		struct lws *parent;
-		char buf[8192];
-
-		parent = lws_get_parent(wsi);
-		if (!parent)
-			break;
-
-		p = (unsigned char **)in;
-		end = (*p) + len;
-#endif
 		}
 
 			break;
@@ -519,7 +507,7 @@ DEBUG_INFO("LWS_CALLBACK_CLIENT_ESTABLISHED\n");
 #endif
 				char frontUUID[100] ={0};
 				char frontData[1200] ={0};
-				int queueNotEmpty = 0;
+				int queueNotEmpty = FALSE;
 
 				//connected
 				ConnectionEstablished=1;
@@ -528,7 +516,7 @@ DEBUG_INFO("LWS_CALLBACK_CLIENT_ESTABLISHED\n");
 
 				if(queueNotEmpty == TRUE)
 				{
-					OfflineTransaction = 1;
+					OfflineTransaction = 1; // 0: no packets in queue.     1: There are packets in queue.
 				}
 
 				TransactionQueueInterval = 0;
@@ -615,11 +603,9 @@ DEBUG_INFO("LWS_CALLBACK_CLIENT_ESTABLISHED\n");
 
 		case LWS_CALLBACK_CLIENT_RECEIVE://8
 
-			// lws_rx_flow_control( wsi, 0 );
-
 			((char *)in)[len] = '\0';
 
-			//Print Out Adjudgement
+			//Print out OCPP Message , except for HeartBeat
 			{
 				char *ret, *ret1;
 				ret = strstr((const char *)in, "currentTime");
@@ -863,7 +849,7 @@ else
 	if(log == NULL)
 	{
 		DEBUG_INFO("Can't Create File TransactionRelatedQueue \n");
-		return 0;
+		return FALSE;
 	}
 	else
 	{
@@ -976,7 +962,7 @@ else
 	if(log == NULL)
 	{
 		//DEBUG_INFO("Can't Create File TransactionRelatedQueue \n");
-		return 0;
+		return FALSE;
 	}
 	else
 	{
@@ -991,8 +977,12 @@ fputs(data, outfile);
 fputs("\n", outfile);
 fclose (outfile);
 TransactionQueueNum = TransactionQueueNum + 1;
+if(OfflineTransaction == 1)  // 0: no offline Transaction      1: offline Transaction
+{
+	OfflineTransactionQueueNum = OfflineTransactionQueueNum + 1;
+}
 DEBUG_INFO("add queue end\n");
-return 0;
+return FALSE;
 
 }
 
@@ -1145,7 +1135,7 @@ else
 	if(log == NULL)
 	{
 		DEBUG_INFO("log is NULL\n");
-		return 0;
+		return FALSE;
 	}
 	else
 	{
@@ -1158,18 +1148,18 @@ char line[1200]={0};
 // check if file exist (and you can open it) or not
 if (fp == NULL) {
 	DEBUG_INFO("can open file TransactionRelatedQueue!");
-  return 0;
+  return FALSE;
 }
 
-TransactionQueueNum = 0;
+TransactionQueueNum = 0;  // the number of packets in queue
 
 while(fgets(line, sizeof line, fp) != NULL) {
 	//DEBUG_INFO("%s\n", line);
-	TransactionQueueNum = TransactionQueueNum + 1;
+	TransactionQueueNum = TransactionQueueNum + 1; //the number of packets in queue
 }
 
 fclose(fp);
-return 1;
+return TRUE;
 
 }
 
@@ -1426,7 +1416,7 @@ return result;
 void* processTransactionQueue(void* data) {
 	char frontUUID[100] ={0};
 	char frontData[1200/*1024*4*/] ={0};
-	int queueNotEmpty = 0;
+	int queueNotEmpty = FALSE;
 
 	while(1)
 	{
@@ -1434,17 +1424,19 @@ void* processTransactionQueue(void* data) {
 		{
 			memset(frontUUID, 0, sizeof(frontUUID));
 			memset(frontData, 0, sizeof(frontData));
-			queueNotEmpty = 0;
+			queueNotEmpty = FALSE;
 
 			queueNotEmpty = queue_operation(1,frontUUID, frontData);//showfront(frontUUID, frontData);    ---> remove temporally
 
-			if((queueNotEmpty == 1) && (GetOcppConnStatus() == 1))
+			if((queueNotEmpty == TRUE) && (GetOcppConnStatus() == 1)) //OcppConnStatus  0: disconnected, 1: connected
 			{
 
-				if((OfflineTransaction == 1) && (OfflineTransactionQueueNum != 0))
+				//DEBUG_INFO("OfflineTransaction=%d\n",OfflineTransaction);
+				//DEBUG_INFO("OfflineTransactionQueueNum=%d\n",OfflineTransactionQueueNum);
+				if((OfflineTransaction == 1) && (OfflineTransactionQueueNum != 0))  //OfflineTransaction   0: no offline Transaction     1: offline Transaction
 				{
 					TransactionQueueInterval = 10;//10;//2;
-					sendbuffer = 1;
+					sendbuffer = 1; // 0: no packets to send    1: send the top packet in queue
 					OfflineTransactionQueueNum = OfflineTransactionQueueNum - 1;
 
 					if(OfflineTransactionQueueNum == 0)
@@ -1452,23 +1444,23 @@ void* processTransactionQueue(void* data) {
 						OfflineTransaction = 0;
 
 					}
-					DEBUG_INFO(" Offline Transaction , online sent queue .... \n");
+					//DEBUG_INFO(" Offline Transaction , online sent queue .... \n");
 					sleep(TransactionQueueInterval);
 				}
 				else
 				{
-					DEBUG_INFO(" online sent queue .... \n");
+					//DEBUG_INFO(" online sent queue .... \n");
 					//OfflineTransaction = 0;
-					if(TransactionMessageResend < TransactionMessageAttemptsGet()) //
+					if(TransactionMessageResend <= TransactionMessageAttemptsGet()) //
 					{
-						//DEBUG_INFO("processTransactionQueue queue is not empty!\n");
-
+						DEBUG_INFO("processTransactionQueue queue is not empty!\n");
 						TransactionQueueInterval= TransactionMessageRetryIntervalGet()* TransactionMessageResend;
-						//DEBUG_INFO("TransactionQueueInterval =%d\n",TransactionQueueInterval);
+						DEBUG_INFO("TransactionQueueInterval =%d\n",TransactionQueueInterval);
+						sleep(TransactionQueueInterval);
 						sendbuffer = 1;
 						TransactionMessageResend = TransactionMessageResend + 1;
-						//DEBUG_INFO("After ADD,TransactionMessageResend=%d\n",TransactionMessageResend);
-						sleep(TransactionQueueInterval);
+						DEBUG_INFO("After ADD,TransactionMessageResend=%d\n",TransactionMessageResend);
+						//sleep(TransactionQueueInterval);
 
 					}
 					else
@@ -1490,10 +1482,10 @@ void* processTransactionQueue(void* data) {
 		if(GetOcppConnStatus() == 0)
 		{
 			//DEBUG_INFO(" Offline .... \n");
-			if(queueNotEmpty == 1)
+			if(queueNotEmpty == TRUE)
 			{
-				OfflineTransaction = 1;
-				DEBUG_INFO(" Offline Transaction .... \n");
+				OfflineTransaction = 1;  // 0: no offline Transaction      1: offline Transaction
+				//DEBUG_INFO(" Offline Transaction .... \n");
 			}
 
 		}
@@ -1509,13 +1501,13 @@ void CheckTransactionPacket(char *uuid)
 {
 	char frontUUID[100]={0};
 	char frontData[1200]={0};
-	int queueNotEmpty = 0;
+	int queueNotEmpty = FALSE;
 	int cmpResult = 0;
 
 	//queue_operation(0,"","");//showqueue(); ---> remove temporally
 	queueNotEmpty = queue_operation(1,frontUUID, frontData);//showfront(frontUUID, frontData);  ---> remove temporally
 
-	if(queueNotEmpty == 1)
+	if(queueNotEmpty == TRUE)
 	{
 		cmpResult = strcmp(frontUUID, uuid);
 
@@ -1776,7 +1768,7 @@ int main(void)
 				SetHeartBeatWithNOResponse();
 			}
 
-			if(changeChageWebSocketPingInterval == TRUE)
+			if((changeChageWebSocketPingInterval == TRUE) || (GetInternetConn() == 0)) // Check InternetConn 0: disconnected, 1: connected
 			{
 				changeChageWebSocketPingInterval = FALSE;
 				lws_context_destroy(context);

+ 322 - 303
EVSE/Projects/define.h

@@ -577,7 +577,7 @@ char Currency[54][3]=
 according to XXX.Revxx
 ***************************************************************************************/
 /**************************************************************************************/
-char FaultStatusCode[32][6]=
+char FaultStatusCode[40][6]=
 {
 	"011001",	//CHAdeMO output fuse blew
 	"011002",	//CCS output fuse blew
@@ -610,53 +610,67 @@ char FaultStatusCode[32][6]=
 	"011029",	//CCS module broken
 	"011030",	//GBT module broken
 	"011031",	//PSU module broken
-	"011032"	//Reserved
+	"011032",	//RCD/CCID module broken
+	"011033",	//Maximum Output Current setup error
+	"011034",	//Shutter fault 
+	"011035",	//Ble module broken
+	"011036",	//Rotary switch fault
+	"011037",	//Reserved
+	"011038",	//Reserved
+	"011039",	//Reserved
+	"011040"	//Reserved
 };
 
 struct FaultCodeData
 {
-	unsigned char PreviousFaultVal[4];
+	unsigned char PreviousFaultVal[5];
 	union
 	{
-		unsigned char FaultVal[4];
+		unsigned char FaultVal[5];
 		struct
 		{
 			//FaultVal[0]
-		    	unsigned char ChademoOutputFuseBlew:1;				//bit 0
+		    unsigned char ChademoOutputFuseBlew:1;				//bit 0
 			unsigned char CcsOutputFuseBlew:1;					//bit 1
-			unsigned char GbOutputFuseBlew:1;   					//bit 2
-			unsigned char RcdSelfTestFail:1;						//bit 3
+			unsigned char GbOutputFuseBlew:1;   				//bit 2
+			unsigned char RcdSelfTestFail:1;					//bit 3
 			unsigned char AcInputContactor1Welding:1;			//bit 4
-			unsigned char AcInputContactor1DrivingFault:1;			//bit 5
+			unsigned char AcInputContactor1DrivingFault:1;		//bit 5
 			unsigned char AcInputContactor2Welding:1;			//bit 6
-			unsigned char AcInputContactor2DrivingFault:1;			//bit 7
+			unsigned char AcInputContactor2DrivingFault:1;		//bit 7
 			//FaultVal[1]
 			unsigned char AcOutputRelayWelding:1;				//bit 0
-			unsigned char AcOutputRelayDrivingFault:1;				//bit 1
+			unsigned char AcOutputRelayDrivingFault:1;			//bit 1
 			unsigned char ChademoOutputRelayWelding:1;			//bit 2
-			unsigned char ChademoOutputRelayDrivingFault	:1;		//bit 3
+			unsigned char ChademoOutputRelayDrivingFault:1;		//bit 3
 			unsigned char CcsOutputRelayWelding:1;				//bit 4
 			unsigned char CcsOutputRelayDrivingFault:1;			//bit 5
 			unsigned char GbOutputRelayWelding:1;				//bit 6
-			unsigned char GbOutputRelayDrivingFault:1;				//bit 7
+			unsigned char GbOutputRelayDrivingFault:1;			//bit 7
 			//FaultVal[2]
-			unsigned char AcConnectorTempSensorBroken:1;			//bit 0
+			unsigned char AcConnectorTempSensorBroken:1;		//bit 0
 			unsigned char ChademoConnectorTempSensorBroken:1;	//bit 1
 			unsigned char CcsConnectorTempSensorBroken:1;		//bit 2
-			unsigned char GbConnectorTempSensorBroken:1;			//bit 3
+			unsigned char GbConnectorTempSensorBroken:1;		//bit 3
 			unsigned char WiFiModuleBroken:1;					//bit 4
 			unsigned char Telecom4GModuleBroken:1;				//bit 5
 			unsigned char AuxPowerModuleBroken:1;				//bit 6
 			unsigned char RelayControlModuleBroken :1;			//bit 7
-	             	 //FaultVal[3]
+			//FaultVal[3]
 			unsigned char ChademoConnectorLockFail:1;			//bit 0
-			unsigned char GbConnectorLockFail:1;					//bit 1
-			unsigned char AcConnectorLockFail:1;					//bit 2
+			unsigned char GbConnectorLockFail:1;				//bit 1
+			unsigned char AcConnectorLockFail:1;				//bit 2
 			unsigned char ChademoModuleBroken:1;				//bit 3
 			unsigned char CcsModuleBroken:1;					//bit 4
 			unsigned char GbModuleBroken:1;						//bit 5
-			unsigned char PsuModuleBroken:1;						//bit 6
-			unsigned char :1;									//bit 7		reserved
+			unsigned char PsuModuleBroken:1;					//bit 6
+			unsigned char RcdCcidModuleBroken:1;				//bit 7		
+			//FaultVal[4]
+			unsigned char MaximumOutputCurrentSetupError:1;		//bit 0
+			unsigned char ShutterFault:1;						//bit 1
+			unsigned char BleModuleBroken:1;					//bit 2
+			unsigned char RotarySwitchFault:1;					//bit 3 
+			unsigned char :4;									//bit 4 ~ 7	reserved
 		}bits;
 	}FaultEvents;
 };
@@ -726,35 +740,39 @@ char AlarmStatusCode[128][6]=
 	"012260",	//CCS groundfault detection timeout (GFD)
 	"012261",	//GB groundfault detection timeout (GFD)
 	"012262",	//Circuit Short
-	"012263",	// PSU Duplicate ID
-	"012264", 	// PSU Output Short Circuit
-	"012265", 	// PSU Discharge Abnormal
-	"012266", 	// PSU Dc Side ShutDown
-	"012267", 	// PSU Failure Alarm
-	"012268", 	// PSU Protection Alarm
-	"012269", 	// PSU FanFailure Alarm
-	"012270", 	// PSU Input UVP
-	"012271",	// PSU Input OVP
-	"012272", 	// PSU WalkIn State
-	"012273", 	// PSU Power Limited State
-	"012274", 	// PSU Id Repeat
-	"012275", 	// PSU Severe Uneven Current
-	"012276", 	// PSU Three Phase Input Inadequate
-	"012277", 	// PSU Three Phase Onput Imbalance
-	"012278", 	// PSU Ffc Side ShutDown
-	"012279", 	// NO PSU Resource
-	"012280", 	// Self test Failed due to communication of Relayboard failure
-	"012281", 	// Self test Failed due to communication of Fanboard failure
-	"012282", 	// Self test Failed due to communication of Primary failure
-	"012283", 	// Self test Failed due to communication of Chademoboard failure
-	"012284", 	// Self test Failed due to communication of CCSboard failure
-	"012285", 	// Self test Failed due to AC Contact failure
-	"012286", 	// Self test Failed due to communication of PSU failure
-	"012287", 	// Self test Failed due to Model name is none match
-	"012288",	// CCS output UVP
-	"012289",	// Chademo output UVP
-	"012290",	// GBT output UVP
-	"012291",	// Self test Failed due to communication of GBTboard failure
+	"012263",	//PSU Duplicate ID
+	"012264", 	//PSU Output Short Circuit
+	"012265", 	//PSU Discharge Abnormal
+	"012266", 	//PSU Dc Side ShutDown
+	"012267", 	//PSU Failure Alarm
+	"012268", 	//PSU Protection Alarm
+	"012269", 	//PSU FanFailure Alarm
+	"012270", 	//PSU Input UVP
+	"012271",	//PSU Input OVP
+	"012272", 	//PSU WalkIn State
+	"012273", 	//PSU Power Limited State
+	"012274", 	//PSU Id Repeat
+	"012275", 	//PSU Severe Uneven Current
+	"012276", 	//PSU Three Phase Input Inadequate
+	"012277", 	//PSU Three Phase Onput Imbalance
+	"012278", 	//PSU Ffc Side ShutDown
+	"012279", 	//NO PSU Resource
+	"012280", 	//Self test Failed due to communication of Relayboard failure
+	"012281", 	//Self test Failed due to communication of Fanboard failure
+	"012282", 	//Self test Failed due to communication of Primary failure
+	"012283", 	//Self test Failed due to communication of Chademoboard failure
+	"012284", 	//Self test Failed due to communication of CCSboard failure
+	"012285", 	//Self test Failed due to AC Contact failure
+	"012286", 	//Self test Failed due to communication of PSU failure
+	"012287", 	//Self test Failed due to Model name is none match
+	"012288",	//CCS output UVP
+	"012289",	//Chademo output UVP
+	"012290",	//GBT output UVP
+	"012291",	//Self test Failed due to communication of GBTboard failure
+	"012292",	//Reserved
+	"012293",	//Reserved
+	"012294",	//Reserved
+	"012295"	//Reserved
 };
 struct AlarmCodeData
 {
@@ -767,7 +785,7 @@ struct AlarmCodeData
 			//AlarmVal[0]
 		    unsigned char SystemL1InputOVP:1;					//bit 0
 			unsigned char SystemL2InputOVP:1;					//bit 1
-			unsigned char SystemL3InputOVP:1;   					//bit 2
+			unsigned char SystemL3InputOVP:1;   				//bit 2
 			unsigned char SystemL1InputUVP:1;					//bit 3
 			unsigned char SystemL2InputUVP:1;					//bit 4
 			unsigned char SystemL3InputUVP:1;					//bit 5
@@ -784,49 +802,49 @@ struct AlarmCodeData
 			unsigned char SystemAcOutputOVP:1;					//bit 7
 			//AlarmVal[2]
 			unsigned char SystemAcOutputOCP:1;					//bit 0
-			unsigned char SystemChademoOutputOVP:1;			//bit 1
-			unsigned char SystemChademoOutputOCP:1;			//bit 2
+			unsigned char SystemChademoOutputOVP:1;				//bit 1
+			unsigned char SystemChademoOutputOCP:1;				//bit 2
 			unsigned char SystemCcsOutputOVP:1;					//bit 3
 			unsigned char SystemCcsOutputOCP:1;					//bit 4
 			unsigned char SystemGbOutputOVP:1;					//bit 5
 			unsigned char SystemGbOutputOCP:1;					//bit 6
 			unsigned char SystemAmbientOTP :1;					//bit 7
-	             	 //AlarmVal[3]
+			//AlarmVal[3]
 			unsigned char SystemCriticalPointOTP:1;				//bit 0
 			unsigned char PsuAmbientOTP:1;						//bit 1
-			unsigned char PsuCriticalPointOTP:1;					//bit 2
+			unsigned char PsuCriticalPointOTP:1;				//bit 2
 			unsigned char AuxPowerModuleOTP:1;					//bit 3
 			unsigned char RelayBoardOTP:1;						//bit 4
 			unsigned char ChademoConnectorOTP:1;				//bit 5
 			unsigned char CcsConnectorOTP:1;					//bit 6
-			unsigned char GbConnectorOTP:1;					//bit 7
+			unsigned char GbConnectorOTP:1;						//bit 7
 			 //AlarmVal[4]
 			unsigned char AcConnectorOTP:1;						//bit 0
-			unsigned char RcdTrip:1;								//bit 1
+			unsigned char RcdTrip:1;							//bit 1
 			unsigned char ChademoGfdTrip:1;						//bit 2
 			unsigned char CcsGfdTrip:1;							//bit 3
 			unsigned char GbGfdTrip:1;							//bit 4
-			unsigned char SpdTrip:1;								//bit 5
-			unsigned char MainPowerBreakerTrip:1;					//bit 6
-			unsigned char AuxPowerBreakerTrip:1;					//bit 7
+			unsigned char SpdTrip:1;							//bit 5
+			unsigned char MainPowerBreakerTrip:1;				//bit 6
+			unsigned char AuxPowerBreakerTrip:1;				//bit 7
 			//AlarmVal[5]
 			unsigned char PsuCommunicationFail:1;				//bit 0
 			unsigned char WiFiModuleCommFail:1;					//bit 1
 			unsigned char Telecom4GModuleCommFail:1;			//bit 2
 			unsigned char RfidModuleCommFail:1;					//bit 3
-			unsigned char BluetoothModuleCommFail:1;				//bit 4
+			unsigned char BluetoothModuleCommFail:1;			//bit 4
 			unsigned char LcmModuleCommFail:1;					//bit 5
-			unsigned char AuxPowerModuleCommFail:1;			//bit 6
+			unsigned char AuxPowerModuleCommFail:1;				//bit 6
 			unsigned char RelayBoardCommFail:1;					//bit 7
 			//AlarmVal[6]
 			unsigned char CcsModuleCommFail:1;					//bit 0
-			unsigned char ChademoModuleCommFail:1;			//bit 1
+			unsigned char ChademoModuleCommFail:1;				//bit 1
 			unsigned char GbModuleCommFail:1;					//bit 2
 			unsigned char EmergencyStopTrip:1;					//bit 3
 			unsigned char DoorOpen:1;							//bit 4
 			unsigned char SystemFanDecay:1;						//bit 5
-			unsigned char FailToCreateShareMemory:1;				//bit 6
-			unsigned char CsuInitFailed:1;							//bit 7
+			unsigned char FailToCreateShareMemory:1;			//bit 6
+			unsigned char CsuInitFailed:1;						//bit 7
 			//AlarmVal[7]
 			unsigned char AcGroundfaultFail:1;					//bit 0
 			unsigned char McuSelftestFail:1;					//bit 1
@@ -835,40 +853,40 @@ struct AlarmCodeData
 			unsigned char CcsGroundfaultTimeout:1;				//bit 4
 			unsigned char GbGroundfaultTimeout:1;				//bit 5
 			unsigned char CircuitShort:1;						//bit 6
-			unsigned char PsuDuplicateID:1;									//bit 7
+			unsigned char PsuDuplicateID:1;						//bit 7
 			//AlarmVal[8]
-			unsigned char PsuOutputShortCircuit :1;			//bit 0
-			unsigned char PsuDischargeAbnormal :1;					//bit 1
+			unsigned char PsuOutputShortCircuit :1;				//bit 0
+			unsigned char PsuDischargeAbnormal :1;				//bit 1
 			unsigned char PsuDcSideShutDown :1;					//bit 2
-			unsigned char PsuFailureAlarm :1;			//bit 3
+			unsigned char PsuFailureAlarm :1;					//bit 3
 			unsigned char PsuProtectionAlarm :1;				//bit 4
 			unsigned char PsuFanFailureAlarm :1;				//bit 5
 			unsigned char PsuInputUVP:1;						//bit 6
-			unsigned char PsuInputOVP:1;									//bit 7
+			unsigned char PsuInputOVP:1;						//bit 7
 			//AlarmVal[9]
 			unsigned char PsuWalkInState :1;					//bit 0
-			unsigned char PsuPowerLimitedState :1;					//bit 1
-			unsigned char PsuIdRepeat :1;					//bit 2
+			unsigned char PsuPowerLimitedState :1;				//bit 1
+			unsigned char PsuIdRepeat :1;						//bit 2
 			unsigned char PsuSevereUnevenCurrent :1;			//bit 3
-			unsigned char PsuThreePhaseInputInadequate :1;				//bit 4
-			unsigned char PsuThreePhaseOnputImbalance :1;				//bit 5
-			unsigned char PsuFfcSideShutDown :1;						//bit 6
-			unsigned char PsuNoResource:1;
+			unsigned char PsuThreePhaseInputInadequate :1;		//bit 4
+			unsigned char PsuThreePhaseOnputImbalance :1;		//bit 5
+			unsigned char PsuFfcSideShutDown :1;				//bit 6
+			unsigned char PsuNoResource:1;						//bit 7
 			//AlarmVal[10]
-			unsigned char RelayboardStestFail :1;					//bit 0
+			unsigned char RelayboardStestFail :1;				//bit 0
 			unsigned char FanboardStestFail :1;					//bit 1
 			unsigned char PrimaryStestFail :1;					//bit 2
-			unsigned char ChademoboardStestFail :1;			//bit 3
-			unsigned char CCSboardStestFail :1;				//bit 4
+			unsigned char ChademoboardStestFail :1;				//bit 3
+			unsigned char CCSboardStestFail :1;					//bit 4
 			unsigned char AcContactStestFail :1;				//bit 5
-			unsigned char PsuModuleStestFail :1;						//bit 6
-			unsigned char ModelNameNoneMatchStestFail:1;			//bit 7	
+			unsigned char PsuModuleStestFail :1;				//bit 6
+			unsigned char ModelNameNoneMatchStestFail:1;		//bit 7	
 			//AlarmVal[11]
 			unsigned char CcsOutputUVPFail :1;					//bit 0
-			unsigned char ChademoOutputUVPFail :1;					//bit 1
+			unsigned char ChademoOutputUVPFail :1;				//bit 1
 			unsigned char GbtOutputUVPFail :1;					//bit 2
 			unsigned char GbtboardStestFail :1;					//bit 3
-			unsigned char :4;									//bit 4 ~ 7
+			unsigned char :4;									//bit 4 ~ 7	reserved
 		}bits;
 	}AlarmEvents;
 };
@@ -1207,142 +1225,142 @@ struct InfoCodeData
 		struct
 		{
 			//InfoVal[0]
-		    	unsigned char NormalStopChargingByUser:1;				//bit 0
+		    unsigned char NormalStopChargingByUser:1;				//bit 0
 			unsigned char ChargingTimesUp:1;						//bit 1
-			unsigned char ReplaceSystemAirFilter:1; 					//bit 2
-			unsigned char ReachChademoMaxPluggingTimes:1;		//bit 3
-			unsigned char ReachCcsMaxPluggingTimes:1;			//bit 4
-			unsigned char ReachGbMaxPluggingTimes:1;			//bit 5
+			unsigned char ReplaceSystemAirFilter:1; 				//bit 2
+			unsigned char ReachChademoMaxPluggingTimes:1;			//bit 3
+			unsigned char ReachCcsMaxPluggingTimes:1;				//bit 4
+			unsigned char ReachGbMaxPluggingTimes:1;				//bit 5
 			unsigned char ReachAcMaxPluggingTimes:1;				//bit 6
-			unsigned char CsuFimrwareUpdateFail:1;				//bit 7
+			unsigned char CsuFimrwareUpdateFail:1;					//bit 7
 			//InfoVal[1]
-			unsigned char ChademoModuleFimrwareUpdateFail:1;	//bit 0
+			unsigned char ChademoModuleFimrwareUpdateFail:1;		//bit 0
 			unsigned char CcsModuleFimrwareUpdateFail:1;			//bit 1
-			unsigned char GbModuleFimrwareUpdateFail:1;			//bit 2
+			unsigned char GbModuleFimrwareUpdateFail:1;				//bit 2
 			unsigned char AuxPowerModuleFimrwareUpdateFail:1;		//bit 3
 			unsigned char RelayBoardFimrwareUpdateFail:1;			//bit 4
 			unsigned char LcmModuleFimrwareUpdateFail:1;			//bit 5
 			unsigned char BluetoothModuleFimrwareUpdateFail:1;		//bit 6
 			unsigned char WiFiModuleFimrwareUpdateFail:1;			//bit 7
 			//InfoVal[2]
-			unsigned char Telocom4GModuleFimrwareUpdateFail:1;	//bit 0
-			unsigned char PsuFimrwareUpdateFail:1;				//bit 1
+			unsigned char Telocom4GModuleFimrwareUpdateFail:1;		//bit 0
+			unsigned char PsuFimrwareUpdateFail:1;					//bit 1
 			unsigned char RfidModuleFimrwareUpdateFail:1;			//bit 2
 			unsigned char ConfiguredByUsbFlashDrive:1;				//bit 3
 			unsigned char ConfiguredByBackend:1;					//bit 4
-			unsigned char ConfiguredByWebpage:1;				//bit 5
+			unsigned char ConfiguredByWebpage:1;					//bit 5
 			unsigned char InternetDisconnectViaEthernet:1;			//bit 6
 			unsigned char InternetDisconnectViaWiFi :1;				//bit 7
 	        //InfoVal[3]
 			unsigned char InternetDisconnectVia4Gi:1;				//bit 0
 			unsigned char ApDisconnectViaWiFi:1;					//bit 1
 			unsigned char ApnDisconnectVia4Gi:1;					//bit 2
-			unsigned char :5;									//bit 3~7 reserved
+			unsigned char :5;										//bit 3~7 reserved
 			 //InfoVal[4]
-			unsigned char ChademoEvCommFail:1;				//bit 0
-			unsigned char CcsEvCommFail:1;						//bit 1
-			unsigned char GbEvCommFail:1;						//bit 2
-			unsigned char PilotFault:1;							//bit 3
-			unsigned char ChademoBatteryMalfun:1;				//bit 4
-			unsigned char ChademoNoPermission:1;				//bit 5
+			unsigned char ChademoEvCommFail:1;						//bit 0
+			unsigned char CcsEvCommFail:1;							//bit 1
+			unsigned char GbEvCommFail:1;							//bit 2
+			unsigned char PilotFault:1;								//bit 3
+			unsigned char ChademoBatteryMalfun:1;					//bit 4
+			unsigned char ChademoNoPermission:1;					//bit 5
 			unsigned char ChademoBatteryIncompatibility:1;			//bit 6
-			unsigned char ChademoBatteryOVP:1;					//bit 7
+			unsigned char ChademoBatteryOVP:1;						//bit 7
 			//InfoVal[5]
-			unsigned char ChademoBatteryUVP:1;					//bit 0
-			unsigned char ChademoBatteryOTP:1;					//bit 1
-			unsigned char ChademoBatteryCurrentDiff:1;			//bit 2
-			unsigned char ChademoBatteryVoltageDiff:1;			//bit 3
+			unsigned char ChademoBatteryUVP:1;						//bit 0
+			unsigned char ChademoBatteryOTP:1;						//bit 1
+			unsigned char ChademoBatteryCurrentDiff:1;				//bit 2
+			unsigned char ChademoBatteryVoltageDiff:1;				//bit 3
 			unsigned char ChademoShiftPosition:1;					//bit 4
-			unsigned char ChademoBatteryOtherFault:1;			//bit 5
-			unsigned char ChademoChargingSystemError:1;			//bit 6
-			unsigned char ChademoEvNormalStop:1;				//bit 7
+			unsigned char ChademoBatteryOtherFault:1;				//bit 5
+			unsigned char ChademoChargingSystemError:1;				//bit 6
+			unsigned char ChademoEvNormalStop:1;					//bit 7
 			//InfoVal[6]
-			unsigned char ChademoTempSensorBroken:1;			//bit 0
-			unsigned char ChademoConnectorLockFail:1;			//bit 1
-			unsigned char ChademoD1OnNoReceive:1;				//bit 2
-			unsigned char ChademoBmsKtoJTimeout:1;				//bit 3
-			unsigned char ChademoBmsChargeAllowTimeout:1;		//bit 4
-			unsigned char ChademoWaitGfdTimeout:1;				//bit 5
-			unsigned char ChademoBmsEvRelayTimeout:1;			//bit 6
-			unsigned char ChademoBmsReqCurrentTimeout:1;		//bit 7
+			unsigned char ChademoTempSensorBroken:1;				//bit 0
+			unsigned char ChademoConnectorLockFail:1;				//bit 1
+			unsigned char ChademoD1OnNoReceive:1;					//bit 2
+			unsigned char ChademoBmsKtoJTimeout:1;					//bit 3
+			unsigned char ChademoBmsChargeAllowTimeout:1;			//bit 4
+			unsigned char ChademoWaitGfdTimeout:1;					//bit 5
+			unsigned char ChademoBmsEvRelayTimeout:1;				//bit 6
+			unsigned char ChademoBmsReqCurrentTimeout:1;			//bit 7
 			//InfoVal[7]
-			unsigned char ChademoBmsKtoJOffTimeout :1;			//bit 0
-			unsigned char ChademoBmsEvRelayOffTimeout :1;		//bit 1
-			unsigned char ChademoAdcMoreThan10V :1;				//bit 2
-			unsigned char ChademoAdcMoreThan20V :1;				//bit 3
-			unsigned char ChademoBmsChargeBeforeStop :1;		//bit 4
-			unsigned char ChademoChargerGetNormalStop :1;				//bit 5
-			unsigned char ChademoChargerGetEmergencyStop :1;			//bit 6
-			unsigned char ChademoIsolationResultFail :1;		//bit 7
+			unsigned char ChademoBmsKtoJOffTimeout :1;				//bit 0
+			unsigned char ChademoBmsEvRelayOffTimeout :1;			//bit 1
+			unsigned char ChademoAdcMoreThan10V :1;					//bit 2
+			unsigned char ChademoAdcMoreThan20V :1;					//bit 3
+			unsigned char ChademoBmsChargeBeforeStop :1;			//bit 4
+			unsigned char ChademoChargerGetNormalStop :1;			//bit 5
+			unsigned char ChademoChargerGetEmergencyStop :1;		//bit 6
+			unsigned char ChademoIsolationResultFail :1;			//bit 7
 			//InfoVal[8]
-			unsigned char ChademoMissLinkWithMotherBoard :1;	//bit 0
+			unsigned char ChademoMissLinkWithMotherBoard :1;		//bit 0
 			unsigned char ChademoOutputVolMoreThanLimit :1;			//bit 1
-			unsigned char ChademoReqCurrentMoreThanLimit :1;				//bit 2
-			unsigned char ChademoReCapBmsEqrCurrentExceed :1;				//bit 3
-			unsigned char ChademoChargeRemainCountDown :1;		//bit 4
+			unsigned char ChademoReqCurrentMoreThanLimit :1;		//bit 2
+			unsigned char ChademoReCapBmsEqrCurrentExceed :1;		//bit 3
+			unsigned char ChademoChargeRemainCountDown :1;			//bit 4
 			unsigned char CcsRESTemperatureInhibit:1;				//bit 5
-			unsigned char CcsEVShiftPosition:1;				//bit 6
-			unsigned char CcsChargerConnectorLockFault:1;				//bit 7
+			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 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
+			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_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_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
+			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 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
+			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
+			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 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
+			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
+			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 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
@@ -1351,181 +1369,182 @@ struct InfoCodeData
 			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_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
+			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 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
+			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 :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
+			unsigned char :1;										//bit 7 reserved
 			//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
+			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 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
+			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
+			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 CcsPreCharge_Performace_Time:1;			//bit 6
+			unsigned char :1;										//bit 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
+			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
+			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
+			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 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
+			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 CcsCpStatus_Error:1;					//bit 5
-			unsigned char :2;									//bit 6~7 reserved
+			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 CcsCpStatus_Error:1;						//bit 5
+			unsigned char :2;										//bit 6~7 reserved
 			//InfoVal[28]
-			unsigned char :8;									//bit 0~8 reserved
+			unsigned char :8;										//bit 0~8 reserved
 			//InfoVal[29]
-			unsigned char ERROR_CODE_GBT_LOS_CC1 :1;			//bit 0
-			unsigned char ERROR_CODE_GBT_CONNECTOR_LOCK_FAIL :1;				//bit 1
-			unsigned char ERROR_CODE_GBT_BATTERY_INCOMPATIBLE :1;			//bit 2
-			unsigned char ERROR_CODE_GBT_BMS_BROAA_TIMEOUT :1;		//bit 3
-			unsigned char ERROR_CODE_GBT_CSU_PRECHARGE_TIMEOUT :1;			//bit 4
-			unsigned char ERROR_CODE_GBT_BMS_PRESENT_VOLTAGE_FAULT :1;			//bit 5
-			unsigned char ERROR_CODE_GBT_BMS_VOLTAGE_OVER_RANGE :1;			//bit 6
-			unsigned char ERROR_CODE_GBT_BSM_CHARGE_ALLOW_00_10MIN_COUUNTDONE :1;			//bit 7
+			unsigned char ERROR_CODE_GBT_LOS_CC1 :1;									//bit 0
+			unsigned char ERROR_CODE_GBT_CONNECTOR_LOCK_FAIL :1;						//bit 1
+			unsigned char ERROR_CODE_GBT_BATTERY_INCOMPATIBLE :1;						//bit 2
+			unsigned char ERROR_CODE_GBT_BMS_BROAA_TIMEOUT :1;							//bit 3
+			unsigned char ERROR_CODE_GBT_CSU_PRECHARGE_TIMEOUT :1;						//bit 4
+			unsigned char ERROR_CODE_GBT_BMS_PRESENT_VOLTAGE_FAULT :1;					//bit 5
+			unsigned char ERROR_CODE_GBT_BMS_VOLTAGE_OVER_RANGE :1;						//bit 6
+			unsigned char ERROR_CODE_GBT_BSM_CHARGE_ALLOW_00_10MIN_COUUNTDONE :1;		//bit 7
 			//InfoVal[30]
-			unsigned char ERROR_CODE_GBT_WAIT_GROUNDFAULT_TIMEOUT :1;			//bit 0
-			unsigned char ERROR_CODE_GBT_ADC_MORE_THAN_10V :1;				//bit 1
-			unsigned char ERROR_CODE_GBT_ADC_MORE_THAN_60V :1;			//bit 2
-			unsigned char ERROR_CODE_GBT_CHARGER_GET_NORMAL_STOP_CMD :1;		//bit 3
-			unsigned char ERROR_CODE_GBT_CHARGER_GET_EMERGENCY_STOP_CMD :1;			//bit 4
-			unsigned char ERROR_CODE_GBT_ISOLATION_RESULT_FAIL :1;			//bit 5
-			unsigned char ERROR_CODE_GBT_MOTHER_BOARD_MISS_LINK :1;			//bit 6
-			unsigned char ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_LIMIT :1;			//bit 7
+			unsigned char ERROR_CODE_GBT_WAIT_GROUNDFAULT_TIMEOUT :1;					//bit 0
+			unsigned char ERROR_CODE_GBT_ADC_MORE_THAN_10V :1;							//bit 1
+			unsigned char ERROR_CODE_GBT_ADC_MORE_THAN_60V :1;							//bit 2
+			unsigned char ERROR_CODE_GBT_CHARGER_GET_NORMAL_STOP_CMD :1;				//bit 3
+			unsigned char ERROR_CODE_GBT_CHARGER_GET_EMERGENCY_STOP_CMD :1;				//bit 4
+			unsigned char ERROR_CODE_GBT_ISOLATION_RESULT_FAIL :1;						//bit 5
+			unsigned char ERROR_CODE_GBT_MOTHER_BOARD_MISS_LINK :1;						//bit 6
+			unsigned char ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_LIMIT :1;				//bit 7
 			//InfoVal[31]
-			unsigned char ERROR_CODE_GBT_REQ_CURRENT_MORE_THAN_LIMIT :1;			//bit 0
-			unsigned char ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_10_PERCENT :1;				//bit 1
+			unsigned char ERROR_CODE_GBT_REQ_CURRENT_MORE_THAN_LIMIT :1;				//bit 0
+			unsigned char ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_10_PERCENT :1;		//bit 1
 			unsigned char ERROR_CODE_GBT_OUTPUT_VOLTAGE_DIFF_BCS_5_PERCENT :1;			//bit 2
-			unsigned char ERROR_CODE_GBT_STOP_ADC_MORE_THAN_10V :1;		//bit 3
-			unsigned char :4;			//bit 4 ~ 7
+			unsigned char ERROR_CODE_GBT_STOP_ADC_MORE_THAN_10V :1;						//bit 3
+			unsigned char :4;															//bit 4 ~ 7 reserved
 			//InfoVal[32]
-			unsigned char :6;			//bit 0 ~ 5
-			unsigned char ERROR_CODE_CEM_BHM_TIMEOUT :1;			//bit 6
-			unsigned char ERROR_CODE_CEM_BRM_TIMEOUT :1;			//bit 7
+			unsigned char :6;															//bit 0 ~ 5 reserved
+			unsigned char ERROR_CODE_CEM_BHM_TIMEOUT :1;								//bit 6
+			unsigned char ERROR_CODE_CEM_BRM_TIMEOUT :1;								//bit 7
 			//InfoVal[33]
-			unsigned char ERROR_CODE_CEM_BCP_TIMEOUT :1;			//bit 0
-			unsigned char ERROR_CODE_CEM_BRO_TIMEOUT :1;				//bit 1
-			unsigned char ERROR_CODE_CEM_BCL_TIMEOUT :1;			//bit 2
-			unsigned char ERROR_CODE_CEM_BCS_TIMEOUT :1;		//bit 3
-			unsigned char ERROR_CODE_CEM_BSM_TIMEOUT :1;			//bit 4
-			unsigned char ERROR_CODE_CEM_BST_TIMEOUT :1;			//bit 5
-			unsigned char ERROR_CODE_CEM_BSD_TIMEOUT :1;			//bit 6
-			unsigned char ERROR_CODE_CEM_BEM_OTHER_TIMEOUT :1;			//bit 7
+			unsigned char ERROR_CODE_CEM_BCP_TIMEOUT :1;								//bit 0
+			unsigned char ERROR_CODE_CEM_BRO_TIMEOUT :1;								//bit 1
+			unsigned char ERROR_CODE_CEM_BCL_TIMEOUT :1;								//bit 2
+			unsigned char ERROR_CODE_CEM_BCS_TIMEOUT :1;								//bit 3
+			unsigned char ERROR_CODE_CEM_BSM_TIMEOUT :1;								//bit 4
+			unsigned char ERROR_CODE_CEM_BST_TIMEOUT :1;								//bit 5
+			unsigned char ERROR_CODE_CEM_BSD_TIMEOUT :1;								//bit 6
+			unsigned char ERROR_CODE_CEM_BEM_OTHER_TIMEOUT :1;							//bit 7
 			//InfoVal[34]
 			unsigned char ERROR_CODE_BEM_CRM_TIMEOUT :1;			//bit 0
-			unsigned char ERROR_CODE_BEM_CRMAA_TIMEOUT :1;				//bit 1
-			unsigned char ERROR_CODE_BEM_CTS_CML_TIMEOUT :1;			//bit 2
-			unsigned char ERROR_CODE_BEM_CRO_TIMEOUT :1;		//bit 3
+			unsigned char ERROR_CODE_BEM_CRMAA_TIMEOUT :1;			//bit 1
+			unsigned char ERROR_CODE_BEM_CTS_CML_TIMEOUT :1;		//bit 2
+			unsigned char ERROR_CODE_BEM_CRO_TIMEOUT :1;			//bit 3
 			unsigned char ERROR_CODE_BEM_CCS_TIMEOUT :1;			//bit 4
 			unsigned char ERROR_CODE_BEM_CST_TIMEOUT :1;			//bit 5
 			unsigned char ERROR_CODE_BEM_CSD_TIMEOUT :1;			//bit 6
-			unsigned char ERROR_CODE_BEM_BEM_OTHER_TIMEOUT :1;			//bit 7
+			unsigned char ERROR_CODE_BEM_BEM_OTHER_TIMEOUT :1;		//bit 7
 			//InfoVal[35]
-			unsigned char :2;			//bit 0 ~ 1
-			unsigned char ERROR_CODE_BST_SOC_GOAL :1;			//bit 2
+			unsigned char :2;										//bit 0 ~ 1
+			unsigned char ERROR_CODE_BST_SOC_GOAL :1;				//bit 2
 			unsigned char ERROR_CODE_BST_TOTAL_VOLTAGE_GOAL :1;		//bit 3
-			unsigned char ERROR_CODE_BST_CELL_VOLTAGE_GOAL :1;			//bit 4
-			unsigned char ERROR_CODE_BST_GET_CST :1;			//bit 5
-			unsigned char ERROR_CODE_BST_ISOLATION :1;			//bit 6
-			unsigned char ERROR_CODE_BST_OUTPUT_CONNECTOR_OTP :1;			//bit 7
+			unsigned char ERROR_CODE_BST_CELL_VOLTAGE_GOAL :1;		//bit 4
+			unsigned char ERROR_CODE_BST_GET_CST :1;				//bit 5
+			unsigned char ERROR_CODE_BST_ISOLATION :1;				//bit 6
+			unsigned char ERROR_CODE_BST_OUTPUT_CONNECTOR_OTP :1;	//bit 7
 			//InfoVal[36]
-			unsigned char ERROR_CODE_BST_COMPONENT :1;			//bit 0
-			unsigned char ERROR_CODE_BST_CHARGE_CONNECTOR :1;				//bit 1
-			unsigned char ERROR_CODE_BST_OTP :1;			//bit 2
-			unsigned char ERROR_CODE_BST_OTHER :1;		//bit 3
-			unsigned char ERROR_CODE_BST_HIGH_V :1;			//bit 4
-			unsigned char ERROR_CODE_BST_CC2 :1;			//bit 5
-			unsigned char ERROR_CODE_BST_CURRENT :1;			//bit 6
-			unsigned char ERROR_CODE_BST_VOLTAGE :1;			//bit 7
+			unsigned char ERROR_CODE_BST_COMPONENT :1;				//bit 0
+			unsigned char ERROR_CODE_BST_CHARGE_CONNECTOR :1;		//bit 1
+			unsigned char ERROR_CODE_BST_OTP :1;					//bit 2
+			unsigned char ERROR_CODE_BST_OTHER :1;					//bit 3
+			unsigned char ERROR_CODE_BST_HIGH_V :1;					//bit 4
+			unsigned char ERROR_CODE_BST_CC2 :1;					//bit 5
+			unsigned char ERROR_CODE_BST_CURRENT :1;				//bit 6
+			unsigned char ERROR_CODE_BST_VOLTAGE :1;				//bit 7
 			//InfoVal[37]
 			unsigned char ERROR_CODE_GET_BST_NO_REASON :1;			//bit 0
-			unsigned char :5;				//bit 1 ~ 5
-			unsigned char ERROR_CODE_BSM_CELL_OVER_VOLTAGE :1;			//bit 6
-			unsigned char ERROR_CODE_BSM_CELL_UNDER_VOLTAGE :1;			//bit 7
+			unsigned char :5;										//bit 1 ~ 5 reserved
+			unsigned char ERROR_CODE_BSM_CELL_OVER_VOLTAGE :1;		//bit 6
+			unsigned char ERROR_CODE_BSM_CELL_UNDER_VOLTAGE :1;		//bit 7
 			//InfoVal[38]
-			unsigned char ERROR_CODE_BSM_OVER_SOC :1;			//bit 0
+			unsigned char ERROR_CODE_BSM_OVER_SOC :1;				//bit 0
 			unsigned char ERROR_CODE_BSM_UNDER_SOC :1;				//bit 1
-			unsigned char ERROR_CODE_BSM_CURRENT :1;			//bit 2
-			unsigned char ERROR_CODE_BSM_TEMPERATURE :1;		//bit 3
-			unsigned char ERROR_CODE_BSM_ISOLATE :1;			//bit 4
-			unsigned char ERROR_CODE_BSM_OUTPUT_CONNECTOR :1;			//bit 5
-			unsigned char :2;			//bit 6 ~ 7
+			unsigned char ERROR_CODE_BSM_CURRENT :1;				//bit 2
+			unsigned char ERROR_CODE_BSM_TEMPERATURE :1;			//bit 3
+			unsigned char ERROR_CODE_BSM_ISOLATE :1;				//bit 4
+			unsigned char ERROR_CODE_BSM_OUTPUT_CONNECTOR :1;		//bit 5
+			unsigned char :2;										//bit 6 ~ 7	reserved
 			//InfoVal[39]
-			unsigned char BackendDisconnectedViaEthernet:1;		//bit 0
+			unsigned char BackendDisconnectedViaEthernet:1;			//bit 0
 			unsigned char BackendDisconnectViaWiFi:1;				//bit 1
-			unsigned char BackendDisconnectVia4G:1;				//bit 2
-			unsigned char BackendRemoteStart:1;					//bit 3
-			unsigned char BackendRemoteStop:1;					//bit 4
-			unsigned char BackendRemoteReset:1;					//bit 5
-			unsigned char :2;									//bit 6~7 reserved
+			unsigned char BackendDisconnectVia4G:1;					//bit 2
+			unsigned char BackendRemoteStart:1;						//bit 3
+			unsigned char BackendRemoteStop:1;						//bit 4
+			unsigned char BackendRemoteReset:1;						//bit 5
+			unsigned char :2;										//bit 6 ~ 7	reserved
 		}bits;
 	}InfoEvents;
 };