Ver código fonte

Merge remote-tracking branch 'origin/AW-CCS'

FolusWen 3 anos atrás
pai
commit
f367fc5361
1 arquivos alterados com 26 adições e 5 exclusões
  1. 26 5
      EVSE/Projects/AW-CCS/Apps/main.c

+ 26 - 5
EVSE/Projects/AW-CCS/Apps/main.c

@@ -5660,6 +5660,7 @@ int main(void)
 						ocpp_set_remotestart(gun_index, OFF);
 						ShmCharger->gun_info[gun_index].bleConfigData.isRequestStart = OFF;
 						ShmCharger->gun_info[gun_index].isGunPlugged = NO;
+						ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = NO;
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].schedule.isTriggerStart = OFF;
 
 						// Get target current
@@ -6128,6 +6129,7 @@ int main(void)
 					else if(ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn == ON)
 					{
 						setRequest(gun_index, ON);
+						ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = NO;
 					}
 
 					// Unplug charging gun to Idle mode
@@ -6212,12 +6214,25 @@ int main(void)
 						}*/
 					}
 
-					// If CP state is A and charing mode is not socket e.
-					if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A) && (ShmCharger->gun_info[gun_index].chargingMode != CHARGING_MODE_SOCKETE))
+					// If unplug the connector during a session, the system must stop charging and stop session.
+					if((ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS) || (ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC))
 					{
-						ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = YES;
-						DEBUG_INFO("The charging gun is unplugged under charging mode. \n");
+						if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A))
+						{
+							ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = YES;
+							DEBUG_INFO("The connector was unplugged under charging mode. [CHARGING_MODE_BS / CHARGING_MODE_HLC]. \n");
+						}
 					}
+					else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_SOCKETE)
+					{
+						if(ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn != ON)
+						{
+							ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = YES;
+							DEBUG_INFO("The socket e was unplugged under charging mode. [CHARGING_MODE_SOCKETE]. \n");
+						}
+					}
+					else
+					{}
 
 					if((ShmCharger->gun_info[gun_index].isGunUnpluggedBefore == YES) ||
 					   (ShmCharger->gun_info[gun_index].rfidReq == ON) ||
@@ -6494,7 +6509,7 @@ int main(void)
 					   ocpp_get_remotestop(gun_index) ||
 					   (ocpp_get_connection_status() && !ocpp_get_starttransaction_result(gun_index)) ||
 					   ((ShmCharger->gun_info[gun_index].chargingMode != CHARGING_MODE_SOCKETE) && ((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A) || (ShmCharger->gun_info[gun_index].isGunUnpluggedBefore == YES)) && ocpp_get_StopTransactionOnEVSideDisconnect()) ||
-					   ((ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_SOCKETE) && !ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn) ||
+					   ((ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_SOCKETE) && ((!ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn) || (ShmCharger->gun_info[gun_index].isGunUnpluggedBefore == YES))) ||
 					   ocpp_get_reset_req() ||
 					   ocpp_get_unlocker_req(gun_index) ||
 					   (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].schedule.isTriggerStop == ON) ||
@@ -6635,12 +6650,18 @@ int main(void)
 					if((ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_BS) || (ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC))
 					{
 						if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A))
+						{
 							setRequest(gun_index,OFF);
+							ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = YES;
+						}
 					}
 					else if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_SOCKETE)
 					{
 						if(ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn != ON)
+						{
 							setRequest(gun_index,OFF);
+							ShmCharger->gun_info[gun_index].isGunUnpluggedBefore = YES;
+						}
 					}
 					else
 					{}