Ver Fonte

2020-04-17 / Eason Yang
1.Change : main.c Reason : synchronize from Platform_CSU3
2.Change : main.h Reason : synchronize from Platform_CSU3
3.Change : Module_AlarmDetect.c Reason : synchronize from Platform_CSU3
4.Change : Module_EventLogging.c Reason : sunchronize from Platform_CSU3
Version : B0.28.00.0000.00

8009 há 5 anos atrás
pai
commit
a6d27cbe39

+ 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/rootfs/root/Module_EventLogging


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


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


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

@@ -1 +1 @@
-12
+13