瀏覽代碼

Merge remote-tracking branch 'origin/DD360UCar'

FolusWen 2 年之前
父節點
當前提交
e4aaab53a0

+ 12 - 1
EVSE/Projects/DD360UCar/Apps/CSU/RFID.c

@@ -346,6 +346,9 @@ void CreateRfidFork(void)
         int isContinue = 1;
         RFID rfid = {0};
         fd = InitialRfidPort();
+
+        int module_type = MODULE_EWT;
+
         struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
 
         //log_info("RFID fork Child's PID is %d", getpid());
@@ -359,7 +362,7 @@ void CreateRfidFork(void)
                 continue;
             }
 
-            if (getRequestCardSN(fd, 0, &rfid) == false) {
+            if (getRequestCardSN(fd, module_type, &rfid) == false) {
                 continue;
             }
 
@@ -436,6 +439,14 @@ void CreateRfidFork(void)
                 }
             }
             log_info("card number = %s", pSysConfig->UserId);
+            if (rfid.cardType == ISO14443A) {
+                sethaltCard(fd, module_type);
+            } else if (rfid.cardType == IS014443B) {
+
+            } else if (rfid.cardType == FELICA) {
+
+            }
+
         }
     }
 }

+ 1 - 1
EVSE/Projects/DD360UCar/Apps/CSU/main.c

@@ -83,7 +83,7 @@ uint8_t bd1_1_status = 0;
 uint8_t bd1_2_status = 0;
 
 char *fwVersion = "V2.05.00.0000.00"; // Phihong version
-char* DebugVersion = "v2.05.00";      // Software debug version
+char* DebugVersion = "V2.05.01";      // Software debug version
 //sqlite3 *localDb;
 bool isDb_ready;
 

+ 1 - 0
EVSE/Projects/DD360UCar/Apps/Config.h

@@ -514,6 +514,7 @@ typedef struct StDcCommonInfo {
     time_t RelayDisconnectTime;
     time_t LedDisconnectTime;
     time_t FanDisconnectTime;
+    int DemoCount;
 } DcCommonInfo;
 
 #endif /* CONFIG_H_ */

+ 25 - 5
EVSE/Projects/DD360UCar/Apps/ModuleEvComm/Module_EvRxComm.c

@@ -301,6 +301,7 @@ void CANReceiver(int fd)
         uint8_t lastConnTemp[2] = {0, 0};
         struct can_frame frame;
         ChillerTemp chiilerTemp = {0};
+        time_t CCS_PlugoutTimer[2] = { 0 };
         struct ChargingInfoData *pDcChargingInfo = NULL;
 
         pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
@@ -318,6 +319,8 @@ void CANReceiver(int fd)
         ShmDcCommonData->EVDisconnectTime[0] = time((time_t*)NULL);
         ShmDcCommonData->EVDisconnectTime[1] = time((time_t*)NULL);
         //log_info("Module_EvRXComm Child's PID is %d", getpid());
+        CCS_PlugoutTimer[0] = time((time_t*)NULL);
+        CCS_PlugoutTimer[1] = time((time_t*)NULL);
 
         while (isContinue) {
             memset(&frame, 0, sizeof(struct can_frame));
@@ -409,7 +412,8 @@ void CANReceiver(int fd)
                             pSysInfo->CurGunSelected = targetGun;
 #endif                        
                     } else if (frame.data[0] == UNPLUG) {
-                        log_info("Conn %d, Unplug. ", targetGun);
+                        if (pDcChargingInfo->Type != _Type_CCS_2)
+                            log_info("Conn %d, Unplug. ", targetGun);
                         strcpy( (char *) pDcChargingInfo->EVCCID, "");
                     } else {
                         log_info("Conn %d, None Check. (%d) ", targetGun, frame.data[0]);
@@ -418,7 +422,20 @@ void CANReceiver(int fd)
                         pSysInfo->CurGunSelected = targetGun;
                     }
                 }
-
+                // CCS 小板確認拔除三秒
+                if (pDcChargingInfo->Type == _Type_CCS_2) {
+                    if (frame.data[0] == UNPLUG) {
+                        if ((time((time_t*)NULL) - CCS_PlugoutTimer[targetGun]) > 3) {
+                            if (pDcChargingInfo->ConnectorPlugIn != frame.data[0])
+                                log_info("CCS Conn %d, Unplug. ", targetGun);
+                        } else {
+                            frame.data[0] = PLUG;
+                        }
+                    } else {
+                        CCS_PlugoutTimer[targetGun] = time((time_t*)NULL);
+                        frame.data[0] = PLUG;
+                    }
+                }
                 pDcChargingInfo->ConnectorPlugIn = frame.data[0];
                 pDcChargingInfo->PilotVoltage = frame.data[1];           
 
@@ -495,6 +512,7 @@ void CANReceiver(int fd)
 
                     if (frame.data[1] > pDcChargingInfo->EvBatterySoc) {
                         pDcChargingInfo->EvBatterySoc = frame.data[1];
+                        log_info("Gun%d SOC:%d", targetGun, pDcChargingInfo->EvBatterySoc);
                     }
                 }
                 //pDcChargingInfo->EvBatterySoc = frame.data[1]; //DS60-120 remove
@@ -648,11 +666,13 @@ void CANReceiver(int fd)
                         //  (pDcChargingInfo->ChillerTemp != UNDEFINED_TEMP)))
                    ) {
                     ShmDcCommonData->SystemModeChange[targetGun] = NO;
-                    log_info("Conn %d max head temp = %d, max chiller = %d, max chiller2 = %d",
+                    log_info("Gun%d max head temp = %d, chiller1 = [%d,%d], chiller2 = [%d,%d]",
                              targetGun,
                              maxConnTemp,
-                             chillerTemp[0],
-                             chillerTemp[1]);
+                             chiilerTemp.Temp[0],
+                             chiilerTemp.Temp[1],
+                             chiilerTemp.Temp[2],
+                             chiilerTemp.Temp[3]);
                 }
 
                 if (((ShmDcCommonData->ChillerValve.MultiChillerGun & 0x80) >> 7) == YES) {

+ 31 - 0
EVSE/Projects/DD360UCar/Apps/ModuleInternalComm/RelayBoard.c

@@ -1624,6 +1624,37 @@ static void SetLedColor(void)
 
         }
     }
+    /*
+    if (ShmDcCommonData->DemoCount < 1) {
+        led_color.Connect_1_Red = COLOR_MIN_LV;
+        led_color.Connect_1_Green = COLOR_MIN_LV;
+        led_color.Connect_1_Blue = _colorBuf;
+        led_color.Connect_2_Red = COLOR_MIN_LV;
+        led_color.Connect_2_Green = COLOR_MIN_LV;
+        led_color.Connect_2_Blue = _colorBuf;
+    } else if (ShmDcCommonData->DemoCount < 8) {
+        led_color.Connect_1_Red = COLOR_MIN_LV;
+        led_color.Connect_1_Green = _colorBuf;
+        led_color.Connect_1_Blue = COLOR_MIN_LV;
+        led_color.Connect_2_Red = COLOR_MIN_LV;
+        led_color.Connect_2_Green = COLOR_MIN_LV;
+        led_color.Connect_2_Blue = _colorBuf;
+    } else if (ShmDcCommonData->DemoCount < 18) {
+        led_color.Connect_1_Red = COLOR_MIN_LV;
+        led_color.Connect_1_Green = _colorBuf;
+        led_color.Connect_1_Blue = COLOR_MIN_LV;
+        led_color.Connect_2_Red = COLOR_MIN_LV;
+        led_color.Connect_2_Green = _colorBuf;
+        led_color.Connect_2_Blue = COLOR_MIN_LV;
+    } else {
+        led_color.Connect_1_Red = COLOR_MIN_LV;
+        led_color.Connect_1_Green = COLOR_MIN_LV;
+        led_color.Connect_1_Blue = _colorBuf;
+        led_color.Connect_2_Red = COLOR_MIN_LV;
+        led_color.Connect_2_Green = _colorBuf;
+        led_color.Connect_2_Blue = COLOR_MIN_LV;
+    }
+    //*/
     if (_checkLedChanged > 0) {
         if (Config_Led_Color(Uart5Fd, ADDR_LED, &led_color) == PASS) {
             _checkLedChanged--;

+ 145 - 84
EVSE/Projects/DD360UCar/Apps/ModuleLcmCtrl/Module_LcmControl.c

@@ -254,6 +254,22 @@ void ChangeDisplay2Value(short address, short value)
     DisplayValueToLcm(address, data, sizeof(data));
 }
 
+void ChangeDisplay2LongValue(short address, long value)
+{
+    uint8_t data[4];
+    data[0] = (value >> 24) & 0xFF;
+    data[1] = (value >> 16 ) & 0xFF;
+    data[2] = (value >> 8) & 0xFF;
+    data[3] = value & 0x000000FF;
+    /*
+    log_info("long Addr:0x%x, value:%d",address,value);
+    for (int i = 0; i < 4; i++) {
+        log_info("data[%d]:%d",i,data[i]);
+    }
+    */
+    DisplayValueToLcm(address, data, sizeof(data));
+}
+
 //================================================
 // Warning process
 //================================================
@@ -517,12 +533,15 @@ void ShowViewChargingPower(uint8_t gunIndex,float power)
 }
 void ShowConnectId()
 {
+    ChangeDisplay2Value(_LeftGun_ConnectorId, _ICON_CONNECTOR_1);
+    ChangeDisplay2Value(_RightGun_ConnectorId, _ICON_CONNECTOR_1);
+    
     if (ShmDcCommonData->ConnectorId[0] <= 2) {
-        ChangeDisplay2Value(_LeftGun_ConnectorId, _ICON_CONNECTOR_1);
-        ChangeDisplay2Value(_RightGun_ConnectorId, _ICON_CONNECTOR_1);
+        ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_A);
+        ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_B);
     } else {
-        ChangeDisplay2Value(_LeftGun_ConnectorId, _ICON_CONNECTOR_2);
-        ChangeDisplay2Value(_RightGun_ConnectorId, _ICON_CONNECTOR_2);
+        ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_C);
+        ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_D);
     }
     
 }
@@ -557,9 +576,6 @@ void ShowViewLeftGunInfo()
             default:
                 log_error("CCS Gun Type Error! Not Show in LCM!!");
         }
-        memset(value, 0x00, sizeof(value));
-        sprintf((char *)value,"1 A");
-        DisplayValueToLcm(_LeftGun_location, (uint8_t *)value, sizeof(value));
     } else if (pDcChargingInfo->SystemStatus == S_CHARGING ) {
         ShowViewChargingSoc(LEFT_GUN_NUM,pDcChargingInfo->EvBatterySoc);
         ShowViewChargingTime(LEFT_GUN_NUM,pDcChargingInfo->PresentChargedDuration);
@@ -751,6 +767,7 @@ void ShowSummaryPage()
     uint8_t value[10] = {0};
     char start_hr[3],start_min[3],end_hr[3],end_min[3];
     int t_hr;
+    long eng = 0;
     pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(pSysInfo->CurGunSelected);
     // Show Money
     data = pDcChargingInfo->ChargingFee;
@@ -760,7 +777,7 @@ void ShowSummaryPage()
     discount = ShmSelectGunInfo->PricesInfo[pSysInfo->CurGunSelected].Discount;
     ChangeDisplay2Value(_Summary_cal_discount, discount*(-1));
     settlement = (int)pDcChargingInfo->ChargingFee - discount;
-    ChangeDisplay2Value(_Summary_total_money, (int)settlement);
+    ChangeDisplay2Value(_Summary_total_money, (int)pDcChargingInfo->ChargingFee);
     ChangeDisplay2Value(_Summary_cal_Total_money, (int)pDcChargingInfo->ChargingFee);
     /*
     log_info("start time:%s",pDcChargingInfo->StartDateTime);
@@ -805,13 +822,13 @@ void ShowSummaryPage()
     ChangeDisplay2Value(_Summary_duration_min, (int)_min);
     ChangeDisplay2Value(_Summary_duration_sec, (int)_sec);
 
-    if (pDcChargingInfo->PresentChargedEnergy >= 0.1 &&
+    if (pDcChargingInfo->PresentChargedEnergy > 0.001 &&
             pDcChargingInfo->PresentChargedEnergy <= ENERGY_MAX_KWH) {
-        data = pDcChargingInfo->PresentChargedEnergy*10;
+        data = pDcChargingInfo->PresentChargedEnergy*1000;
     } else
         data = 0;
     //sprintf((char *)value,"%.1f",data);
-    ChangeDisplay2Value(_Summary_cap, data);
+    ChangeDisplay2LongValue(_Summary_cap, data);
 
     if (pSysInfo->CurGunSelected == LEFT_GUN_NUM) {
         ChangeDisplay2Value(_Summary_max_power, (int)ChargeMaxPower_0);
@@ -889,67 +906,108 @@ void DemoFunction()
     uint8_t value[10];
     struct timeb  SeqEndTime;
     struct tm *tm;
+    ChangeDisplay2Value(_Animation_Running, 1);
+    ChangeDisplay2Value(_Animation_Communcation, 1);
+    ChangeDisplay2Value(_Animation_GFD, 1);
+    ChangeDisplay2Value(_Animation_Precharge, 1);
+    ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_A);
+    ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_B);
+    ChangeDisplay2Value(_LeftGun_ConnectorId, _ICON_CONNECTOR_1);
+    ChangeDisplay2Value(_RightGun_ConnectorId, _ICON_CONNECTOR_1);
     switch (pSysInfo->PageIndex) {
         case __VIEW_ALL_IDLE_:
-            memset(value, 0x00, sizeof(value));
-            sprintf((char *)value,"1 A");
-            DisplayValueToLcm(_LeftGun_location, (uint8_t *)value, sizeof(value));
-            sprintf((char *)value,"1 B");
-            DisplayValueToLcm(_RightGun_location, (uint8_t *)value, sizeof(value));
-            sleep(1);
+            pDcChargingInfo = (struct ChargingInfoData*)GetDcChargingInfoData(LEFT_GUN_NUM);
+            switch (pDcChargingInfo->CCSGunType) {
+            case _TYPE_CCS1_Liquid:
+            case _TYPE_CCS1_Natural:
+                ChangeDisplay2Value(_LeftGun_type_pic_U, _ICON_CCS1_GUN_U);
+                ChangeDisplay2Value(_LeftGun_type_pic_L, _ICON_CCS1_GUN_L);
+                ChangeDisplay2Value(_LeftGun_type_name, _ICON_CCS1_Name);
+                if (pDcChargingInfo->CCSGunType == _TYPE_CCS1_Liquid) {
+                    ChangeDisplay2Value(_LeftGun_type_speed, _ICON_High_Speed);
+                    ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_B);
+                } else {
+                    ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_A);
+                    ChangeDisplay2Value(_LeftGun_type_speed, _ICON_Speed);
+                }
+                break;
+            case _TYPE_CCS2_Liquid:
+            case _TYPE_CCS2_Natural:
+                ChangeDisplay2Value(_LeftGun_type_pic_U, _ICON_CCS2_GUN_U);
+                ChangeDisplay2Value(_LeftGun_type_pic_L, _ICON_CCS2_GUN_L);
+                ChangeDisplay2Value(_LeftGun_type_name, _ICON_CCS2_Name);
+                ChangeDisplay2Value(_LeftGun_Symbol_Icon, _ICON_CONNECTOR_C);
+                if (pDcChargingInfo->CCSGunType == _TYPE_CCS2_Liquid) {
+                    ChangeDisplay2Value(_LeftGun_type_speed, _ICON_High_Speed);
+                } else {
+                    ChangeDisplay2Value(_LeftGun_type_speed, _ICON_Speed);
+                }
+                break;
+            }
 
-            ChangeDisplay2Value(_LeftGun_type_pic_U,_ICON_CCS2_GUN_U);
-            ChangeDisplay2Value(_LeftGun_type_pic_L,_ICON_CCS2_GUN_L);
-            ChangeDisplay2Value(_LeftGun_type_name,_ICON_CCS2_Name);
-            ChangeDisplay2Value(_LeftGun_type_speed,_ICON_High_Speed);
-            ChangeDisplay2Value(_RightGun_type_pic_U,_ICON_CCS2_GUN_U);
-            ChangeDisplay2Value(_RightGun_type_pic_L,_ICON_CCS2_GUN_L);
-            ChangeDisplay2Value(_RightGun_type_name,_ICON_CCS2_Name);
-            ChangeDisplay2Value(_RightGun_type_speed,_ICON_High_Speed);
-            sleep(1);
-            ChangeDisplay2Value(_LeftGun_type_pic_U,_ICON_CCS1_GUN_U);
-            ChangeDisplay2Value(_LeftGun_type_pic_L,_ICON_CCS1_GUN_L);
-            ChangeDisplay2Value(_LeftGun_type_name,_ICON_CCS1_Name);
-            ChangeDisplay2Value(_LeftGun_type_speed,_ICON_Speed);
-
-            ChangeDisplay2Value(_RightGun_type_pic_U,_ICON_CCS1_GUN_U);
-            ChangeDisplay2Value(_RightGun_type_pic_L,_ICON_CCS1_GUN_L);
-            ChangeDisplay2Value(_RightGun_type_name,_ICON_CCS1_Name);
-            ChangeDisplay2Value(_RightGun_type_speed,_ICON_Speed);
+            pDcChargingInfo = (struct ChargingInfoData*)GetDcChargingInfoData(RIGHT_GUN_NUM);
+            switch (pDcChargingInfo->CCSGunType) {
+            case _TYPE_CCS1_Liquid:
+            case _TYPE_CCS1_Natural:
+                ChangeDisplay2Value(_RightGun_type_pic_U, _ICON_CCS1_GUN_U);
+                ChangeDisplay2Value(_RightGun_type_pic_L, _ICON_CCS1_GUN_L);
+                ChangeDisplay2Value(_RightGun_type_name, _ICON_CCS1_Name);
+                if (pDcChargingInfo->CCSGunType == _TYPE_CCS1_Liquid) {
+                    ChangeDisplay2Value(_RightGun_type_speed, _ICON_High_Speed);
+                    ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_B);
+                } else {
+                    ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_A);
+                    ChangeDisplay2Value(_RightGun_type_speed, _ICON_Speed);
+                }
+                break;
+            case _TYPE_CCS2_Liquid:
+            case _TYPE_CCS2_Natural:
+                ChangeDisplay2Value(_RightGun_type_pic_U, _ICON_CCS2_GUN_U);
+                ChangeDisplay2Value(_RightGun_type_pic_L, _ICON_CCS2_GUN_L);
+                ChangeDisplay2Value(_RightGun_type_name, _ICON_CCS2_Name);
+                ChangeDisplay2Value(_RightGun_Symol_Icon, _ICON_CONNECTOR_D);
+                if (pDcChargingInfo->CCSGunType == _TYPE_CCS2_Liquid) {
+                    ChangeDisplay2Value(_RightGun_type_speed, _ICON_High_Speed);
+                } else {
+                    ChangeDisplay2Value(_RightGun_type_speed, _ICON_Speed);
+                }
+                break;
+            }
+            sleep(5);
             break;
         case __VIEW_LEFT_CHARGE_:
-            for(i=0;i<=100;i++) {
-                ShowViewChargingSoc(LEFT_GUN_NUM,i);
+            for (i = 0; i <= 100; i++) {
+                ShowViewChargingSoc(LEFT_GUN_NUM,66+i/20);
                 ShowViewChargingTime(LEFT_GUN_NUM,i);
                 ShowViewCharingMoney(LEFT_GUN_NUM,i);
-                ShowViewChargingPower(LEFT_GUN_NUM,i);
-                ShowViewChargingEngery(LEFT_GUN_NUM,i);
+                ShowViewChargingPower(LEFT_GUN_NUM, (float)(66 + i *0.1));
+                ShowViewChargingEngery(LEFT_GUN_NUM,50+i/30);
                 usleep(100000);
             }
             break;
         case __VIEW_RIGHT_CHARGE_:
-            for(i=0;i<=100;i++) {
-                ShowViewChargingSoc(RIGHT_GUN_NUM,i);
+            for (i = 0; i <= 100; i++) {
+                ShowViewChargingSoc(RIGHT_GUN_NUM,88+i/25);
                 ShowViewChargingTime(RIGHT_GUN_NUM,i);
                 ShowViewCharingMoney(RIGHT_GUN_NUM,i);
-                ShowViewChargingPower(RIGHT_GUN_NUM,i);
-                ShowViewChargingEngery(RIGHT_GUN_NUM, i);
+                ShowViewChargingPower(RIGHT_GUN_NUM, (float)(88 + i*0.1));
+                ShowViewChargingEngery(RIGHT_GUN_NUM, 30+i/30);
                 usleep(100000);
             }
             break;
         case __VIEW_ALL_CHARGE_:
             for(i=0;i<=100;i++) {
-                ShowViewChargingSoc(LEFT_GUN_NUM,i);
-                ShowViewChargingTime(LEFT_GUN_NUM,i);
-                ShowViewCharingMoney(LEFT_GUN_NUM,i);
-                ShowViewChargingPower(LEFT_GUN_NUM,i);
-                ShowViewChargingEngery(LEFT_GUN_NUM, i/10);
-
-                ShowViewChargingSoc(RIGHT_GUN_NUM,i);
-                ShowViewChargingTime(RIGHT_GUN_NUM,i);
-                ShowViewCharingMoney(RIGHT_GUN_NUM,i);
-                ShowViewChargingPower(RIGHT_GUN_NUM,i);
-                ShowViewChargingEngery(RIGHT_GUN_NUM, i/10);
+                ShowViewChargingSoc(LEFT_GUN_NUM, 66 + i / 20);
+                ShowViewChargingTime(LEFT_GUN_NUM, i);
+                ShowViewCharingMoney(LEFT_GUN_NUM, i);
+                ShowViewChargingPower(LEFT_GUN_NUM, (float)(66 + i*0.1));
+                ShowViewChargingEngery(LEFT_GUN_NUM, 50 + i / 30);
+
+                ShowViewChargingSoc(RIGHT_GUN_NUM, 88 + i / 25);
+                ShowViewChargingTime(RIGHT_GUN_NUM, i);
+                ShowViewCharingMoney(RIGHT_GUN_NUM, i);
+                ShowViewChargingPower(RIGHT_GUN_NUM, (float)(88 + i *0.1));
+                ShowViewChargingEngery(RIGHT_GUN_NUM, 30 + i / 30);
                 usleep(100000);
             }
             break;
@@ -1007,23 +1065,23 @@ void DemoFunction()
 
             DisplayValueToLcm(_Count_Down_Time, (uint8_t *)value, sizeof(value));
             if (pSysInfo->PageIndex == 17 || pSysInfo->PageIndex == 28) {
-                for (i = 0; i <= 100; i++) {
-                    ChangeDisplay2Value(_Summary_total_money, i);
-                    ChangeDisplay2Value(_Summary_cal_Total_money, i);
-                    ChangeDisplay2Value(_Summary_Start_time_hr, i);
-                    ChangeDisplay2Value(_Summary_Start_time_min, i);
-                    ChangeDisplay2Value(_Summary_end_time_hr, i);
-                    ChangeDisplay2Value(_Summary_end_time_min, i);
-                    ChangeDisplay2Value(_Summary_duration_min, i);
-                    ChangeDisplay2Value(_Summary_duration_sec, i);
-
-                    ChangeDisplay2Value(_Summary_cap, i);
-                    ChangeDisplay2Value(_Summary_cal_discount,i);
-                    ChangeDisplay2Value(_Summary_cal_Settlement,i);
-                    ChangeDisplay2Value(_Summary_max_power, i);
-                    ChangeDisplay2Value(_Summary_average_power, i);
-                    usleep(100000);
-                }
+                //for (i = 0; i <= 100; i++) {
+                    ChangeDisplay2Value(_Summary_total_money, 888);
+                    ChangeDisplay2Value(_Summary_cal_Total_money, 888);
+                    ChangeDisplay2Value(_Summary_Start_time_hr, 6);
+                    ChangeDisplay2Value(_Summary_Start_time_min, 6);
+                    ChangeDisplay2Value(_Summary_end_time_hr, 8);
+                    ChangeDisplay2Value(_Summary_end_time_min, 8);
+                    ChangeDisplay2Value(_Summary_duration_min, 88);
+                    ChangeDisplay2Value(_Summary_duration_sec, 88);
+
+                    ChangeDisplay2LongValue(_Summary_cap, 88888);
+                    ChangeDisplay2Value(_Summary_cal_discount,88);
+                    ChangeDisplay2Value(_Summary_cal_Settlement,888);
+                    ChangeDisplay2Value(_Summary_max_power, 888);
+                    ChangeDisplay2Value(_Summary_average_power, 888);
+                    sleep(5);
+                //}
             }
             break;
         case __START_AUTHORIZE_:
@@ -1038,14 +1096,7 @@ void DemoFunction()
                 usleep(100000);
             }
             break;
-        case 8:
-        case 16:
-        case 27:
-        case 18:
-        case 19:
-        case 20:
         case 29:
-        case 30:
             break;
         case 21:
             ShowCabientVersion();
@@ -1053,9 +1104,6 @@ void DemoFunction()
         case 22:
             ShowDispenserVersion();
             break;
-        case 25:
-        case 26:
-            break;
         case 5:
             pSysInfo->CurGunSelected = 0;
             ChangeQrCode();
@@ -1066,6 +1114,19 @@ void DemoFunction()
             ChangeQrCode();
             sleep(5);
             break;
+        case 8:
+        case 16:
+        case 18:
+        case 19:
+        case 25:
+        case 26:
+        case 27:
+        case 30:
+        case 32:
+        case 33:
+        case 34:
+            sleep(5);
+            break;
     }
 }
 void ShowCabientVersionDefaultText()
@@ -1346,12 +1407,12 @@ int main(void)
             }
             */
             /*
-            pSysInfo->PageIndex = index;
+            pSysInfo->PageIndex = DemoPage[ShmDcCommonData->DemoCount];
             GetCurrentPage();
-            ChangeToOtherPage(index);
+            ChangeToOtherPage(DemoPage[ShmDcCommonData->DemoCount]);
             GetCurrentPage();
             DemoFunction();
-            index >= 36 ? index = 1 : index++;
+            ShmDcCommonData->DemoCount >= 21 ? ShmDcCommonData->DemoCount = 0 : ShmDcCommonData->DemoCount++;
             //*/
             usleep(100000);
 

+ 33 - 0
EVSE/Projects/DD360UCar/Apps/ModuleLcmCtrl/Module_LcmControl.h

@@ -85,6 +85,8 @@
 #define _Confirm_Gun_Left_symbol    0x0021
 #define _Confirm_Gun_Right_symbol   0x0023
 #define _ProgressBar_LEVEL          0x0025
+#define _LeftGun_Symbol_Icon        0x0027
+#define _RightGun_Symol_Icon        0x0029
 #define _Percent_Number_Digits      0x0031
 #define _Percent_Number_Tens        0x0033
 #define _Percent_Number_Hundreds    0x0035
@@ -143,6 +145,31 @@
 #define _Text_Warming3              0x1130
 #define _Text_Warming4              0x1140
 
+int DemoPage[22] = {
+    1, // All Idle
+    5, // Left Gun authorize
+    6, // Authorizing
+    8, // Left gun plugin Gun
+    32, // preparing
+    33, // Prepare for EVSE
+    34, // Precharging
+    2,  // Left Gun Charging
+    31, // Right Gun authorize
+    6,  // Authorizing
+    30, // Right Gun plug in
+    32, // preparing
+    33, // Prepare for EVSE
+    34, // Precharging
+    04, // All Gun charging
+    25, // Stop Left Gun
+    16, // Left Gun plug out
+    17, // Left Gun summary
+    03, // Right gun charging
+    26, // Right Gun stop
+    27, // Right Gun Plug out
+    28, // Right Gun summary
+};
+
 enum _ICON_LIST_ {
     _ICON_Empty,
     _ICON_CCS1_GUN_U = 1,
@@ -185,6 +212,12 @@ enum _ICON_LIST_ {
     _ICON_Card_Money,
     _ICON_CONNECTOR_1,
     _ICON_CONNECTOR_2,
+    _ICON_CONNECTOR_A = 73,
+    _ICON_CONNECTOR_B,
+    _ICON_CONNECTOR_C,
+    _ICON_CONNECTOR_D,
+    _ICON_CONNECTOR_E,
+    _ICON_CONNECTOR_F,
     /*
     _ICON_ProgressBar_10 = 60,
     _ICON_ProgressBar_10_cantrary,

二進制
EVSE/Projects/DD360UCar/Images/ramdisk.gz


二進制
EVSE/Projects/DD360UCar/output/FactoryConfig


二進制
EVSE/Projects/DD360UCar/output/Module_ChkSysTask


二進制
EVSE/Projects/DD360UCar/output/Module_DoComm


二進制
EVSE/Projects/DD360UCar/output/Module_EvComm


二進制
EVSE/Projects/DD360UCar/output/Module_EventLogging


二進制
EVSE/Projects/DD360UCar/output/Module_InternalComm


二進制
EVSE/Projects/DD360UCar/output/Module_LcmControl


二進制
EVSE/Projects/DD360UCar/output/Module_PrimaryComm


二進制
EVSE/Projects/DD360UCar/output/Module_UpdateFW


二進制
EVSE/Projects/DD360UCar/output/ReadCmdline


二進制
EVSE/Projects/DD360UCar/output/main


二進制
EVSE/Projects/DD360UCar/output/simulation