|
@@ -1,2393 +0,0 @@
|
|
|
-#include <stdio.h> /*標準輸入輸出定義*/
|
|
|
-#include <stdlib.h> /*標準函數庫定義*/
|
|
|
-#include <stdint.h>
|
|
|
-#include <string.h>
|
|
|
-#include <unistd.h>
|
|
|
-#include <termios.h>
|
|
|
-#include <fcntl.h>
|
|
|
-#include <time.h>
|
|
|
-
|
|
|
-#include <sys/ioctl.h>
|
|
|
-#include <sys/timeb.h>
|
|
|
-
|
|
|
-#include "Module_LcmControl.h"
|
|
|
-#include "../Log/log.h"
|
|
|
-#include "../ShareMemory/shmMem.h"
|
|
|
-#include "../Define/define.h"
|
|
|
-#include "../Config.h"
|
|
|
-#include "../SelectGun/SelectGun.h"
|
|
|
-
|
|
|
-//------------------------------------------------------------------------------
|
|
|
-//struct SysConfigAndInfo *ShmSysConfigAndInfo;
|
|
|
-//struct StatusCodeData *ShmStatusCodeData;
|
|
|
-static struct SysConfigData *pSysConfig = NULL;
|
|
|
-static struct SysInfoData *pSysInfo = NULL;
|
|
|
-static struct WARNING_CODE_INFO *pSysWarning = NULL;
|
|
|
-
|
|
|
-static struct FanModuleData *ShmFanModuleData;
|
|
|
-static struct PrimaryMcuData *ShmPrimaryMcuData;
|
|
|
-static SelectGunInfo *ShmSelectGunInfo = NULL;
|
|
|
-static struct ChargingInfoData *pDcChargingInfo = NULL;
|
|
|
-static struct ChargingInfoData *pAcChargingInfo = NULL;
|
|
|
-
|
|
|
-bool needReloadQr = true;
|
|
|
-
|
|
|
-bool _isShow = false; //DS60-120 add
|
|
|
-uint8_t _showInformIndex = 0; //DS60-120 add
|
|
|
-
|
|
|
-int _port;
|
|
|
-//char* pPortName = "/dev/ttyO2";
|
|
|
-char *pPortName = "/dev/ttyS3";
|
|
|
-char *moduleName = "DMT80480T070_09WT";
|
|
|
-uint8_t _totalCount;
|
|
|
-uint8_t acgunCount;
|
|
|
-//struct ChargingInfoData *_chargingInfoData[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
|
|
|
-//struct ChargingInfoData *ac_chargingInfo[AC_QUANTITY];
|
|
|
-
|
|
|
-uint8_t ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV5;
|
|
|
-uint8_t isDiffStatus = false;
|
|
|
-uint8_t isChangeBattMap = false;
|
|
|
-// 當前選擇的槍號
|
|
|
-#if defined DD360Audi
|
|
|
-short _currentPage = _LCM_SELECT_GUN;
|
|
|
-short _oldPage = _LCM_SELECT_GUN;
|
|
|
-#else
|
|
|
-short _currentPage = _LCM_NONE;
|
|
|
-short _oldPage = _LCM_NONE;
|
|
|
-#endif //defined DD360Audi
|
|
|
-uint8_t _gunIndex = 0;
|
|
|
-bool _wifi_conn_status = false;
|
|
|
-bool _battery_display_ani = false;
|
|
|
-uint8_t _curPage_index = 0;
|
|
|
-bool _page_reload = false;
|
|
|
-
|
|
|
-// LCM - HW
|
|
|
-uint8_t _everyPageRollChange = 0;
|
|
|
-short __conn_status = 0x0030;
|
|
|
-short __ethernet_status = 0x0032;
|
|
|
-short __3G4G_status = 0x0036;
|
|
|
-short __3G4G_status1 = 0x0037;
|
|
|
-short __3G4G_move_status = 0x0038;
|
|
|
-short __wifi_status = 0x003C;
|
|
|
-
|
|
|
-short __sel_gun_btn = 0x0040;
|
|
|
-short __ret_home_btn = 0x0042;
|
|
|
-short __stop_method_btn = 0x0044;
|
|
|
-
|
|
|
-short __qr_code = 0x0250;
|
|
|
-short __main_rfid = 0x0052;
|
|
|
-short __main_qr = 0x0054;
|
|
|
-short __main_app = 0x0056;
|
|
|
-
|
|
|
-short __plug_in_arrow = 0x0060;
|
|
|
-
|
|
|
-short __conn_line = 0x0066;
|
|
|
-
|
|
|
-short __gun_type_index = 0x0070;
|
|
|
-short __cmp_gun_type_index = 0x0080; ////For Audi
|
|
|
-short __batt_map_empty = 0x0090; ////For Audi
|
|
|
-short __qr_code_pre = 0x0280;
|
|
|
-
|
|
|
-short __side_top = 0x0090;
|
|
|
-short __side_down = 0x0092;
|
|
|
-short __side_mid = 0x0094;
|
|
|
-
|
|
|
-short __conn_line_chag = 0x0096;
|
|
|
-short __batt_map = 0x0100;
|
|
|
-short __soc_value_charging = 0x0102;
|
|
|
-short __remain_time_map = 0x0106;
|
|
|
-short __power_map = 0x0108;
|
|
|
-short __energy_map = 0x010A;
|
|
|
-short __remain_time_tx = 0x0110;
|
|
|
-
|
|
|
-short __trp_remain_time_map = 0x0116;
|
|
|
-short __trp_power_map = 0x0118;
|
|
|
-short __trp_energy_map = 0x011A;
|
|
|
-
|
|
|
-short __output_eng_tx = 0x0120;
|
|
|
-short __total_out_eng_tx = 0x0130;
|
|
|
-short __conn_line_comp = 0x0140;
|
|
|
-short __charging_fee_map = 0x0146;
|
|
|
-short __charging_fee_tx = 0x0150;
|
|
|
-
|
|
|
-short __money_by_rate = 0x0200;
|
|
|
-short __money_rate = 0x0220;
|
|
|
-short __money_rate_map = 0x0230;
|
|
|
-
|
|
|
-//DS60-120 add
|
|
|
-short __csu_ver_string = 0x0300;
|
|
|
-short __csu_ver_value = 0x0310;
|
|
|
-short __fan_speed_string = 0x0390;
|
|
|
-short __fan_speed_value = 0x0400;
|
|
|
-
|
|
|
-short __dc1_ver_string = 0x0320;
|
|
|
-short __dc1_ver_value = 0x0330;
|
|
|
-short __dc2_ver_string = 0x0340;
|
|
|
-short __dc2_ver_value = 0x0350;
|
|
|
-short __eth0_ip_string = 0x0360;
|
|
|
-short __eth0_ip_value = 0x0370;
|
|
|
-short __sn_string = 0x0410;
|
|
|
-short __sn_value = 0x0420;
|
|
|
-
|
|
|
-//For Audi, for select gun
|
|
|
-short __left_gun_map = 0x0260;
|
|
|
-short __right_gun_map = 0x0262;
|
|
|
-short __add_chk_btn = 0x0264;
|
|
|
-//short __station_id = 0x0270;
|
|
|
-short __balance = 0x0270;
|
|
|
-short __remain_balance = 0x0280;
|
|
|
-short __custStationIdL1 = 0x0450;
|
|
|
-//short __custStationIdL2 = 0x0470;
|
|
|
-short _emergency_map = 0x011C;
|
|
|
-
|
|
|
-// ICON ID
|
|
|
-uint8_t _disappear = 0;
|
|
|
-uint8_t _disconnect = 1;
|
|
|
-uint8_t _connect = 2;
|
|
|
-uint8_t _warning = 3;
|
|
|
-uint8_t _arrow_dark = 4;
|
|
|
-uint8_t _arrow_light = 5;
|
|
|
-uint8_t _3G4G_disconnect = 6;
|
|
|
-uint8_t __3G4G_connect = 7;
|
|
|
-uint8_t _wifi_disconnect = 8;
|
|
|
-uint8_t _wifi_connect = 9;
|
|
|
-uint8_t _logo = 10;
|
|
|
-uint8_t _conn_map1 = 11;
|
|
|
-uint8_t _conn_map2 = 12;
|
|
|
-uint8_t _sel_gun_btn = 13;
|
|
|
-uint8_t _back_home_btn = 14;
|
|
|
-uint8_t _stop_charging_btn = 15;
|
|
|
-uint8_t _stop_charging_btn_scan = 16;
|
|
|
-uint8_t _chademo_dark = 17;
|
|
|
-uint8_t _ccs_dark = 18;
|
|
|
-uint8_t _gbt_dark = 19;
|
|
|
-uint8_t _actype_dark = 20;
|
|
|
-uint8_t _chademo_light = 21;
|
|
|
-uint8_t _ccs_light = 22;
|
|
|
-uint8_t _gbt_light = 23;
|
|
|
-uint8_t _actype_light = 24;
|
|
|
-uint8_t _main_none_rfid = 25;
|
|
|
-uint8_t _main_rfid = 26;
|
|
|
-uint8_t _main_none_app = 27;
|
|
|
-uint8_t _main_app = 28;
|
|
|
-uint8_t _main_none_qr = 29;
|
|
|
-uint8_t _main_qr = 30;
|
|
|
-uint8_t _charging_map1 = 31;
|
|
|
-uint8_t _charging_map2 = 32;
|
|
|
-uint8_t _battery_empty = 33;
|
|
|
-uint8_t _battery_cap_20 = 34;
|
|
|
-uint8_t _battery_cap_40 = 35;
|
|
|
-uint8_t _battery_cap_60 = 36;
|
|
|
-uint8_t _battery_cap_80 = 37;
|
|
|
-uint8_t _battery_cap_100 = 38;
|
|
|
-uint8_t _battery_map = 39;
|
|
|
-uint8_t _power_map = 40;
|
|
|
-uint8_t _time_map = 41;
|
|
|
-uint8_t _complete_map = 42;
|
|
|
-uint8_t _battery_soc_20 = 43;
|
|
|
-uint8_t _battery_soc_40 = 44;
|
|
|
-uint8_t _battery_soc_60 = 45;
|
|
|
-uint8_t _battery_soc_80 = 46;
|
|
|
-uint8_t _battery_soc_100 = 47;
|
|
|
-uint8_t _battery_eng_map = 48;
|
|
|
-uint8_t _money_map = 49;
|
|
|
-uint8_t _elapse_time_map = 50;
|
|
|
-uint8_t _charging_money = 51;
|
|
|
-//uint8_t _side_none_rfid = 52;
|
|
|
-//uint8_t _side_rfid = 53;
|
|
|
-//uint8_t _side_none_app = 54;
|
|
|
-//uint8_t _side_app = 55;
|
|
|
-//uint8_t _side_none_qr = 56;
|
|
|
-//uint8_t _side_qr = 57;
|
|
|
-uint8_t _eth_disconnect = 52; //58;
|
|
|
-uint8_t _eth_connect = 53; //59;
|
|
|
-
|
|
|
-uint8_t _chademo_dark_cmp = 54;
|
|
|
-uint8_t _ccs_dark_cmp = 55;
|
|
|
-uint8_t _gbt_dark_cmp = 56;
|
|
|
-uint8_t _actype_dark_cmp = 57;
|
|
|
-uint8_t _chademo_light_cmp = 58;
|
|
|
-uint8_t _ccs_light_cmp = 59;
|
|
|
-uint8_t _gbt_light_cmp = 60;
|
|
|
-uint8_t _actype_light_cmp = 61;
|
|
|
-
|
|
|
-uint8_t _logo_cmp = 62;
|
|
|
-uint8_t _battery_eng_trp_map = 63;
|
|
|
-uint8_t _money_trp_map = 64;
|
|
|
-uint8_t _elapse_time_trp_map = 65;
|
|
|
-
|
|
|
-////For Audi
|
|
|
-uint8_t _left_gun_disable_map = 66;
|
|
|
-uint8_t _left_gun_enable_map = 67;
|
|
|
-uint8_t _right_gun_disable_map = 68;
|
|
|
-uint8_t _right_gun_enable_map = 69;
|
|
|
-uint8_t _select_gun_btn = 70;
|
|
|
-uint8_t _emergency_disable_map = 72;
|
|
|
-// For replug
|
|
|
-struct timespec showReplugStrTimer;
|
|
|
-struct timespec showFullTargetTimer;
|
|
|
-short __show_StatusString_value_1 = 0x0460;
|
|
|
-short __show_StatusString_value_2 = 0x0462;
|
|
|
-uint8_t _showfulltarget_1 = 73;
|
|
|
-uint8_t _showfulltarget_2 = 74;
|
|
|
-uint8_t _showReplugStr_1 = 75;
|
|
|
-uint8_t _showReplugStr_2 = 76;
|
|
|
-// Select Gun for Audi
|
|
|
-short __show_selectgun_value = 0x0464;
|
|
|
-uint8_t _showselectgun_left = 77;
|
|
|
-uint8_t _showselectgun_right = 78;
|
|
|
-// Wait for gun plugin Audi
|
|
|
-short __show_waitgunplug_value = 0x0468;
|
|
|
-uint8_t _showwaitgunplug_left = 80;
|
|
|
-uint8_t _showwaitgunplug_right = 81;
|
|
|
-
|
|
|
-//#define log_info(format, args...) StoreLogMsg("[%s:%d][%s][Info] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
-//#define log_warn(format, args...) StoreLogMsg("[%s:%d][%s][Warn] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
-//#define log_error(format, args...) StoreLogMsg("[%s:%d][%s][Error] "format, __FILE__, __LINE__, __FUNCTION__, ##args)
|
|
|
-
|
|
|
-//=================================
|
|
|
-// Common routine
|
|
|
-//=================================
|
|
|
-/*int StoreLogMsg(const char *fmt, ...)
|
|
|
-{
|
|
|
- char Buf[4096 + 256];
|
|
|
- char buffer[4096];
|
|
|
- va_list args;
|
|
|
- struct timeb SeqEndTime;
|
|
|
- struct tm *tm;
|
|
|
-
|
|
|
- va_start(args, fmt);
|
|
|
- int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
|
|
|
- va_end(args);
|
|
|
-
|
|
|
- memset(Buf, 0, sizeof(Buf));
|
|
|
- ftime(&SeqEndTime);
|
|
|
- SeqEndTime.time = time(NULL);
|
|
|
- tm = localtime(&SeqEndTime.time);
|
|
|
-
|
|
|
- if (pSysConfig->SwitchDebugFlag == YES) {
|
|
|
- sprintf(Buf, "%02d:%02d:%02d:%03d - %s",
|
|
|
- tm->tm_hour, tm->tm_min, tm->tm_sec, SeqEndTime.millitm, buffer);
|
|
|
- printf("%s ", Buf);
|
|
|
- } else {
|
|
|
- sprintf(Buf, "echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]SystemLog",
|
|
|
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, SeqEndTime.millitm,
|
|
|
- buffer,
|
|
|
- tm->tm_year + 1900, tm->tm_mon + 1);
|
|
|
- system(Buf);
|
|
|
- }
|
|
|
-
|
|
|
- return rc;
|
|
|
-}
|
|
|
-
|
|
|
-char *getTimeString(void)
|
|
|
-{
|
|
|
- char *result = malloc(21);
|
|
|
- time_t timep;
|
|
|
- struct tm *p;
|
|
|
- time(&timep);
|
|
|
- p = gmtime(&timep);
|
|
|
-
|
|
|
- sprintf(result, "[%04d-%02d-%02d %02d:%02d:%02d]", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday, p->tm_hour, p->tm_hour, p->tm_sec);
|
|
|
-
|
|
|
- return result;
|
|
|
-}
|
|
|
-*/
|
|
|
-
|
|
|
-#if 0
|
|
|
-//==========================================
|
|
|
-// Init all share memory
|
|
|
-//==========================================
|
|
|
-int InitShareMemory()
|
|
|
-{
|
|
|
- int result = PASS;
|
|
|
- int MeterSMId;
|
|
|
-
|
|
|
- //creat ShmSysConfigAndInfo
|
|
|
- if ((MeterSMId = shmget(ShmSysConfigAndInfoKey, sizeof(struct SysConfigAndInfo), 0777)) < 0) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("shmget ShmSysConfigAndInfo NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- } else if ((ShmSysConfigAndInfo = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("shmat ShmSysConfigAndInfo NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- } else
|
|
|
- {}
|
|
|
-
|
|
|
- //creat ShmStatusCodeData
|
|
|
- if ((MeterSMId = shmget(ShmStatusCodeKey, sizeof(struct StatusCodeData), 0777)) < 0) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("shmget ShmStatusCodeData NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- } else if ((ShmStatusCodeData = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("shmat ShmStatusCodeData NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- } else
|
|
|
- {}
|
|
|
-
|
|
|
- //creat Audi customization info
|
|
|
- if ((MeterSMId = shmget(ShmSelectGunInfoKey, sizeof(SelectGunInfo), IPC_CREAT | 0777)) < 0) {
|
|
|
- log_error("[main]CreatShareMemory:shmget select gun info NG ");
|
|
|
- return 0;
|
|
|
- } else if ((ShmSelectGunInfo = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
- log_error("[main]CreatShareMemory:shmat shmget select gun info ");
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- //creat ShmStatusCodeData
|
|
|
- if ((MeterSMId = shmget(ShmPrimaryMcuKey, sizeof(struct PrimaryMcuData), 0777)) < 0) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("shmget ShmPrimaryMcuData NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- } else if ((ShmPrimaryMcuData = shmat(MeterSMId, NULL, 0)) == (void *) - 1) {
|
|
|
-#ifdef ShmPrimaryMcuData
|
|
|
- log_error("shmat ShmPrimaryMcuData NG");
|
|
|
-#endif
|
|
|
- result = FAIL;
|
|
|
- }
|
|
|
-
|
|
|
- return result;
|
|
|
-}
|
|
|
-#endif //0
|
|
|
-
|
|
|
-//==========================================
|
|
|
-// Open and Close RS232 and R/W
|
|
|
-//==========================================
|
|
|
-int CreateCommunicationLcmPort()
|
|
|
-{
|
|
|
- int fd;
|
|
|
- struct termios tios;
|
|
|
-
|
|
|
- fd = open(pPortName, O_RDWR);
|
|
|
- if (fd <= 0) {
|
|
|
-#ifdef SystemLogMessage
|
|
|
- log_error("open /dev/ttyS3 NG ");
|
|
|
-#endif
|
|
|
- return -1;
|
|
|
- }
|
|
|
- ioctl(fd, TCGETS, &tios);
|
|
|
- tios.c_cflag = B115200 | CS8 | CLOCAL | CREAD;
|
|
|
- tios.c_lflag = 0;
|
|
|
- tios.c_iflag = 0;
|
|
|
- tios.c_oflag = 0;
|
|
|
- tios.c_cc[VMIN] = 0;
|
|
|
- tios.c_cc[VTIME] = (uint8_t) 5;
|
|
|
- tios.c_lflag = 0;
|
|
|
- tcflush(fd, TCIFLUSH);
|
|
|
- ioctl(fd, TCSETS, &tios);
|
|
|
-
|
|
|
- return fd;
|
|
|
-}
|
|
|
-
|
|
|
-void CloseCommunicationLcmPort()
|
|
|
-{
|
|
|
- close(_port);
|
|
|
-}
|
|
|
-
|
|
|
-void WriteCmdToLcm(uint8_t *cmd, uint8_t cmdLen)
|
|
|
-{
|
|
|
- int len = write(_port, cmd, cmdLen);
|
|
|
- if (len >= sizeof(cmd)) {
|
|
|
- //log_info("Write cmd to LCM successfully. ");
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ReadMsgFromLcm(uint8_t *msg, uint8_t readLen)
|
|
|
-{
|
|
|
- read(_port, msg, readLen);
|
|
|
-
|
|
|
- if (*msg == CMD_TITLE_1 && *(msg + 1) == CMD_TITLE_2) {
|
|
|
- if (*(msg + 3) == CMD_WRITE) {
|
|
|
- switch (*(msg + 4)) {
|
|
|
- case CMD_REGISTER: {
|
|
|
- // 頁面
|
|
|
- strcpy((char *)pSysInfo->LcmHwRev, moduleName);
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
- } else if (*(msg + 3) == CMD_MULTI_READ) {
|
|
|
-// switch ((unsigned short) (*(msg + 4) << 8) + (unsigned short) *(msg + 5))
|
|
|
-// {
|
|
|
-// case BUTTON_GUN_INDEX:
|
|
|
-// {
|
|
|
-// // 當前選的槍號
|
|
|
-// _curGunIndex = (*(msg + 8));
|
|
|
-// }
|
|
|
-// break;
|
|
|
-// }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// Function
|
|
|
-//================================================
|
|
|
-void ChangeToOtherPage(short newPage)
|
|
|
-{
|
|
|
- uint8_t cmd[7];
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- cmd[0] = CMD_TITLE_1;
|
|
|
- cmd[1] = CMD_TITLE_2;
|
|
|
- cmd[2] = 0x02 + sizeof(newPage);
|
|
|
- cmd[3] = CMD_READ;
|
|
|
- cmd[4] = CMD_REGISTER;
|
|
|
- cmd[5] = newPage >> 8;
|
|
|
- cmd[6] = newPage & 0x00FF;
|
|
|
-
|
|
|
- WriteCmdToLcm(cmd, ARRAY_SIZE(cmd));
|
|
|
- usleep(100000);
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeBackLight(bool islight)
|
|
|
-{
|
|
|
- uint8_t value = 0x01;
|
|
|
-
|
|
|
- if (islight) {
|
|
|
- value = 0x20;
|
|
|
- }
|
|
|
- uint8_t cmd[7];
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- cmd[0] = CMD_TITLE_1;
|
|
|
- cmd[1] = CMD_TITLE_2;
|
|
|
- cmd[2] = 0x03;
|
|
|
- cmd[3] = CMD_READ;
|
|
|
- cmd[4] = CMD_BACKLIGHT;
|
|
|
- cmd[5] = value;
|
|
|
-
|
|
|
- WriteCmdToLcm(cmd, ARRAY_SIZE(cmd));
|
|
|
- usleep(100000);
|
|
|
-}
|
|
|
-
|
|
|
-void GetCurrentPage()
|
|
|
-{
|
|
|
- uint8_t cmd[6];
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- uint8_t msg[8];
|
|
|
- memset(msg, 0x00, sizeof(msg));
|
|
|
-
|
|
|
- cmd[0] = CMD_TITLE_1;
|
|
|
- cmd[1] = CMD_TITLE_2;
|
|
|
- cmd[2] = 0x03; // 底下總長度
|
|
|
- cmd[3] = CMD_WRITE;
|
|
|
- cmd[4] = CMD_REGISTER;
|
|
|
- cmd[5] = 0x02;
|
|
|
-
|
|
|
- WriteCmdToLcm(cmd, ARRAY_SIZE(cmd));
|
|
|
- usleep(100000);
|
|
|
- ReadMsgFromLcm(msg, ARRAY_SIZE(msg));
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayValueToLcm(short address, uint8_t *data, uint8_t len)
|
|
|
-{
|
|
|
- uint8_t cmd[256];
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- cmd[0] = CMD_TITLE_1;
|
|
|
- cmd[1] = CMD_TITLE_2;
|
|
|
- cmd[2] = 0x03 + len;
|
|
|
- cmd[3] = CMD_MULTI_WRITE;
|
|
|
- cmd[4] = address >> 8;
|
|
|
- cmd[5] = address & 0x00FF;
|
|
|
-
|
|
|
- for (uint8_t count = 0; count < len; count++) {
|
|
|
- cmd[6 + count] = *(data + count);
|
|
|
- }
|
|
|
-
|
|
|
- WriteCmdToLcm(cmd, cmd[2] + 3);
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeDisplay2Value(short address, short value)
|
|
|
-{
|
|
|
- uint8_t data[2];
|
|
|
- data[0] = value >> 8;
|
|
|
- data[1] = value & 0x00FF;
|
|
|
-
|
|
|
- DisplayValueToLcm(address, data, sizeof(data));
|
|
|
-}
|
|
|
-
|
|
|
-void GetBtnStatus(short address, uint8_t len)
|
|
|
-{
|
|
|
- uint8_t cmd[8];
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- uint8_t msg[8];
|
|
|
- memset(msg, 0x00, sizeof(msg));
|
|
|
-
|
|
|
- cmd[0] = CMD_TITLE_1;
|
|
|
- cmd[1] = CMD_TITLE_2;
|
|
|
- cmd[2] = 0x03 + len;
|
|
|
- cmd[3] = CMD_MULTI_READ;
|
|
|
- cmd[4] = address >> 8;
|
|
|
- cmd[5] = address & 0x00FF;
|
|
|
- cmd[6] = 0x00 + len;
|
|
|
-
|
|
|
- WriteCmdToLcm(cmd, cmd[2] + 3);
|
|
|
- usleep(100000);
|
|
|
- ReadMsgFromLcm(msg, (len * 2) + sizeof(msg));
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// Warning process
|
|
|
-//================================================
|
|
|
-void string2ByteArray(uint8_t *input, uint8_t *output)
|
|
|
-{
|
|
|
- int loop;
|
|
|
- int i;
|
|
|
-
|
|
|
- loop = 0;
|
|
|
- i = 0;
|
|
|
-
|
|
|
- while (input[loop] != '\0') {
|
|
|
- output[i++] = input[loop++];
|
|
|
- }
|
|
|
- output[loop] = '\0';
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeWarningFunc()
|
|
|
-{
|
|
|
- uint8_t cmd[7] = {0};
|
|
|
- uint8_t i = 0;
|
|
|
- //uint8_t j = 0;
|
|
|
- //log_info("ChangeWarningFunc ");
|
|
|
- // 最多一次五筆
|
|
|
- //log_info("LCM PageIndex = %d ", pSysWarning->PageIndex);
|
|
|
- //log_info("WarningCount = %d ", pSysWarning->WarningCount);
|
|
|
-//#if !defined DD360 && !defined DD360Audi && !defined DD360ComBox
|
|
|
- for (i = 0; (i + pSysWarning->PageIndex * 5) < pSysWarning->WarningCount; i++) {
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- if ((i) >= 5) {
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- //error code
|
|
|
- string2ByteArray(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], cmd);
|
|
|
- DisplayValueToLcm(0x0010 + ((i) * 6), cmd, sizeof(cmd));
|
|
|
- //警告標示
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- cmd[0] = 0x00;
|
|
|
- cmd[1] = 0x01;
|
|
|
- DisplayValueToLcm(0x0002 + ((i) * 2), cmd, 2);
|
|
|
- }
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- for (; i < 5; i++) {
|
|
|
- DisplayValueToLcm(0x0010 + ((i) * 6), cmd, sizeof(cmd));
|
|
|
- DisplayValueToLcm(0x0002 + ((i) * 2), cmd, 2);
|
|
|
- }
|
|
|
-
|
|
|
- /*#else
|
|
|
- for (i = 0; (i + pSysWarning->PageIndex * 5) < pSysWarning->WarningCount; i++) {
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- if ((i - j) >= 5) {
|
|
|
- break;
|
|
|
- }
|
|
|
- if (
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "033900", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "033901", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "033902", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043627", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043628", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043622", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043623", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043624", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043625", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "043626", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "042241", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], "042242", 6) == 0)
|
|
|
- ) {
|
|
|
- j++;
|
|
|
- continue;
|
|
|
- }
|
|
|
- //error code
|
|
|
- string2ByteArray(&pSysWarning->WarningCode[i + pSysWarning->PageIndex * 5][0], cmd);
|
|
|
- DisplayValueToLcm(0x0010 + ((i - j) * 6), cmd, sizeof(cmd));
|
|
|
- //警告標示
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- cmd[0] = 0x00;
|
|
|
- cmd[1] = 0x01;
|
|
|
- DisplayValueToLcm(0x0002 + ((i - j) * 2), cmd, 2);
|
|
|
- }
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- i = i - j;
|
|
|
- for (; (i) < 5; i++) {
|
|
|
- DisplayValueToLcm(0x0010 + ((i) * 6), cmd, sizeof(cmd));
|
|
|
- DisplayValueToLcm(0x0002 + ((i) * 2), cmd, 2);
|
|
|
- }
|
|
|
-
|
|
|
- #endif //!defined DD360 && !defined DD360Audi
|
|
|
- */
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// QR Code process
|
|
|
-//================================================
|
|
|
-void ChangeQrCode_Idle(char *input)
|
|
|
-{
|
|
|
-#if defined DD360Audi
|
|
|
- int len = strlen(input) + 3;
|
|
|
- int loop = 0;
|
|
|
- int i = 0, j = 0, k = 0, l = 0;
|
|
|
- uint8_t qrUrl[128] = {0};
|
|
|
- uint16_t urlLen = 0;
|
|
|
- uint8_t cmd[len];
|
|
|
- uint8_t tmpBuf[15] = {0};
|
|
|
- //uint8_t tmpLen = sizeof(tmpBuf) - 1;
|
|
|
-
|
|
|
- strncpy((char *)cmd, " ", len);
|
|
|
-
|
|
|
- while (input[loop] != '\0') {
|
|
|
- cmd[i++] = input[loop++];
|
|
|
- l = loop - 1;
|
|
|
- if (len >= 25) {
|
|
|
- if (i >= 16 && i <= 19) {
|
|
|
- tmpBuf[k++] = input[l];
|
|
|
- //printf("tmpBuf = %s", tmpBuf);
|
|
|
- } else if (i >= 21 && i <= 23) {
|
|
|
- tmpBuf[k++] = input[l];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- tmpBuf[k] = '\0';
|
|
|
- //printf("tmpBuf = %s", tmpBuf);
|
|
|
- j += sprintf((char *)&cmd[i], ":%d", pSysInfo->CurGunSelected); ////For Audi
|
|
|
- cmd[len - 1] = '\0';
|
|
|
- urlLen = sprintf((char *)qrUrl, "%s%s", NOODOE_QR_CODE_URL, cmd);
|
|
|
- qrUrl[urlLen] = '\0';
|
|
|
- //printf("qr url = %s", qrUrl);
|
|
|
- DisplayValueToLcm(__qr_code, qrUrl, urlLen);
|
|
|
-
|
|
|
- j = 0;
|
|
|
- j += sprintf((char *)&tmpBuf[k], "0%d", pSysInfo->CurGunSelected); ////For Audi
|
|
|
- tmpBuf[k + j] = '\0';
|
|
|
-
|
|
|
- //if (len < 25) {
|
|
|
- // strncpy((char *)tmpBuf, (char *)cmd, sizeof(tmpBuf));
|
|
|
- //}
|
|
|
- //tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL1, tmpBuf, sizeof(tmpBuf));
|
|
|
-
|
|
|
- /*if (len > sizeof(tmpBuf)) {
|
|
|
- strncpy((char *)tmpBuf, (char *)cmd, sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL1, tmpBuf, sizeof(tmpBuf));
|
|
|
-
|
|
|
- memset(tmpBuf, 0, sizeof(tmpBuf));
|
|
|
- strncpy((char *)tmpBuf, (char *)&cmd[tmpLen], sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL2, tmpBuf, sizeof(tmpBuf));
|
|
|
- } else {
|
|
|
- DisplayValueToLcm(__custStationIdL1, cmd, len);
|
|
|
-
|
|
|
- strncpy((char *)tmpBuf, " ", sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL2, tmpBuf, sizeof(tmpBuf));
|
|
|
- }*/
|
|
|
-
|
|
|
-#else
|
|
|
- int len = strlen(input);
|
|
|
- uint8_t cmd[len];
|
|
|
-
|
|
|
- int loop = 0;
|
|
|
- int i = 0;
|
|
|
-
|
|
|
- while (input[loop] != '\0') {
|
|
|
- cmd[i++] = input[loop++];
|
|
|
- }
|
|
|
-
|
|
|
- DisplayValueToLcm(__qr_code, cmd, len + 1);
|
|
|
-#endif //defined DD360Audi
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeQrCode_Charge(char *input)
|
|
|
-{
|
|
|
-#if defined DD360Audi
|
|
|
- int len = strlen(input) + 3;
|
|
|
- int loop = 0;
|
|
|
- int i = 0, j = 0, k = 0, l = 0;
|
|
|
- uint8_t qrUrl[128] = {0};
|
|
|
- uint16_t urlLen = 0;
|
|
|
- uint8_t cmd[len];
|
|
|
- uint8_t tmpBuf[15] = {0};
|
|
|
- //uint8_t tmpLen = sizeof(tmpBuf) - 1;
|
|
|
-
|
|
|
- strncpy((char *)cmd, " ", len);
|
|
|
-
|
|
|
- while (input[loop] != '\0') {
|
|
|
- cmd[i++] = input[loop++];
|
|
|
- l = loop - 1;
|
|
|
- if (len >= 25) {
|
|
|
- if (i >= 16 && i <= 19) {
|
|
|
- tmpBuf[k++] = input[l];
|
|
|
- //printf("tmpBuf = %s", tmpBuf);
|
|
|
- } else if (i >= 21 && i <= 23) {
|
|
|
- tmpBuf[k++] = input[l];
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- tmpBuf[k] = '\0';
|
|
|
- //printf("tmpBuf = %s", tmpBuf);
|
|
|
- j += sprintf((char *)&cmd[i], ":%d", pSysInfo->CurGunSelected); ////For Audi
|
|
|
- cmd[len - 1] = '\0';
|
|
|
- urlLen = sprintf((char *)qrUrl, "%s%s", NOODOE_QR_CODE_URL, cmd);
|
|
|
- qrUrl[urlLen] = '\0';
|
|
|
- DisplayValueToLcm(__qr_code, qrUrl, urlLen);
|
|
|
-
|
|
|
- j = 0;
|
|
|
- j += sprintf((char *)&tmpBuf[k], "0%d", pSysInfo->CurGunSelected); ////For Audi
|
|
|
- tmpBuf[k + j] = '\0';
|
|
|
-
|
|
|
- if (len < 25) {
|
|
|
- strncpy((char *)tmpBuf, (char *)cmd, sizeof(tmpBuf));
|
|
|
- }
|
|
|
- //tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL1, tmpBuf, sizeof(tmpBuf));
|
|
|
- /*if (len > sizeof(tmpBuf)) {
|
|
|
- strncpy((char *)tmpBuf, (char *)cmd, sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL1, tmpBuf, sizeof(tmpBuf));
|
|
|
-
|
|
|
- memset(tmpBuf, 0, sizeof(tmpBuf));
|
|
|
- strncpy((char *)tmpBuf, (char *)&cmd[tmpLen], sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL2, tmpBuf, sizeof(tmpBuf));
|
|
|
- } else {
|
|
|
- DisplayValueToLcm(__custStationIdL1, cmd, len);
|
|
|
-
|
|
|
- strncpy((char *)tmpBuf, " ", sizeof(tmpBuf));
|
|
|
- tmpBuf[tmpLen] = '\0';
|
|
|
- DisplayValueToLcm(__custStationIdL2, tmpBuf, sizeof(tmpBuf));
|
|
|
- }*/
|
|
|
-
|
|
|
-#else
|
|
|
- int len = strlen(input);
|
|
|
- uint8_t cmd[len];
|
|
|
-
|
|
|
- int loop = 0;
|
|
|
- int i = 0;
|
|
|
-
|
|
|
- while (input[loop] != '\0') {
|
|
|
- cmd[i++] = input[loop++];
|
|
|
- }
|
|
|
-
|
|
|
- DisplayValueToLcm(__qr_code_pre, cmd, len + 1);
|
|
|
-#endif //defined DD360Audi
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// Change current page
|
|
|
-//================================================
|
|
|
-void ChangeCurPage()
|
|
|
-{
|
|
|
- //log_info("cur = %d, new = %d ", _currentPage, pSysInfo->PageIndex);
|
|
|
- if (_currentPage != pSysInfo->PageIndex) {
|
|
|
- _currentPage = pSysInfo->PageIndex;
|
|
|
- ChangeToOtherPage(_currentPage);
|
|
|
- _everyPageRollChange = 0;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// Main process
|
|
|
-//================================================
|
|
|
-uint8_t demoCount = 0;
|
|
|
-void DemoFunction()
|
|
|
-{
|
|
|
- if (demoCount == 0) {
|
|
|
- pSysWarning->WarningCount = 6;
|
|
|
- memcpy(&pSysWarning->WarningCode[0][0], "000001", 7);
|
|
|
- memcpy(&pSysWarning->WarningCode[1][0], "000002", 7);
|
|
|
- memcpy(&pSysWarning->WarningCode[2][0], "000003", 7);
|
|
|
- memcpy(&pSysWarning->WarningCode[3][0], "000004", 7);
|
|
|
- memcpy(&pSysWarning->WarningCode[4][0], "000005", 7);
|
|
|
- memcpy(&pSysWarning->WarningCode[5][0], "000006", 7);
|
|
|
- } else {
|
|
|
- if (demoCount == 20) {
|
|
|
- pSysInfo->PageIndex = _LCM_IDLE;
|
|
|
- } else if (demoCount == 80) {
|
|
|
- pSysInfo->PageIndex = _LCM_AUTHORIZING;
|
|
|
- } else if (demoCount == 100) {
|
|
|
- pSysInfo->PageIndex = _LCM_AUTHORIZ_COMP;
|
|
|
- } else if (demoCount == 120) {
|
|
|
- pSysInfo->PageIndex = _LCM_AUTHORIZ_FAIL;
|
|
|
- } else if (demoCount == 140) {
|
|
|
- pSysInfo->PageIndex = _LCM_PRE_CHARGE;
|
|
|
- } else if (demoCount == 180) {
|
|
|
- pSysInfo->PageIndex = _LCM_CHARGING;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (demoCount < 180) {
|
|
|
- demoCount++;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-//================================================
|
|
|
-// Main process
|
|
|
-//================================================
|
|
|
-bool FindChargingInfoData(uint8_t target, struct ChargingInfoData **_chargingData)
|
|
|
-{
|
|
|
- for (uint8_t index = 0; index < CHAdeMO_QUANTITY; index++) {
|
|
|
- if (pSysInfo->ChademoChargingData[index].Index == target) {
|
|
|
- _chargingData[target] = &pSysInfo->ChademoChargingData[index];
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- for (uint8_t index = 0; index < CCS_QUANTITY; index++) {
|
|
|
- if (pSysInfo->CcsChargingData[index].Index == target) {
|
|
|
- _chargingData[target] = &pSysInfo->CcsChargingData[index];
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- for (uint8_t index = 0; index < GB_QUANTITY; index++) {
|
|
|
- if (pSysInfo->GbChargingData[index].Index == target) {
|
|
|
- _chargingData[target] = &pSysInfo->GbChargingData[index];
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
-bool FindAcChargingInfoData(uint8_t target, struct ChargingInfoData **acChargingData)
|
|
|
-{
|
|
|
- if (target < AC_QUANTITY) {
|
|
|
- acChargingData[target] = &pSysInfo->AcChargingData[target];
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- return false;
|
|
|
-}
|
|
|
-int GetTimeoutValue(struct timespec *startTime)
|
|
|
-{
|
|
|
- struct timespec endTime;
|
|
|
- clock_gettime(CLOCK_MONOTONIC_COARSE, &endTime);
|
|
|
- return endTime.tv_sec - startTime->tv_sec;
|
|
|
-}
|
|
|
-void GetTimespecFunc(struct timespec *time)
|
|
|
-{
|
|
|
- clock_gettime(CLOCK_MONOTONIC_COARSE, time);
|
|
|
-}
|
|
|
-
|
|
|
-void RunReplugStringFunction(bool isRun)
|
|
|
-{
|
|
|
- if (isRun) {
|
|
|
- int time = GetTimeoutValue(&showReplugStrTimer);
|
|
|
- if (time >=1 && time <2) {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _showReplugStr_1);
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _showReplugStr_2);
|
|
|
- } else if (time < 1) {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _disappear);
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _disappear);
|
|
|
- } else
|
|
|
- GetTimespecFunc(&showReplugStrTimer);
|
|
|
-
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _disappear);
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-void RunFullTargetFunction(bool isRun)
|
|
|
-{
|
|
|
- if (isRun) {
|
|
|
- int time = GetTimeoutValue(&showFullTargetTimer);
|
|
|
- if (time >=1 && time <2) {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _showfulltarget_1 );
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _showfulltarget_2);
|
|
|
- } else if (time < 1) {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _disappear);
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _disappear);
|
|
|
-
|
|
|
- } else
|
|
|
- GetTimespecFunc(&showFullTargetTimer);
|
|
|
-
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_1, _disappear);
|
|
|
- ChangeDisplay2Value(__show_StatusString_value_2, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * [ChangeBalanceValue :print balance information]
|
|
|
- * @Author
|
|
|
- * @DateTime 2020-11-26
|
|
|
- */
|
|
|
-static void ChangeBalanceValue(uint16_t addr, uint8_t index) ////For Audi
|
|
|
-{
|
|
|
- uint8_t cmd[10] = {0};
|
|
|
- uint8_t value[10] = {0};
|
|
|
- uint8_t len = 0;
|
|
|
- float balance = ShmSelectGunInfo->PricesInfo[index].Balance;
|
|
|
-
|
|
|
- if ((balance) == (FAIL_BALANCE_PRICES)) {
|
|
|
- balance = 0.00;
|
|
|
- }
|
|
|
-
|
|
|
- len += sprintf((char *) value, "%.2f", balance);
|
|
|
- if (len < 6) {
|
|
|
- sprintf((char *)&value[len], "%s",
|
|
|
- (uint8_t *)GetCurrency(pSysConfig->BillingData.Currency));
|
|
|
- }
|
|
|
-
|
|
|
- value[sizeof(value) - 1] = '\0';
|
|
|
-
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(addr, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeAcBattMapAndValue(short page)
|
|
|
-{
|
|
|
- pAcChargingInfo = (struct ChargingInfoData *)GetAcChargingInfoData(0);
|
|
|
-
|
|
|
- if (page == _LCM_CHARGING) {
|
|
|
- if (isDiffStatus != _battery_display_ani) {
|
|
|
- isChangeBattMap = false;
|
|
|
- isDiffStatus = _battery_display_ani;
|
|
|
- }
|
|
|
-
|
|
|
- if (pAcChargingInfo->IsCharging && !isChangeBattMap) {
|
|
|
- isChangeBattMap = true;
|
|
|
- if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV5) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_empty);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_EMP;
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_EMP) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_20);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV1;
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV1) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_40);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV2;
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV2) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_60);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV3;
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV3) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_80);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV4;
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV4) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_100);
|
|
|
- ac_ani_battery_level = _BATTERY_LEVEL_FOR_MAP_LV5;
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (page == _LCM_COMPLETE) {
|
|
|
- if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV5) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_20);
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_EMP) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_20);
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV1) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_40);
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV2) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_60);
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV3) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_80);
|
|
|
- } else if (ac_ani_battery_level == _BATTERY_LEVEL_FOR_MAP_LV4) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_100);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ChangeDisplay2Value(__soc_value_charging, _disappear);
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeBattMapAndValue(short page, int soc)
|
|
|
-{
|
|
|
-// srand(time(NULL));
|
|
|
-// int min = 10;
|
|
|
-// int max = 90;
|
|
|
-// soc = rand() % (max - min + 1) + min;
|
|
|
-
|
|
|
- if (page == _LCM_PRE_CHARGE) {
|
|
|
- ChangeDisplay2Value(__batt_map_empty, _battery_empty);
|
|
|
- } else if (page == _LCM_CHARGING) {
|
|
|
- if (soc < 20) {
|
|
|
- if (_battery_display_ani) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_empty);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_20);
|
|
|
- }
|
|
|
- } else if (soc >= 20 && soc < 40) {
|
|
|
- if (_battery_display_ani) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_20);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_40);
|
|
|
- }
|
|
|
- } else if (soc >= 40 && soc < 60) {
|
|
|
- if (_battery_display_ani) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_40);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_60);
|
|
|
- }
|
|
|
- } else if (soc >= 60 && soc < 80) {
|
|
|
- if (_battery_display_ani) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_60);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_80);
|
|
|
- }
|
|
|
- } else if (soc >= 80 && soc <= 100) {
|
|
|
- if (_battery_display_ani) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_80); //DS60-120 add
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_cap_100);
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (page == _LCM_COMPLETE) {
|
|
|
- if (soc < 20) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_20);
|
|
|
- } else if (soc >= 20 && soc < 40) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_40);
|
|
|
- } else if (soc >= 40 && soc < 60) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_60);
|
|
|
- } else if (soc >= 60 && soc < 80) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_80);
|
|
|
- } else if (soc >= 80 && soc <= 100) {
|
|
|
- ChangeDisplay2Value(__batt_map, _battery_soc_100);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- uint8_t cmd[5];
|
|
|
- uint8_t value[5];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- sprintf((char *)value, "%d%%", soc);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__soc_value_charging, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeRemainTime(int sec)
|
|
|
-{
|
|
|
- int h, m, s;
|
|
|
- uint8_t cmd[10];
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
-// srand(time(NULL));
|
|
|
-// int min = 0;
|
|
|
-// int max = 65536;
|
|
|
-// sec = rand() % (max - min + 1) + min;
|
|
|
-
|
|
|
- h = (sec / 3600);
|
|
|
- m = (sec - (3600 * h)) / 60;
|
|
|
- s = (sec - (3600 * h) - (m * 60));
|
|
|
- sprintf((char *)value, "%02d:%02d:%02d", h, m, s);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__remain_time_tx, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeChargingEnergyValue(float energy)
|
|
|
-{
|
|
|
- uint8_t cmd[10];
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- if (energy >= 0.05) {
|
|
|
- energy -= 0.05;
|
|
|
- }
|
|
|
- sprintf((char *) value, "%.1f kWh", energy);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__total_out_eng_tx, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeChargingPowerValue(float pow)
|
|
|
-{
|
|
|
- uint8_t cmd[10];
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
-// float min = 0.0;
|
|
|
-// float max = 50;
|
|
|
-// pow = (max - min) * rand() / (RAND_MAX + 1.0) + min;
|
|
|
- sprintf((char *) value, "%.1f kW", pow);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__output_eng_tx, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeChargingFeeValue(float fee)
|
|
|
-{
|
|
|
- uint8_t cmd[10];
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- sprintf((char *) value, "%.2f", fee);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__charging_fee_tx, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayMoneyRate(float money)
|
|
|
-{
|
|
|
- uint8_t cmd[8];
|
|
|
- uint8_t value[8];
|
|
|
-
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
-
|
|
|
- sprintf((char *) value, "%.2f", money);
|
|
|
- string2ByteArray(value, cmd);
|
|
|
- DisplayValueToLcm(__money_by_rate, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayMoneyCur(uint8_t *cur)
|
|
|
-{
|
|
|
- uint8_t cmd[10] = {0};
|
|
|
- uint8_t buf[10] = {0};
|
|
|
- uint8_t len = 0;
|
|
|
-
|
|
|
- *(cur + 3) = '\0';
|
|
|
- memset(cmd, 0x00, sizeof(cmd));
|
|
|
- len = sprintf((char *) buf, "%s/kWh", cur);
|
|
|
- buf[len] = '\0';
|
|
|
- string2ByteArray(buf, cmd);
|
|
|
- DisplayValueToLcm(__money_rate, cmd, sizeof(cmd));
|
|
|
-}
|
|
|
-
|
|
|
-void RefreshPageAnimation(uint8_t value)
|
|
|
-{
|
|
|
- switch (_currentPage) {
|
|
|
- case _LCM_IDLE: {
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_WAIT_FOR_PLUG: {
|
|
|
- if (_everyPageRollChange == 0) {
|
|
|
- ChangeDisplay2Value(__plug_in_arrow, _arrow_dark);
|
|
|
- } else if (_everyPageRollChange == 15) {
|
|
|
- ChangeDisplay2Value(__plug_in_arrow, _arrow_light);
|
|
|
- }
|
|
|
-
|
|
|
- _everyPageRollChange > 30 ? _everyPageRollChange = 0 : _everyPageRollChange++;
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_PRE_CHARGE:
|
|
|
- case _LCM_CHARGING:
|
|
|
- case _LCM_COMPLETE: {
|
|
|
- if (_currentPage == _LCM_PRE_CHARGE) {
|
|
|
- if (_everyPageRollChange == 0 || _everyPageRollChange == 22) {
|
|
|
- ChangeDisplay2Value(__conn_line, _conn_map1);
|
|
|
- } else if (_everyPageRollChange == 11 || _everyPageRollChange == 33) {
|
|
|
- ChangeDisplay2Value(__conn_line, _conn_map2);
|
|
|
- }
|
|
|
- } else if (_currentPage == _LCM_CHARGING) {
|
|
|
- if (_everyPageRollChange == 0 || _everyPageRollChange == 22) {
|
|
|
- ChangeDisplay2Value(__conn_line_chag, _charging_map1);
|
|
|
- } else if (_everyPageRollChange == 11 || _everyPageRollChange == 33) {
|
|
|
- ChangeDisplay2Value(__conn_line_chag, _charging_map2);
|
|
|
- }
|
|
|
- } else if (_currentPage == _LCM_COMPLETE) {
|
|
|
- if (_everyPageRollChange == 0) {
|
|
|
- ChangeDisplay2Value(__conn_line_comp, _complete_map);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- _everyPageRollChange >= 45 ? _everyPageRollChange = 0 : _everyPageRollChange++;
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void RefreshConnStatus()
|
|
|
-{
|
|
|
- // Wifi priority is higher than Ethernet
|
|
|
-#if defined DD360 ||defined DD360Audi || defined DD360ComBox
|
|
|
- uint8_t i = 0;
|
|
|
- uint8_t ethstatus = 0;
|
|
|
-
|
|
|
- for (i = 0; i < pSysWarning->WarningCount; i++) {
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "012304", 6) == 0) {
|
|
|
- ethstatus = 1;
|
|
|
- //if (ShmSelectGunInfo->EthDevStatus.Ethernet != DEV_ST_DISABLE) {
|
|
|
- // ShmSelectGunInfo->EthDevStatus.Ethernet = DEV_ST_ENABLE_NO_USE;
|
|
|
- //}
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.Backend == DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__conn_status, _disappear);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.Backend == DEV_ST_ENABLE_USE) {
|
|
|
- ChangeDisplay2Value(__conn_status, _connect);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.Backend == DEV_ST_ENABLE_NO_USE) {
|
|
|
- ChangeDisplay2Value(__conn_status, _disconnect);
|
|
|
- }
|
|
|
-
|
|
|
- if (ethstatus == 1) {
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.Ethernet != DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _eth_disconnect);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.Ethernet != DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _eth_connect);
|
|
|
- }
|
|
|
- //if (ShmSelectGunInfo->EthDevStatus.Ethernet == DEV_ST_DISABLE) {
|
|
|
- //} else if (ShmSelectGunInfo->EthDevStatus.Ethernet == DEV_ST_ENABLE_USE) {
|
|
|
- // ChangeDisplay2Value(__ethernet_status, _eth_connect);
|
|
|
- //} else if (ShmSelectGunInfo->EthDevStatus.Ethernet == DEV_ST_ENABLE_NO_USE) {
|
|
|
- // ChangeDisplay2Value(__ethernet_status, _eth_disconnect);
|
|
|
- //}
|
|
|
- }
|
|
|
-
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.Wifi == DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__wifi_status, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_ENABLE_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, __3G4G_connect);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_ENABLE_NO_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _3G4G_disconnect);
|
|
|
- }
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.Wifi == DEV_ST_ENABLE_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_connect);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.Wifi == DEV_ST_ENABLE_NO_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_disconnect);
|
|
|
- }
|
|
|
-
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.Wifi != DEV_ST_DISABLE) {
|
|
|
- if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_DISABLE) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_ENABLE_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, __3G4G_connect);
|
|
|
- } else if (ShmSelectGunInfo->EthDevStatus.FourG == DEV_ST_ENABLE_NO_USE) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _3G4G_disconnect);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //uint8_t flag[4] = {0};
|
|
|
-
|
|
|
- /*for (i = 0; i < pSysWarning->WarningCount; i++) {
|
|
|
- //printf("status code = %s", &pSysWarning->WarningCode[i][0]);
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "012304", 6) == 0) {
|
|
|
- flag[0] = 1;
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "043625", 6) == 0) {
|
|
|
- //disconnected from AP through WiFi
|
|
|
- flag[1] = 1;
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "043627", 6) == 0) { //wifi disabled
|
|
|
- flag[1] = 2;
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if ((memcmp(&pSysWarning->WarningCode[i][0], "033900", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i][0], "033901", 6) == 0) ||
|
|
|
- (memcmp(&pSysWarning->WarningCode[i][0], "033902", 6) == 0)) {
|
|
|
- flag[2] = 1;
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "043626", 6) == 0) {
|
|
|
- //disconnected from APN through 3G/4G
|
|
|
- flag[3] = 1;
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "043628", 6) == 0) { //4g disabled
|
|
|
- flag[3] = 2;
|
|
|
- continue;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (flag[0] == 1) {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _eth_disconnect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _eth_connect);
|
|
|
- }
|
|
|
-
|
|
|
- //ChangeDisplay2Value(__wifi_status, _disappear);
|
|
|
- //ChangeDisplay2Value(__conn_status, _disappear);
|
|
|
- //ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
-
|
|
|
- if (flag[1] == 1) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_disconnect);
|
|
|
- } else if (flag[1] == 2) {
|
|
|
- ChangeDisplay2Value(__wifi_status, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_connect);
|
|
|
- }
|
|
|
-
|
|
|
- if (flag[2] == 1) {
|
|
|
- ChangeDisplay2Value(__conn_status, _disconnect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__conn_status, _connect);
|
|
|
- }
|
|
|
-
|
|
|
- if (flag[1] == 2) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
- if (flag[3] == 1) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _3G4G_disconnect);
|
|
|
- } else if (flag[3] == 2) {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, __3G4G_connect);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (flag[3] == 1) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _3G4G_disconnect);
|
|
|
- } else if (flag[3] == 2) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__3G4G_status, __3G4G_connect);
|
|
|
- }
|
|
|
- }
|
|
|
- */
|
|
|
-#else
|
|
|
-// eth
|
|
|
- if (pSysInfo->ethInternetConn == YES) {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _ethernet_connect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _ethernet_disconnect);
|
|
|
- }
|
|
|
-
|
|
|
- // Wifi
|
|
|
- if ((pSysConfig->ModelName[10] == 'W' ||
|
|
|
- pSysConfig->ModelName[10] == 'D') &&
|
|
|
- pSysConfig->AthInterface.WifiMode != _SYS_WIFI_MODE_DISABLE) {
|
|
|
- if (pSysConfig->AthInterface.WifiNetworkConn == YES ||
|
|
|
- pSysConfig->AthInterface.WifiMode == _SYS_WIFI_MODE_AP) {
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_connect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_disconnect);
|
|
|
- }
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__wifi_status, _disappear);
|
|
|
- }
|
|
|
-
|
|
|
- if ((pSysConfig->ModelName[10] == 'T' ||
|
|
|
- pSysConfig->ModelName[10] == 'D') &&
|
|
|
- pSysConfig->TelecomInterface.TelcomEnabled != NO) {
|
|
|
- if (pSysConfig->AthInterface.WifiMode == _SYS_WIFI_MODE_DISABLE) {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
- // 3G/4G
|
|
|
- if (pSysConfig->TelecomInterface.TelcomNetworkConn == YES)
|
|
|
- { ChangeDisplay2Value(__3G4G_move_status, _3G4G_disconnect); }
|
|
|
- else
|
|
|
- { ChangeDisplay2Value(__3G4G_move_status, _3G4G_disconnect); }
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- // 3G/4G
|
|
|
- if (pSysConfig->TelecomInterface.TelcomNetworkConn == YES)
|
|
|
- { ChangeDisplay2Value(__3G4G_status, _3G4G_disconnect); }
|
|
|
-
|
|
|
- else
|
|
|
- { ChangeDisplay2Value(__3G4G_status, _3G4G_disconnect); }
|
|
|
- }
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__3G4G_status, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__3G4G_move_status, _disappear);
|
|
|
- }
|
|
|
-
|
|
|
- // 連線到後台
|
|
|
- if (pSysInfo->OcppConnStatus == YES) {
|
|
|
- ChangeDisplay2Value(__conn_status, _connect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__conn_status, _disconnect);
|
|
|
- }
|
|
|
-
|
|
|
- /*if (pSysConfig->AthInterface.WifiNetworkConn == YES ||
|
|
|
- pSysConfig->AthInterface.WifiMode == _SYS_WIFI_MODE_AP) {
|
|
|
- _wifi_conn_status = true;
|
|
|
- ChangeDisplay2Value(__wifi_status, _wifi_connect);
|
|
|
- ChangeDisplay2Value(__ethernet_status, _disappear);
|
|
|
- } else {
|
|
|
- _wifi_conn_status = false;
|
|
|
- ChangeDisplay2Value(__wifi_status, _disappear);
|
|
|
- }
|
|
|
-
|
|
|
- if (!_wifi_conn_status) {
|
|
|
- if (pSysConfig->TelecomInterface.TelcomNetworkConn == YES ||
|
|
|
- pSysInfo->InternetConn == YES) {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _ethernet_connect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__ethernet_status, _ethernet_disconnect);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 連線到後台
|
|
|
- if (pSysInfo->OcppConnStatus == YES) {
|
|
|
- ChangeDisplay2Value(__conn_status, _connect);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__conn_status, _disconnect);
|
|
|
- }
|
|
|
- */
|
|
|
-#endif //defined DD360 || defined DD360Audi
|
|
|
-}
|
|
|
-
|
|
|
-uint8_t FirstPageChanged()
|
|
|
-{
|
|
|
- uint8_t result = NO;
|
|
|
-
|
|
|
- if (_currentPage != _oldPage) {
|
|
|
- result = YES;
|
|
|
- _oldPage = _currentPage;
|
|
|
- }
|
|
|
-
|
|
|
- return result;
|
|
|
-}
|
|
|
-
|
|
|
-bool IsPageReloadChk()
|
|
|
-{
|
|
|
- bool result = false;
|
|
|
-
|
|
|
- if (pSysInfo->CurGunSelectedByAc == NO_DEFINE) {
|
|
|
- if (_curPage_index != pSysInfo->CurGunSelected) {
|
|
|
- _curPage_index = pSysInfo->CurGunSelected;
|
|
|
- result = true;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (_curPage_index != pSysInfo->CurGunSelectedByAc) {
|
|
|
- _curPage_index = pSysInfo->CurGunSelectedByAc;
|
|
|
- result = true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return result;
|
|
|
-}
|
|
|
-
|
|
|
-void ClearDisplayInfo()
|
|
|
-{
|
|
|
- ChangeDisplay2Value(__csu_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__csu_ver_value, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__eth0_ip_string, _disappear);
|
|
|
- ChangeDisplay2Value(__eth0_ip_value, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__sn_string, _disappear);
|
|
|
- ChangeDisplay2Value(__sn_value, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__dc1_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc1_ver_value, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__dc2_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc2_ver_value, _disappear);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__fan_speed_string, _disappear);
|
|
|
- ChangeDisplay2Value(__fan_speed_value, _disappear);
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoCsuVer(bool isShow, uint8_t *modelName)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *)value, "CSU Ver >");
|
|
|
- DisplayValueToLcm(__csu_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strncpy((char *)value, (char *)modelName, 5);
|
|
|
- DisplayValueToLcm(__csu_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__csu_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__csu_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ShowWifiMode(bool isShow, uint8_t mode)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Wifi Mo. >");
|
|
|
- DisplayValueToLcm(__csu_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- if (mode == 0) {
|
|
|
- sprintf((char *)value, "disable");
|
|
|
- } else if (mode == 1) {
|
|
|
- sprintf((char *)value, "station");
|
|
|
- } else if (mode == 2) {
|
|
|
- sprintf((char *)value, "AP");
|
|
|
- }
|
|
|
-
|
|
|
- DisplayValueToLcm(__csu_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__csu_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__csu_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoEthIp(bool isShow, uint8_t *ip)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Eth IP >");
|
|
|
- DisplayValueToLcm(__eth0_ip_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) ip);
|
|
|
- DisplayValueToLcm(__eth0_ip_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__eth0_ip_string, _disappear);
|
|
|
- ChangeDisplay2Value(__eth0_ip_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void Show4GRssi(bool isShow, int dbValue)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "RSSI >");
|
|
|
- DisplayValueToLcm(__eth0_ip_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- sprintf((char *)value, "%d dBm", dbValue);
|
|
|
- DisplayValueToLcm(__eth0_ip_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__eth0_ip_string, _disappear);
|
|
|
- ChangeDisplay2Value(__eth0_ip_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoSN(bool isShow, uint8_t *sn)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[30];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "SN >");
|
|
|
- DisplayValueToLcm(__sn_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) sn);
|
|
|
- DisplayValueToLcm(__sn_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sn_string, _disappear);
|
|
|
- ChangeDisplay2Value(__sn_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ShowWifiRssi(bool isShow, int dbValue)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "RSSI >");
|
|
|
- DisplayValueToLcm(__sn_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- sprintf((char *)value, "%d dBm", dbValue);
|
|
|
- DisplayValueToLcm(__sn_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sn_string, _disappear);
|
|
|
- ChangeDisplay2Value(__sn_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoGun1Ver(bool isShow, uint8_t *version)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Ct1 Ver >");
|
|
|
- DisplayValueToLcm(__dc1_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) version);
|
|
|
- DisplayValueToLcm(__dc1_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__dc1_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc1_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void Show4GMode(bool isShow, uint8_t mode)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "3/4G Mo. >");
|
|
|
- DisplayValueToLcm(__dc1_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- if (mode == 0) {
|
|
|
- sprintf((char *)value, "disable");
|
|
|
- } else if (mode == 1) {
|
|
|
- sprintf((char *)value, "enable");
|
|
|
- }
|
|
|
-
|
|
|
- DisplayValueToLcm(__dc1_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__dc1_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc1_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoGun2Ver(bool isShow, uint8_t *version)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Ct2 Ver >");
|
|
|
- DisplayValueToLcm(__dc2_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) version);
|
|
|
- DisplayValueToLcm(__dc2_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__dc2_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc2_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void Show4GIP(bool isShow, uint8_t *ip)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "3/4G IP >");
|
|
|
- DisplayValueToLcm(__dc2_ver_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) ip);
|
|
|
- DisplayValueToLcm(__dc2_ver_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__dc2_ver_string, _disappear);
|
|
|
- ChangeDisplay2Value(__dc2_ver_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void DisplayInfoSpeed(bool isShow, unsigned int fan)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[10];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Fan Spd >");
|
|
|
- DisplayValueToLcm(__fan_speed_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- sprintf((char *)value, "%d", fan);
|
|
|
- DisplayValueToLcm(__fan_speed_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__fan_speed_string, _disappear);
|
|
|
- ChangeDisplay2Value(__fan_speed_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ShowWifiIP(bool isShow, uint8_t *ip)
|
|
|
-{
|
|
|
- if (isShow) {
|
|
|
- uint8_t value[20];
|
|
|
-
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, "Wifi IP >");
|
|
|
- DisplayValueToLcm(__fan_speed_string, value, sizeof(value));
|
|
|
- memset(value, 0x00, sizeof(value));
|
|
|
- strcpy((char *) value, (char *) ip);
|
|
|
- DisplayValueToLcm(__fan_speed_value, value, sizeof(value));
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__fan_speed_string, _disappear);
|
|
|
- ChangeDisplay2Value(__fan_speed_value, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void InformationShow()
|
|
|
-{
|
|
|
- if (pSysConfig->ShowInformation == YES) {
|
|
|
- bool show = _isShow = true;
|
|
|
- if (_showInformIndex == 0) {
|
|
|
- DisplayInfoCsuVer(show, pSysInfo->CsuRootFsFwRev);
|
|
|
- DisplayInfoSpeed(show, pSysInfo->SystemFanRotaSpeed);
|
|
|
- DisplayInfoSN(show, pSysConfig->SerialNumber);
|
|
|
-
|
|
|
- DisplayInfoEthIp(show, pSysConfig->Eth0Interface.EthIpAddress);
|
|
|
- DisplayInfoGun1Ver(show, pSysInfo->Connector1FwRev);
|
|
|
- if (_totalCount > 1) {
|
|
|
- DisplayInfoGun2Ver(show, pSysInfo->Connector2FwRev);
|
|
|
- } else {
|
|
|
- DisplayInfoGun2Ver(false, pSysInfo->Connector2FwRev);
|
|
|
- }
|
|
|
- } else if (_showInformIndex == 1) {
|
|
|
- ShowWifiMode(show, pSysConfig->AthInterface.WifiMode);
|
|
|
- ShowWifiIP(show, pSysConfig->AthInterface.WifiIpAddress);
|
|
|
- ShowWifiRssi(show, pSysConfig->AthInterface.WifiRssi);
|
|
|
-
|
|
|
- Show4GMode(show, pSysConfig->TelecomInterface.TelcomEnabled);
|
|
|
- Show4GIP(show, pSysConfig->TelecomInterface.TelcomIpAddress);
|
|
|
- Show4GRssi(show, pSysConfig->TelecomInterface.TelcomRssi);
|
|
|
- }
|
|
|
- } else {
|
|
|
- ClearDisplayInfo();
|
|
|
-
|
|
|
- if (_isShow) {
|
|
|
- _isShow = false;
|
|
|
- _showInformIndex++;
|
|
|
- if (_showInformIndex >= 2) {
|
|
|
- _showInformIndex = 0;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ProcessPageInfo()
|
|
|
-{
|
|
|
- _page_reload = IsPageReloadChk();
|
|
|
- pAcChargingInfo = (struct ChargingInfoData *)GetAcChargingInfoData(0);
|
|
|
- struct InfoCodeData *pInfoCode = (struct InfoCodeData *)GetShmInfoCodeData();
|
|
|
- struct AlarmCodeData *pAlarmCode = (struct AlarmCodeData *)GetShmAlarmCodeData();
|
|
|
- uint8_t i;
|
|
|
-
|
|
|
- // 隨插即充 - 可省略該按鈕 //DS60-120 add
|
|
|
- if (pSysConfig->AuthorisationMode == AUTH_MODE_ENABLE) {
|
|
|
- ChangeDisplay2Value(__ret_home_btn, _back_home_btn);
|
|
|
- if (_totalCount >= 2 && pSysInfo->IsAlternatvieConf == NO) {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _sel_gun_btn);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _disappear);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- switch (_currentPage) {
|
|
|
-#if defined DD360Audi
|
|
|
- case _LCM_SELECT_GUN: ////For Audi
|
|
|
- if (pSysInfo->CurGunSelected == 0) {
|
|
|
- ChangeDisplay2Value(__left_gun_map, _left_gun_enable_map);
|
|
|
- ChangeDisplay2Value(__right_gun_map, _right_gun_disable_map);
|
|
|
- } else if (pSysInfo->CurGunSelected == 1) {
|
|
|
- ChangeDisplay2Value(__left_gun_map, _left_gun_disable_map);
|
|
|
- ChangeDisplay2Value(__right_gun_map, _right_gun_enable_map);
|
|
|
- }
|
|
|
- ChangeDisplay2Value(__add_chk_btn, _select_gun_btn);
|
|
|
- break;
|
|
|
-#endif //defined DD360Audi
|
|
|
-
|
|
|
- case _LCM_IDLE: {
|
|
|
- if (pSysConfig->isRFID) {
|
|
|
- ChangeDisplay2Value(__main_rfid, _main_rfid);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__main_rfid, _main_none_rfid);
|
|
|
- }
|
|
|
-
|
|
|
- if (pSysConfig->isQRCode) {
|
|
|
- ChangeDisplay2Value(__main_qr, _main_qr);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__qr_code, _disappear);
|
|
|
- ChangeDisplay2Value(__main_qr, _main_none_qr);
|
|
|
- needReloadQr = true;
|
|
|
- }
|
|
|
-
|
|
|
- if (pSysConfig->isAPP) {
|
|
|
- ChangeDisplay2Value(__main_app, _main_app);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__main_app, _main_none_app);
|
|
|
- }
|
|
|
-#if defined DD360Audi
|
|
|
- if(pSysInfo->CurGunSelected == LEFT_GUN_NUM )
|
|
|
- ChangeDisplay2Value(__show_selectgun_value, _showselectgun_left);
|
|
|
- else if (pSysInfo->CurGunSelected == RIGHT_GUN_NUM )
|
|
|
- ChangeDisplay2Value(__show_selectgun_value, _showselectgun_right);
|
|
|
-#endif
|
|
|
- //if (FirstPageChanged() == YES || needReloadQr || _page_reload) {
|
|
|
- if (pSysConfig->isQRCode) {
|
|
|
- needReloadQr = false;
|
|
|
- if (pSysConfig->QRCodeMadeMode == NO) {
|
|
|
- //uint8_t len = strlen((char *)pSysConfig->SystemId);
|
|
|
- ChangeQrCode_Idle((char *)pSysConfig->SystemId);
|
|
|
- } else {
|
|
|
- //uint8_t len = strlen((char *)pSysConfig->QRCodeContent);
|
|
|
- ChangeQrCode_Idle((char *)pSysConfig->QRCodeContent);
|
|
|
- }
|
|
|
- //ChangeQrCode_Idle((char *)pSysConfig->SystemId);
|
|
|
- }
|
|
|
- //}
|
|
|
-
|
|
|
- //DS60-120 add
|
|
|
- bool isCharging = false;
|
|
|
- for (uint8_t i = 0; i < _totalCount; i++) {
|
|
|
- pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(i);
|
|
|
-
|
|
|
- if (pDcChargingInfo->SystemStatus == S_IDLE) {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- isCharging = true;
|
|
|
- break;
|
|
|
- }
|
|
|
- if (isCharging && pSysInfo->IsAlternatvieConf == NO) {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _sel_gun_btn);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _disappear);
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_AUTHORIZING:
|
|
|
- case _LCM_AUTHORIZ_COMP:
|
|
|
- case _LCM_AUTHORIZ_FAIL: {
|
|
|
- //case _LCM_WAIT_FOR_PLUG: {
|
|
|
- FirstPageChanged();
|
|
|
-#if defined DD360Audi
|
|
|
- if (_currentPage == _LCM_AUTHORIZ_COMP) { ////For Audi
|
|
|
- ChangeBalanceValue(__balance, pSysInfo->CurGunSelected);
|
|
|
- }
|
|
|
-#endif //defined DD360Audi
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_WAIT_FOR_PLUG: {
|
|
|
- #if defined DD360Audi
|
|
|
- if(pSysInfo->CurGunSelected == LEFT_GUN_NUM )
|
|
|
- ChangeDisplay2Value(__show_waitgunplug_value, _showwaitgunplug_left);
|
|
|
- else if (pSysInfo->CurGunSelected == RIGHT_GUN_NUM )
|
|
|
- ChangeDisplay2Value(__show_waitgunplug_value, _showwaitgunplug_right);
|
|
|
-#endif
|
|
|
- FirstPageChanged();
|
|
|
- if (pSysConfig->AuthorisationMode == AUTH_MODE_DISABLE) {
|
|
|
- // 新增隨插即充功能預設在等待插槍頁面在開啟
|
|
|
- ChangeDisplay2Value(__ret_home_btn, _disappear);
|
|
|
- bool isCharging = false;
|
|
|
- for (uint8_t i = 0; i < _totalCount; i++) {
|
|
|
- pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(i);
|
|
|
-
|
|
|
- if (pDcChargingInfo->SystemStatus == S_IDLE) {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- isCharging = true;
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (isCharging && pSysInfo->IsAlternatvieConf == NO) {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _sel_gun_btn);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _disappear);
|
|
|
- }
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _disappear);
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_PRE_CHARGE:
|
|
|
- case _LCM_CHARGING:
|
|
|
- case _LCM_COMPLETE: {
|
|
|
- bool isShowAc = false;
|
|
|
- uint8_t gunTargetIndex = 0;
|
|
|
-
|
|
|
- if (acgunCount > 0) {
|
|
|
- gunTargetIndex = 2;
|
|
|
- if (pSysInfo->CurGunSelectedByAc != NO_DEFINE) {
|
|
|
- isShowAc = true;
|
|
|
- //ChangeDisplay2Value(__gun_type_index + (2 * 2), _actype_light); //DS60-120 remove
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (gunTargetIndex * 2), _actype_light_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (gunTargetIndex * 2), _actype_light);
|
|
|
- }
|
|
|
-
|
|
|
- if (_currentPage == _LCM_CHARGING) {
|
|
|
- ChangeAcBattMapAndValue(_LCM_CHARGING);
|
|
|
- if (pAcChargingInfo->PresentChargedDuration >= 0 &&
|
|
|
- pAcChargingInfo->PresentChargedDuration <= TIME_MAX_SEC) {
|
|
|
- ChangeRemainTime(pAcChargingInfo->PresentChargedDuration);
|
|
|
- } else {
|
|
|
- ChangeRemainTime(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pAcChargingInfo->PresentChargingPower >= 0.1 &&
|
|
|
- pAcChargingInfo->PresentChargingPower <= POWER_MAX_KW) {
|
|
|
- ChangeChargingPowerValue(pAcChargingInfo->PresentChargingPower);
|
|
|
- } else {
|
|
|
- ChangeChargingPowerValue(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pAcChargingInfo->PresentChargedEnergy >= 0.1 &&
|
|
|
- pAcChargingInfo->PresentChargedEnergy <= ENERGY_MAX_KWH) {
|
|
|
- ChangeChargingEnergyValue(pAcChargingInfo->PresentChargedEnergy);
|
|
|
- } else {
|
|
|
- ChangeChargingEnergyValue(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (strcmp((char *)pAcChargingInfo->StartUserId, "") == 0 ||
|
|
|
- pSysConfig->StopChargingByButton == YES) {
|
|
|
- ChangeDisplay2Value(__stop_method_btn, _stop_charging_btn);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__stop_method_btn, _stop_charging_btn_scan);
|
|
|
- }
|
|
|
- } else if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeAcBattMapAndValue(_LCM_COMPLETE);
|
|
|
- if (pAcChargingInfo->PresentChargedDuration >= 0 &&
|
|
|
- pAcChargingInfo->PresentChargedDuration <= TIME_MAX_SEC) {
|
|
|
- ChangeRemainTime(pAcChargingInfo->PresentChargedDuration);
|
|
|
- } else {
|
|
|
- ChangeRemainTime(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pAcChargingInfo->PresentChargingPower >= 0.1 &&
|
|
|
- pAcChargingInfo->PresentChargingPower <= POWER_MAX_KW) {
|
|
|
- ChangeChargingPowerValue(pAcChargingInfo->PresentChargingPower);
|
|
|
- } else {
|
|
|
- ChangeChargingPowerValue(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pAcChargingInfo->PresentChargedEnergy >= 0.1 &&
|
|
|
- pAcChargingInfo->PresentChargedEnergy <= ENERGY_MAX_KWH) {
|
|
|
- ChangeChargingEnergyValue(pAcChargingInfo->PresentChargedEnergy);
|
|
|
-
|
|
|
- if (pSysConfig->BillingData.isBilling &&
|
|
|
- pAcChargingInfo->ChargingFee >= 0) {
|
|
|
- ChangeChargingFeeValue(pAcChargingInfo->ChargingFee);
|
|
|
- }
|
|
|
- } else {
|
|
|
- ChangeChargingEnergyValue(0);
|
|
|
- if (pSysConfig->BillingData.isBilling) {
|
|
|
- ChangeChargingFeeValue(0);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!pSysConfig->BillingData.isBilling) {
|
|
|
- ChangeDisplay2Value(__charging_fee_map, _disappear);
|
|
|
- ChangeDisplay2Value(__charging_fee_tx, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__charging_fee_map, _money_map);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //ChangeDisplay2Value(__gun_type_index + (2 * 2), _actype_dark); //DS60-120 remove
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (gunTargetIndex * 2), _actype_dark_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (gunTargetIndex * 2), _actype_dark);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //ChangeDisplay2Value(__gun_type_index + (2 * 2), _disappear); //DS60-120 remove
|
|
|
- if (_totalCount > 1) {
|
|
|
- gunTargetIndex = 2;
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (gunTargetIndex * 2), _disappear);
|
|
|
- ChangeDisplay2Value(__gun_type_index + (gunTargetIndex * 2), _disappear);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- gunTargetIndex = 0; //DS60-120 add
|
|
|
- for (uint8_t i = 0; i < _totalCount; i++) {
|
|
|
- if (_totalCount == 1 && acgunCount <= 0) { //DS60-120 add
|
|
|
- gunTargetIndex = 2;
|
|
|
- } else {
|
|
|
- gunTargetIndex = i;
|
|
|
- }
|
|
|
-
|
|
|
- pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(i);
|
|
|
-
|
|
|
- switch (pDcChargingInfo->Type) {
|
|
|
- case _Type_Chademo: {
|
|
|
- if (pSysInfo->CurGunSelected == i && !isShowAc) {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _chademo_light_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _chademo_light);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _chademo_dark_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _chademo_dark);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case _Type_GB: {
|
|
|
- if (pSysInfo->CurGunSelected == i && !isShowAc) {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _gbt_light_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _gbt_light);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _gbt_dark_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _gbt_dark);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case _Type_CCS_2: {
|
|
|
- if (pSysInfo->CurGunSelected == i && !isShowAc) {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _ccs_light_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _ccs_light);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (_currentPage == _LCM_COMPLETE) {
|
|
|
- ChangeDisplay2Value(__cmp_gun_type_index + (i * 2), _ccs_dark_cmp);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _ccs_dark);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (_currentPage == _LCM_PRE_CHARGE && !isShowAc) {
|
|
|
- if (pSysInfo->CurGunSelected == i) {
|
|
|
- ChangeBattMapAndValue(_currentPage, pDcChargingInfo->EvBatterySoc);
|
|
|
- }
|
|
|
- } else if (_currentPage == _LCM_CHARGING && !isShowAc) {
|
|
|
- if (pSysInfo->CurGunSelected == i) {
|
|
|
- ChangeBattMapAndValue(_LCM_CHARGING, pDcChargingInfo->EvBatterySoc);
|
|
|
- if (pDcChargingInfo->PresentChargedDuration >= 0 &&
|
|
|
- pDcChargingInfo->PresentChargedDuration <= TIME_MAX_SEC) {
|
|
|
- ChangeRemainTime(pDcChargingInfo->PresentChargedDuration);
|
|
|
- } else {
|
|
|
- ChangeRemainTime(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pDcChargingInfo->PresentChargingPower >= 0 &&
|
|
|
- pDcChargingInfo->PresentChargingPower <= POWER_MAX_KW) {
|
|
|
- ChangeChargingPowerValue(pDcChargingInfo->PresentChargingPower);
|
|
|
- } else {
|
|
|
- ChangeChargingPowerValue(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pDcChargingInfo->PresentChargedEnergy >= 0.1 &&
|
|
|
- pDcChargingInfo->PresentChargedEnergy <= ENERGY_MAX_KWH) {
|
|
|
- ChangeChargingEnergyValue(pDcChargingInfo->PresentChargedEnergy);
|
|
|
- } else {
|
|
|
- ChangeChargingEnergyValue(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (strcmp((char *)pDcChargingInfo->StartUserId, "") == 0 ||
|
|
|
- pSysConfig->StopChargingByButton == YES) {
|
|
|
- ChangeDisplay2Value(__stop_method_btn, _stop_charging_btn);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__stop_method_btn, _stop_charging_btn_scan);
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (_currentPage == _LCM_COMPLETE && !isShowAc) {
|
|
|
- if (pSysInfo->CurGunSelected == i) {
|
|
|
- ChangeBattMapAndValue(_LCM_COMPLETE, pDcChargingInfo->EvBatterySoc);
|
|
|
- if (pDcChargingInfo->PresentChargedDuration >= 0 &&
|
|
|
- pDcChargingInfo->PresentChargedDuration <= TIME_MAX_SEC) {
|
|
|
- ChangeRemainTime(pDcChargingInfo->PresentChargedDuration);
|
|
|
- } else {
|
|
|
- ChangeRemainTime(0);
|
|
|
- }
|
|
|
-
|
|
|
- if (pDcChargingInfo->PresentChargingPower >= 0 &&
|
|
|
- pDcChargingInfo->PresentChargingPower <= POWER_MAX_KW) {
|
|
|
- ChangeChargingPowerValue(pDcChargingInfo->PresentChargingPower);
|
|
|
- } else {
|
|
|
- ChangeChargingPowerValue(0);
|
|
|
- }
|
|
|
-#if 1
|
|
|
- if (pDcChargingInfo->PresentChargedEnergy >= 0.1 &&
|
|
|
- pDcChargingInfo->PresentChargedEnergy <= ENERGY_MAX_KWH) {
|
|
|
- ChangeChargingEnergyValue(pDcChargingInfo->PresentChargedEnergy);
|
|
|
-
|
|
|
- if (pSysConfig->BillingData.isBilling &&
|
|
|
- pDcChargingInfo->ChargingFee >= 0) {
|
|
|
- ChangeChargingFeeValue(pDcChargingInfo->ChargingFee);
|
|
|
- ChangeBalanceValue(__remain_balance, i);
|
|
|
- }
|
|
|
- } else {
|
|
|
- ChangeChargingEnergyValue(0);
|
|
|
- if (pSysConfig->BillingData.isBilling) {
|
|
|
- ChangeChargingFeeValue(0);
|
|
|
- ChangeBalanceValue(__remain_balance, i);
|
|
|
- }
|
|
|
- }
|
|
|
-#else
|
|
|
- ChangeChargingEnergyValue(pDcChargingInfo->PresentChargedEnergy);
|
|
|
-
|
|
|
- if (pSysConfig->BillingData.isBilling &&
|
|
|
- pDcChargingInfo->ChargingFee >= 0) {
|
|
|
- ChangeChargingFeeValue(pDcChargingInfo->ChargingFee);
|
|
|
- ChangeBalanceValue(__remain_balance, i);
|
|
|
- }
|
|
|
-#endif // 0
|
|
|
- if (!pSysConfig->BillingData.isBilling) {
|
|
|
- ChangeDisplay2Value(__charging_fee_map, _disappear);
|
|
|
- ChangeDisplay2Value(__charging_fee_tx, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__charging_fee_map, _money_map);
|
|
|
- }
|
|
|
-#ifdef DD360Audi
|
|
|
- // Warming Occur in prepare or precharing state, turn into complete mode
|
|
|
- if (pInfoCode->InfoEvents.bits.Stop_by_EV_with_unknow_reason) {
|
|
|
- RunFullTargetFunction(true);
|
|
|
- } else {
|
|
|
- RunFullTargetFunction(false);
|
|
|
- if (pDcChargingInfo->Replug_flag) {
|
|
|
- RunReplugStringFunction(true);
|
|
|
- } else {
|
|
|
- RunReplugStringFunction(false);
|
|
|
- }
|
|
|
- }
|
|
|
-#endif
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // gun btn and QR code
|
|
|
- if (_totalCount + acgunCount >= 2 && _currentPage) {
|
|
|
- uint8_t index = 0;
|
|
|
- for (index = 0; index < _totalCount; index++) {
|
|
|
- if (pSysInfo->CurGunSelected != index) {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(index);
|
|
|
-
|
|
|
- if (pDcChargingInfo->SystemStatus == S_IDLE ||
|
|
|
- pDcChargingInfo->SystemStatus == S_RESERVATION ||
|
|
|
- pDcChargingInfo->SystemStatus == S_BOOTING) {
|
|
|
- if (FirstPageChanged() == YES || needReloadQr || _page_reload) {
|
|
|
- if (pSysConfig->isQRCode) {
|
|
|
- needReloadQr = false;
|
|
|
- //ChangeQrCode_Charge((char *)pSysConfig->SystemId); //DS60-120 remove
|
|
|
- if (pSysConfig->QRCodeMadeMode == NO) {
|
|
|
- //uint8_t len = strlen((char *)pSysConfig->SystemId);
|
|
|
- ChangeQrCode_Charge((char *)pSysConfig->SystemId);
|
|
|
- } else {
|
|
|
- //uint8_t len = strlen((char *)pSysConfig->QRCodeContent);
|
|
|
- ChangeQrCode_Charge((char *)pSysConfig->QRCodeContent);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case _LCM_FIX:
|
|
|
-#if defined DD360Audi
|
|
|
- // For Emergency Button
|
|
|
- if (ShmPrimaryMcuData->InputDet.bits.EmergencyButton == 1) {
|
|
|
- ChangeToOtherPage(_LCM_EMERGENCY);
|
|
|
- break;
|
|
|
- }
|
|
|
- // For Network Disconnect
|
|
|
- for (i = 0; i < pSysWarning->WarningCount; i++) {
|
|
|
- if (memcmp(&pSysWarning->WarningCode[i][0], "012304", 6) == 0 ||
|
|
|
- memcmp(&pSysWarning->WarningCode[i][0], "042304", 6) == 0) {
|
|
|
- ChangeToOtherPage(_LCM_DISCONNECT);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void ChangeDisplayMoneyInfo()
|
|
|
-{
|
|
|
- uint8_t curGun = pSysInfo->CurGunSelected;
|
|
|
-
|
|
|
- if (pSysConfig->BillingData.isBilling) {
|
|
|
- struct timeb csuTime;
|
|
|
- struct tm *tmCSU;
|
|
|
-
|
|
|
- ftime(&csuTime);
|
|
|
- tmCSU = localtime(&csuTime.time);
|
|
|
-
|
|
|
- ChangeDisplay2Value(__money_rate_map, _charging_money);
|
|
|
-#if defined DD360Audi
|
|
|
- if (ShmSelectGunInfo->PricesInfo[curGun].UserPrices != 0.00) { //Jerry add
|
|
|
- DisplayMoneyRate(ShmSelectGunInfo->PricesInfo[curGun].UserPrices);
|
|
|
- } else {
|
|
|
-#endif //defined DD360Audi
|
|
|
- if (tmCSU->tm_hour <= 23) {
|
|
|
- pSysConfig->BillingData.Cur_fee = pSysConfig->BillingData.Fee[tmCSU->tm_hour];
|
|
|
- DisplayMoneyRate(pSysConfig->BillingData.Cur_fee);
|
|
|
- }
|
|
|
-
|
|
|
- if (pSysConfig->BillingData.Currency <= 53) {
|
|
|
- DisplayMoneyCur((uint8_t *)GetCurrency(pSysConfig->BillingData.Currency));
|
|
|
- }
|
|
|
-#if defined DD360Audi
|
|
|
- }
|
|
|
-#endif //defined DD360Audi
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__money_rate_map, _disappear);
|
|
|
- ChangeDisplay2Value(__money_by_rate, _disappear);
|
|
|
- ChangeDisplay2Value(__money_rate, _disappear);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/*void Initialization()
|
|
|
-{
|
|
|
- bool isPass = false;
|
|
|
- uint8_t count = 5;
|
|
|
- while (!isPass && count > 0) {
|
|
|
- isPass = true;
|
|
|
- for (uint8_t _index = 0; _index < _totalCount; _index++) {
|
|
|
- if (!FindChargingInfoData(_index, &_chargingInfoData[0])) {
|
|
|
- log_error("LcmComm (main) : FindChargingInfoData false ");
|
|
|
- isPass = false;
|
|
|
- count--;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- sleep(1);
|
|
|
- }
|
|
|
-
|
|
|
- isPass = false;
|
|
|
-
|
|
|
- if (acgunCount > 0) {
|
|
|
- while (!isPass) {
|
|
|
- isPass = true;
|
|
|
- for (uint8_t _index = 0; _index < acgunCount; _index++) {
|
|
|
- if (!FindAcChargingInfoData(_index, &ac_chargingInfo[0])) {
|
|
|
- log_error("LcmComm : FindAcChargingInfoData false ");
|
|
|
- isPass = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- sleep(1);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (count == 0) {
|
|
|
- log_info("LCM Initialization Gun Fail.............");
|
|
|
- }
|
|
|
-}
|
|
|
-*/
|
|
|
-
|
|
|
-//DS60-120 add
|
|
|
-void DefaultIconStatus()
|
|
|
-{
|
|
|
- for (uint8_t i = 0; i < 3; i++) {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _disappear);
|
|
|
- }
|
|
|
-
|
|
|
- if (pSysInfo->IsAlternatvieConf == YES || _totalCount == 1) {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _disappear);
|
|
|
- } else {
|
|
|
- ChangeDisplay2Value(__sel_gun_btn, _sel_gun_btn);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-int main(void)
|
|
|
-{
|
|
|
-
|
|
|
- //if (InitShareMemory() == FAIL) {
|
|
|
- // log_error("InitShareMemory NG");
|
|
|
- //
|
|
|
- // if (ShmStatusCodeData != NULL) {
|
|
|
- // ShmStatusCodeData->AlarmCode.AlarmEvents.bits.FailToCreateShareMemory = 1;
|
|
|
- // }
|
|
|
- // sleep(5);
|
|
|
- // return 0;
|
|
|
- //}
|
|
|
-
|
|
|
- if (CreateAllCsuShareMemory() == FAIL) {
|
|
|
- log_error("create share memory error");
|
|
|
- return FAIL;
|
|
|
- }
|
|
|
-
|
|
|
- MappingGunChargingInfo("LCM Control Task");
|
|
|
-
|
|
|
- pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
|
|
|
- pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
|
|
|
- pSysWarning = (struct WARNING_CODE_INFO *)GetShmSysWarningInfo();
|
|
|
- ShmFanModuleData = (struct FanModuleData *)GetShmFanModuleData();;
|
|
|
- ShmPrimaryMcuData = (struct PrimaryMcuData *)GetShmPrimaryMcuData();
|
|
|
- ShmSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo();
|
|
|
- struct StatusCodeData *ShmStatusCodeData = (struct StatusCodeData *)GetShmStatusCodeData();;
|
|
|
-
|
|
|
-
|
|
|
- _port = CreateCommunicationLcmPort();
|
|
|
- uint8_t changeWarningPriority = 0;
|
|
|
- uint8_t curWarningCount = 255;
|
|
|
- ChangeBackLight(true);
|
|
|
- _totalCount = pSysConfig->TotalConnectorCount;
|
|
|
- acgunCount = pSysConfig->AcConnectorCount;
|
|
|
- //Initialization();
|
|
|
-
|
|
|
- //printf("_LCM_COMPLETE ");
|
|
|
- //ChangeToOtherPage(_LCM_COMPLETE);
|
|
|
- //return 0;
|
|
|
-
|
|
|
- for (uint8_t i = 0; i < 3; i++) {
|
|
|
- ChangeDisplay2Value(__gun_type_index + (i * 2), _disappear);
|
|
|
- }
|
|
|
-
|
|
|
- DefaultIconStatus(); //DS60-120 add
|
|
|
-
|
|
|
- while (_port != -1) {
|
|
|
- if (strcmp((char *)pSysInfo->LcmHwRev, moduleName) != 0x00) {
|
|
|
- GetCurrentPage();
|
|
|
- sleep(1);
|
|
|
-#ifndef DD360ComBox
|
|
|
- ShmStatusCodeData->AlarmCode.AlarmEvents.bits.LcmModuleCommFail = true;
|
|
|
-#endif
|
|
|
-
|
|
|
- } else {
|
|
|
- //DemoFunction();
|
|
|
-#ifndef DD360ComBox
|
|
|
- ShmStatusCodeData->AlarmCode.AlarmEvents.bits.LcmModuleCommFail = false;
|
|
|
-#endif
|
|
|
-
|
|
|
- // Warning 處理
|
|
|
- if (curWarningCount != pSysWarning->WarningCount) {
|
|
|
- changeWarningPriority = 0;
|
|
|
- pSysWarning->PageIndex = 0;
|
|
|
- curWarningCount = pSysWarning->WarningCount;
|
|
|
- ChangeWarningFunc();
|
|
|
- } else if (pSysWarning->WarningCount > 5 && changeWarningPriority == 0) {
|
|
|
- // 當有兩頁 Warning 則每隔三秒改變一次
|
|
|
- if (pSysWarning->PageIndex == 0) {
|
|
|
- pSysWarning->PageIndex = 1;
|
|
|
- } else {
|
|
|
- pSysWarning->PageIndex = 0;
|
|
|
- }
|
|
|
-
|
|
|
- ChangeWarningFunc();
|
|
|
- }
|
|
|
- // 頁面資訊處理
|
|
|
- ProcessPageInfo();
|
|
|
-
|
|
|
- // 網路 - wifi - 連線訊號處理
|
|
|
- RefreshConnStatus();
|
|
|
-
|
|
|
- // 換頁處理
|
|
|
- GetCurrentPage(); //DS60-120 add
|
|
|
- ChangeCurPage();
|
|
|
-
|
|
|
- RefreshPageAnimation(_everyPageRollChange);
|
|
|
-
|
|
|
-#if defined DD360Audi
|
|
|
- ChangeDisplayMoneyInfo();
|
|
|
-#else
|
|
|
- if (changeWarningPriority == 0) { ////For Audi
|
|
|
- ChangeDisplayMoneyInfo();
|
|
|
- InformationShow();
|
|
|
- }
|
|
|
-#endif //defined DD360Audi
|
|
|
-
|
|
|
- changeWarningPriority >= 15 ? (_battery_display_ani = true) : (_battery_display_ani = false);
|
|
|
- changeWarningPriority >= 30 ? changeWarningPriority = 0 : changeWarningPriority++;
|
|
|
- usleep(100000);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-#ifndef DD360ComBox
|
|
|
- ShmStatusCodeData->AlarmCode.AlarmEvents.bits.LcmModuleCommFail = true;
|
|
|
-#endif
|
|
|
- log_info("Close LCM Uart Port");
|
|
|
- CloseCommunicationLcmPort();
|
|
|
-
|
|
|
- return FAIL;
|
|
|
-}
|