|
@@ -2,7 +2,7 @@
|
|
|
* Module_LcmControl.c
|
|
|
*
|
|
|
* Created on : 2020-10-20
|
|
|
- * Update on : 2022-01-17
|
|
|
+ * Update on : 2022-03-01
|
|
|
* Author : Folus Wen, Eason Yang
|
|
|
* Version : V0.27
|
|
|
*
|
|
@@ -42,6 +42,7 @@ void setQRCodeIcon();
|
|
|
void setBackendIcon();
|
|
|
void setQRCodeAlarm();
|
|
|
void setEthernetIcon();
|
|
|
+void setCsuRootFsFwRev();
|
|
|
uint8_t getCurrentPage();
|
|
|
void setAlarmCodeAndIcon();
|
|
|
void setPresentSessionFee();
|
|
@@ -49,9 +50,13 @@ void setPresentParkingFee();
|
|
|
void setBillingFromWebsite();
|
|
|
int isEthConnected(char *eth);
|
|
|
void setUserPrice(uint8_t type);
|
|
|
+void setTimeTitle(uint8_t isOn);
|
|
|
+void setEnergyTitle(uint8_t isOn);
|
|
|
void setCurrentPage(uint8_t page);
|
|
|
-void setDefaultPrice(uint8_t type);
|
|
|
void setPresentFinalCost(float cost);
|
|
|
+void setFinalCostTitle(uint8_t isOn);
|
|
|
+void setSessionFeeTitle(uint8_t isOn);
|
|
|
+void setParkingFeeTitle(uint8_t isOn);
|
|
|
void setTextToEmpty(uint8_t gun_index);
|
|
|
void setWarningStatus(uint8_t gun_index);
|
|
|
void setQRCodeReceipt(uint8_t gun_index);
|
|
@@ -67,6 +72,7 @@ void setPresentPowerConsumption(uint8_t gun_index);
|
|
|
void setFinalCost(uint8_t gun_index, uint8_t type);
|
|
|
void setPresentConnectionTimeout(uint8_t gun_index);
|
|
|
void setRunningCost(uint8_t gun_index, uint8_t type);
|
|
|
+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);
|
|
@@ -75,7 +81,6 @@ 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);
|
|
|
void setMarqueeControl(uint16_t address, uint8_t gun_index, uint8_t type);
|
|
|
-void setCurrencyAndUnitFromBackend(uint8_t type_price,uint8_t type_currency_unit, uint8_t gun_index);
|
|
|
|
|
|
|
|
|
|
|
@@ -88,7 +93,7 @@ enum TMR_IDX
|
|
|
TMR_IDX_ALARM,
|
|
|
TMR_IDX_PRICE,
|
|
|
TMR_IDX_REFRESH_INFO,
|
|
|
- TMR_IDX_6,
|
|
|
+ TMR_IDX_STARTBUTTON,
|
|
|
TMR_IDX_7,
|
|
|
TMR_IDX_8,
|
|
|
TMR_IDX_SHOW_AUTH_RESULT
|
|
@@ -99,6 +104,7 @@ struct timespec startTime[AC_QUANTITY][TMR_IDX_SHOW_AUTH_RESULT];
|
|
|
#define TIME_ANIMATION_PLUGIN 1
|
|
|
#define TIME_ANIMATION_BATTERY 1
|
|
|
#define TIME_ANIMATION_CONNECTION 1
|
|
|
+#define TIME_ANIMATION_START_PRESS 1
|
|
|
#define TIME_ANIMATION_ALARM 5
|
|
|
#define TIME_REFRESH_TIME 5
|
|
|
#define TIME_AUTH_RESULT_TIME 5
|
|
@@ -111,6 +117,7 @@ struct timespec startTime[AC_QUANTITY][TMR_IDX_SHOW_AUTH_RESULT];
|
|
|
|
|
|
uint8_t CONNECTION_LEVEL_STATUS = CONNECTION_LEVEL_0;
|
|
|
uint8_t GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
+uint8_t START_PRESS_LEVEL_STATIS = PRESS_START_LEVEL_0;
|
|
|
uint8_t WarningCount = 255;
|
|
|
|
|
|
int Uart1Fd;
|
|
@@ -118,7 +125,7 @@ int Uart1Fd;
|
|
|
|
|
|
|
|
|
|
|
|
-char *FIRMWARE_UPDATE_IMAGE[3] = {"V0.27", "2022-01-17", "REV.03.00"};
|
|
|
+char *FIRMWARE_UPDATE_IMAGE[3] = {"V0.27", "2022-03-01", "REV.03.00"};
|
|
|
|
|
|
|
|
|
|
|
@@ -294,7 +301,12 @@ void getDateTimeString(char* result)
|
|
|
|
|
|
tmTarget = gmtime(&tbTarget.time);
|
|
|
|
|
|
- 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
|
|
|
+ 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."));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -354,9 +366,13 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
|
|
|
if((getCurrentPage() != SYSTEM_SCREEN_SLEEP))
|
|
|
{
|
|
|
setCurrentPage(SYSTEM_SCREEN_SLEEP);
|
|
|
+ setPressStartButtonAnimation(gun_index);
|
|
|
+ START_PRESS_LEVEL_STATIS = PRESS_START_LEVEL_0;
|
|
|
}
|
|
|
else
|
|
|
- {}
|
|
|
+ {
|
|
|
+ setPressStartButtonAnimation(gun_index);
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -365,6 +381,7 @@ void page_idle(uint8_t gun_index, uint8_t system_mode)
|
|
|
setCurrentPage(SYSTEM_SCREEN_POWER_CONSUMPTION);
|
|
|
setDisplayValue(ICON_POWER_CONSUMPTION, APPEAR);
|
|
|
setPresentPowerConsumption(gun_index);
|
|
|
+ setCsuRootFsFwRev();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -480,6 +497,38 @@ void page_charging(uint8_t gun_index, uint8_t system_mode)
|
|
|
setPresentChargedDuration(gun_index);
|
|
|
setPresentChargedgPower(gun_index);
|
|
|
|
|
|
+ if((ShmSysConfigAndInfo->SysInfo.OcppConnStatus == ON))
|
|
|
+ {
|
|
|
+ if(ShmSysConfigAndInfo->SysInfo.OcppRunningVer == OCPP_RUNNING_VERSION_16)
|
|
|
+ {
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(ShmSysConfigAndInfo->SysConfig.BillingData.isBilling == ON)
|
|
|
+ {
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ setSessionFeeTitle(OFF);
|
|
|
+ setParkingFeeTitle(OFF);
|
|
|
+ setFinalCostTitle(OFF);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if((getDiffSecNow(startTime[gun_index][TMR_IDX_REFRESH_INFO]) >= TIME_REFRESH_INFO) || (strcmp((char*)ShmOCPP16Data->Cost.RunningCost[gun_index].description, runningCost) != 0))
|
|
|
{
|
|
|
setPresentChargedEnergy(gun_index, system_mode);
|
|
@@ -572,7 +621,11 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
setFinalCost(gun_index, SESSION_FEE);
|
|
|
setFinalCost(gun_index, OCCUPANCY_FEE);
|
|
|
setFinalCost(gun_index, ACCOUNT_BALANCE);
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -593,6 +646,11 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
|
|
|
setDisplayValue(ICON_COMPLETE_WALLET, DISAPPEAR);
|
|
|
setDisplayValue(TEXT_REMAINING_ACCOUNT_BALANCE, DISAPPEAR);
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -611,6 +669,11 @@ void page_complete(uint8_t gun_index, uint8_t system_mode)
|
|
|
|
|
|
setDisplayValue(ICON_COMPLETE_WALLET, DISAPPEAR);
|
|
|
setDisplayValue(TEXT_REMAINING_ACCOUNT_BALANCE, DISAPPEAR);
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(OFF);
|
|
|
+ setParkingFeeTitle(OFF);
|
|
|
+ setFinalCostTitle(OFF);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -636,6 +699,11 @@ void page_terminating(uint8_t gun_index, uint8_t system_mode)
|
|
|
setRunningCost(gun_index, TOTAL_COST);
|
|
|
setRunningCost(gun_index, SESSION_FEE);
|
|
|
setRunningCost(gun_index, OCCUPANCY_FEE);
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -653,6 +721,11 @@ void page_terminating(uint8_t gun_index, uint8_t system_mode)
|
|
|
setPresentFinalCost(getPresentFinalCost(gun_index));
|
|
|
|
|
|
setPresentParkingFee();
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -671,6 +744,11 @@ void page_terminating(uint8_t gun_index, uint8_t system_mode)
|
|
|
|
|
|
setDisplayValue(ICON_COMPLETE_WALLET, DISAPPEAR);
|
|
|
setDisplayValue(TEXT_REMAINING_ACCOUNT_BALANCE, DISAPPEAR);
|
|
|
+
|
|
|
+
|
|
|
+ setSessionFeeTitle(OFF);
|
|
|
+ setParkingFeeTitle(OFF);
|
|
|
+ setFinalCostTitle(OFF);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1165,7 +1243,7 @@ void setPresentFinalCost(float cost)
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
memset(finalCost, 0x00, ARRAY_SIZE(finalCost));
|
|
|
|
|
|
- sprintf((char *)finalCost, "%.2f", cost);
|
|
|
+ sprintf((char *)finalCost, "$ %.2f", cost);
|
|
|
string2ByteArray(finalCost, data);
|
|
|
|
|
|
|
|
@@ -1186,7 +1264,7 @@ void setPresentSessionFee()
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
memset(sessionFee, 0x00, ARRAY_SIZE(sessionFee));
|
|
|
|
|
|
- strcpy((char*)sessionFee, "-----");
|
|
|
+ strcpy((char*)sessionFee, "$ -----");
|
|
|
string2ByteArray(sessionFee, data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_SESSION_FEE, data, ARRAY_SIZE(data));
|
|
|
}
|
|
@@ -1202,7 +1280,7 @@ void setPresentParkingFee()
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
memset(parkingFee, 0x00, ARRAY_SIZE(parkingFee));
|
|
|
|
|
|
- strcpy((char*)parkingFee, "-----");
|
|
|
+ strcpy((char*)parkingFee, "$ -----");
|
|
|
string2ByteArray(parkingFee, data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, data, ARRAY_SIZE(data));
|
|
|
}
|
|
@@ -1361,54 +1439,6 @@ void setUserPrice(uint8_t type)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-void setDefaultPrice(uint8_t type)
|
|
|
-{
|
|
|
- uint8_t length;
|
|
|
- uint8_t output_data[32];
|
|
|
- char input_data[32];
|
|
|
- char tmp[256];
|
|
|
- char *splitString[10];
|
|
|
- const char *Symbol = ";";
|
|
|
-
|
|
|
- memset(tmp, 0, ARRAY_SIZE(tmp));
|
|
|
- memset(input_data, 0x00, ARRAY_SIZE(input_data));
|
|
|
- memset(output_data, 0x00, ARRAY_SIZE(output_data));
|
|
|
-
|
|
|
- switch(type)
|
|
|
- {
|
|
|
- case CONNECTION_FEE:
|
|
|
- break;
|
|
|
- case CURRENT_RATE:
|
|
|
- if(strstr((char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData, "Current Rate:") > 0)
|
|
|
- {
|
|
|
-
|
|
|
- setDisplayValue(ICON_PRICE, APPEAR);
|
|
|
-
|
|
|
-
|
|
|
- strcpy((char*)tmp,(char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData);
|
|
|
- split((char**)splitString, tmp, Symbol);
|
|
|
- memcpy(input_data, splitString[1], strlen(splitString[1]));
|
|
|
- length = strlen(input_data);
|
|
|
- trim_string(input_data,length);
|
|
|
- memcpy(output_data ,input_data, strlen(input_data));
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_PRICE, output_data, ARRAY_SIZE(output_data));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- setDisplayValue(TEXT_PRICE, DISAPPEAR);
|
|
|
- setDisplayValue(ICON_PRICE, DISAPPEAR);
|
|
|
- }
|
|
|
- break;
|
|
|
- case OCCUPANCY_FEE:
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -1437,7 +1467,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_SESSION_FEE, APPEAR);
|
|
|
|
|
|
- strcpy((char*)session_empty, "-----");
|
|
|
+ strcpy((char*)session_empty, "$ -----");
|
|
|
string2ByteArray(session_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_SESSION_FEE, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1454,9 +1484,9 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if(chargingCost> 0)
|
|
|
- sprintf((char*)output_data, "%.2f", chargingCost);
|
|
|
+ sprintf((char*)output_data, "$ %.2f", chargingCost);
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_SESSION_FEE, APPEAR);
|
|
@@ -1471,7 +1501,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_PARKING_FEE, APPEAR);
|
|
|
|
|
|
- strcpy((char*)occupancy_empty, "-----");
|
|
|
+ strcpy((char*)occupancy_empty, "$ -----");
|
|
|
string2ByteArray(occupancy_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1488,9 +1518,9 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if(parkingCost > 0)
|
|
|
- sprintf((char*)output_data, "%.2f", parkingCost);
|
|
|
+ sprintf((char*)output_data, "$ %.2f", parkingCost);
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_PARKING_FEE, APPEAR);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, output_data, ARRAY_SIZE(output_data));
|
|
@@ -1503,7 +1533,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_TOTAL_COST, APPEAR);
|
|
|
|
|
|
- strcpy((char*)cost_empty, "-----");
|
|
|
+ strcpy((char*)cost_empty, "$ -----");
|
|
|
string2ByteArray(cost_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TOTAL_COST, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1526,9 +1556,9 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if((chargingCost + parkingCost) > 0)
|
|
|
- sprintf((char*)output_data, "%.2f", (chargingCost + parkingCost));
|
|
|
+ sprintf((char*)output_data, "$ %.2f", (chargingCost + parkingCost));
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_TOTAL_COST, APPEAR);
|
|
@@ -1542,7 +1572,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_COMPLETE_WALLET, APPEAR);
|
|
|
|
|
|
- strcpy((char*)balance_empty, "-----");
|
|
|
+ strcpy((char*)balance_empty, "$ -----");
|
|
|
string2ByteArray(balance_empty, output_data);
|
|
|
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_REMAINING_ACCOUNT_BALANCE, output_data, ARRAY_SIZE(output_data));
|
|
@@ -1560,9 +1590,9 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if(accountBalance > 0)
|
|
|
- sprintf((char*)output_data, "%.2f", accountBalance);
|
|
|
+ sprintf((char*)output_data, "$ %.2f", accountBalance);
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
|
|
|
|
|
@@ -1602,7 +1632,7 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_SESSION_FEE, APPEAR);
|
|
|
|
|
|
- strcpy((char*)session_empty, "-----");
|
|
|
+ strcpy((char*)session_empty, "$ -----");
|
|
|
string2ByteArray(session_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_SESSION_FEE, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1619,9 +1649,9 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if(chargingCost> 0)
|
|
|
- sprintf((char*)output_data, "%.2f", chargingCost);
|
|
|
+ sprintf((char*)output_data, "$ %.2f", chargingCost);
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_SESSION_FEE, APPEAR);
|
|
@@ -1636,7 +1666,7 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_PARKING_FEE, APPEAR);
|
|
|
|
|
|
- strcpy((char*)occupancy_empty, "-----");
|
|
|
+ strcpy((char*)occupancy_empty, "$ -----");
|
|
|
string2ByteArray(occupancy_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1653,9 +1683,9 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if(parkingCost > 0)
|
|
|
- sprintf((char*)output_data, "%.2f", parkingCost);
|
|
|
+ sprintf((char*)output_data, "$ %.2f", parkingCost);
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_PARKING_FEE, APPEAR);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_PARKING_FEE, output_data, ARRAY_SIZE(output_data));
|
|
@@ -1669,7 +1699,7 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
setDisplayValue(ICON_CHARGING_TOTAL_COST, APPEAR);
|
|
|
|
|
|
- strcpy((char*)cost_empty, "-----");
|
|
|
+ strcpy((char*)cost_empty, "$ -----");
|
|
|
string2ByteArray(cost_empty, output_data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CHARGING_TOTAL_COST, output_data, ARRAY_SIZE(output_data));
|
|
|
}
|
|
@@ -1692,9 +1722,9 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
|
|
|
if((chargingCost + parkingCost) > 0)
|
|
|
- sprintf((char*)output_data, "%.2f", (chargingCost + parkingCost));
|
|
|
+ sprintf((char*)output_data, "$ %.2f", (chargingCost + parkingCost));
|
|
|
else
|
|
|
- sprintf((char*)output_data, "-----");
|
|
|
+ sprintf((char*)output_data, "$ -----");
|
|
|
|
|
|
|
|
|
setDisplayValue(ICON_CHARGING_TOTAL_COST, APPEAR);
|
|
@@ -1711,120 +1741,6 @@ void setRunningCost(uint8_t gun_index, uint8_t type)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-void setCurrencyAndUnitFromBackend(uint8_t type_price ,uint8_t type_currency_unit,uint8_t gun_index)
|
|
|
-{
|
|
|
- uint8_t length;
|
|
|
- uint8_t output_data[32];
|
|
|
- char input_data[32];
|
|
|
- char tmp[256];
|
|
|
- char *splitString[10];
|
|
|
- const char *Symbol = ";";
|
|
|
-
|
|
|
- memset(tmp, 0, ARRAY_SIZE(tmp));
|
|
|
- memset(input_data, 0x00, ARRAY_SIZE(input_data));
|
|
|
- memset(output_data, 0x00, ARRAY_SIZE(output_data));
|
|
|
-
|
|
|
- if(type_price == DEFAULE_PRICE)
|
|
|
- {
|
|
|
- switch(type_currency_unit)
|
|
|
- {
|
|
|
- case CONNECTION_FEE:
|
|
|
- break;
|
|
|
- case CURRENT_RATE:
|
|
|
- if(strstr((char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData, "Current Rate:") > 0)
|
|
|
- {
|
|
|
- strcpy((char*)tmp,(char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData);
|
|
|
- split((char**)splitString, tmp, Symbol);
|
|
|
- memcpy(input_data, splitString[1], strlen(splitString[1]));
|
|
|
- length = strlen(input_data);
|
|
|
- memcpy(output_data , input_data+(length-7), 7);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CURRENCY_UNIT, output_data, ARRAY_SIZE(output_data));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- setDisplayValue(TEXT_CURRENCY_UNIT, DISAPPEAR);
|
|
|
- }
|
|
|
- break;
|
|
|
- case OCCUPANCY_FEE:
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(type_price == SET_USER_PRICE)
|
|
|
- {
|
|
|
- switch(type_currency_unit)
|
|
|
- {
|
|
|
- case CONNECTION_FEE:
|
|
|
- break;
|
|
|
- case CURRENT_RATE:
|
|
|
- if(strstr((char *)ShmOCPP16Data->Cost.SetUserPrice.price, "Current Rate:") > 0)
|
|
|
- {
|
|
|
- strcpy((char*)tmp,(char *)ShmOCPP16Data->Cost.SetUserPrice.price);
|
|
|
- split((char**)splitString, tmp, Symbol);
|
|
|
- memcpy(input_data, splitString[1], strlen(splitString[1]));
|
|
|
- length = strlen(input_data);
|
|
|
- memcpy(output_data , input_data+(length-7), 7);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CURRENCY_UNIT, output_data, ARRAY_SIZE(output_data));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- setDisplayValue(TEXT_CURRENCY_UNIT, DISAPPEAR);
|
|
|
- }
|
|
|
- break;
|
|
|
- case OCCUPANCY_FEE:
|
|
|
- break;
|
|
|
- case ACCOUNT_BALANCE:
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else if(type_price == FINAL_COST)
|
|
|
- {
|
|
|
- switch(type_currency_unit)
|
|
|
- {
|
|
|
- case CONNECTION_FEE:
|
|
|
- break;
|
|
|
- case SESSION_FEE:
|
|
|
- break;
|
|
|
- case OCCUPANCY_FEE:
|
|
|
- break;
|
|
|
- case TOTAL_COST:
|
|
|
- break;
|
|
|
- case ACCOUNT_BALANCE:
|
|
|
- if(ShmOCPP16Data->StopTransaction[gun_index].TransactionId != ShmOCPP16Data->Cost.FinalCost[gun_index].txId)
|
|
|
- {
|
|
|
- setDisplayValue(TEXT_USER_CURRENCY, DISAPPEAR);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if((strstr((char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description, "Account Balance:") > 0))
|
|
|
- {
|
|
|
- strcpy((char*)tmp,(char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description);
|
|
|
- split((char**)splitString, tmp, Symbol);
|
|
|
- memcpy(input_data, splitString[4], strlen(splitString[4]));
|
|
|
- length = strlen(input_data);
|
|
|
- memcpy(output_data , input_data+(length-3), 3);
|
|
|
- lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_USER_CURRENCY, output_data, ARRAY_SIZE(output_data));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- setDisplayValue(TEXT_USER_CURRENCY, DISAPPEAR);
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {}
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -1953,7 +1869,7 @@ void setWarningStatus(uint8_t gun_index)
|
|
|
|
|
|
setAlarmCodeAndIcon();
|
|
|
}
|
|
|
- else if(ShmSysConfigAndInfo->SysWarningInfo.WarningCount > 4 && (getDiffSecNow(startTime[gun_index][TMR_IDX_ALARM]) > (TIME_ANIMATION_ALARM)))
|
|
|
+ else if((ShmSysConfigAndInfo->SysWarningInfo.WarningCount > 4) && (getDiffSecNow(startTime[gun_index][TMR_IDX_ALARM]) > (TIME_ANIMATION_ALARM)))
|
|
|
{
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_ALARM]);
|
|
|
if(ShmSysConfigAndInfo->SysWarningInfo.PageIndex == 0)
|
|
@@ -2139,6 +2055,24 @@ void setPlugAndChargeAnimation(uint8_t gun_index)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setPressStartButtonAnimation(uint8_t gun_index)
|
|
|
+{
|
|
|
+ if((START_PRESS_LEVEL_STATIS == PRESS_START_LEVEL_0) && ((getDiffSecNow(startTime[gun_index][TMR_IDX_STARTBUTTON]))> (TIME_ANIMATION_START_PRESS)))
|
|
|
+ {
|
|
|
+ setDisplayValue(ICON_PRESS_START_BUTTON, PRESS_START_1);
|
|
|
+ START_PRESS_LEVEL_STATIS = PRESS_START_LEVEL_1;
|
|
|
+ }
|
|
|
+ else if((START_PRESS_LEVEL_STATIS == PRESS_START_LEVEL_1) && ((getDiffSecNow(startTime[gun_index][TMR_IDX_STARTBUTTON]))> (TIME_ANIMATION_START_PRESS*2)))
|
|
|
+ {
|
|
|
+ setDisplayValue(ICON_PRESS_START_BUTTON, PRESS_START_2);
|
|
|
+ START_PRESS_LEVEL_STATIS = PRESS_START_LEVEL_0;
|
|
|
+ refreshStartTimer(&startTime[gun_index][TMR_IDX_STARTBUTTON]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -2226,7 +2160,7 @@ void setPresentChargedEnergy(uint8_t gun_index, uint8_t system_mode)
|
|
|
case SYS_MODE_TERMINATING:
|
|
|
case SYS_MODE_COMPLETE:
|
|
|
default:
|
|
|
- sprintf((char *)energy, "%.3f0 kWh", ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PresentChargedEnergy);
|
|
|
+ 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));
|
|
|
break;
|
|
@@ -2324,7 +2258,13 @@ void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
case SYS_MODE_BOOTING:
|
|
|
break;
|
|
|
case SYS_MODE_IDLE:
|
|
|
+
|
|
|
setTextToEmpty(gun_index);
|
|
|
+ setTimeTitle(ON);
|
|
|
+ setEnergyTitle(ON);
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
|
|
|
{
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_1);
|
|
@@ -2337,10 +2277,24 @@ void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
GUN_PLUGING_LEVEL_STATUS = GUN_PLUGING_LEVEL_0;
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PLUGIN]);
|
|
|
}
|
|
|
+
|
|
|
break;
|
|
|
case SYS_MODE_AUTHORIZING:
|
|
|
+
|
|
|
+ setTimeTitle(ON);
|
|
|
+ setEnergyTitle(ON);
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
+
|
|
|
break;
|
|
|
case SYS_MODE_PREPARING:
|
|
|
+
|
|
|
+ setTimeTitle(ON);
|
|
|
+ setEnergyTitle(ON);
|
|
|
+ setSessionFeeTitle(ON);
|
|
|
+ setParkingFeeTitle(ON);
|
|
|
+ setFinalCostTitle(ON);
|
|
|
if(ShmCharger->gun_info[gun_index].chargingMode == CHARGING_MODE_HLC)
|
|
|
{
|
|
|
setDisplayValue(ICON_PRECHARGING_ANIMATION, CONNECTION_FLASHING_1);
|
|
@@ -2355,6 +2309,7 @@ void setDefaultValue(uint8_t gun_index, uint8_t system_mode)
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_PLUGIN]);
|
|
|
refreshStartTimer(&startTime[gun_index][TMR_IDX_REFRESH_INFO]);
|
|
|
}
|
|
|
+
|
|
|
break;
|
|
|
case SYS_MODE_CHARGING:
|
|
|
setDisplayValue(ICON_CHARGING_ANIMATION, CONNECTION_FLASHING_1);
|
|
@@ -2438,6 +2393,217 @@ 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
|
|
|
+ result = NO;
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setTimeTitle(uint8_t isOn)
|
|
|
+{
|
|
|
+ uint8_t data[32];
|
|
|
+ uint8_t text[32];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ if(isAmericaType() == YES)
|
|
|
+ {
|
|
|
+ if(isOn == ON)
|
|
|
+ {
|
|
|
+ strcpy((char*)text, "(hrs: mins: secs)");
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setDisplayValue(TEXT_CHARGING_TITLE_TIME, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PREPARING_TITLE_TIME, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PRECHARGING_TITLE_TIME, DISAPPEAR);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setEnergyTitle(uint8_t isOn)
|
|
|
+{
|
|
|
+ uint8_t data[32];
|
|
|
+ uint8_t text[32];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ if(isAmericaType() == YES)
|
|
|
+ {
|
|
|
+ if(isOn == ON)
|
|
|
+ {
|
|
|
+ strcpy((char*)text, "(Energy)");
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setDisplayValue(TEXT_CHARGING_TITLE_ENERGY, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PREPARING_TITLE_ENERGY, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PRECHARGING_TITLE_ENERGY, DISAPPEAR);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setSessionFeeTitle(uint8_t isOn)
|
|
|
+{
|
|
|
+ uint8_t data[32];
|
|
|
+ uint8_t text[32];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ if(isAmericaType() == YES)
|
|
|
+ {
|
|
|
+ if(isOn == ON)
|
|
|
+ {
|
|
|
+ strcpy((char*)text, "(Energy Cost)");
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setDisplayValue(TEXT_CHARGING_TITLE_SESSION_FEE, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PREPARING_TITLE_SESSION_FEE, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PRECHARGING_TITLE_SESSION_FEE, DISAPPEAR);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setParkingFeeTitle(uint8_t isOn)
|
|
|
+{
|
|
|
+ uint8_t data[32];
|
|
|
+ uint8_t text[32];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ if(isAmericaType() == YES)
|
|
|
+ {
|
|
|
+ if(isOn == ON)
|
|
|
+ {
|
|
|
+ strcpy((char*)text, "(Parking Fee)");
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setDisplayValue(TEXT_CHARGING_TITLE_PARKING_FEE, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PREPARING_TITLE_PARKING_FEE, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PRECHARGING_TITLE_PARKING_FEE, DISAPPEAR);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setFinalCostTitle(uint8_t isOn)
|
|
|
+{
|
|
|
+ uint8_t data[32];
|
|
|
+ uint8_t text[32];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ if(isAmericaType() == YES)
|
|
|
+ {
|
|
|
+ if(isOn == ON)
|
|
|
+ {
|
|
|
+ strcpy((char*)text, "(Total Cost)");
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ 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));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ setDisplayValue(TEXT_CHARGING_TITLE_FINAL_COST, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PREPARING_TITLE_FINAL_COST, DISAPPEAR);
|
|
|
+ setDisplayValue(TEXT_PRECHARGING_TITLE_FINAL_COST, DISAPPEAR);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void setCsuRootFsFwRev()
|
|
|
+{
|
|
|
+ uint8_t data[64];
|
|
|
+ uint8_t text[64];
|
|
|
+
|
|
|
+ memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
+ memset(text, 0x00, ARRAY_SIZE(text));
|
|
|
+
|
|
|
+ sprintf((char *)text, "%s%s", " CSU Software Version: ",(char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev);
|
|
|
+ string2ByteArray(text, data);
|
|
|
+ lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CSU_ROOT_FS_FW_REV, data, ARRAY_SIZE(data));
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
|
|
|
|