Browse Source

Merge branch 'master' into BYTON-GB

FolusWen 5 years ago
parent
commit
a698e3a8ca

+ 20 - 7
EVSE/Modularization/ocppfiles/MessageHandler.c

@@ -1751,7 +1751,7 @@ int sendBootNotificationRequest(void)
 	strcpy((char *)ShmOCPP16Data->BootNotification.CpIccid,(const char *)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimIccid);
 	strcpy((char *)ShmOCPP16Data->BootNotification.CpImsi,(const char *)ShmSysConfigAndInfo->SysConfig.TelecomInterface.TelcomSimImsi);
 
-
+#if 0
 	sprintf(payload, "{\"chargeBoxSerialNumber\":\"%s\",\"chargePointModel\":\"%s\",\"chargePointSerialNumber\":\"%s\",\"chargePointVendor\":\"%s\",\"firmwareVersion\":\"%s\",\"iccid\":\"%s\",\"imsi\":\"%s\",\"meterSerialNumber\":\"%s\",\"meterType\":\"%s\"} ",
 			ShmOCPP16Data->ChargeBoxId
 			,ShmSysConfigAndInfo->SysConfig.ModelName
@@ -1762,6 +1762,17 @@ int sendBootNotificationRequest(void)
 			,ShmOCPP16Data->BootNotification.CpImsi
 			,ShmOCPP16Data->BootNotification.CpMeterSerialNumber
 			,ShmOCPP16Data->BootNotification.CpMeterType);
+#endif
+
+	sprintf(payload, "{\"chargeBoxSerialNumber\":\"%s\",\"chargePointModel\":\"%s\",\"chargePointSerialNumber\":\"%s\",\"chargePointVendor\":\"%s\",\"firmwareVersion\":\"%s\",\"iccid\":\"%s\",\"imsi\":\"%s\"} ",
+				ShmOCPP16Data->ChargeBoxId
+				,ShmSysConfigAndInfo->SysConfig.ModelName
+				,ShmSysConfigAndInfo->SysConfig.SerialNumber
+				,ShmSysConfigAndInfo->SysConfig.chargePointVendor
+				,ShmOCPP16Data->BootNotification.CpFwVersion
+				,ShmOCPP16Data->BootNotification.CpIccid
+				,ShmOCPP16Data->BootNotification.CpImsi);
+
 	random_uuid(guid);
 
 	sprintf(message,"[%d,\"%s\",\"%s\",%s]",MESSAGE_TYPE_CALL, guid, "BootNotification", payload);
@@ -7990,14 +8001,16 @@ int handleReserveNowTransactionRequest(char *uuid, char *payload)
 	sstr[c] = '\0';
 	reservationIdInt = atoi(sstr);
 
+	strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Rejected]);
+
+
 	if(reservationIdInt == 0)
 	{
 		//reservationId's value can not be 0
-		strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Rejected]);
+		//strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Rejected]);
 		goto end;
 	}
 
-	strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Rejected]);
 
 	/*
 	enum SYSTEM_STATUS
@@ -8054,7 +8067,7 @@ int handleReserveNowTransactionRequest(char *uuid, char *payload)
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Unavailable]);
 
 							}
-							else if(ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].SystemStatus == SYS_MODE_PREPARING) //S_PRECHARGE
+							else if((ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].SystemStatus == SYS_MODE_PREPARING) || (ShmSysConfigAndInfo->SysInfo.ChademoChargingData[index].SystemStatus == SYS_MODE_RESERVATION) ) //S_PRECHARGE
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Occupied]);
 							}
@@ -8098,7 +8111,7 @@ int handleReserveNowTransactionRequest(char *uuid, char *payload)
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Unavailable]);
 							}
-							else if(ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].SystemStatus == SYS_MODE_PREPARING) //S_PRECHARGE
+							else if((ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].SystemStatus == SYS_MODE_PREPARING) || (ShmSysConfigAndInfo->SysInfo.CcsChargingData[index].SystemStatus == SYS_MODE_RESERVATION)) //S_PRECHARGE
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Occupied]);
 							}
@@ -8143,7 +8156,7 @@ int handleReserveNowTransactionRequest(char *uuid, char *payload)
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Unavailable]);
 							}
-							else if(ShmSysConfigAndInfo->SysInfo.GbChargingData[index].SystemStatus == SYS_MODE_PREPARING) //S_PRECHARGE
+							else if((ShmSysConfigAndInfo->SysInfo.GbChargingData[index].SystemStatus == SYS_MODE_PREPARING) || (ShmSysConfigAndInfo->SysInfo.GbChargingData[index].SystemStatus == SYS_MODE_RESERVATION) ) //S_PRECHARGE
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Occupied]);
 							}
@@ -8190,7 +8203,7 @@ int handleReserveNowTransactionRequest(char *uuid, char *payload)
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Unavailable]);
 
 							}
-							else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[index].SystemStatus == SYS_MODE_PREPARING) //S_PRECHARGE
+							else if((ShmSysConfigAndInfo->SysInfo.AcChargingData[index].SystemStatus == SYS_MODE_PREPARING) || (ShmSysConfigAndInfo->SysInfo.AcChargingData[index].SystemStatus == SYS_MODE_RESERVATION) ) //S_PRECHARGE
 							{
 								strcpy(comfirmstr, ReservationStatusStr[ReservationStatus_Occupied]);
 							}

+ 1 - 1
EVSE/Modularization/ocppfiles/Module_OcppBackend.c

@@ -318,7 +318,7 @@ char *random_uuid( char buf[37] )
     //printf("\n testnum:%d\n", testnum);
     //printf("\n seconds:%d\n", seconds);
 
-    sprintf(p, "%03d%034d", testnum, (unsigned int)(seconds));
+    sprintf(p, "%03d%033d", testnum, (unsigned int)(seconds));
     //printf("\n p:%s\n", p);
 #endif
 #if 0

+ 71 - 82
EVSE/Projects/AW-Regular/Apps/Module_AlarmDetect.c

@@ -264,11 +264,11 @@ int main(void)
 			//=====================================
 			// Over voltage detection
 			//=====================================
-			if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE))
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)
 			{
 				if(Alarm_Counter[gun_index].OV[0] > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
@@ -283,7 +283,7 @@ int main(void)
 			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
 			{
 				Alarm_Counter[gun_index].OV[0] = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
@@ -293,11 +293,11 @@ int main(void)
 
 			if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
 			{
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].OV[1] > FILTER_SPEC)
 					{
-						if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == OFF))
+						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = ON;
 							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
@@ -312,7 +312,7 @@ int main(void)
 				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].OV[1] = 0;
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
@@ -320,11 +320,11 @@ int main(void)
 					}
 				}
 
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].OV[2] > FILTER_SPEC)
 					{
-						if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == OFF))
+						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = ON;
 							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
@@ -339,7 +339,7 @@ int main(void)
 				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].OV[2] = 0;
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
@@ -351,11 +351,11 @@ int main(void)
 			//=====================================
 			// Under voltage detection
 			//=====================================
-			if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE))
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)
 			{
 				if(Alarm_Counter[gun_index].UV[0] > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
@@ -370,7 +370,7 @@ int main(void)
 			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
 			{
 				Alarm_Counter[gun_index].UV[0] = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
@@ -380,11 +380,11 @@ int main(void)
 
 			if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
 			{
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].UV[1] > FILTER_SPEC)
 					{
-						if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == OFF))
+						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = ON;
 							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
@@ -399,7 +399,7 @@ int main(void)
 				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].UV[1] = 0;
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
@@ -407,11 +407,11 @@ int main(void)
 					}
 				}
 
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].UV[2] > FILTER_SPEC)
 					{
-						if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == OFF))
+						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = ON;
 							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
@@ -426,7 +426,7 @@ int main(void)
 				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].UV[2] = 0;
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
@@ -438,9 +438,9 @@ int main(void)
 			//=====================================
 			// Over current detection
 			//=====================================
-			if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT))
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)
 			{
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
@@ -449,7 +449,7 @@ int main(void)
 			}
 			else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
 			{
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
@@ -459,9 +459,9 @@ int main(void)
 
 			if(ShmSysConfigAndInfo->SysConfig.AcPhaseCount == 3)
 			{
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
@@ -470,7 +470,7 @@ int main(void)
 				}
 				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
@@ -478,9 +478,9 @@ int main(void)
 					}
 				}
 
-				if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT))
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
@@ -489,7 +489,7 @@ int main(void)
 				}
 				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
@@ -501,11 +501,11 @@ int main(void)
 			//=====================================
 			// Over temperature detection
 			//=====================================
-			if((ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_TEMPERATURE))
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_TEMPERATURE)
 			{
 				if(Alarm_Counter[gun_index].OT_AMB > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_TEMPERATURE;
@@ -520,7 +520,7 @@ int main(void)
 			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_TEMPERATURE)))
 			{
 				Alarm_Counter[gun_index].OT_AMB = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAmbientOTP = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_TEMPERATURE;
@@ -535,9 +535,9 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].GMI > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.GbGfdTrip == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.AcGroundfaultFail == OFF)
 					{
-						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.GbGfdTrip = ON;
+						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.AcGroundfaultFail = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_GROUND_FAIL;
 						DEBUG_INFO("ALARM_GROUND_FAIL : alarm \r\n");
 					}
@@ -550,9 +550,9 @@ int main(void)
 			else if (!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_GROUND_FAIL))
 			{
 				Alarm_Counter[gun_index].GMI = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.GbGfdTrip == ON ))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.AcGroundfaultFail == ON)
 				{
-					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.GbGfdTrip = OFF;
+					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.AcGroundfaultFail = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_GROUND_FAIL;
 					DEBUG_INFO("ALARM_GROUND_FAIL : recover \r\n");
 				}
@@ -596,10 +596,9 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].Leakage > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip = ON;
-
 						if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CURRENT_LEAK_AC)
 						{
 							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_CURRENT_LEAK_AC;
@@ -623,10 +622,9 @@ int main(void)
 					(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CURRENT_LEAK_DC)))
 			{
 				Alarm_Counter[gun_index].Leakage = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.RcdTrip = OFF;
-
 					if(ShmCharger->gun_info[gun_index].otherAlarmCode.isACLeakage == ON)
 					{
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_CURRENT_LEAK_AC;
@@ -649,9 +647,9 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].MCU_SelfTestFail > FILTER_SPEC)
 				{
-					if(ShmCharger->gun_info[gun_index].otherAlarmCode.isMcuSelfTest == OFF)
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.McuSelftestFail == OFF)
 					{
-						ShmCharger->gun_info[gun_index].otherAlarmCode.isMcuSelfTest = ON;
+						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.McuSelftestFail = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_MCU_TESTFAIL;
 						DEBUG_INFO("ALARM_MCU_TESTFAIL : alarm \r\n");
 					}
@@ -664,9 +662,9 @@ int main(void)
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_MCU_TESTFAIL))
 			{
 				Alarm_Counter[gun_index].MCU_SelfTestFail = 0;
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isMcuSelfTest == ON)
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.McuSelftestFail == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isMcuSelfTest = OFF;
+					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.McuSelftestFail = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_MCU_TESTFAIL;
 					DEBUG_INFO("ALARM_MCU_TESTFAIL : recover \r\n");
 				}
@@ -687,7 +685,7 @@ int main(void)
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_HANDSHAKE_TIMEOUT))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isHandshakingTimeOut  == ON)
+				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isHandshakingTimeOut == ON)
 				{
 					ShmCharger->gun_info[gun_index].otherAlarmCode.isHandshakingTimeOut  = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_HANDSHAKE_TIMEOUT;
@@ -702,7 +700,7 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].EmrgencyBTN > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip == OFF))
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_EMERGENCY_STOP;
@@ -717,7 +715,7 @@ int main(void)
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_EMERGENCY_STOP))
 			{
 				Alarm_Counter[gun_index].EmrgencyBTN = 0;
-				if((ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip == ON))
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.EmergencyStopTrip = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_EMERGENCY_STOP;
@@ -732,7 +730,7 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].Relay_Welding > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding == OFF))
+					if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding == OFF)
 					{
 						ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_RELAY_WELDING;
@@ -747,7 +745,7 @@ int main(void)
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_RELAY_WELDING))
 			{
 				Alarm_Counter[gun_index].Relay_Welding = 0;
-				if((ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding == ON))
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding == ON)
 				{
 					ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayWelding = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_RELAY_WELDING;
@@ -762,7 +760,7 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].Relay_DrivingFault > FILTER_SPEC)
 				{
-					if((ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault == OFF))
+					if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault == OFF)
 					{
 						ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_RELAY_DRIVE_FAULT;
@@ -777,7 +775,7 @@ int main(void)
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_RELAY_DRIVE_FAULT))
 			{
 				Alarm_Counter[gun_index].Relay_DrivingFault = 0;
-				if((ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault == ON))
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault == ON)
 				{
 					ShmStatusCodeData->FaultCode.FaultEvents.bits.AcOutputRelayDrivingFault = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_RELAY_DRIVE_FAULT;
@@ -792,9 +790,9 @@ int main(void)
 			{
 				if(Alarm_Counter[gun_index].Short > FILTER_SPEC)
 				{
-					if(ShmCharger->gun_info[gun_index].otherAlarmCode.isCurrentShort == OFF)
+					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort == OFF)
 					{
-						ShmCharger->gun_info[gun_index].otherAlarmCode.isCurrentShort = ON;
+						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort = ON;
 						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_CURRENT_SHORT;
 						DEBUG_INFO("ALARM_CIRCUIT_SHORT : alarm \r\n");
 					}
@@ -807,10 +805,9 @@ int main(void)
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CURRENT_SHORT))
 			{
 				Alarm_Counter[gun_index].Short = 0;
-
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isCurrentShort == ON)
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isCurrentShort = OFF;
+					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_CURRENT_SHORT;
 					DEBUG_INFO("ALARM_CIRCUIT_SHORT : recover \r\n");
 				}
@@ -821,18 +818,18 @@ int main(void)
 			//=====================================
 			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_ROTATORY_SWITCH_FAULT)
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isRotatorySwitch == OFF)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.RotarySwitchFault == OFF)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isRotatorySwitch = ON;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.RotarySwitchFault = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_ROTATORY_SWITCH_FAULT;
 					DEBUG_INFO("ALARM_ROTATORY_SWITCH_FAULT : alarm \r\n");
 				}
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_ROTATORY_SWITCH_FAULT))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isRotatorySwitch == ON)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.RotarySwitchFault == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isRotatorySwitch = OFF;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.RotarySwitchFault = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_ROTATORY_SWITCH_FAULT;
 					DEBUG_INFO("ALARM_ROTATORY_SWITCH_FAULT : recover \r\n");
 				}
@@ -843,21 +840,19 @@ int main(void)
 			//=====================================
 			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_LEAK_MODULE_FAIL)
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isLeakageModule == OFF)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.RcdSelfTestFail == OFF)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isLeakageModule = ON;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.RcdSelfTestFail = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_LEAK_MODULE_FAIL;
-
 					DEBUG_INFO("ALARM_LEAK_MODULE_FAIL : alarm \r\n");
 				}
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_LEAK_MODULE_FAIL))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isLeakageModule == ON)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.RcdSelfTestFail == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isLeakageModule = OFF;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.RcdSelfTestFail = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_LEAK_MODULE_FAIL;
-
 					DEBUG_INFO("ALARM_LEAK_MODULE_FAIL : recover \r\n");
 				}
 			}
@@ -867,21 +862,19 @@ int main(void)
 			//=====================================
 			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_SHUTTER_FAULT)
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isShutterFail == OFF)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.ShutterFault == OFF)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isShutterFail = ON;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.ShutterFault = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_SHUTTER_FAULT;
-
 					DEBUG_INFO("ALARM_SHUTTER_FAULT : alarm \r\n");
 				}
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_SHUTTER_FAULT))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isShutterFail == ON)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.ShutterFault == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isShutterFail = OFF;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.ShutterFault = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_SHUTTER_FAULT;
-
 					DEBUG_INFO("ALARM_SHUTTER_FAULT : recover \r\n");
 				}
 			}
@@ -891,21 +884,19 @@ int main(void)
 			//=====================================
 			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_LOCKER_FAULT)
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isLockerFault == OFF)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcConnectorLockFail == OFF)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isLockerFault = ON;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.AcConnectorLockFail = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_LOCKER_FAULT;
-
 					DEBUG_INFO("ALARM_LOCKER_FAULT : alarm \r\n");
 				}
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_LOCKER_FAULT))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isLockerFault== ON)
+				if(ShmStatusCodeData->FaultCode.FaultEvents.bits.AcConnectorLockFail == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isLockerFault = OFF;
+					ShmStatusCodeData->FaultCode.FaultEvents.bits.AcConnectorLockFail = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_LOCKER_FAULT;
-
 					DEBUG_INFO("ALARM_LOCKER_FAULT : recover \r\n");
 				}
 			}
@@ -915,21 +906,19 @@ int main(void)
 			//=====================================
 			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_POWER_DROP)
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isPowerDrop == OFF)
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputDrop == OFF)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isPowerDrop = ON;
+					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputDrop = ON;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_POWER_DROP;
-
 					DEBUG_INFO("ALARM_POWER_DROP : alarm \r\n");
 				}
 			}
 			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_POWER_DROP))
 			{
-				if(ShmCharger->gun_info[gun_index].otherAlarmCode.isPowerDrop == ON)
+				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputDrop == ON)
 				{
-					ShmCharger->gun_info[gun_index].otherAlarmCode.isPowerDrop = OFF;
+					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputDrop = OFF;
 					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_POWER_DROP;
-
 					DEBUG_INFO("ALARM_POWER_DROP : recover \r\n");
 				}
 			}

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

@@ -277,7 +277,7 @@ int main(void)
 	for(;;)
 	{
 		//check Fault Status
-		for(ByteCount=0;ByteCount<4;ByteCount++)
+		for(ByteCount=0;ByteCount<5;ByteCount++)
 		{
 			if(ShmStatusCodeData->FaultCode.FaultEvents.FaultVal[ByteCount] != ShmStatusCodeData->FaultCode.PreviousFaultVal[ByteCount])
 			{
@@ -302,7 +302,7 @@ int main(void)
 		}
 
 		//check Alarm Status
-		for(ByteCount=0;ByteCount<11;ByteCount++)
+		for(ByteCount=0;ByteCount<12;ByteCount++)
 		{
 			if(ShmStatusCodeData->AlarmCode.AlarmEvents.AlarmVal[ByteCount] != ShmStatusCodeData->AlarmCode.PreviousAlarmVal[ByteCount])
 			{
@@ -327,7 +327,7 @@ int main(void)
 		}
 
 		//check Info Status
-		for(ByteCount=0;ByteCount<29;ByteCount++)
+		for(ByteCount=0;ByteCount<40;ByteCount++)
 		{
 			if(ShmStatusCodeData->InfoCode.InfoEvents.InfoVal[ByteCount] != ShmStatusCodeData->InfoCode.PreviousInfoVal[ByteCount])
 			{

+ 55 - 21
EVSE/Projects/AW-Regular/Apps/main.c

@@ -29,9 +29,9 @@
 #define TMR_IDX_9 						9
 
 #define TIMEOUT_SPEC_HANDSHAKING		180000
-#define TIMEOUT_SPEC_AUTH				10000
+#define TIMEOUT_SPEC_AUTH				15000
 #define TIMEOUT_SPEC_HANDSHAKING_LED	185000
-#define TIMEOUT_SPEC_LOGPPRINTOUT		20000
+#define TIMEOUT_SPEC_LOGPPRINTOUT		30000
 
 #define MtdBlockSize 					0x600000
 
@@ -516,7 +516,7 @@ int DB_Insert_Record(sqlite3 *db, int gun_index)
 int InitWatchDog()
 {
 	int fd;
-	int timeout = 120;
+	int timeout = 180;
 
 	system("/usr/bin/fuser -k /dev/watchdog");
 	sleep(1);
@@ -916,6 +916,11 @@ int SpawnTask()
 	{
 		system("/root/OcppBackend &");
 	}
+	else
+	{
+		DEBUG_INFO("OCPP URL is empty, need to create a configuration table !!!\r\n");
+		system("/root/OcppBackend &");
+	}
 	system ("/root/Module_AlarmDetect &");
 	system ("/root/Module_InternalComm &");
 	system ("/root/Module_Speaker &");
@@ -980,7 +985,7 @@ char* getSystemModeName(unsigned char mode)
 			result = "terminating";
 			break;
 		case SYS_MODE_COMPLETE:
-			result = "Complete";
+			result = "complete";
 			break;
 		case SYS_MODE_ALARM:
 			result = "alarm";
@@ -1070,7 +1075,7 @@ void get_firmware_version(unsigned char gun_index)
 	strcpy((char*)ShmSysConfigAndInfo->SysInfo.CsuPrimFwRev, ShmCharger->gun_info[gun_index].ver.Version_FW);
 
 	// Get CSU root file system version
-	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "B0.23.00.0000.00");
+	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "B0.28.00.0000.00");
 
 	// Get AC connector type from model name
 	for(uint8_t idx=0;idx<3;idx++)
@@ -1821,7 +1826,6 @@ void checkConnectionTimeout()
 		if(strcmp((char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[ConnectionTimeOut].ItemData,"") != 0)
 		{
 			ShmCharger->timeoutSpec.Setting_Timeout_Spec = atoi((char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[ConnectionTimeOut].ItemData);
-
 			if(ShmCharger->timeoutSpec.Setting_Timeout_Spec <= 0)
 			{
 				ShmCharger->timeoutSpec.Present_Timeout_Spec = TIMEOUT_SPEC_HANDSHAKING;
@@ -1886,7 +1890,7 @@ int main(void)
 		ShmSysConfigAndInfo->SysInfo.OcppConnStatus = ShmOCPP16Data->OcppConnStatus;
 
 		//==========================================
-		// Ethernet Mac address
+		// Ethernet MAC address
 		//==========================================
 		getEth0MacAddress();
 
@@ -1896,7 +1900,7 @@ int main(void)
 		checkTask();
 
 		//==========================================
-		// Check timeout spec
+		// Check connection timeout specification
 		//==========================================
 		checkConnectionTimeout();
 
@@ -2065,7 +2069,6 @@ int main(void)
 			if(ShmOCPP16Data->CsMsg.bits[gun_index].UnlockConnectorReq == ON)
 			{
 				ShmOCPP16Data->CsMsg.bits[gun_index].UnlockConnectorReq = OFF;
-
 				ShmCharger->gun_info[ShmOCPP16Data->UnlockConnector[gun_index].ConnectorId-1].isUnlockerConnetor = ON;
 			}
 
@@ -2079,7 +2082,7 @@ int main(void)
 
 						//CSU Initialization & task spawn
 						if((Initialization() != PASS) ||
-						   (SpawnTask() != PASS) )
+						   (SpawnTask() != PASS))
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CsuInitFailed = ON;
 						}
@@ -2155,7 +2158,9 @@ int main(void)
 
 						// Response StopTransactionConf
 						if(ShmOCPP16Data->CpMsg.bits[gun_index].StopTransactionConf == ON)
+						{
 							ShmOCPP16Data->CpMsg.bits[gun_index].StopTransactionConf = OFF;
+						}
 					}
 
 					if(((ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_DISABLE) && (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_B)) ||
@@ -2287,7 +2292,7 @@ int main(void)
 						// Authorization timeout process.
 						ShmCharger->gun_info[gun_index].rfidReq = OFF;
 						setChargerMode(gun_index, SYS_MODE_IDLE);
-						DEBUG_WARN("Authorize timeout!\r\n");
+						DEBUG_WARN("Authorize timeout !!!\r\n");
 					}
 					else
 					{
@@ -2295,7 +2300,9 @@ int main(void)
 						{
 							case START_METHOD_RFID:
 								if((ShmOCPP16Data->SpMsg.bits.AuthorizeConf) ||
-								   (!ShmOCPP16Data->OcppConnStatus))
+								   (!ShmOCPP16Data->OcppConnStatus && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)) ||
+								   (!ShmOCPP16Data->OcppConnStatus && (isValidLocalWhiteCard() == PASS) && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST)) ||
+								   (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_NOCHARGE))
 								{
 									if((strcmp((char*)ShmOCPP16Data->Authorize.ResponseIdTagInfo.Status, "Accepted")==0) ||
 									   (!ShmOCPP16Data->OcppConnStatus && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)) ||
@@ -2425,15 +2432,19 @@ int main(void)
 						if((ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileId>0) &&
 						   (((strlen((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ValidFrom)>0) && (strlen((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ValidTo)>0)) ? isProfileValid(gun_index) : ON))
 						{
-							DEBUG_INFO("Profile ID found: %d\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileId);
-							DEBUG_INFO("Valid from: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ValidFrom);
-							DEBUG_INFO("Valid to: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ValidTo);
-							DEBUG_INFO("Start schedule: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.StartSchedule);
-							DEBUG_INFO("Profile kind: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileKind);
-							DEBUG_INFO("RecurrencyKind: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].RecurrencyKind);
-							DEBUG_INFO("Profile purpose: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfilePurpose);
-							DEBUG_INFO("Transaction ID: %d\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].TransactionId);
-							DEBUG_INFO("ChargingRateUnit: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit);
+							// Debug information
+							if(DiffTimebWithNow(startTime[gun_index][TMR_IDX_LOGPPRINTOUT]) > TIMEOUT_SPEC_LOGPPRINTOUT)
+							{
+								DEBUG_INFO("Profile ID found: %d\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileId);
+								DEBUG_INFO("Valid from: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ValidFrom);
+								DEBUG_INFO("Valid to: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ValidTo);
+								DEBUG_INFO("Start schedule: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.StartSchedule);
+								DEBUG_INFO("Profile kind: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileKind);
+								DEBUG_INFO("RecurrencyKind: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].RecurrencyKind);
+								DEBUG_INFO("Profile purpose: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfilePurpose);
+								DEBUG_INFO("Transaction ID: %d\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].TransactionId);
+								DEBUG_INFO("ChargingRateUnit: %s\r\n", ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit);
+							}
 
 							// Checking profile kind
 							if((mystrcmp((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingProfileKind, "Absolute") == PASS))
@@ -2816,6 +2827,17 @@ int main(void)
 
 					break;
 				case SYS_MODE_ALARM:
+
+					if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_CHARGING) ||
+					   (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_TERMINATING))
+					{
+
+					}
+					else
+					{
+						setRelay(gun_index, OFF);
+					}
+
 					if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode == 0))
 					{
 						if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PreviousSystemStatus == SYS_MODE_CHARGING) ||
@@ -2861,11 +2883,17 @@ int main(void)
 						DEBUG_INFO("Local update Value: %d...\r\n",value);
 						if(value == PASS)
 						{
+							if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == ON)
+								ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = OFF;
+
 							ShmCharger->isUpdateSuccess = YES;
 							DEBUG_INFO("Local update success...\r\n");
 						}
 						else
 						{
+							if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == OFF)
+								ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = ON;
+
 							ShmCharger->isUpdateSuccess = NO;
 							DEBUG_INFO("Local update unsuccess...\r\n");
 						}
@@ -2892,11 +2920,17 @@ int main(void)
 							DEBUG_INFO("Remote update Result: %d...\r\n",result);
 							if(result == PASS)
 							{
+								if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == ON)
+									ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = OFF;
+
 								ShmCharger->isUpdateSuccess = YES;
 								DEBUG_INFO("Remote update success...\r\n");
 							}
 							else
 							{
+								if(ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail == OFF)
+									ShmStatusCodeData->InfoCode.InfoEvents.bits.CsuFimrwareUpdateFail = ON;
+
 								ShmCharger->isUpdateSuccess = NO;
 								DEBUG_INFO("Remote update unsuccess...\r\n");
 							}

+ 0 - 9
EVSE/Projects/AW-Regular/Apps/main.h

@@ -325,16 +325,7 @@ typedef struct SYSTEM_ALARM_CODE
 
 typedef struct OTHER_ALARM_CODE
 {
-	unsigned long isMcuSelfTest:1;
-	unsigned long isCurrentShort:1;
-	unsigned long isLeakageModule:1;
-	unsigned long isShutterFail:1;
-	unsigned long isLockerFault:1;
-	unsigned long isRotatorySwitch:1;
-	unsigned long isPowerDrop:1;
-	unsigned long isOverCurrent:1;
 	unsigned long isHandshakingTimeOut:1;
-	unsigned long HandShakingAlarmRequest:1;
 	unsigned long isDcLeakage:1;
 	unsigned long isACLeakage:1;
 }Other_Alarm_Code;

BIN
EVSE/Projects/AW-Regular/Images/FactoryDefaultConfig.bin


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


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


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


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


BIN
EVSE/Projects/DS60-120/Images/FactoryDefaultConfig.bin


+ 368 - 339
EVSE/Projects/define.h

@@ -302,6 +302,7 @@ struct BillingConfigData
 	unsigned char		isBilling;					//0:not for business	1:for business
 	unsigned char		Currency;					//
 	float				Fee[24];					//fee for 24 hours
+	float 				Cur_fee;					// display current fee
 };
 
 struct SysConfigData
@@ -330,7 +331,9 @@ struct SysConfigData
 	unsigned char			QRCodeMadeMode;				//for isQRCode=1 ; 0: default	1:customized
 	unsigned char			QRCodeContent[128];			//for QRCodeMadeMode=1
 	unsigned char			TotalConnectorCount;		//Connector count
+	unsigned char 			AcConnectorCount;			// For DC type
 	unsigned char			SwitchDebugFlag;			// Console Debug
+	unsigned char			AlwaysGfdFlag;
 	/**************Charging***************/
 	unsigned short			MaxChargingEnergy;			//0: no limit,	1 ~ 65535	kWh
 	unsigned short			MaxChargingPower;			//0: rating value, 1 ~ RATING_POWER	kW
@@ -397,6 +400,7 @@ struct ChargingInfoData
 	unsigned char			StartDateTime[32];			// Charging cycle start date time
 	unsigned char			StopDateTime[32];			// Charging cycle stop date time
 	unsigned char			StartMethod;
+	float					ChargingFee;
 	// Connector Temp
 	unsigned char 		ConnectorTemp;			//0x00: -60¢XC  ~  0xFE: 194
 	// Charging Status
@@ -413,6 +417,13 @@ struct ChargingInfoData
 	unsigned char		CcsAuthentication;		// 0:EIM, 1:EIM & PnC mixed
 	unsigned char		AcCcsChargingMode;		// 0:BC (PWM) only, 1:BC & PLC mixed
 	unsigned short		SampleChargingCur[2];
+
+	/**************Alston for AC***************/
+	unsigned char 		SelfTest_Comp;
+	unsigned char		version[16];
+	unsigned char 		IsModeChagned;
+	unsigned char 		IsCharging;
+	unsigned char 		IsErrorOccur;
 };
 
 struct SysInfoData
@@ -460,6 +471,7 @@ struct SysInfoData
 	struct ChargingInfoData 	GbChargingData[GB_QUANTITY];
 	struct ChargingInfoData 	AcChargingData[AC_QUANTITY];
 	unsigned char CurGunSelected;
+	unsigned char CurGunSelectedByAc;
 	/**************Network***************/
 	unsigned char 		InternetConn;					//0: disconnected, 1: connected
 	/**************Backend***************/
@@ -740,46 +752,50 @@ 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
-	"012292",	//Reserved
-	"012293",	//Reserved
-	"012294",	//Reserved
-	"012295"	//Reserved
+	"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",	// Self test Failed due to communication of AC failure
+	"012293",	// Reserved
+	"012294",	// Ac input OVP
+	"012295",	// Ac input UVP
+	"012296",	// CHAdeMO groundfault detection - warning
+	"012297",	// CCS groundfault detection - warning
+	"012298",	// GB groundfault detection - warning
+
 };
 struct AlarmCodeData
 {
-	unsigned char PreviousAlarmVal[12];
+	unsigned char PreviousAlarmVal[13];
 	union
 	{
-		unsigned char AlarmVal[12];
+		unsigned char AlarmVal[13];
 		struct
 		{
 			//AlarmVal[0]
@@ -886,7 +902,15 @@ struct AlarmCodeData
 			unsigned char ChademoOutputUVPFail :1;				//bit 1
 			unsigned char GbtOutputUVPFail :1;					//bit 2
 			unsigned char GbtboardStestFail :1;					//bit 3
-			unsigned char :4;									//bit 4 ~ 7	reserved
+			unsigned char AcConnectorStestFail:1;				//bit 4
+			unsigned char :1;									//bit 5
+			unsigned char AcSystemInputOVP:1;									//bit 6
+			unsigned char AcSystemInputUVP:1;									//bit 7
+			//AlarmVal[12]
+			unsigned char ChademoGroundWarning :1;					//bit 0
+			unsigned char CcsGroundfaultWarning :1;					//bit 1
+			unsigned char GbGroundfaultWarning :1;					//bit 2
+			unsigned char :5;					//bit 3 ~ 7
 		}bits;
 	}AlarmEvents;
 };
@@ -964,163 +988,163 @@ char InfoStatusCode[384][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
-	"023889",	//CCS:CCS_SECC_CP_STATUS_Error
-	"023890",	//Reserved
-	"023891",	//Reserved
-	"023892",	//Reserved
-	"023893",	//Reserved
+	"023737",	//CHAdeMO:	pilot fault
+	"023738",	//Reserved
+	"023739",	//Reserved
+	"023740",	//CCS:CCS_EVCC_EVErrorCode_FAILED_RESSTemperatureInhibit
+	"023741",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EVShiftPosition
+	"023742",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargerConnectorLockFault
+	"023743",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EVRESSMalfunction
+	"023744",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingCurrentdifferential
+	"023745",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingVoltageOutOfRange
+	"023746",	//CCS:CCS_EVCC_EVErrorCode_FAILED_ChargingSystemIncompatibility
+	"023747",	//CCS:CCS_EVCC_EVErrorCode_FAILED_EmergencyEvent
+	"023748",	//CCS:CCS_EVCC_EVErrorCode_FAILED_Breaker
+	"023749",	//CCS:CCS_EVCC_EVErrorCode_FAILED_NoData
+	"023750",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_A
+	"023751",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_B
+	"023752",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_DIN_C
+	"023753",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_1
+	"023754",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_2
+	"023755",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_ISO_3
+	"023756",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_1
+	"023757",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_2
+	"023758",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_3
+	"023759",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_4
+	"023760",	//CCS:CCS_EVCC_EVErrorCode_FAILED_reserved_by_OEM_5
+	"023761",	//CCS:CCS_SECC_ResponseCode_FAILED_SequenceError
+	"023762",	//CCS:CCS_SECC_ResponseCode_FAILED_SignatureError
+	"023763",	//CCS:CCS_SECC_ResponseCode_FAILED_UnknownSession
+	"023764",	//CCS:CCS_SECC_ResponseCode_FAILED_ServiceIDInvalid
+	"023765",	//CCS:CCS_SECC_ResponseCode_FAILED_Payment SelectionInvalid
+	"023766",	//CCS:CCS_SECC_ResponseCode_FAILED_IdentificationSelectionInvalid
+	"023767",	//CCS:CCS_SECC_ResponseCode_FAILED_ServiceSelectionInvalid
+	"023768",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateExpired
+	"023769",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateNotYetValid
+	"023770",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateRevoked
+	"023771",	//CCS:CCS_SECC_ResponseCode_FAILED_NoCertificateAvailable
+	"023772",	//CCS:CCS_SECC_ResponseCode_FAILED_CertChainError
+	"023773",	//CCS:CCS_SECC_ResponseCode_FAILED_CertValidationError
+	"023774",	//CCS:CCS_SECC_ResponseCode_FAILED_CertVerificationError
+	"023775",	//CCS:CCS_SECC_ResponseCode_FAILED_ContractCanceled
+	"023776",	//CCS:CCS_SECC_ResponseCode_FAILED_ChallengeInvalid
+	"023777",	//CCS:CCS_SECC_ResponseCode_FAILED_WrongEnergyTransferMode
+	"023778",	//CCS:CCS_SECC_ResponseCode_FAILED_WrongChargeParameter
+	"023779",	//CCS:CCS_SECC_ResponseCode_FAILED_ChargingProfileInvalid
+	"023780",	//CCS:CCS_SECC_ResponseCode_FAILED_TariffSelectionInvalid
+	"023781",	//CCS:CCS_SECC_ResponseCode_FAILED_EVSEPresentVoltageToLow
+	"023782",	//CCS:CCS_SECC_ResponseCode_FAILED_PowerDeliveryNotApplied
+	"023783",	//CCS:CCS_SECC_ResponseCode_FAILED_MeteringSignatureNotValid
+	"023784",	//CCS:CCS_SECC_ResponseCode_FAILED_NoChargeServiceSelected
+	"023785",	//CCS:CCS_SECC_ResponseCode_FAILED_ContactorError
+	"023786",	//CCS:CCS_SECC_ResponseCode_FAILED_CertificateNotAllowedAtThisEVSE
+	"023787",	//CCS:CCS_SECC_ResponseCode_FAILED_GAChargeStop
+	"023788",	//CCS:CCS_SECC_ResponseCode_FAILED_AlignmentError
+	"023789",	//CCS:CCS_SECC_ResponseCode_FAILED_ACDError
+	"023790",	//CCS:CCS_SECC_ResponseCode_FAILED_AssociationError
+	"023791",	//CCS:CCS_SECC_ResponseCode_FAILED_EVSEChargeAbort
+	"023792",	//CCS:CCS_SECC_ResponseCode_FAILED_NoSupportedApp-Protocol-Protocol
+	"023793",	//CCS:CCS_SECC_ResponseCode_FAILED_ContractNotAccepted
+	"023794",	//CCS:CCS_SECC_ResponseCode_FAILED_MOUnknown
+	"023795",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_Prov_CertificateRevoke
+	"023796",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_SubCA1_CertificateRevoked
+	"023797",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_SubCA2_CertificateRevoked
+	"023798",	//CCS:CCS_SECC_ResponseCode_FAILED_OEM_RootCA_CertificateRevoked
+	"023799",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_Prov_CertificateRevoked
+	"023800",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_SubCA1_CertificateRevoked
+	"023801",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_SubCA2_CertificateRevoked
+	"023802",	//CCS:CCS_SECC_ResponseCode_FAILED_MO_RootCA_CertificateRevoked
+	"023803",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_Prov_CertificateRevoked
+	"023804",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_SubCA1_CertificateRevoked
+	"023805",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_SubCA2_CertificateRevoked
+	"023806",	//CCS:CCS_SECC_ResponseCode_FAILED_CPS_RootCA_CertificateRevoked
+	"023807",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_1
+	"023808",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_2
+	"023809",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_3
+	"023810",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_4
+	"023811",	//CCS:CCS_SECC_ResponseCode_FAILED_reserved_5
+	"023812",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_SLAC_init
+	"023813",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_match_response
+	"023814",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_match_sequence
+	"023815",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_match_MNBC
+	"023816",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_EVSE_avg_atten_calc
+	"023817",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_match_response
+	"023818",	//CCS:CCS_SECC_TIMEOUT_SLAC_TP_EVSE_match_session
+	"023819",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_assoc_session
+	"023820",	//CCS:CCS_SECC_TIMEOUT_SLAC_TT_EVSE_vald_toggle
+	"023821",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_1
+	"023822",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_2
+	"023823",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_3
+	"023824",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_4
+	"023825",	//CCS:CCS_SECC_TIMEOUT_SLAC_reserved_5
+	"023826",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_UDP_TT_match_join
+	"023827",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TCP_TT_match_join
+	"023828",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TP_amp_map_exchange
+	"023829",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_TP_link_ready_notification
+	"023830",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_1
+	"023831",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_2
+	"023832",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_3
+	"023833",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_4
+	"023834",	//CCS:CCS_SECC_TIMEOUT_SLACC_SDP_reserved_5
+	"023835",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SupportedAppProtocolRes
+	"023836",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SessionSetupRes
+	"023837",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ServiceDiscoveryRes
+	"023838",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ServicePaymentSelectionRes
+	"023839",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ContractAuthenticationRes
+	"023840",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_ChargeParameterDiscoveryRes
+	"023841",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_PowerDeliveryRes
+	"023842",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_CableCheckRes
+	"023843",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_PreChargeRes
+	"023844",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_CurrentDemandRes
+	"023845",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_WeldingDetectionRes
+	"023846",	//CCS:CCS_SECC_TIMEOUT_V2G_Msg_Performance_Time_SessionStopRes
+	"023847",	//CCS:CCS_SECC_TIMEOUT_V2G_Sequence_Time
+	"023848",	//CCS:CCS_SECC_TIMEOUT_V2G_ReadyToCharge_Performance_Time
+	"023849",	//CCS:CCS_SECC_TIMEOUT_V2G_CommunicationSetup_Performance_Time
+	"023850",	//CCS:CCS_SECC_TIMEOUT_V2G_CableCheck_Performance_Time
+	"023851",	//CCS:CCS_SECC_TIMEOUT_V2G_CPState_Detection_Time
+	"023852",	//CCS:CCS_SECC_TIMEOUT_V2G_CPOscillator_Retain_Time
+	"023853",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_1
+	"023854",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_2
+	"023855",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_3
+	"023856",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_4
+	"023857",	//CCS:CCS_SECC_TIMEOUT_V2G_reserved_5
+	"023858",	//CCS:CCS_CAN_TIMEOUT_TP_GET_EV_TARGET_INFO
+	"023859",	//CCS:CCS_CAN_TIMEOUT_TT_GET_EV_TARGET_INFO
+	"023860",	//CCS:CCS_CAN_TIMEOUT_TP_GET_EV_BATTERY_INFO
+	"023861",	//CCS:CCS_CAN_TIMEOUT_TT_GET_EV_BATTERY_INFO
+	"023862",	//CCS:CCS_CAN_TIMEOUT_TP_EV_STOP_EVENT
+	"023863",	//CCS:CCS_CAN_TIMEOUT_TT_EV_STOP_EVENT
+	"023864",	//CCS:CCS_CAN_TIMEOUT_TP_EVSE_STOP_EVENT
+	"023865",	//CCS:CCS_CAN_TIMEOUT_TT_EVSE_STOP_EVENT
+	"023866",	//CCS:CCS_CAN_TIMEOUT_TP_GET_MISC_INFO
+	"023867",	//CCS:CCS_CAN_TIMEOUT_TT_GET_MISC_INFO
+	"023868",	//CCS:CCS_CAN_TIMEOUT_TP_DOWNLOAD_REQUEST
+	"023869",	//CCS:CCS_CAN_TIMEOUT_TT_DOWNLOAD_REQUEST
+	"023870",	//CCS:CCS_CAN_TIMEOUT_TP_START_BLOCK_TRANSFER
+	"023871",	//CCS:CCS_CAN_TIMEOUT_TT_START_BLOCK_TRANSFER
+	"023872",	//CCS:CCS_CAN_TIMEOUT_TP_DATA_TRANSFER
+	"023873",	//CCS:CCS_CAN_TIMEOUT_TT_DATA_TRANSFER
+	"023874",	//CCS:CCS_CAN_TIMEOUT_TP_DOWNLOAD_FINISH
+	"023875",	//CCS:CCS_CAN_TIMEOUT_TT_DOWNLOAD_FINISH
+	"023876",	//CCS:CCS_CAN_TIMEOUT_TP_ISOLATION_STATUS
+	"023877",	//CCS:CCS_CAN_TIMEOUT_TT_ISOLATION_STATUS
+	"023878",	//CCS:CCS_CAN_TIMEOUT_TP_CONNECTOR_INFO
+	"023879",	//CCS:CCS_CAN_TIMEOUT_TT_CONNECTOR_INFO
+	"023880",	//CCS:CCS_CAN_TIMEOUT_TT_RTC_INFO
+	"023881",	//CCS:CCS_CAN_TIMEOUT_TP_RTC_INFO
+	"023882",	//CCS:CCS_CAN_TIMEOUT_TP_EVSE_PRECHARGE_INFO
+	"023883",	//CCS:CCS_CAN_TIMEOUT_TT_EVSE_PRECHARGE_INFO
+	"023884",	//CCS:CCS_CAN_TIMEOUT_MSG_Sequence
+	"023885",	//CCS:CCS_CAN_MSG_Unrecognized_CMD_ID
+	"023886",	//CCS:CCS_SECC_DIN_Msg_Decode_Error
+	"023887",	//CCS:CCS_SECC_DIN_Msg_Encode_Error
+	"023888",	//CCS:CCS_SECC_ISO1_Msg_Decode_Error
+	"023889",	//CCS:CCS_SECC_ISO1_Msg_Encode_Error
+	"023890",	//CCS:CCS_SECC_ISO2_Msg_Decode_Error
+	"023891",	//CCS:CCS_SECC_ISO2_Msg_Encode_Error
+	"023892",	//CCS:CCS_SECC_CP_STATUS_Error
+	"023893",	//CCS_SECC_Unexpected_60V_Before_Charing_Error
 	"023894",	//Reserved
 	"023895",	//Reserved
 	"023896",	//Reserved
@@ -1295,172 +1319,171 @@ struct InfoCodeData
 			//InfoVal[8]
 			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 CcsRESTemperatureInhibit:1;				//bit 5
-			unsigned char CcsEVShiftPosition:1;						//bit 6
-			unsigned char CcsChargerConnectorLockFault:1;			//bit 7
+			unsigned char ChademoReqCurrentMoreThanLimit :1;				//bit 2
+			unsigned char ChademoReCapBmsEqrCurrentExceed :1;				//bit 3
+			unsigned char ChademoChargeRemainCountDown :1;		//bit 4
+			unsigned char ChademoPilotFault:1;				//bit 5
+			unsigned char :1;				//bit 6
+			unsigned char :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
+			unsigned char CcsRESTemperatureInhibit:1;					//bit 0
+			unsigned char CcsEVShiftPosition:1;		//bit 1
+			unsigned char CcsChargerConnectorLockFault:1;		//bit 2
+			unsigned char CcsEVRESSMalfunction:1;		//bit 3
+			unsigned char CcsChargingCurrentdifferential:1;				//bit 4
+			unsigned char CcsChargingVoltageOutOfRange:1;					//bit 5
+			unsigned char CcsChargingSystemIncompatibility:1;							//bit 6
+			unsigned char CcsEmergencyEvent: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
+			unsigned char CcsBreaker:1;				//bit 0
+			unsigned char CcsNoData:1;					//bit 1
+			unsigned char Ccsreserved_by_DIN_A:1;				//bit 2
+			unsigned char Ccsreserved_by_DIN_B:1;					//bit 3
+			unsigned char Ccsreserved_by_DIN_C:1;					//bit 4
+			unsigned char Ccsreserved_by_ISO_1:1;				//bit 5
+			unsigned char Ccsreserved_by_ISO_2:1;			//bit 6
+			unsigned char Ccsreserved_by_ISO_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
+			unsigned char Ccsreserved_by_OEM_1:1;			//bit 0
+			unsigned char Ccsreserved_by_OEM_2:1;			//bit 1
+			unsigned char Ccsreserved_by_OEM_3:1;			//bit 2
+			unsigned char Ccsreserved_by_OEM_4:1;		//bit 3
+			unsigned char Ccsreserved_by_OEM_5:1;					//bit 4
+			unsigned char CcsSequenceError:1;					//bit 5
+			unsigned char CcsSignatureError:1;					//bit 6
+			unsigned char CcsUnknownSession: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 CcsServiceIDInvalid:1;			//bit 0
+			unsigned char CcsPaymentSelectionInvalid:1;			//bit 1
+			unsigned char CcsIdentificationSelectionInvalid:1;			//bit 2
+			unsigned char CcsServiceSelectionInvalid:1;			//bit 3
+			unsigned char CcsCertificateExpired:1;			//bit 4
+			unsigned char CcsCertificateNotYetValid:1;			//bit 5
+			unsigned char CcsCertificateRevoked:1;			//bit 6
+			unsigned char CcsNoCertificateAvailable: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
+			unsigned char CcsCertChainError:1;				//bit 0
+			unsigned char CcsCertValidationError:1;				//bit 1
+			unsigned char CcsCertVerificationError:1;				//bit 2
+			unsigned char CcsContractCanceled:1;				//bit 3
+			unsigned char CcsChallengeInvalid:1;				//bit 4
+			unsigned char CcsWrongEnergyTransferMode:1;				//bit 5
+			unsigned char CcsWrongChargeParameter:1;				//bit 6
+			unsigned char CcsChargingProfileInvalid: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 CcsTariffSelectionInvalid:1;			//bit 0
+			unsigned char CcsEVSEPresentVoltageToLow:1;			//bit 1
+			unsigned char CcsPowerDeliveryNotApplied:1;					//bit 2
+			unsigned char CcsMeteringSignatureNotValid:1;			//bit 3
+			unsigned char CcsNoChargeServiceSelected:1;				//bit 4
+			unsigned char CcsContactorError:1;					//bit 5
+			unsigned char CcsCertificateNotAllowedAtThisEVSE:1;					//bit 6
+			unsigned char CcsGAChargeStop: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
+			unsigned char CcsAlignmentError:1;				//bit 0
+			unsigned char CcsACDError:1;					//bit 1
+			unsigned char CcsAssociationError:1;				//bit 2
+			unsigned char CcsEVSEChargeAbort:1;					//bit 3
+			unsigned char CcsNoSupportedAppProtocol:1;				//bit 4
+			unsigned char CcsContractNotAccepted:1;		//bit 5
+			unsigned char CcsMOUnknown:1;		//bit 6
+			unsigned char CcsOEM_Prov_CertificateRevoke: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
+			unsigned char CcsOEM_SubCA1_CertificateRevoked:1;			//bit 0
+			unsigned char CcsOEM_SubCA2_CertificateRevoked:1;		//bit 1
+			unsigned char CcsOEM_RootCA_CertificateRevoked:1;		//bit 2
+			unsigned char CcsMO_Prov_CertificateRevoked:1;		//bit 3
+			unsigned char CcsMO_SubCA1_CertificateRevoked:1;		//bit 4
+			unsigned char CcsMO_SubCA2_CertificateRevoked:1;		//bit 5
+			unsigned char CcsMO_RootCA_CertificateRevoked:1;		//bit 6
+			unsigned char CcsCPS_Prov_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 CcsCPS_SubCA1_CertificateRevoked:1;	//bit 0
+			unsigned char CcsCPS_SubCA2_CertificateRevoked:1;	//bit 1
+			unsigned char CcsCPS_RootCA_CertificateRevoked:1;	//bit 2
+			unsigned char :5;								//bit 3 ~ 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
+			unsigned char CcsTT_EVSE_SLAC_init:1;				//bit 0
+			unsigned char CcsTP_match_response:1;				//bit 1
+			unsigned char CcsTT_match_sequence:1;			//bit 2
+			unsigned char CcsTT_EVSE_match_MNBC:1;			//bit 3
+			unsigned char CcsTP_EVSE_avg_atten_calc:1;			//bit 4
+			unsigned char CcsTT_match_response:1;			//bit 5
+			unsigned char CcsTP_EVSE_match_session:1;								//bit 6
+			unsigned char CcsTT_EVSE_assoc_session:1;								//bit 7
 			//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 reserved
+			unsigned char CcsTT_EVSE_vald_toggle:1;					//bit 0
+			unsigned char :5;								//bit 1 ~ 5
+			unsigned char CcsUDP_TT_match_join:1;			//bit 6
+			unsigned char CcsTCP_TT_match_join: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
+			unsigned char CcsTP_amp_map_exchange:1;						//bit 0
+			unsigned char CcsTP_link_ready_notification:1;			//bit 1
+			unsigned char :5;								//bit 2 ~ 6
+			unsigned char CcsSupportedAppProtocolRes: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
+			unsigned char CcsSessionSetupRes:1;			//bit 0
+			unsigned char CcsServiceDiscoveryRes:1;			//bit 1
+			unsigned char CcsServicePaymentSelectionRes:1;			//bit 2
+			unsigned char CcsContractAuthenticationRes:1;			//bit 3
+			unsigned char CcsChargeParameterDiscoveryRes:1;					//bit 4
+			unsigned char CcsPowerDeliveryRes:1;					//bit 5
+			unsigned char CcsCableCheckRes:1;				//bit 6
+			unsigned char CcsPreChargeRes: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 CcsPreCharge_Performace_Time:1;			//bit 6
-			unsigned char :1;										//bit 7 reserved
+			unsigned char CcsCurrentDemandRes:1;						//bit 0
+			unsigned char CcsWeldingDetectionRes:1;				//bit 1
+			unsigned char CcsSessionStopRes:1;					//bit 2
+			unsigned char CcsSequence_Time:1;				//bit 3
+			unsigned char CcsReadyToCharge_Performance_Time:1;			//bit 4
+			unsigned char CcsCommunicationSetup_Performance_Time:1;					//bit 5
+			unsigned char CcsCableCheck_Performance_Time:1;			//bit 6
+			unsigned char CcsCPState_Detection_Time:1;			//bit 7
 			//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 CcsCPOscillator_Retain_Time:1;					//bit 0
+			unsigned char :5;					//bit 1 ~ 5 reserved
+			unsigned char CcsTP_GET_EV_TARGET_INFO:1;		//bit 6
+			unsigned char CcsTT_GET_EV_TARGET_INFO: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 CcsTP_GET_EV_BATTERY_INFO:1;			//bit 0
+			unsigned char CcsTT_GET_EV_BATTERY_INFO:1;			//bit 1
+			unsigned char CcsTP_EV_STOP_EVENT:1;			//bit 2
+			unsigned char CcsTT_EV_STOP_EVENT:1;			//bit 3
+			unsigned char CcsTP_EVSE_STOP_EVENT:1;			//bit 4
+			unsigned char CcsTT_EVSE_STOP_EVENT:1;			//bit 5
+			unsigned char CcsTP_GET_MISC_INFO:1;			//bit 6
+			unsigned char CcsTT_GET_MISC_INFO: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 CcsTP_DOWNLOAD_REQUEST:1;		//bit 0
+			unsigned char CcsTT_DOWNLOAD_REQUEST:1;			//bit 1
+			unsigned char CcsTP_START_BLOCK_TRANSFER:1;			//bit 2
+			unsigned char CcsTT_START_BLOCK_TRANSFER:1;			//bit 3
+			unsigned char CcsTP_DATA_TRANSFER:1;			//bit 4
+			unsigned char CcsTT_DATA_TRANSFER:1;			//bit 5
+			unsigned char CcsTP_DOWNLOAD_FINISH:1;			//bit 6
+			unsigned char CcsTT_DOWNLOAD_FINISH: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
+			unsigned char CcsTP_ISOLATION_STATUS:1;			//bit 0
+			unsigned char CcsTT_ISOLATION_STATUS:1;				//bit 1
+			unsigned char CcsTP_CONNECTOR_INFO:1;			//bit 2
+			unsigned char CcsTT_CONNECTOR_INFO:1;		//bit 3
+			unsigned char CcsTT_RTC_INFO:1;			//bit 4
+			unsigned char CcsTP_RTC_INFO:1;			//bit 5
+			unsigned char CcsTP_EVSE_PRECHARGE_INFO:1;			//bit 6
+			unsigned char CcsTT_EVSE_PRECHARGE_INFO: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 CcsMSG_Sequence:1;			//bit 0
+			unsigned char CcsCAN_MSG_Unrecognized_CMD_ID:1;			//bit 1
+			unsigned char CcsDIN_Msg_Decode_Error:1;			//bit 2
+			unsigned char CcsDIN_Msg_Encode_Error:1;			//bit 3
+			unsigned char CcsISO1_Msg_Decode_Error:1;			//bit 4
+			unsigned char CcsISO1_Msg_Encode_Error:1;									//bit 5
+			unsigned char CcsISO2_Msg_Decode_Error:1;									//bit 6
+			unsigned char CcsISO2_Msg_Encode_Error:1;									//bit 7
 			//InfoVal[28]
-			unsigned char :8;										//bit 0~8 reserved
+			unsigned char CcsCpStatus_Error:1;					//bit 1
+			unsigned char CcsUnexpectVolBeforeChargingError:1;	//bit 2
+			unsigned char :6;									//bit 3~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
@@ -1558,6 +1581,11 @@ struct StatusCodeData
 /**************************************************************************************/
 /**************************PSU Share memory***************************************/
 /**************************************************************************************/
+struct PsuModuleVer
+{
+	unsigned char 		FwPrimaryVersion[16];
+	unsigned char 		FwSecondVersion[16];
+};
 
 /*Following are the information for each PSU module*/
 struct PsuModuleData
@@ -1622,6 +1650,7 @@ struct PsuData
 	struct PsuGroupData 	PsuGroup[4];
 	unsigned char 			GroupCount;
 	unsigned char 			Work_Step;
+	struct PsuModuleVer		PsuVersion[MAX_PSU_QUANTITY];
 };
 
 /************************************************************************************/