|
@@ -76,7 +76,7 @@ void setPressStartButtonAnimation(uint8_t gun_index);
|
|
|
void setDisplayValue(uint16_t address, uint8_t value);
|
|
|
void setDisplayValue2(uint16_t address, uint8_t value);
|
|
|
void setDefaultValue(uint8_t gun_index, uint8_t system_mode);
|
|
|
-void setQRcodeContent(char *input, uint8_t length, uint8_t mode);
|
|
|
+void setQRcodeContent(char *input, int length, uint8_t mode);
|
|
|
void setBillingFromBackend(uint8_t gun_index, uint8_t system_mode);
|
|
|
void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode);
|
|
|
void setPresentChargedEnergy(uint8_t gun_index, uint8_t system_mode);
|
|
@@ -706,12 +706,13 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if((strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL,"") != 0))
|
|
|
+ if((strcmp((char *)ShmOCPP16Data->Cost.FinalCost[gun_index].qrCodeText,"") != 0))
|
|
|
{
|
|
|
if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE_WITH_QRCODE)
|
|
|
{
|
|
|
setCurrentPage(SYSTEM_SCREEN_COMPLETE_WITH_QRCODE);
|
|
|
setQRCodeReceipt(gun_index);
|
|
|
+ DEBUG_INFO("[CDFA 2.0].\n");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -720,12 +721,28 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE)
|
|
|
+ if((strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL,"") != 0))
|
|
|
{
|
|
|
- setCurrentPage(SYSTEM_SCREEN_COMPLETE);
|
|
|
+ if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE_WITH_QRCODE)
|
|
|
+ {
|
|
|
+ setCurrentPage(SYSTEM_SCREEN_COMPLETE_WITH_QRCODE);
|
|
|
+ setQRCodeReceipt(gun_index);
|
|
|
+ DEBUG_INFO("[CDFA 1.0].\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setQRCodeReceipt(gun_index);
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
- {}
|
|
|
+ {
|
|
|
+ if(getCurrentPage() != SYSTEM_SCREEN_COMPLETE)
|
|
|
+ {
|
|
|
+ setCurrentPage(SYSTEM_SCREEN_COMPLETE);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {}
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -733,6 +750,8 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
|
// DISPLAY BY OCPP 2.0.1
|
|
|
}
|
|
|
+ else
|
|
|
+ {}
|
|
|
}
|
|
|
|
|
|
setPresentChargedDuration(gun_index);
|
|
@@ -981,7 +1000,7 @@ void page_footer()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting icon display value
|
|
|
+// SETTING ICON DISPLAY VALUE
|
|
|
//=======================================
|
|
|
void setDisplayValue(uint16_t address, uint8_t value)
|
|
|
{
|
|
@@ -993,6 +1012,9 @@ void setDisplayValue(uint16_t address, uint8_t value)
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, address, data, ARRAY_SIZE(data));
|
|
|
}
|
|
|
|
|
|
+//=======================================
|
|
|
+// SETTING MARQUEE CONTROL DISPLAY VALUE
|
|
|
+//=======================================
|
|
|
void setDisplayValue2(uint16_t address, uint8_t value)
|
|
|
{
|
|
|
uint8_t data[4];
|
|
@@ -1006,7 +1028,7 @@ void setDisplayValue2(uint16_t address, uint8_t value)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Print out system mode
|
|
|
+// PRINT OUT SCREEN MODE
|
|
|
//=======================================
|
|
|
char* getDisplayModeName(unsigned char mode)
|
|
|
{
|
|
@@ -1077,7 +1099,7 @@ char* getDisplayModeName(unsigned char mode)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Getting current page
|
|
|
+// GETTING CURRENT SCREEN PAGE
|
|
|
//=======================================
|
|
|
uint8_t getCurrentPage()
|
|
|
{
|
|
@@ -1113,7 +1135,7 @@ uint8_t getCurrentPage()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting current page
|
|
|
+// SETTING CURRENT SCREEN PAGE
|
|
|
//=======================================
|
|
|
void setCurrentPage(uint8_t page)
|
|
|
{
|
|
@@ -1143,9 +1165,9 @@ void setCurrentPage(uint8_t page)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Convert string to byte array
|
|
|
+// CONVERT STRING TO BYTE ARRAY
|
|
|
//=======================================
|
|
|
-void string2ByteArray(unsigned char *input, uint8_t *output)
|
|
|
+void string2ByteArray(uint8_t *input, uint8_t *output)
|
|
|
{
|
|
|
int loop;
|
|
|
int i;
|
|
@@ -1161,7 +1183,7 @@ void string2ByteArray(unsigned char *input, uint8_t *output)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ RFID ] Icon Status
|
|
|
+// SETTING ICON [RFID]
|
|
|
//=======================================
|
|
|
void setRfidIcon()
|
|
|
{
|
|
@@ -1172,7 +1194,7 @@ void setRfidIcon()
|
|
|
}
|
|
|
|
|
|
//========================================
|
|
|
-// Setting [ BACKEND ] Icon Status
|
|
|
+// SETTING ICON [BACKEND]
|
|
|
//========================================
|
|
|
void setBackendIcon()
|
|
|
{
|
|
@@ -1183,7 +1205,7 @@ void setBackendIcon()
|
|
|
}
|
|
|
|
|
|
//========================================
|
|
|
-// Setting [ ETHERNET ] Icon Status
|
|
|
+// SETTING ICON [ETHERNET]
|
|
|
//========================================
|
|
|
void setEthernetIcon()
|
|
|
{
|
|
@@ -1204,7 +1226,7 @@ void setEthernetIcon()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ WIFI / 4G] icon status
|
|
|
+// SETTING ICON [WIFI/4G]
|
|
|
//=======================================
|
|
|
void setWifi4GIcon()
|
|
|
{
|
|
@@ -1355,7 +1377,7 @@ void setWifi4GIcon()
|
|
|
}
|
|
|
|
|
|
//========================================
|
|
|
-// Setting [ RTC ] value
|
|
|
+// SETTING CONTENT [RTC]
|
|
|
//========================================
|
|
|
void setRTC()
|
|
|
{
|
|
@@ -1371,7 +1393,7 @@ void setRTC()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Billing ] ( WEB PAGE )
|
|
|
+// SETTING CONTENT [BILLING] WEB PAGE
|
|
|
//=======================================
|
|
|
void setBillingFromWebsite()
|
|
|
{
|
|
@@ -1396,7 +1418,7 @@ void setBillingFromWebsite()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Currency ] ( WEB PAGE )
|
|
|
+// SETTING CONTNET [CURRENCY] WEB PAGE
|
|
|
//=======================================
|
|
|
void setCurrencyFromWebsite(uint8_t unit)
|
|
|
{
|
|
@@ -1417,7 +1439,7 @@ void setCurrencyFromWebsite(uint8_t unit)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Price ] ( WEB PAGE )
|
|
|
+// SETTING CONTENT [PRICE] WEB PAGE
|
|
|
//=======================================
|
|
|
void setPriceFromWebsite(float monry_rate)
|
|
|
{
|
|
@@ -1433,7 +1455,7 @@ void setPriceFromWebsite(float monry_rate)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Final Cost ] ( WEB PAGE )
|
|
|
+// SETTING CONTENT [FINAL COST] WEB PAGE
|
|
|
//=======================================
|
|
|
void setPresentFinalCost(float cost)
|
|
|
{
|
|
@@ -1454,7 +1476,7 @@ void setPresentFinalCost(float cost)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Session Fee ] ( WEB PAGE )
|
|
|
+// SETTING CONTENT [SESSION FEE] WEB PAGE
|
|
|
//=======================================
|
|
|
void setPresentSessionFee()
|
|
|
{
|
|
@@ -1470,7 +1492,7 @@ void setPresentSessionFee()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Parking Fee ] ( WEB PAGE )
|
|
|
+// SETTING CONTENT [PARKING FEE] WEB PAGE
|
|
|
//=======================================
|
|
|
void setPresentParkingFee()
|
|
|
{
|
|
@@ -1486,7 +1508,7 @@ void setPresentParkingFee()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Getting [ Final cost ] ( WEB PAGE )
|
|
|
+// GETTING VALUE [FINAL COST] WEB PAGE
|
|
|
//=======================================
|
|
|
float getPresentFinalCost(uint8_t gun_index)
|
|
|
{
|
|
@@ -2021,24 +2043,24 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting QRCODE icon status
|
|
|
+// SETTING CONTENT [QR CODE CUSTOMIZED]
|
|
|
//=======================================
|
|
|
void setQRCodeIcon()
|
|
|
{
|
|
|
- uint8_t length = 0;
|
|
|
+ int LENGTH = 0;
|
|
|
|
|
|
if(ShmSysConfigAndInfo->SysConfig.isQRCode == ON)
|
|
|
{
|
|
|
setDisplayValue(ICON_QR_CODE,QRCODE_ENABLE);
|
|
|
if(ShmSysConfigAndInfo->SysConfig.QRCodeMadeMode == NO)
|
|
|
{
|
|
|
- length = strlen((char *)ShmSysConfigAndInfo->SysConfig.SystemId);
|
|
|
- setQRcodeContent((char *)ShmSysConfigAndInfo->SysConfig.SystemId, length, QRCODE_FOR_IDLE);
|
|
|
+ LENGTH = strlen((char *)ShmSysConfigAndInfo->SysConfig.SystemId);
|
|
|
+ setQRcodeContent((char *)ShmSysConfigAndInfo->SysConfig.SystemId, LENGTH, QRCODE_FOR_IDLE);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- length = strlen((char *)ShmSysConfigAndInfo->SysConfig.QRCodeContent);
|
|
|
- setQRcodeContent((char *)ShmSysConfigAndInfo->SysConfig.QRCodeContent, length, QRCODE_FOR_IDLE);
|
|
|
+ LENGTH = strlen((char *)ShmSysConfigAndInfo->SysConfig.QRCodeContent);
|
|
|
+ setQRcodeContent((char *)ShmSysConfigAndInfo->SysConfig.QRCodeContent, LENGTH, QRCODE_FOR_IDLE);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -2049,62 +2071,79 @@ void setQRCodeIcon()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting QRCODE icon for receipt
|
|
|
+// SETTING CONTENT [QR CODE RECEIPT]
|
|
|
//=======================================
|
|
|
void setQRCodeReceipt(uint8_t gun_index)
|
|
|
{
|
|
|
- uint8_t length = 0;
|
|
|
- uint8_t data[512];
|
|
|
- int TransactionId;
|
|
|
- unsigned char QRCodeContent[512];
|
|
|
- unsigned char QRCodeReceipt[512];
|
|
|
+ int LENGTH = 0;
|
|
|
+ int TRANSACTION_ID;
|
|
|
+ uint8_t DISPLAY_DATA[512];
|
|
|
+ uint8_t QR_CODE_CONTENT[512];
|
|
|
+ uint8_t QR_CODE_RECEIPT[512];
|
|
|
|
|
|
- memset(QRCodeContent, 0x00, ARRAY_SIZE(QRCodeContent));
|
|
|
- memset(QRCodeReceipt, 0x00, ARRAY_SIZE(QRCodeReceipt));
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(QR_CODE_CONTENT, 0x00, ARRAY_SIZE(QR_CODE_CONTENT));
|
|
|
+ memset(QR_CODE_RECEIPT, 0x00, ARRAY_SIZE(QR_CODE_RECEIPT));
|
|
|
|
|
|
- memcpy((char*)QRCodeContent, (char*)ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL));
|
|
|
if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
{
|
|
|
- TransactionId = ShmOCPP16Data->StopTransaction[gun_index].TransactionId;
|
|
|
+ if((strcmp((char *)ShmOCPP16Data->Cost.FinalCost[gun_index].qrCodeText,"") != 0))
|
|
|
+ {
|
|
|
+ // QR CODE RECEIPT FOR CDFA 2.0 STRUCTURE
|
|
|
+ memcpy((char*)QR_CODE_CONTENT, (char*)ShmOCPP16Data->Cost.FinalCost[gun_index].qrCodeText, ARRAY_SIZE(QR_CODE_CONTENT));
|
|
|
+ sprintf((char *)QR_CODE_RECEIPT, "%s", QR_CODE_CONTENT);
|
|
|
+ string2ByteArray(QR_CODE_RECEIPT, DISPLAY_DATA);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if((strcmp((char *)ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL,"") != 0))
|
|
|
+ {
|
|
|
+ // QR CODE RECEIPT FOR CDFA 1.0 STRUCTURE
|
|
|
+ memcpy((char*)QR_CODE_CONTENT, (char*)ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL, ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.OcppReceiptrURL));
|
|
|
+ TRANSACTION_ID = ShmOCPP16Data->StopTransaction[gun_index].TransactionId;
|
|
|
+ sprintf((char *)QR_CODE_RECEIPT, "%s%d", QR_CODE_CONTENT,TRANSACTION_ID);
|
|
|
+ string2ByteArray(QR_CODE_RECEIPT, DISPLAY_DATA);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {}
|
|
|
+ }
|
|
|
}
|
|
|
else if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_20)
|
|
|
{
|
|
|
// TO DO OCPP 2.0
|
|
|
}
|
|
|
+ else
|
|
|
+ {}
|
|
|
|
|
|
- sprintf((char *)QRCodeReceipt, "%s%d", QRCodeContent,TransactionId);
|
|
|
- string2ByteArray(QRCodeReceipt, data);
|
|
|
-
|
|
|
- length = strlen((char *)data);
|
|
|
- setQRcodeContent((char *)data, length, QRCODE_FOR_COMPLETE);
|
|
|
+ LENGTH = strlen((char *)DISPLAY_DATA);
|
|
|
+ setQRcodeContent((char *)DISPLAY_DATA, LENGTH, QRCODE_FOR_COMPLETE);
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting QRCODE for alarm
|
|
|
+// SETTING CONTENT [QR CODE ALARM]
|
|
|
//=======================================
|
|
|
void setQRCodeAlarm()
|
|
|
{
|
|
|
- uint8_t length = 0;
|
|
|
- uint8_t data[512];
|
|
|
- unsigned char QRCodeAlarm[512];
|
|
|
+ int LENGTH = 0;
|
|
|
+ uint8_t DISPLAY_DATA[512];
|
|
|
+ uint8_t QR_CODE_ALARM[512];
|
|
|
|
|
|
- memset(QRCodeAlarm, 0x00, ARRAY_SIZE(QRCodeAlarm));
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(QR_CODE_ALARM, 0x00, ARRAY_SIZE(QR_CODE_ALARM));
|
|
|
|
|
|
- sprintf((char *)QRCodeAlarm, "%s", "https://evsc.phihong.com.tw/");
|
|
|
- string2ByteArray(QRCodeAlarm, data);
|
|
|
- length = strlen((char *)data);
|
|
|
- setQRcodeContent((char *)data, length, QRCODE_FOR_ALARM);
|
|
|
+ sprintf((char *)QR_CODE_ALARM, "%s", "https://evsc.phihong.com.tw/");
|
|
|
+ string2ByteArray(QR_CODE_ALARM, DISPLAY_DATA);
|
|
|
+ LENGTH = strlen((char *)DISPLAY_DATA);
|
|
|
+ setQRcodeContent((char *)DISPLAY_DATA, LENGTH, QRCODE_FOR_ALARM);
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting QR code content
|
|
|
+// SETTING CONTENT [QR CODE]
|
|
|
//=======================================
|
|
|
-void setQRcodeContent(char *input, uint8_t length, uint8_t mode)
|
|
|
+void setQRcodeContent(char *input, int length, uint8_t mode)
|
|
|
{
|
|
|
- uint8_t output[length];
|
|
|
int loop = 0;
|
|
|
+ uint8_t output[length];
|
|
|
|
|
|
input[length] = '\0';
|
|
|
output[length] = '\0';
|
|
@@ -2133,7 +2172,7 @@ void setQRcodeContent(char *input, uint8_t length, uint8_t mode)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting warning page switch
|
|
|
+// SETTING SWITCH [WARNING PAGE]
|
|
|
//=======================================
|
|
|
void setWarningStatus(uint8_t gun_index)
|
|
|
{
|
|
@@ -2165,7 +2204,7 @@ void setWarningStatus(uint8_t gun_index)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting alarm code and icon status
|
|
|
+// SETTING ICON [ALARM CODE]
|
|
|
//=======================================
|
|
|
void setAlarmCodeAndIcon()
|
|
|
{
|
|
@@ -2201,7 +2240,7 @@ void setAlarmCodeAndIcon()
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting connection icon animation
|
|
|
+// SETTING ANIMATION CONNECTION
|
|
|
//=======================================
|
|
|
void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
@@ -2218,7 +2257,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
else if((CONNECTION_LEVEL_STATUS == CONNECTION_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_CONNECTION]) > (TIME_ANIMATION_CONNECTION*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
- CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
+ CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_CONNECTION]);
|
|
|
}
|
|
|
}
|
|
@@ -2234,7 +2273,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
|
setDisplayValue(ICON_PREPARING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
- CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
+ CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_CONNECTION]);
|
|
|
}
|
|
|
}
|
|
@@ -2251,7 +2290,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
else if((CONNECTION_LEVEL_STATUS == CONNECTION_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_CONNECTION]) > (TIME_ANIMATION_CONNECTION*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
- CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
+ CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_CONNECTION]);
|
|
|
}
|
|
|
}
|
|
@@ -2265,7 +2304,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
else if((CONNECTION_LEVEL_STATUS == CONNECTION_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_CONNECTION]) > (TIME_ANIMATION_CONNECTION*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_PREPARING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
- CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
+ CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_CONNECTION]);
|
|
|
}
|
|
|
}
|
|
@@ -2280,7 +2319,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
else if((CONNECTION_LEVEL_STATUS == CONNECTION_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_CONNECTION]) > (TIME_ANIMATION_CONNECTION*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_ANIMATION, CONNECTION_FLASHING_2);
|
|
|
- CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
+ CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_CONNECTION]);
|
|
|
}
|
|
|
break;
|
|
@@ -2292,7 +2331,7 @@ void setConnectionAnimation(uint8_t gun_index, uint8_t system_mode)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Gun Plug-in ] Animation
|
|
|
+// SETTING ANIMATION [CONNECTOR PLUG-IN]
|
|
|
//=======================================
|
|
|
void setGunPluginAnimation(uint8_t gun_index)
|
|
|
{
|
|
@@ -2312,14 +2351,14 @@ void setGunPluginAnimation(uint8_t gun_index)
|
|
|
else if((GUN_PLUGING_LEVEL_STATUS == GUN_PLUGING_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_PLUGIN]) > (TIME_ANIMATION_PLUGIN*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_PREPARING_PLUG_ARROW, PLUGIN_ARROW_2);
|
|
|
- GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
+ GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PLUGIN]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Plug & Charge ] Animation
|
|
|
+// SETTING ANIMATION [PLUG & CHARGE]
|
|
|
//=======================================
|
|
|
void setPlugAndChargeAnimation(uint8_t gun_index)
|
|
|
{
|
|
@@ -2331,13 +2370,13 @@ void setPlugAndChargeAnimation(uint8_t gun_index)
|
|
|
else if((GUN_PLUGING_LEVEL_STATUS == GUN_PLUGING_LEVEL_1) && (getDiffSecNow(startTime[gun_index][TMR_IDX_PLUGIN]) > (TIME_ANIMATION_PLUGIN*2)))
|
|
|
{
|
|
|
setDisplayValue(ICON_PLUG_AND_CHARGE_ARROW, PLUGIN_ARROW_2);
|
|
|
- GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
+ GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PLUGIN]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting [ Press Start ] Animation
|
|
|
+// SETTING ANIMATION [PRESS START BUTTON]
|
|
|
//=======================================
|
|
|
void setPressStartButtonAnimation(uint8_t gun_index)
|
|
|
{
|
|
@@ -2355,141 +2394,141 @@ void setPressStartButtonAnimation(uint8_t gun_index)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting Connection Timeout
|
|
|
+// SETTING CONNECTION TIMEOUT
|
|
|
//=======================================
|
|
|
void setPresentConnectionTimeout(uint8_t gun_index)
|
|
|
{
|
|
|
- int time;
|
|
|
- uint8_t data[16];
|
|
|
- uint8_t conntectionTimeout[16];
|
|
|
- unsigned char not_counting[16];
|
|
|
+ int TIME;
|
|
|
+ uint8_t DISPLAY_DATA[16];
|
|
|
+ uint8_t CONNECTION_TIMEOUT[16];
|
|
|
+ unsigned char NOT_COUNTING[16];
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(conntectionTimeout, 0x00, ARRAY_SIZE(conntectionTimeout));
|
|
|
- memset(not_counting, 0x00, ARRAY_SIZE(not_counting));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(CONNECTION_TIMEOUT, 0x00, ARRAY_SIZE(CONNECTION_TIMEOUT));
|
|
|
+ memset(NOT_COUNTING, 0x00, ARRAY_SIZE(NOT_COUNTING));
|
|
|
|
|
|
if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_B) ||
|
|
|
(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_C) ||
|
|
|
(ShmCharger->gun_info[gun_index].primaryMcuState.socket_e.isSocketEPinOn == ON))
|
|
|
{
|
|
|
- strcpy((char*)not_counting, "-----");
|
|
|
- string2ByteArray(not_counting, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, data, ARRAY_SIZE(data));
|
|
|
+ strcpy((char*)NOT_COUNTING, "-----");
|
|
|
+ string2ByteArray(NOT_COUNTING, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if((ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A))
|
|
|
{
|
|
|
- time = ShmCharger->timeoutSpec.Handshake_Timeout;
|
|
|
- if(time <= 0)
|
|
|
+ TIME = ShmCharger->timeoutSpec.Handshake_Timeout;
|
|
|
+ if(TIME <= 0)
|
|
|
{
|
|
|
- strcpy((char*)not_counting, "000");
|
|
|
- string2ByteArray(not_counting, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, data, ARRAY_SIZE(data));
|
|
|
+ strcpy((char*)NOT_COUNTING, "000");
|
|
|
+ string2ByteArray(NOT_COUNTING, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- sprintf((char *)conntectionTimeout, "%03d ", time);
|
|
|
- string2ByteArray(conntectionTimeout, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)CONNECTION_TIMEOUT, "%03d ", TIME);
|
|
|
+ string2ByteArray(CONNECTION_TIMEOUT, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- strcpy((char*)not_counting, "-----");
|
|
|
- string2ByteArray(not_counting, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, data, ARRAY_SIZE(data));
|
|
|
+ strcpy((char*)NOT_COUNTING, "-----");
|
|
|
+ string2ByteArray(NOT_COUNTING, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PREPARING_CONNECTION_TIMER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting Present Charging [ Power ]
|
|
|
+// SETTING PRESENT [POWER]
|
|
|
//=======================================
|
|
|
void setPresentChargedPower(uint8_t gun_index)
|
|
|
{
|
|
|
- uint8_t data[16];
|
|
|
- uint8_t power[16];
|
|
|
+ uint8_t DISPLAY_DATA[16];
|
|
|
+ uint8_t POWER[16];
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(power, 0x00, ARRAY_SIZE(power));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(POWER, 0x00, ARRAY_SIZE(POWER));
|
|
|
|
|
|
- sprintf((char *)power, "%.2f kW", ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargingPower);
|
|
|
- string2ByteArray(power, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_POWER, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)POWER, "%.2f kW", ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargingPower);
|
|
|
+ string2ByteArray(POWER, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_POWER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting Present Charging [ Energy ]
|
|
|
+// SETTING PRESENT [ENERGY]
|
|
|
//=======================================
|
|
|
void setPresentChargedEnergy(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
|
- uint8_t data[16];
|
|
|
- uint8_t energy[16];
|
|
|
+ uint8_t DISPLAY_DATA[16];
|
|
|
+ uint8_t ENERGY[16];
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(energy, 0x00, ARRAY_SIZE(energy));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(ENERGY, 0x00, ARRAY_SIZE(ENERGY));
|
|
|
|
|
|
switch(system_mode)
|
|
|
{
|
|
|
case SYS_MODE_PREPARING:
|
|
|
- sprintf((char *)energy, "%s kWh", "0.0000");
|
|
|
- string2ByteArray(energy, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_ENERGY, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)ENERGY, "%s kWh", "0.0000");
|
|
|
+ string2ByteArray(ENERGY, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_ENERGY, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
break;
|
|
|
case SYS_MODE_CHARGING:
|
|
|
case SYS_MODE_TERMINATING:
|
|
|
case SYS_MODE_COMPLETE:
|
|
|
default:
|
|
|
- sprintf((char *)energy, "%.4f kWh", ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy);
|
|
|
- string2ByteArray(energy, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_ENERGY, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)ENERGY, "%.4f kWh", ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy);
|
|
|
+ string2ByteArray(ENERGY, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_ENERGY, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting Present Charging [ Duration ]
|
|
|
+// SETTING PRESENT [DURATION]
|
|
|
//=======================================
|
|
|
void setPresentChargedDuration(uint8_t gun_index)
|
|
|
{
|
|
|
- uint8_t data[16];
|
|
|
- uint8_t time[16];
|
|
|
- uint16_t hour;
|
|
|
- uint16_t minute;
|
|
|
- uint16_t second;
|
|
|
- uint32_t PresentChargedDuration = ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedDuration;
|
|
|
+ uint8_t DISPLAY_DATA[16];
|
|
|
+ uint8_t TIME[16];
|
|
|
+ uint16_t HOUR;
|
|
|
+ uint16_t MINUTE;
|
|
|
+ uint16_t SECOND;
|
|
|
+ uint32_t PRESENT_CHARGED_DURATION = ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedDuration;
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(time, 0x00, ARRAY_SIZE(time));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(TIME, 0x00, ARRAY_SIZE(TIME));
|
|
|
|
|
|
- hour = (PresentChargedDuration / 3600);
|
|
|
- minute = (PresentChargedDuration - (3600 * hour)) / 60;
|
|
|
- second = (PresentChargedDuration - (3600 * hour) - (minute * 60));
|
|
|
+ HOUR = (PRESENT_CHARGED_DURATION / 3600);
|
|
|
+ MINUTE = (PRESENT_CHARGED_DURATION - (3600 * HOUR)) / 60;
|
|
|
+ SECOND = (PRESENT_CHARGED_DURATION - (3600 * HOUR) - (MINUTE * 60));
|
|
|
|
|
|
- sprintf((char *)time, "%02d:%02d:%02d", hour, minute, second);
|
|
|
- string2ByteArray(time, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TIMER, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)TIME, "%02d:%02d:%02d", HOUR, MINUTE, SECOND);
|
|
|
+ string2ByteArray(TIME, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TIMER, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting Present [ Power Consumption ]
|
|
|
+// SETTING PRESENT [POWER CONSUMPTION]
|
|
|
//=======================================
|
|
|
void setPresentPowerConsumption(uint8_t gun_index)
|
|
|
{
|
|
|
- uint8_t data[32];
|
|
|
- uint8_t powerConsumption[32];
|
|
|
+ uint8_t DISPLAY_DATA[32];
|
|
|
+ uint8_t POWER_CONSUMPTION[32];
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(powerConsumption, 0x00, ARRAY_SIZE(powerConsumption));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(POWER_CONSUMPTION, 0x00, ARRAY_SIZE(POWER_CONSUMPTION));
|
|
|
|
|
|
- sprintf((char *)powerConsumption, "%.4f kWh", ((float)ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0));
|
|
|
- string2ByteArray(powerConsumption, data);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_POWER_CONSUMPTION, data, ARRAY_SIZE(data));
|
|
|
+ sprintf((char *)POWER_CONSUMPTION, "%.4f kWh", ((float)ShmCharger->gun_info[gun_index].powerConsumptionTotal.power_consumption/10000.0));
|
|
|
+ string2ByteArray(POWER_CONSUMPTION, DISPLAY_DATA);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_POWER_CONSUMPTION, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting authorization page
|
|
|
+// SETTING AUTHORIZATION PAGE
|
|
|
//=======================================
|
|
|
void setAuthorizationPage(uint8_t gun_index)
|
|
|
{
|
|
@@ -2527,7 +2566,7 @@ void setAuthorizationPage(uint8_t gun_index)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting default values
|
|
|
+// SETTING DEFAULT VALUE
|
|
|
//=======================================
|
|
|
void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
@@ -2543,6 +2582,7 @@ void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
setSessionFeeTitle(ON);
|
|
|
setParkingFeeTitle(ON);
|
|
|
setFinalCostTitle(ON);
|
|
|
+
|
|
|
if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
|
|
|
{
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_1);
|
|
@@ -2619,24 +2659,24 @@ void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Setting text to empty
|
|
|
+// SETTING CONTENT EMPTY
|
|
|
//=======================================
|
|
|
void setTextToEmpty(uint8_t gun_index)
|
|
|
{
|
|
|
- uint8_t data[16];
|
|
|
- uint8_t text_empty[16];
|
|
|
+ uint8_t DISPLAY_DATA[16];
|
|
|
+ uint8_t TEXT_DATA[16];
|
|
|
|
|
|
- memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
- memset(text_empty, 0x00, ARRAY_SIZE(text_empty));
|
|
|
+ memset(DISPLAY_DATA, 0x00, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ memset(TEXT_DATA, 0x00, ARRAY_SIZE(TEXT_DATA));
|
|
|
|
|
|
- strcpy((char*)text_empty, " ");
|
|
|
- string2ByteArray(text_empty, data);
|
|
|
+ strcpy((char*)TEXT_DATA, " ");
|
|
|
+ string2ByteArray(TEXT_DATA, DISPLAY_DATA);
|
|
|
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TOTAL_COST, data, ARRAY_SIZE(data));
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_SESSION_FEE, data, ARRAY_SIZE(data));
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, data, ARRAY_SIZE(data));
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_USER_ACCOUNT_BALANCE, data, ARRAY_SIZE(data));
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_REMAINING_ACCOUNT_BALANCE, data, ARRAY_SIZE(data));
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TOTAL_COST, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_SESSION_FEE, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_USER_ACCOUNT_BALANCE, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_REMAINING_ACCOUNT_BALANCE, DISPLAY_DATA, ARRAY_SIZE(DISPLAY_DATA));
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
@@ -2686,7 +2726,7 @@ void setMarqueeControl(uint16_t address, uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
//=======================================
|
|
|
-// Checking model name for setting title
|
|
|
+// SETTING TITLE [BY MODEL NAME]
|
|
|
//=======================================
|
|
|
int isAmericaType()
|
|
|
{
|