Kaynağa Gözat

2020-06-08 /Edward Lien

Actions:
1.update OVP UVP OCP related variabes & define to 3 phase.

Files:
1. As follow commit history

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

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
Edward Lien 4 yıl önce
ebeveyn
işleme
2d578ae0c6

+ 71 - 62
EVSE/Projects/AW-CCS/Apps/Module_AlarmDetect.c

@@ -264,15 +264,15 @@ 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_L1_OVER_VOLTAGE)
 			{
 				if(Alarm_Counter[gun_index].OV[0] > FILTER_SPEC)
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = ON;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
-						DEBUG_INFO("ALARM_OVER_VOLTAGE : alarm \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L1_OVER_VOLTAGE;
+						DEBUG_INFO("ALARM_L1_OVER_VOLTAGE : alarm \r\n");
 					}
 				}
 				else
@@ -280,28 +280,28 @@ int main(void)
 					Alarm_Counter[gun_index].OV[0]++;
 				}
 			}
-			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
+			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L1_OVER_VOLTAGE)))
 			{
 				Alarm_Counter[gun_index].OV[0] = 0;
 				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP = OFF;
-					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
-					DEBUG_INFO("ALARM_OVER_VOLTAGE : recover \r\n");
+					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L1_OVER_VOLTAGE;
+					DEBUG_INFO("ALARM_L1_OVER_VOLTAGE : recover \r\n");
 				}
 			}
 
 			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_L2_OVER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].OV[1] > FILTER_SPEC)
 					{
 						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = ON;
-							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
-							DEBUG_INFO("ALARM_OVER_VOLTAGE : alarm \r\n");
+							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L2_OVER_VOLTAGE;
+							DEBUG_INFO("ALARM_L2_OVER_VOLTAGE : alarm \r\n");
 						}
 					}
 					else
@@ -309,26 +309,26 @@ int main(void)
 						Alarm_Counter[gun_index].OV[1]++;
 					}
 				}
-				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
+				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L2_OVER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].OV[1] = 0;
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
-						DEBUG_INFO("ALARM_OVER_VOLTAGE : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L2_OVER_VOLTAGE;
+						DEBUG_INFO("ALARM_L2_OVER_VOLTAGE : recover \r\n");
 					}
 				}
 
-				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_OVER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].OV[2] > FILTER_SPEC)
 					{
 						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = ON;
-							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_VOLTAGE;
-							DEBUG_INFO("ALARM_OVER_VOLTAGE : alarm \r\n");
+							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L3_OVER_VOLTAGE;
+							DEBUG_INFO("ALARM_L3_OVER_VOLTAGE : alarm \r\n");
 						}
 					}
 					else
@@ -336,14 +336,14 @@ int main(void)
 						Alarm_Counter[gun_index].OV[2]++;
 					}
 				}
-				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_VOLTAGE)))
+				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_OVER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].OV[2] = 0;
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputOVP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_VOLTAGE;
-						DEBUG_INFO("ALARM_OVER_VOLTAGE : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L3_OVER_VOLTAGE;
+						DEBUG_INFO("ALARM_L3_OVER_VOLTAGE : recover \r\n");
 					}
 				}
 			}
@@ -351,15 +351,15 @@ 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_L1_UNDER_VOLTAGE)
 			{
 				if(Alarm_Counter[gun_index].UV[0] > FILTER_SPEC)
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = ON;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
-						DEBUG_INFO("ALARM_UNDER_VOLTAGE : alarm \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L1_UNDER_VOLTAGE;
+						DEBUG_INFO("ALARM_L1_UNDER_VOLTAGE : alarm \r\n");
 					}
 				}
 				else
@@ -367,28 +367,28 @@ int main(void)
 					Alarm_Counter[gun_index].UV[0]++;
 				}
 			}
-			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
+			else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L1_UNDER_VOLTAGE)))
 			{
 				Alarm_Counter[gun_index].UV[0] = 0;
 				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputUVP = OFF;
-					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
-					DEBUG_INFO("ALARM_UNDER_VOLTAGE : recover \r\n");
+					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L1_UNDER_VOLTAGE;
+					DEBUG_INFO("ALARM_L1_UNDER_VOLTAGE : recover \r\n");
 				}
 			}
 
 			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_L2_UNDER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].UV[1] > FILTER_SPEC)
 					{
 						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = ON;
-							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
-							DEBUG_INFO("ALARM_UNDER_VOLTAGE : alarm \r\n");
+							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L2_UNDER_VOLTAGE;
+							DEBUG_INFO("ALARM_L2_UNDER_VOLTAGE : alarm \r\n");
 						}
 					}
 					else
@@ -396,26 +396,26 @@ int main(void)
 						Alarm_Counter[gun_index].UV[1]++;
 					}
 				}
-				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
+				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L2_UNDER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].UV[1] = 0;
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputUVP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
-						DEBUG_INFO("ALARM_UNDER_VOLTAGE : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L2_UNDER_VOLTAGE;
+						DEBUG_INFO("ALARM_L2_UNDER_VOLTAGE : recover \r\n");
 					}
 				}
 
-				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_UNDER_VOLTAGE)
 				{
 					if(Alarm_Counter[gun_index].UV[2] > FILTER_SPEC)
 					{
 						if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == OFF)
 						{
 							ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = ON;
-							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_UNDER_VOLTAGE;
-							DEBUG_INFO("ALARM_UNDER_VOLTAGE : alarm \r\n");
+							ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L3_UNDER_VOLTAGE;
+							DEBUG_INFO("ALARM_L3_UNDER_VOLTAGE : alarm \r\n");
 						}
 					}
 					else
@@ -423,77 +423,78 @@ int main(void)
 						Alarm_Counter[gun_index].UV[2]++;
 					}
 				}
-				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_UNDER_VOLTAGE)))
+				else if((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_UNDER_VOLTAGE)))
 				{
 					Alarm_Counter[gun_index].UV[2] = 0;
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL3InputUVP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_UNDER_VOLTAGE;
-						DEBUG_INFO("ALARM_UNDER_VOLTAGE : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L3_UNDER_VOLTAGE;
+						DEBUG_INFO("ALARM_L3_UNDER_VOLTAGE : recover \r\n");
 					}
 				}
+							
 			}
 
 			//=====================================
 			// Over current detection
 			//=====================================
-			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L1_OVER_CURRENT)
 			{
 				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
-					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
-					DEBUG_INFO("ALARM_OVER_CURRENT : alarm \r\n");
+					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L1_OVER_CURRENT;
+					DEBUG_INFO("ALARM_L1_OVER_CURRENT : alarm \r\n");
 				}
 			}
-			else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
+			else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L1_OVER_CURRENT)))
 			{
 				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
-					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
-					DEBUG_INFO("ALARM_OVER_CURRENT : recover \r\n");
+					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L1_OVER_CURRENT;
+					DEBUG_INFO("ALARM_L1_OVER_CURRENT : recover \r\n");
 				}
 			}
 
 			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_L2_OVER_CURRENT)
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
-						DEBUG_INFO("ALARM_OVER_CURRENT : alarm \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L2_OVER_CURRENT;
+						DEBUG_INFO("ALARM_L2_OVER_CURRENT : alarm \r\n");
 					}
 				}
-				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
+				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L2_OVER_CURRENT)))
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
-						DEBUG_INFO("ALARM_OVER_CURRENT : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L2_OVER_CURRENT;
+						DEBUG_INFO("ALARM_L2_OVER_CURRENT : recover \r\n");
 					}
 				}
 
-				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)
+				if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_OVER_CURRENT)
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = ON;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_OVER_CURRENT;
-						DEBUG_INFO("ALARM_OVER_CURRENT : alarm \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_L3_OVER_CURRENT;
+						DEBUG_INFO("ALARM_L3_OVER_CURRENT : alarm \r\n");
 					}
 				}
-				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_OVER_CURRENT)))
+				else if ((!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_L3_OVER_CURRENT)))
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP == ON)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemAcOutputOCP = OFF;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_OVER_CURRENT;
-						DEBUG_INFO("ALARM_OVER_CURRENT : recover \r\n");
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_L3_OVER_CURRENT;
+						DEBUG_INFO("ALARM_L3_OVER_CURRENT : recover \r\n");
 					}
 				}
 			}
@@ -786,14 +787,14 @@ int main(void)
 			//=====================================
 			// Current short detection
 			//=====================================
-			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CURRENT_SHORT)
+			if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CIRCUIT_SHORT)
 			{
 				if(Alarm_Counter[gun_index].Short > FILTER_SPEC)
 				{
 					if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort == OFF)
 					{
 						ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort = ON;
-						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_CURRENT_SHORT;
+						ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode |= ALARM_CIRCUIT_SHORT;
 						DEBUG_INFO("ALARM_CIRCUIT_SHORT : alarm \r\n");
 					}
 				}
@@ -802,13 +803,13 @@ int main(void)
 					Alarm_Counter[gun_index].Short++;
 				}
 			}
-			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CURRENT_SHORT))
+			else if(!(ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode & ALARM_CIRCUIT_SHORT))
 			{
 				Alarm_Counter[gun_index].Short = 0;
 				if(ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort == ON)
 				{
 					ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CircuitShort = OFF;
-					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_CURRENT_SHORT;
+					ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode &= ~ALARM_CIRCUIT_SHORT;
 					DEBUG_INFO("ALARM_CIRCUIT_SHORT : recover \r\n");
 				}
 			}
@@ -926,15 +927,21 @@ int main(void)
 			//=====================================
 			// OCPP error code message
 			//=====================================
-			if(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_OVER_VOLTAGE)
+			if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L1_OVER_VOLTAGE) ||
+				(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L2_OVER_VOLTAGE) ||
+				(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L3_OVER_VOLTAGE))
 			{
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "OverVoltage");
 			}
-			else if(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_UNDER_VOLTAGE)
+			else if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L1_UNDER_VOLTAGE) ||
+					(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L2_UNDER_VOLTAGE) ||
+					(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L3_UNDER_VOLTAGE))
 			{
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "UnderVoltage");
 			}
-			else if(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_OVER_CURRENT)
+			else if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L1_OVER_CURRENT) ||
+					(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L2_OVER_CURRENT) ||
+					(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_L3_OVER_CURRENT))
 			{
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "OverCurrentFailure");
 			}
@@ -1000,7 +1007,7 @@ int main(void)
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "OtherError");
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].VendorErrorCode , "PowerDrop");
 			}
-			else if(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_CURRENT_SHORT)
+			else if(ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode & ALARM_CIRCUIT_SHORT)
 			{
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].ErrorCode , "OtherError");
 				sprintf((char*)ShmOCPP16Data->StatusNotification[gun_index].VendorErrorCode , "CircuitShort");
@@ -1050,6 +1057,8 @@ int main(void)
 				  TODO: Recover latch alarm here
 				*/
 			}
+			
+			ShmCharger->gun_info[gun_index].acCcsInfo.CSUAlarmStatusCode = ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode;
 		}
 
 		usleep(100000);

+ 104 - 13
EVSE/Projects/AW-CCS/Apps/Module_InternalComm.c

@@ -799,9 +799,9 @@ unsigned char Query_AC_MCU_Alarm(unsigned char fd, unsigned char targetAddr, Ac_
 			(rx[3] == tx[3]))
 		{
 			//rx[6]
-			Ret_Buf->bits.OVP = (((rx[6]>>0)&0x01)?1:0);
-			Ret_Buf->bits.UVP = (((rx[6]>>1)&0x01)?1:0);
-			Ret_Buf->bits.OCP = (((rx[6]>>2)&0x01)?1:0);
+			Ret_Buf->bits.OVP_L1 = (((rx[6]>>0)&0x01)?1:0);
+			Ret_Buf->bits.UVP_L1 = (((rx[6]>>1)&0x01)?1:0);
+			Ret_Buf->bits.OCP_L1 = (((rx[6]>>2)&0x01)?1:0);
 			Ret_Buf->bits.OTP = (((rx[6]>>3)&0x01)?1:0);
 			Ret_Buf->bits.gmi_fault = (((rx[6]>>4)&0x01)?1:0);
 			Ret_Buf->bits.cp_fault = (((rx[6]>>5)&0x01)?1:0);
@@ -818,12 +818,19 @@ unsigned char Query_AC_MCU_Alarm(unsigned char fd, unsigned char targetAddr, Ac_
 			Ret_Buf->bits.locker_fault = (((rx[7]>>6)&0x01)?1:0);
 			Ret_Buf->bits.power_drop = (((rx[7]>>7)&0x01)?1:0);
 
-			//rx[8] 3~7bits reserved
+			//rx[8] 3 bits reserved
 			Ret_Buf->bits.circuit_short = (((rx[8]>>0)&0x01)?1:0);
 			Ret_Buf->bits.set_circuit = (((rx[8]>>1)&0x01)?1:0);
 			Ret_Buf->bits.relay_drive_fault = (((rx[8]>>2)&0x01)?1:0);
+			Ret_Buf->bits.OVP_L2 = (((rx[8]>>4)&0x01)?1:0);
+			Ret_Buf->bits.OVP_L3 = (((rx[8]>>5)&0x01)?1:0);
+			Ret_Buf->bits.UVP_L2 = (((rx[8]>>6)&0x01)?1:0);
+			Ret_Buf->bits.UVP_L3 = (((rx[8]>>7)&0x01)?1:0);			
+			
 
-			//rx[9] 0~7bits reserved
+			//rx[9] 2~7bits reserved
+			Ret_Buf->bits.OCP_L2 = (((rx[9]>>0)&0x01)?1:0);
+			Ret_Buf->bits.OCP_L3 = (((rx[9]>>1)&0x01)?1:0);			
 
 			result = PASS;
 		}
@@ -1830,7 +1837,54 @@ int main(void)
 					ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotVoltage = ShmCharger->gun_info[gun_index].primaryMcuState.cp_voltage_positive;
 					ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltagePositive = ShmCharger->gun_info[gun_index].primaryMcuState.cp_voltage_positive;
 					ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltageNegative = ShmCharger->gun_info[gun_index].primaryMcuState.cp_voltage_negtive;
-
+					
+					//pass info 2 CCS task
+					if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_UNKNOWN)
+					{
+							if(ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltageNegative >= -12)
+							{
+									ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_G;
+							}
+							else
+							{
+									ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_H;
+							}
+					}
+					else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A)
+					{
+							ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_A;
+					}
+					else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_B)
+					{
+							if(ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltageNegative == 0.0)
+							{
+									ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_B1;
+							}
+							else
+							{
+									ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_B2;
+							}
+					}
+					else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_C)
+					{
+							ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_C;
+					}
+					else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_D)
+					{
+							ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_D;
+					}
+					else if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_E)
+					{
+							ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_E;
+					}	
+					else	//CP_STATE_F
+					{
+							ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentState = CCS_CP_STATE_F;
+					}
+					ShmCharger->gun_info[gun_index].acCcsInfo.CPPositiveVoltage = ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltagePositive;
+					ShmCharger->gun_info[gun_index].acCcsInfo.CPNegativeVoltage = ShmCharger->gun_info[gun_index].PilotVoltage.PilotVoltageNegative;					
+					ShmCharger->gun_info[gun_index].acCcsInfo.CPPresentPWMDuty = ShmCharger->gun_info[gun_index].primaryMcuState.current_limit;
+					
 					failCount[gun_index] = 0;
 				}
 				else
@@ -1859,17 +1913,17 @@ int main(void)
 					//================================================
 					// Byte[6]
 					//================================================
-					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP == 0x01)
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L1 == 0x01)
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<0;
 					else
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<0);
 
-					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP == 0x01)
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L1 == 0x01)
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<1;
 					else
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<1);
 
-					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP == 0x01)
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L1 == 0x01)
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<2;
 					else
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<2);
@@ -1959,12 +2013,43 @@ int main(void)
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<18;
 					else
 						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<18);
+					
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L2 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<20;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<20);
+
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L3 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<21;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<21);
+
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L2 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<22;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<22);
+
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L3 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<23;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<23);					
 
 					//================================================
-					// Byte[9] Reserved
+					// Byte[9] 
 					//================================================
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L2 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<24;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<24);
+
+					if(ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L3 == 0x01)
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode |= 1<<25;
+					else
+						ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode &= ~(1<<25);							
 
 					failCount[gun_index] = 0;
+					
+					ShmCharger->gun_info[gun_index].acCcsInfo.CSUAlarmStatusCode = ShmCharger->gun_info[gun_index].primaryMcuAlarm.InputAlarmCode;
 				}
 				else
 				{
@@ -2106,9 +2191,15 @@ int main(void)
 						DEBUG_INFO("**************************************************\r\n");
 						DEBUG_INFO("********* High priority polling : Case 4 *********\r\n");
 						DEBUG_INFO("**************************************************\r\n");
-						DEBUG_INFO("MCU-%d get OVP : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP);
-						DEBUG_INFO("MCU-%d get UVP : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP);
-						DEBUG_INFO("MCU-%d get OCP : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP);
+						DEBUG_INFO("MCU-%d get OVP_L1 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L1);
+						DEBUG_INFO("MCU-%d get UVP_L1 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L1);
+						DEBUG_INFO("MCU-%d get OCP_L1 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L1);
+						DEBUG_INFO("MCU-%d get OVP_L2 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L2);
+						DEBUG_INFO("MCU-%d get UVP_L2 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L2);
+						DEBUG_INFO("MCU-%d get OCP_L2 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L2);
+						DEBUG_INFO("MCU-%d get OVP_L3 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OVP_L3);
+						DEBUG_INFO("MCU-%d get UVP_L3 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.UVP_L3);
+						DEBUG_INFO("MCU-%d get OCP_L3 : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OCP_L3);						
 						DEBUG_INFO("MCU-%d get OTP : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.OTP);
 						DEBUG_INFO("MCU-%d get gmi_fault : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.gmi_fault);
 						DEBUG_INFO("MCU-%d get cp_fault : %d\r\n", gun_index, ShmCharger->gun_info[gun_index].primaryMcuAlarm.bits.cp_fault);

+ 11 - 1
EVSE/Projects/AW-CCS/Apps/main.c

@@ -1182,7 +1182,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, "D0.09.00.0000.00");
+	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "D0.10.00.0000.00");
 
 	// Get AC connector type from model name
 	for(uint8_t idx=0;idx<3;idx++)
@@ -2294,6 +2294,8 @@ int main(void)
 							setChargerMode(gun_index, SYS_MODE_DEBUG);
 						else
 							setChargerMode(gun_index, SYS_MODE_IDLE);
+						
+						ShmSysConfigAndInfo->SysConfig.AcPhaseCount = 3;
 					}
 
 					break;
@@ -2726,6 +2728,8 @@ int main(void)
 													ShmCharger->gun_info[gun_index].targetCurrent = (mystrcmp((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit,"W")==PASS?ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit/220:ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit);
 													DEBUG_INFO("ShmCharger->gun_info[%d].targetCurrent on period[%d]: %d\r\n", gun_index, idx_period, ShmCharger->gun_info[gun_index].targetCurrent);
 												}
+												else
+													break;
 											}
 										}
 									}
@@ -2744,6 +2748,8 @@ int main(void)
 													ShmCharger->gun_info[gun_index].targetCurrent = (mystrcmp((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit,"W")==PASS?ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit/220:ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit);
 													DEBUG_INFO("ShmCharger->gun_info[%d].targetCurrent on period[%d]: %d\r\n", gun_index, idx_period, ShmCharger->gun_info[gun_index].targetCurrent);
 												}
+												else
+													break;
 											}
 										}
 									}
@@ -2764,6 +2770,8 @@ int main(void)
 														ShmCharger->gun_info[gun_index].targetCurrent = (mystrcmp((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit,"W")==PASS?ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit/220:ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit);
 														DEBUG_INFO("ShmCharger->gun_info[%d].targetCurrent on period[%d]: %d\r\n", gun_index, idx_period, ShmCharger->gun_info[gun_index].targetCurrent);
 													}
+													else
+														break;
 												}
 											}
 											else
@@ -2777,6 +2785,8 @@ int main(void)
 														ShmCharger->gun_info[gun_index].targetCurrent = (mystrcmp((char*)ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingRateUnit,"W")==PASS?ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit/220:ShmOCPP16Data->SmartChargingProfile[gun_index].ChargingSchedule.ChargingSchedulePeriod[idx_period].Limit);
 														DEBUG_INFO("ShmCharger->gun_info[%d].targetCurrent on period[%d]: %d\r\n", gun_index, idx_period, ShmCharger->gun_info[gun_index].targetCurrent);
 													}
+													else
+														break;
 												}
 											}
 										}

+ 53 - 23
EVSE/Projects/AW-CCS/Apps/main.h

@@ -53,6 +53,20 @@
 #define CP_STATE_E					5
 #define CP_STATE_F					6
 
+//===================================
+//	Define CCS CP State constant
+//===================================
+#define CCS_CP_STATE_UNKNOWN			0
+#define CCS_CP_STATE_A					1	//A (12V, no PWM)
+#define CCS_CP_STATE_B1					2	//B1 (9V, no PWM)
+#define CCS_CP_STATE_B2					3	//B2 (9V, with PWM)
+#define CCS_CP_STATE_C					4	//C (6V, with PWM)
+#define CCS_CP_STATE_D					5	//D (3V, with PWM)
+#define CCS_CP_STATE_E					6	//E (0V, no PWM)
+#define CCS_CP_STATE_F					7	//F (-12V, no PWM)
+#define CCS_CP_STATE_G					8	//G (>12V)
+#define CCS_CP_STATE_H					9	//H  (<12V)
+
 //===================================
 // Define start mode constant
 //===================================
@@ -75,25 +89,35 @@
 //===================================
 // Define Alarm code constant
 //===================================
-#define ALARM_OVER_VOLTAGE          0x000001
-#define ALARM_UNDER_VOLTAGE         0x000002
-#define ALARM_OVER_CURRENT          0x000004
-#define ALARM_OVER_TEMPERATURE      0x000008
-#define ALARM_GROUND_FAIL           0x000010
-#define ALARM_CP_ERROR              0x000020
-#define ALARM_CURRENT_LEAK_AC       0x000040
-#define ALARM_CURRENT_LEAK_DC       0x000080
-#define ALARM_MCU_TESTFAIL          0x000100
-#define ALARM_HANDSHAKE_TIMEOUT     0x000200
-#define ALARM_EMERGENCY_STOP        0x000400
-#define ALARM_RELAY_WELDING         0x000800
-#define ALARM_LEAK_MODULE_FAIL      0x001000
-#define ALARM_SHUTTER_FAULT         0x002000
-#define ALARM_LOCKER_FAULT          0x004000
-#define ALARM_POWER_DROP            0x008000
-#define ALARM_CURRENT_SHORT         0x010000
-#define ALARM_ROTATORY_SWITCH_FAULT 0x020000
-#define ALARM_RELAY_DRIVE_FAULT     0x040000
+#define ALARM_L1_OVER_VOLTAGE					0x00000001
+#define ALARM_L1_UNDER_VOLTAGE					0x00000002
+#define ALARM_L1_OVER_CURRENT					0x00000004
+#define ALARM_OVER_TEMPERATURE	                0x00000008
+#define ALARM_GROUND_FAIL						0x00000010
+#define ALARM_CP_ERROR							0x00000020
+#define ALARM_CURRENT_LEAK_AC                   0x00000040
+#define ALARM_CURRENT_LEAK_DC                   0x00000080
+
+#define ALARM_MCU_TESTFAIL						0x00000100
+#define ALARM_HANDSHAKE_TIMEOUT                 0x00000200
+#define ALARM_EMERGENCY_STOP                    0x00000400
+#define ALARM_RELAY_WELDING                     0x00000800
+#define ALARM_LEAK_MODULE_FAIL                  0x00001000 
+#define ALARM_SHUTTER_FAULT                     0x00002000
+#define ALARM_LOCKER_FAULT                      0x00004000  
+#define ALARM_POWER_DROP                        0x00008000
+  
+#define ALARM_CIRCUIT_SHORT                     0x00010000 
+#define ALARM_ROTATORY_SWITCH_FAULT             0x00020000 
+#define ALARM_RELAY_DRIVE_FAULT                 0x00040000 
+#define ALARM_BLE_MODULE_BROKEN                 0x00080000 
+#define ALARM_L2_OVER_VOLTAGE                   0x00100000 
+#define ALARM_L3_OVER_VOLTAGE                   0x00200000
+#define ALARM_L2_UNDER_VOLTAGE                  0x00400000 
+#define ALARM_L3_UNDER_VOLTAGE                  0x00800000
+
+#define ALARM_L2_OVER_CURRENT					0x01000000
+#define ALARM_L3_OVER_CURRENT					0x02000000
 
 //===================================
 // Define Led constant
@@ -273,9 +297,9 @@ typedef struct AC_PRIMARY_MCU_ALARM
 		unsigned long InputAlarmCode;
 		struct
 		{
-			unsigned long OVP:1;
-			unsigned long UVP:1;
-			unsigned long OCP:1;
+			unsigned long OVP_L1:1;
+			unsigned long UVP_L1:1;
+			unsigned long OCP_L1:1;
 			unsigned long OTP:1;
 			unsigned long gmi_fault:1;
 			unsigned long cp_fault:1;
@@ -293,6 +317,12 @@ typedef struct AC_PRIMARY_MCU_ALARM
 			unsigned long set_circuit:1;
 			unsigned long relay_drive_fault:1;
 			unsigned long comm_timeout:1;
+			unsigned long OVP_L2:1;
+			unsigned long UVP_L2:1;
+			unsigned long OCP_L2:1;
+			unsigned long OVP_L3:1;
+			unsigned long UVP_L3:1;
+			unsigned long OCP_L3:1;			
 		}bits;
 	};
 }Ac_Primary_Mcu_Alarm;
@@ -479,7 +509,7 @@ typedef struct CCS_INFO
 	uint8_t		EVSEID[40];
 	uint8_t		CCSLibRev[32];
 	uint8_t		EVSEModelName[32];
-	uint16_t	CSUAlarmStatusCode;
+	uint32_t	CSUAlarmStatusCode;
 	uint16_t	CCSAlarmStatusCode;
 	uint8_t		PaymentOption;					/* 0x00 EIM, 0x01 Pnc */
 	float		EVSEMaxCurrent;					/*unit: 1 amp*/

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


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