Răsfoiți Sursa

[Imporve][Added][AW-CCS][Module_LcmControl.c]
2022-10-07 / EASON YANG
Action:
1. Added: getDisplayModeName() function. For printout log.
2. Improve: setCurrentPage() function. For printout log.

File:
1. Module_LcmControl.c
Action 1
Action 2

LCM VERSION: V0.31

8009 2 ani în urmă
părinte
comite
d35568001d
1 a modificat fișierele cu 126 adăugiri și 68 ștergeri
  1. 126 68
      EVSE/Projects/AW-CCS/Apps/LCM/Module_LcmControl.c

+ 126 - 68
EVSE/Projects/AW-CCS/Apps/LCM/Module_LcmControl.c

@@ -2,9 +2,9 @@
  * Module_LcmControl.c
  *
  * Created on : 2020-10-20
- * Update on : 2022-08-30
+ * Update on : 2022-10-07
  * Author : Folus Wen, Eason Yang
- * Version : V0.30
+ * Version : V0.31
  *
  */
 
@@ -129,11 +129,14 @@ uint8_t START_PRESS_LEVEL_STATIS = PRESS_START_LEVEL_0;
 uint8_t WarningCount = 255;
 
 int Uart1Fd;
+int GettingCurrentPage = 255;
+int SettingCurrentPage = 255;
+int CheckCurrentPageCounter = 0;
 
 //=======================================
 // Record version and date
 //=======================================
-char *FIRMWARE_UPDATE_IMAGE[3] = {"V0.30", "2022-08-30", "REV.03.00"};
+char *FIRMWARE_UPDATE_IMAGE[3] = {"V0.31", "2022-10-07", "REV.03.00"};
 
 //=======================================
 // Common routine
@@ -317,7 +320,7 @@ void getDateTimeString(char* result)
 	tmTarget = gmtime(&tbTarget.time);
 	//sprintf(result, "%04d/%02d/%02d %02d:%02d", tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min);
 	//sprintf(result, "%04d/%02d/%02d %02d:%02d %s", tmTarget->tm_year+1900,tmTarget->tm_mon+1,tmTarget->tm_mday,(tmTarget->tm_hour%12),tmTarget->tm_min,((tmTarget->tm_hour/12)>0?"p.m":"a.m"));
-	
+
 	if((tmTarget->tm_hour%12) == 0)
 		sprintf(result, "%04d/%02d/%02d %02d:%02d %s", tmTarget->tm_year+1900,tmTarget->tm_mon+1,tmTarget->tm_mday,((tmTarget->tm_hour%12)==0?12:(tmTarget->tm_hour%12)),tmTarget->tm_min,((tmTarget->tm_hour/12)==1?"p.m.":"a.m."));
 	else
@@ -393,7 +396,6 @@ void page_booting()
 	if(getCurrentPage() != SYSTEM_SCREEN_BOOTING)
 	{
 		setCurrentPage(SYSTEM_SCREEN_BOOTING);
-		DEBUG_INFO("Setting page to booting.\n");
 	}
 	else
 	{
@@ -415,8 +417,6 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
 		if((getCurrentPage() != SYSTEM_SCREEN_PREPARING))
 		{
 			setCurrentPage(SYSTEM_SCREEN_PREPARING);
-			DEBUG_INFO("Setting page to preparing.\n");
-			DEBUG_INFO("Remote Start Transaction without connector Id.\n");
 		}
 		else
 		{
@@ -457,7 +457,6 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
 					{
 						setCurrentPage(SYSTEM_SCREEN_PLUG_AND_CHARGE);
 						setDefaultValue(gun_index, system_mode);
-						DEBUG_INFO("Setting page to plug and charge.\n");
 					}
 					else
 					{
@@ -469,7 +468,7 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
 					if((ShmSysConfigAndInfo->SysConfig.isAuthrizeByEVCCID && (ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_ENABLE)) &&
 					   (ShmCharger->isCcsEnable) &&
 					   (ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_B) &&
-					   (ShmCharger->gun_info[gun_index].isGetEvCCIDTimeout == OFF) && 
+					   (ShmCharger->gun_info[gun_index].isGetEvCCIDTimeout == OFF) &&
 					   (ShmCharger->gun_info[gun_index].resultAuthorization != VALIDATED_RFID) &&
 					   (ShmCharger->gun_info[gun_index].isRemoteStartWait != ON) &&
 					   (ShmCharger->gun_info[gun_index].isEvCCIDAuthorizeFail != YES))
@@ -477,7 +476,6 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
 						if((getCurrentPage() != SYSTEM_SCREEN_PREPARE_FOR_EVSE))
 						{
 							setCurrentPage(SYSTEM_SCREEN_PREPARE_FOR_EVSE);
-							DEBUG_INFO("Setting page to EVCCID. \n");
 						}
 						else
 						{
@@ -490,7 +488,6 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
 						{
 							setCurrentPage(SYSTEM_SCREEN_IDLE);
 							setDefaultValue(gun_index, system_mode);
-							DEBUG_INFO("Setting page to idle.\n");
 						}
 						else
 						{
@@ -542,7 +539,6 @@ void page_preparing(uint8_t gun_index, uint8_t system_mode)
 		{
 			setCurrentPage(SYSTEM_SCREEN_PREPARE_FOR_EVSE);
 			setDefaultValue(gun_index, system_mode);
-			DEBUG_INFO("Setting page to prepare for EVSE.\n");
 		}
 		else
 		{
@@ -562,7 +558,6 @@ void page_preparing(uint8_t gun_index, uint8_t system_mode)
 		{
 			setCurrentPage(SYSTEM_SCREEN_PREPARING);
 			setDefaultValue(gun_index, system_mode);
-			DEBUG_INFO("Setting page to preparing.\n");
 		}
 		else
 		{
@@ -582,7 +577,6 @@ void page_charging(uint8_t gun_index, uint8_t system_mode)
 	{
 		setCurrentPage(SYSTEM_SCREEN_CHARGING);
 		setDefaultValue(gun_index, system_mode);
-		DEBUG_INFO("Setting page to charging.\n");
 	}
 	else
 	{
@@ -693,7 +687,6 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
 		if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE)
 		{
 			setCurrentPage(SYSTEM_SCREEN_COMPLETE);
-			DEBUG_INFO("Setting page to complete.\n");
 		}
 		else
 		{}
@@ -707,7 +700,6 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
 				if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE)
 				{
 					setCurrentPage(SYSTEM_SCREEN_COMPLETE);
-					DEBUG_INFO("Setting page to complete.\n");
 				}
 				else
 				{}
@@ -720,7 +712,6 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
 					{
 						setCurrentPage(SYSTEM_SCREEN_COMPLETE_WITH_QRCODE);
 						setQRCodeReceipt(gun_index);
-						DEBUG_INFO("Setting page to complete with receipt QR code [CDFA 1.0].\n");
 					}
 					else
 					{
@@ -732,7 +723,6 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
 					if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE)
 					{
 						setCurrentPage(SYSTEM_SCREEN_COMPLETE);
-						DEBUG_INFO("Setting page to complete.\n");
 					}
 					else
 					{}
@@ -821,7 +811,6 @@ void page_terminating(uint8_t gun_index, uint8_t system_mode)
 	{
 		setCurrentPage(SYSTEM_SCREEN_TERMINATING);
 		setDefaultValue(gun_index, system_mode);
-		DEBUG_INFO("Setting page to terminating.\n");
 	}
 	else
 	{
@@ -901,7 +890,6 @@ void page_alarm()
 		{
 			setCurrentPage(SYSTEM_SCREEN_ALARM);
 			setQRCodeAlarm();
-			DEBUG_INFO("Setting page to alarm.\n");
 		}
 		else
 		{
@@ -913,24 +901,17 @@ void page_alarm()
 		if(getCurrentPage() != SYSTEM_SCREEN_EMERGENCY)
 		{
 			setCurrentPage(SYSTEM_SCREEN_EMERGENCY);
-			DEBUG_INFO("Setting page to emergency.\n");
 		}
 		else
 		{}
 	}
 }
 
-void page_fault()
-{
-	//DEBUG_INFO("Page fault.\n");
-}
-
 void page_maintain()
 {
 	if(getCurrentPage() != SYSTEM_SCREEN_MAINTENANCE)
 	{
 		setCurrentPage(SYSTEM_SCREEN_MAINTENANCE);
-		DEBUG_INFO("Setting page to maintain.\n");
 	}
 	else
 	{}
@@ -941,37 +922,28 @@ void page_update()
 	if(getCurrentPage() != SYSTEM_SCREEN_MAINTENANCE)
 	{
 		setCurrentPage(SYSTEM_SCREEN_MAINTENANCE);
-		DEBUG_INFO("Setting page to update.\n");
 	}
 	else
 	{}
 }
 
-void page_reservation()
-{
-	//DEBUG_INFO("Page reservation.\n");
-}
-
-void page_booking()
-{
-	//DEBUG_INFO("Page booking.\n");
-}
-
 void page_debug()
 {
 	if(getCurrentPage() != SYSTEM_SCREEN_MAINTENANCE)
 	{
 		setCurrentPage(SYSTEM_SCREEN_MAINTENANCE);
-		DEBUG_INFO("Setting page to debug.\n");
 	}
 	else
 	{}
 }
 
-void page_unknown()
-{
-	//DEBUG_INFO("Page unknown.\n");
-}
+void page_reservation(){}
+
+void page_booking(){}
+
+void page_fault(){}
+
+void page_unknown(){}
 
 void page_header(uint8_t gun_index, uint8_t system_mode)
 {
@@ -1033,6 +1005,77 @@ void setDisplayValue2(uint16_t address, uint8_t value)
 	lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, (address+3), data, ARRAY_SIZE(data));
 }
 
+//=======================================
+// Print out system mode
+//=======================================
+char* getDisplayModeName(unsigned char mode)
+{
+	char* result;
+
+	switch(mode)
+	{
+		case SYSTEM_SCREEN_BOOTING:
+			result = "BOOTING";
+			break;
+		case SYSTEM_SCREEN_IDLE:
+			result = "IDLE";
+			break;
+		case SYSTEM_SCREEN_PREPARING:
+			result = "PREPARING";
+			break;
+		case SYSTEM_SCREEN_PREPARE_FOR_EVSE:
+			result = "PREPARE_FOR_EVSE";
+			break;
+		case SYSTEM_SCREEN_CHARGING:
+			result = "CHARGING";
+			break;
+		case SYSTEM_SCREEN_COMPLETE:
+			result = "COMPLETE";
+			break;
+		case SYSTEM_SCREEN_MAINTENANCE:
+			result = "MAINTENANCE";
+			break;
+		case SYSTEM_SCREEN_AUTH_PASS:
+			result = "AUTH_PASS";
+			break;
+		case SYSTEM_SCREEN_AUTH_FAIL:
+			result = "AUTH_FAIL";
+			break;
+		case SYSTEM_SCREEN_AUTH_UNKNOWN:
+			result = "AUTH_UNKNOWN";
+			break;
+		case SYSTEM_SCREEN_TERMINATING:
+			result = "TERMINATING";
+			break;
+		case SYSTEM_SCREEN_EMERGENCY:
+			result = "EMERGENCY";
+			break;
+		case SYSTEM_SCREEN_SLEEP:
+			result = "SLEEP";
+			break;
+		case SYSTEM_SCREEN_SLEEP2:
+			result = "SLEEP2";
+			break;
+		case SYSTEM_SCREEN_ALARM:
+			result = "ALARM";
+			break;
+		case SYSTEM_SCREEN_PLUG_AND_CHARGE:
+			result = "PLUG_AND_CHARGE";
+			break;
+		case SYSTEM_SCREEN_COMPLETE_WITH_QRCODE:
+			result = "COMPLETE_WITH_QRCODE";
+			break;
+		case SYSTEM_SCREEN_POWER_CONSUMPTION:
+			result = "POWER_CONSUMPTION";
+			break;
+		default:
+			result = "UNKNOWN";
+			break;
+	}
+
+	return result;
+}
+
 //=======================================
 // Getting current page
 //=======================================
@@ -1045,13 +1088,25 @@ uint8_t getCurrentPage()
 	{
 		result = currentPage[1];
 
-		// DEBUG_INFO("currentPage[0] : %X\n", currentPage[0]);
-		// DEBUG_INFO("currentPage[1] : %X\n", currentPage[1]);
-		// DEBUG_INFO("Getting current page : [%d] \n", result);
+		/*
+		if((GettingCurrentPage != result))
+		{
+			if(CheckCurrentPageCounter >= 3)
+			{
+				GettingCurrentPage = result;
+				DEBUG_INFO("Getting current page: [%s].\n", getDisplayModeName((unsigned char)GettingCurrentPage));
+			}
+			CheckCurrentPageCounter++;
+		}
+		else
+		{
+			CheckCurrentPageCounter = 0;
+		}
+		*/
 	}
 	else
 	{
-		DEBUG_INFO("Getting current page fail! \n");
+		DEBUG_INFO("Getting current page: [Fail].\n");
 	}
 
 	return result;
@@ -1062,22 +1117,28 @@ uint8_t getCurrentPage()
 //=======================================
 void setCurrentPage(uint8_t page)
 {
-	uint8_t settingPage[2] = {0x00, page};
+	uint8_t settingPage[2];
+	settingPage[0] = 0x00;
+	settingPage[1] = page;
 
 	if(lcdRegisterWrite(Uart1Fd, REG_TYPE_CONTROL, REG_ADDRESS_SET_PAGE_ID, settingPage, ARRAY_SIZE(settingPage)))
 	{
-		if((ShmCharger->gun_info[0].isSleepOn == YES) || (ShmCharger->gun_info[1].isSleepOn == YES))
+		if(SettingCurrentPage != page)
 		{
+			SettingCurrentPage = page;
+			DEBUG_INFO("Setting current page: [%s].\n", getDisplayModeName((unsigned char)SettingCurrentPage), SettingCurrentPage);
 
-		}
-		else
-		{
-			DEBUG_INFO("Setting current page to : [%d] \n", page);
+			if(ocpp_get_isRemoteStartWait())
+			{
+				DEBUG_INFO("[Remote to start without the connector id].\n");
+			}
+			else
+			{}
 		}
 	}
 	else
 	{
-		DEBUG_INFO("Setting current page fail! \n");
+		DEBUG_INFO("Setting current page: [Fail].\n");
 	}
 }
 
@@ -2438,7 +2499,6 @@ void setAuthorizationPage(uint8_t gun_index)
 			if(getCurrentPage() != SYSTEM_SCREEN_AUTH_PASS)
 			{
 				setCurrentPage(SYSTEM_SCREEN_AUTH_PASS);
-				DEBUG_INFO("Setting page to authorizing : Validated RFID.\n");
 			}
 			else
 			{}
@@ -2447,7 +2507,6 @@ void setAuthorizationPage(uint8_t gun_index)
 			if(getCurrentPage() != SYSTEM_SCREEN_AUTH_FAIL)
 			{
 				setCurrentPage(SYSTEM_SCREEN_AUTH_FAIL);
-				DEBUG_INFO("Setting page to authorizing : Unvalidated RFID.\n");
 			}
 			else
 			{}
@@ -2456,7 +2515,6 @@ void setAuthorizationPage(uint8_t gun_index)
 			if(getCurrentPage() != SYSTEM_SCREEN_AUTH_UNKNOWN)
 			{
 				setCurrentPage(SYSTEM_SCREEN_AUTH_UNKNOWN);
-				DEBUG_INFO("Setting page to authorizing : Unknown RFID\n");
 			}
 			else
 			{}
@@ -2633,7 +2691,7 @@ void setMarqueeControl(uint16_t address, uint8_t gun_index, uint8_t type)
 int isAmericaType()
 {
 	int result = NO;
-	
+
 	if(ShmSysConfigAndInfo->SysConfig.ModelName[3] == 'U')
 		result = YES;
 	else
@@ -2652,7 +2710,7 @@ void setTimeTitle(uint8_t isOn)
 
 	memset(data, 0x00, ARRAY_SIZE(data));
 	memset(text, 0x00, ARRAY_SIZE(text));
-	
+
 	if(isAmericaType() == YES)
 	{
 		if(isOn == ON)
@@ -2665,7 +2723,7 @@ void setTimeTitle(uint8_t isOn)
 			strcpy((char*)text, "                               ");
 			string2ByteArray(text, data);
 		}
-		
+
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TITLE_TIME, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_TITLE_TIME, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRECHARGING_TITLE_TIME, data, ARRAY_SIZE(data));
@@ -2688,7 +2746,7 @@ void setEnergyTitle(uint8_t isOn)
 
 	memset(data, 0x00, ARRAY_SIZE(data));
 	memset(text, 0x00, ARRAY_SIZE(text));
-	
+
 	if(isAmericaType() == YES)
 	{
 		if(isOn == ON)
@@ -2701,7 +2759,7 @@ void setEnergyTitle(uint8_t isOn)
 			strcpy((char*)text, "                               ");
 			string2ByteArray(text, data);
 		}
-		
+
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TITLE_ENERGY, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_TITLE_ENERGY, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRECHARGING_TITLE_ENERGY, data, ARRAY_SIZE(data));
@@ -2724,7 +2782,7 @@ void setSessionFeeTitle(uint8_t isOn)
 
 	memset(data, 0x00, ARRAY_SIZE(data));
 	memset(text, 0x00, ARRAY_SIZE(text));
-	
+
 	if(isAmericaType() == YES)
 	{
 		if(isOn == ON)
@@ -2737,7 +2795,7 @@ void setSessionFeeTitle(uint8_t isOn)
 			strcpy((char*)text, "                               ");
 			string2ByteArray(text, data);
 		}
-		
+
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TITLE_SESSION_FEE, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_TITLE_SESSION_FEE, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRECHARGING_TITLE_SESSION_FEE, data, ARRAY_SIZE(data));
@@ -2760,7 +2818,7 @@ void setParkingFeeTitle(uint8_t isOn)
 
 	memset(data, 0x00, ARRAY_SIZE(data));
 	memset(text, 0x00, ARRAY_SIZE(text));
-	
+
 	if(isAmericaType() == YES)
 	{
 		if(isOn == ON)
@@ -2773,7 +2831,7 @@ void setParkingFeeTitle(uint8_t isOn)
 			strcpy((char*)text, "                               ");
 			string2ByteArray(text, data);
 		}
-		
+
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TITLE_PARKING_FEE, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_TITLE_PARKING_FEE, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRECHARGING_TITLE_PARKING_FEE, data, ARRAY_SIZE(data));
@@ -2796,7 +2854,7 @@ void setFinalCostTitle(uint8_t isOn)
 
 	memset(data, 0x00, ARRAY_SIZE(data));
 	memset(text, 0x00, ARRAY_SIZE(text));
-	
+
 	if(isAmericaType() == YES)
 	{
 		if(isOn == ON)
@@ -2809,7 +2867,7 @@ void setFinalCostTitle(uint8_t isOn)
 			strcpy((char*)text, "                               ");
 			string2ByteArray(text, data);
 		}
-		
+
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TITLE_FINAL_COST, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_TITLE_FINAL_COST, data, ARRAY_SIZE(data));
 		lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRECHARGING_TITLE_FINAL_COST, data, ARRAY_SIZE(data));