|
@@ -36,7 +36,7 @@ void string2ByteArray(uint8_t *input, uint8_t *output);
|
|
|
|
|
|
uint8_t getCurrentPage();
|
|
|
void setCurrentPage(uint8_t page);
|
|
|
-void setCurrencyFromWebsite(char *unit);
|
|
|
+void setCurrencyFromWebsite(uint8_t unit);
|
|
|
void setWarningStatus(uint8_t gun_index);
|
|
|
void setAuthorizationPage(uint8_t gun_index);
|
|
|
void setPriceFromWebsite(float monry_rate);
|
|
@@ -813,7 +813,7 @@ void setBillingFromWebsite()
|
|
|
|
|
|
if(ShmSysConfigAndInfo->SysConfig.BillingData.Currency <= 53)
|
|
|
{
|
|
|
- setCurrencyFromWebsite((char *)Currency[ShmSysConfigAndInfo->SysConfig.BillingData.Currency]);
|
|
|
+ setCurrencyFromWebsite(ShmSysConfigAndInfo->SysConfig.BillingData.Currency);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -827,19 +827,21 @@ void setBillingFromWebsite()
|
|
|
|
|
|
|
|
|
|
|
|
-void setCurrencyFromWebsite(char *unit)
|
|
|
+void setCurrencyFromWebsite(uint8_t unit)
|
|
|
{
|
|
|
uint8_t data[16];
|
|
|
uint8_t currency[16];
|
|
|
unsigned char kWh [16];
|
|
|
+ uint8_t final_currency[16];
|
|
|
|
|
|
memset(data, 0x00, ARRAY_SIZE(data));
|
|
|
memset(currency, 0x00, ARRAY_SIZE(currency));
|
|
|
+ memset(final_currency, 0x00, ARRAY_SIZE(final_currency));
|
|
|
strcpy((char*)kWh, "/kWh");
|
|
|
+ memcpy((char*)currency, Currency[unit], 3);
|
|
|
|
|
|
- *(unit + 3) = '\0';
|
|
|
- sprintf((char *) currency, "%s%s", unit,kWh);
|
|
|
- string2ByteArray(currency, data);
|
|
|
+ sprintf((char *)final_currency, "%s%s", currency,kWh);
|
|
|
+ string2ByteArray(final_currency, data);
|
|
|
lcdRegisterWrite(Uart1Fd, REG_TYPE_RAM, TEXT_CURRENCY_UNIT, data, ARRAY_SIZE(data));
|
|
|
}
|
|
|
|
|
@@ -883,7 +885,7 @@ float getPresentFinalCost(uint8_t gun_index)
|
|
|
|
|
|
for(int idx=0;idx<ARRAY_SIZE(ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod);idx++)
|
|
|
{
|
|
|
- result += ((ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[idx]/10) * ShmSysConfigAndInfo->SysConfig.BillingData.Fee[idx]);
|
|
|
+ result += ((ShmCharger->gun_info[gun_index].presentChargedEnergyPeriod[idx]) * ShmSysConfigAndInfo->SysConfig.BillingData.Fee[idx]);
|
|
|
}
|
|
|
|
|
|
return result;
|
|
@@ -891,7 +893,7 @@ float getPresentFinalCost(uint8_t gun_index)
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
void setBillingFromBackend(uint8_t gun_index, uint8_t system_mode)
|
|
|
{
|
|
|
if((system("pidof -s OcppBackend > /dev/null") != 0))
|
|
@@ -973,7 +975,6 @@ void setBillingFromBackend(uint8_t gun_index, uint8_t system_mode)
|
|
|
void setUserPrice(uint8_t type)
|
|
|
{
|
|
|
uint8_t length;
|
|
|
- uint8_t Split_String_Count;
|
|
|
uint8_t output_data[32];
|
|
|
char input_data[32];
|
|
|
char tmp[256];
|
|
@@ -996,7 +997,7 @@ void setUserPrice(uint8_t type)
|
|
|
|
|
|
|
|
|
strcpy((char*)tmp,(char *)ShmOCPP16Data->Cost.SetUserPrice.price);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ split((char**)splitString, tmp, Symbol);
|
|
|
memcpy(input_data, splitString[1], strlen(splitString[1]));
|
|
|
length = strlen(input_data);
|
|
|
trim_string(input_data,length);
|
|
@@ -1020,7 +1021,7 @@ void setUserPrice(uint8_t type)
|
|
|
|
|
|
|
|
|
strcpy((char*)tmp,(char *)ShmOCPP16Data->Cost.SetUserPrice.price);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ split((char**)splitString, tmp, Symbol);
|
|
|
memcpy(input_data, splitString[3], strlen(splitString[3]));
|
|
|
length = strlen(input_data);
|
|
|
trim_string(input_data,length);
|
|
@@ -1045,7 +1046,6 @@ void setUserPrice(uint8_t type)
|
|
|
void setDefaultPrice(uint8_t type)
|
|
|
{
|
|
|
uint8_t length;
|
|
|
- uint8_t Split_String_Count;
|
|
|
uint8_t output_data[32];
|
|
|
char input_data[32];
|
|
|
char tmp[256];
|
|
@@ -1068,7 +1068,7 @@ void setDefaultPrice(uint8_t type)
|
|
|
|
|
|
|
|
|
strcpy((char*)tmp,(char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ split((char**)splitString, tmp, Symbol);
|
|
|
memcpy(input_data, splitString[1], strlen(splitString[1]));
|
|
|
length = strlen(input_data);
|
|
|
trim_string(input_data,length);
|
|
@@ -1094,7 +1094,6 @@ void setDefaultPrice(uint8_t type)
|
|
|
void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
{
|
|
|
uint8_t length;
|
|
|
- uint8_t Split_String_Count;
|
|
|
uint8_t output_data[32];
|
|
|
char input_data[32];
|
|
|
char tmp[256];
|
|
@@ -1121,7 +1120,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
|
|
|
|
|
|
strcpy((char*)tmp,(char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ split((char**)splitString, tmp, Symbol);
|
|
|
memcpy(input_data, splitString[3], strlen(splitString[3]));
|
|
|
length = strlen(input_data);
|
|
|
trim_string(input_data,length);
|
|
@@ -1144,7 +1143,7 @@ void setFinalCost(uint8_t gun_index, uint8_t type)
|
|
|
|
|
|
|
|
|
strcpy((char*)tmp,(char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ split((char**)splitString, tmp, Symbol);
|
|
|
memcpy(input_data, splitString[4], strlen(splitString[4]));
|
|
|
length = strlen(input_data);
|
|
|
trim_string(input_data,length);
|
|
@@ -1176,7 +1175,6 @@ void setFinalCost(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 Split_String_Count;
|
|
|
uint8_t output_data[32];
|
|
|
char input_data[32];
|
|
|
char tmp[256];
|
|
@@ -1197,7 +1195,7 @@ void setCurrencyAndUnitFromBackend(uint8_t type_price ,uint8_t type_currency_uni
|
|
|
if(strstr((char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData, "Current Rate:") > 0)
|
|
|
{
|
|
|
strcpy((char*)tmp,(char *)ShmOCPP16Data->ConfigurationTable.CoreProfile[DefaultPrice].ItemData);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ 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);
|
|
@@ -1224,7 +1222,7 @@ void setCurrencyAndUnitFromBackend(uint8_t type_price ,uint8_t type_currency_uni
|
|
|
if(strstr((char *)ShmOCPP16Data->Cost.SetUserPrice.price, "Current Rate:") > 0)
|
|
|
{
|
|
|
strcpy((char*)tmp,(char *)ShmOCPP16Data->Cost.SetUserPrice.price);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ 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);
|
|
@@ -1259,7 +1257,7 @@ void setCurrencyAndUnitFromBackend(uint8_t type_price ,uint8_t type_currency_uni
|
|
|
if((strstr((char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description, "Account Balance:") > 0))
|
|
|
{
|
|
|
strcpy((char*)tmp,(char*)ShmOCPP16Data->Cost.FinalCost[gun_index].description);
|
|
|
- Split_String_Count = split((char**)splitString, tmp, Symbol);
|
|
|
+ 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);
|
|
@@ -2128,7 +2126,8 @@ int main(void)
|
|
|
page_update();
|
|
|
break;
|
|
|
case SYS_MODE_RESERVATION:
|
|
|
- page_reservation();
|
|
|
+
|
|
|
+ page_idle(ShmCharger->gun_selectd, ShmSysConfigAndInfo->SysInfo.AcChargingData[ShmCharger->gun_selectd].SystemStatus);
|
|
|
break;
|
|
|
case SYS_MODE_BOOKING:
|
|
|
page_booking();
|