瀏覽代碼

2020-05-25 /Edward Lien

Actions:
1.Add CCS check timeout in preparing.
2.Module_InternalComm.c Reason : removed isSetCpPwnDuty flag when set command failed.

Files:
1. As follow commit history

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

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
Edward Lien 4 年之前
父節點
當前提交
b4f6d8b3fc

+ 64 - 3
EVSE/Projects/AW-CCS/Apps/Module_InternalComm.c

@@ -1323,6 +1323,53 @@ unsigned char Config_AC_MCU_LEGACY_REQUEST(unsigned char fd, unsigned char targe
 	return result;
 }
 
+unsigned char Config_AC_MCU_RELAY(unsigned char fd, unsigned char targetAddr, Legacy_Request *Set_Buf)
+{
+	unsigned char result = FAIL;
+	unsigned char tx[9];
+	unsigned char rx[512];
+	unsigned char chksum = 0x00;
+
+	tx[0] = 0xaa;
+	tx[1] = 0x00;
+	tx[2] = targetAddr;
+	tx[3] = CMD_CONFIG_MCU_MODE;
+	tx[4] = 0x02;
+	tx[5] = 0x00;
+	tx[6] = Set_Buf->isLegacyRequest;
+	tx[7] = 0x00;
+
+	for(int idx=0;idx<(tx[4] | tx[5]<<8);idx++)
+		chksum ^= tx[6+idx];
+	tx[8] = chksum;
+
+	unsigned char len = tranceive(fd, tx, sizeof(tx), rx);
+
+	if(len > 6)
+	{
+		if (len < 6+(rx[4] | rx[5]<<8))
+			return result;
+
+		chksum = 0x00;
+		for(int idx=0;idx<(rx[4] | rx[5]<<8);idx++)
+		{
+			chksum ^= rx[6+idx];
+		}
+
+		if((chksum == rx[6+(rx[4] | rx[5]<<8)]) &&
+		   (rx[2] == tx[1]) &&
+		   (rx[1] == tx[2]) &&
+		   (rx[3] == tx[3]) &&
+		   (rx[6] == 0x01))
+		{
+			result = PASS;
+
+		}
+	}
+
+	return result;
+}
+
 unsigned char Config_AC_MCU_RESET_REQUEST(unsigned char fd, unsigned char targetAddr, Mcu_Reset_Request *Set_Buf)
 {
 	unsigned char result = FAIL;
@@ -1797,12 +1844,28 @@ int main(void)
 				}
 				else
 				{
-					DEBUG_WARN("MCU-%d set relay request fail...%d\r\n", gun_index, failCount[gun_index]);
+					DEBUG_WARN("MCU-%d set request fail...%d\r\n", gun_index, failCount[gun_index]);
 					if(failCount[gun_index]<1000)
 					{
 						failCount[gun_index]++;
 					}
 				}
+				
+				//===============================
+				// Case 2-X : Config primary Relay
+				//===============================
+				if(Config_AC_MCU_RELAY(Uart1Fd, (gun_index>0?ADDR_AC_PRIMARY_2:ADDR_AC_PRIMARY_1),&ShmCharger->gun_info[gun_index].legacyRequest))
+				{
+					failCount[gun_index] = 0;
+				}
+				else
+				{
+					DEBUG_WARN("MCU-%d set relay fail...%d\r\n", gun_index, failCount[gun_index]);
+					if(failCount[gun_index]<1000)
+					{
+						failCount[gun_index]++;
+					}
+				}				
 
 				//===============================
 				// Case 3 : Query primary MCU status
@@ -2242,8 +2305,6 @@ int main(void)
 							}
 							else
 							{
-								ShmCharger->gun_info[gun_index].mcuFlag.isSetCpPwmDuty = OFF;
-
 								DEBUG_WARN("MCU-%d set cp pwn duty fail...%d\r\n", gun_index, failCount[gun_index]);
 								if(failCount[gun_index]<1000)
 								{

File diff suppressed because it is too large
+ 493 - 362
EVSE/Projects/AW-CCS/Apps/main.c


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

@@ -117,6 +117,24 @@
 #define LED_ACTION_HANDSHAKE_FAIL   	16
 #define LED_ACTION_INTERNET_DISCONNECT	17
 
+//=================================
+//CCS related define
+//=================================
+#define CCS_PWM_DUTY_CP_STAT_E			0			
+#define CCS_PWM_DUTY_5					5
+#define CCS_PWM_DUTY_100				100
+
+
+#define HANDSHAKE_DUTY_5				1
+#define HANDSHAKE_CCS					2
+#define HANDSHAKE_CP_STATE_E			3
+#define HANDSHAKE_SET_MAX_CURRENT		4
+#define HANDSHAKE_NORMAL_CP				5
+#define HANDSHAKE_NORMAL_CCS			6
+
+#define	CHARGING_MODE_CP				0
+#define	CHARGING_MODE_CCS				1
+
 
 #define DEBUG_INFO(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
 #define DEBUG_WARN(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
@@ -298,6 +316,7 @@ typedef struct AC_PRIMARY_MCU_CP_PWM_DUTY
 typedef struct LEGACY_REQUEST
 {
 	unsigned char isLegacyRequest:1;
+	uint8_t isRelayOn:1;
 }Legacy_Request;
 
 typedef struct POWER_CONSUMPTION
@@ -497,6 +516,8 @@ typedef struct GUN_INFO
 	Set_Breathe_Led_Timing							setBreatheLedTiming;
 	Set_Led_Brightness								setLedBrightness;
 	Ccs_Info										ccsInfo;
+	uint8_t											ccsHandshakeState;
+	uint8_t											chargingMode;
 	uint16_t										targetCurrent;
 	uint16_t										isAuthPassEnd:1;
 	uint16_t										rfidReq:1;

二進制
EVSE/Projects/AW-CCS/Images/FactoryDefaultConfig.bin


二進制
EVSE/Projects/AW-CCS/Images/ramdisk.gz


Some files were not shown because too many files changed in this diff