Browse Source

Merge branch 'AW-Regular' of https://git.phihong.com.tw:30000/System_Integration/CSU3_AM335x into AW-Regular

8009 4 years ago
parent
commit
a5eebe421f

+ 27 - 14
EVSE/Projects/AW-CCS/Apps/main.c

@@ -1186,7 +1186,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.17.00.0000.00");
+	sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "D0.18.00.0000.00");
 
 	// Get AC connector type from model name
 	for(uint8_t idx=0;idx<3;idx++)
@@ -2310,6 +2310,7 @@ int main(void)
 					if(isModeChange(gun_index))
 					{
 						setLedMotion(gun_index,LED_ACTION_IDLE);
+						setRelay(gun_index, OFF);
 						setRequest(gun_index,OFF);
 						ShmCharger->gun_info[gun_index].isGunPlugged = NO;
 						ShmCharger->gun_info[gun_index].rfidReq = OFF;
@@ -2321,7 +2322,7 @@ int main(void)
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedDuration = 0;
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy = 0;
 						ShmCharger->gun_info[gun_index].targetCurrent = 0xFF;
-						ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = (ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent > 0) ? ((ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent<ShmCharger->gun_info[gun_index].primaryMcuState.rating_current)?ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent:ShmCharger->gun_info[gun_index].primaryMcuState.rating_current) : ShmCharger->gun_info[gun_index].primaryMcuState.rating_current;
+						//ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = (ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent > 0) ? ((ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent<ShmCharger->gun_info[gun_index].primaryMcuState.rating_current)?ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent:ShmCharger->gun_info[gun_index].primaryMcuState.rating_current) : ShmCharger->gun_info[gun_index].primaryMcuState.rating_current;
 						ShmCharger->gun_info[ShmOCPP16Data->UnlockConnector[gun_index].ConnectorId-1].isUnlockerConnetor = OFF;
 						ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].ReservationId = -1;
 
@@ -2552,6 +2553,7 @@ int main(void)
 									ShmCharger->gun_info[gun_index].ccsHandshakeState = HANDSHAKE_CCS;
 									//Let CCS task start to negotiate
 									ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = ON;	
+									ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 0;	
 								}						
 								break;
 							case HANDSHAKE_CCS:
@@ -2559,6 +2561,7 @@ int main(void)
 								if(DiffTimebWithNow(startTime[gun_index][TMR_IDX_BS_HLC_HANDSHAKE]) > TIMEOUT_SPEC_BS_HLC_HANDSHAKE)
 								{
 									ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = OFF;	
+									ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 1;	
 									DEBUG_INFO("BS/HLC 2 secs handshake timeout.\r\n");
 								}
 								
@@ -2633,12 +2636,12 @@ int main(void)
 								if(ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty == OFF)
 								{			
 									ShmCharger->gun_info[gun_index].ccsHandshakeState = HANDSHAKE_BS_MODE;
-									DEBUG_INFO("Enter BS Mode charging.\r\n");		
-
-									setRelay(gun_index,ON);
+									DEBUG_INFO("Enter BS Mode charging.\r\n");			
 								}						
 								break;	
 							case HANDSHAKE_BS_MODE:
+								if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_C)
+									setRelay(gun_index,ON);
 								if(DiffTimebWithNow(startTime[gun_index][TMR_IDX_HANDSHAKING]) > ShmCharger->timeoutSpec.Present_Timeout_Spec)
 								{
 									setLedMotion(gun_index, LED_ACTION_HANDSHAKE_FAIL);
@@ -2706,6 +2709,7 @@ int main(void)
 										DEBUG_INFO("CCS 120 secs handshake timeout.\r\n");
 										//Cancel CCS task negotiating
 										ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = OFF;	
+										ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 1;	
 										ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty = ON;	
 #ifdef	CCS_SIMULATION_DATA				
 										ShmCharger->gun_info[gun_index].acCcsInfo.CpSetPWMDuty = CCS_PWM_DUTY_100;						
@@ -2734,11 +2738,12 @@ int main(void)
 						
 						//Cancel CCS task negotiating
 						ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = OFF;	
+						ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 1;	
 						ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty = ON;	
 						
-#ifdef	CCS_SIMULATION_DATA				
+//#ifdef	CCS_SIMULATION_DATA				
 						ShmCharger->gun_info[gun_index].acCcsInfo.CpSetPWMDuty = CCS_PWM_DUTY_100;						
-#endif	//CCS_SIMULATION_DATA
+//#endif	//CCS_SIMULATION_DATA
 					}
 
 					// Use RFID card to stop handshaking
@@ -2750,6 +2755,7 @@ int main(void)
 						
 						//Cancel CCS task negotiating
 						ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = OFF;	
+						ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 1;	
 						ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty = ON;	
 						
 #ifdef	CCS_SIMULATION_DATA				
@@ -2761,7 +2767,7 @@ int main(void)
 						ShmCharger->gun_info[gun_index].rfidReq = OFF;
 					}
 					
-					if((ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty == ON) && ShmCharger->gun_info[gun_index].acCcsInfo.CpSetPWMDuty == CCS_PWM_DUTY_100)
+					if((ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty == ON) && ShmCharger->gun_info[gun_index].acCcsInfo.CpSetPWMDuty != CCS_PWM_DUTY_5)
 					{
 						ShmCharger->gun_info[gun_index].primaryMcuCp_Pwn_Duty.max_current = CCS_PWM_DUTY_100;
 						ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = ON;	
@@ -2907,7 +2913,7 @@ int main(void)
 									}
 									else
 									{
-										setRequest(gun_index, ON);
+										setRelay(gun_index, ON);
 									}
 								}
 								else
@@ -2929,11 +2935,12 @@ int main(void)
 										}
 										else
 										{
-											setRequest(gun_index, ON);
+											setRelay(gun_index, ON);
 										}
 									}
 									else
 									{
+										setRelay(gun_index, OFF);
 										setRequest(gun_index, OFF);
 										DEBUG_INFO("Connector-%d can not charging in off line\r\n", gun_index);
 									}
@@ -3094,7 +3101,8 @@ int main(void)
 									}
 									else
 									{
-										setRelay(gun_index, ON);
+										if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_C)
+											setRelay(gun_index, ON);
 									}
 								}
 								else
@@ -3118,7 +3126,8 @@ int main(void)
 										}
 										else
 										{
-											setRelay(gun_index, ON);
+											if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_C)
+												setRelay(gun_index, ON);
 										}
 									}
 									else
@@ -3303,7 +3312,8 @@ int main(void)
 									}
 									else
 									{}
-
+									
+									setRelay(gun_index, OFF);
 									setRequest(gun_index, OFF);
 									setLedMotion(gun_index, LED_ACTION_STOP);
 
@@ -3492,6 +3502,7 @@ int main(void)
 										//setChargerMode(gun_index, SYS_MODE_COMPLETE);
 										//Cancel CCS task negotiating
 										ShmCharger->gun_info[gun_index].acCcsInfo.ChargingPermission = OFF;	
+										ShmCharger->gun_info[gun_index].acCcsInfo.EVSENotification = 1;	
 										setRelay(gun_index,OFF);
 										ShmCharger->gun_info[gun_index].isCCSWaitChangeDuty = ON;	
 						
@@ -3583,6 +3594,7 @@ int main(void)
 								setChargerMode(gun_index, SYS_MODE_IDLE);
 								break;
 						case CHARGING_MODE_HLC:
+								setRelay(gun_index, OFF);
 								setRequest(gun_index, OFF);
 								if(ShmOCPP16Data->MsMsg.bits.ResetReq)
 								{
@@ -3640,7 +3652,8 @@ int main(void)
 					}
 					else
 					{
-						setRequest(gun_index, OFF);
+						setRelay(gun_index, OFF);
+						setRequest(gun_index, OFF);	
 					}
 
 					if((ShmCharger->gun_info[gun_index].systemAlarmCode.SystemAlarmCode == 0))

+ 3 - 0
EVSE/Projects/AW-CCS/Apps/main.h

@@ -553,6 +553,9 @@ typedef struct CCS_INFO
 	uint32_t	CcsHeartBeat;					/*unit: 1*/
 	float 		EVSEPresentCurrent[3];				//unit: 1A
 	float 		AvailableChargingPower;			//1KW
+	uint8_t		EVSENotification;				/*0: None
+													1: StopCharging
+													2: ReNegotiation*/
 	uint16_t 	ChargingPermission:1;				/*0x00: Not ready yet, stay in idle mode or go into terminating process.
 												  0x01: start charging process*/
 	uint16_t 	ConnectorLockerStatus:1;			/*0x00: released

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


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