Переглянути джерело

[Improve][DM30][DW30][LCM]: Merge the QR code display method from alston.

2020.06.16 / TC Hsu

Actions: modify the QR code buffer size from 256 to 128, add page reload variable for the QR code string copy detection.

Image version    : N/A
Image checksum   : N/A

Hardware PWB P/N : N/A
Hardware Version : N/A

Files:

	modified:   EVSE/Projects/DM30/Apps/Module_LcmControl.c
	modified:   EVSE/Projects/DM30/Apps/Module_LcmControl.h
	modified:   EVSE/Projects/DW30/Apps/Module_LcmControl.c
	modified:   EVSE/Projects/DW30/Apps/Module_LcmControl.h
TC_Hsu 4 роки тому
батько
коміт
87e2a6f768

+ 36 - 10
EVSE/Projects/DM30/Apps/Module_LcmControl.c

@@ -819,8 +819,34 @@ byte FirstPageChanged()
     return result;
 }
 
+bool IsPageReloadChk()
+{
+    bool result = false;
+
+    if (ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc == NO_DEFINE)
+    {
+        if (_curPage_index != ShmSysConfigAndInfo->SysInfo.CurGunSelected)
+        {
+            _curPage_index = ShmSysConfigAndInfo->SysInfo.CurGunSelected;
+            result = true;
+        }
+    }
+    else
+    {
+        if (_curPage_index != ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc)
+        {
+            _curPage_index = ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc;
+            result = true;
+        }
+    }
+
+    return result;
+}
+
 void ProcessPageInfo()
 {
+    _page_reload = IsPageReloadChk();
+
     switch(_currentPage)
     {
         case _LCM_IDLE:
@@ -844,15 +870,15 @@ void ProcessPageInfo()
             else
                 ChangeDisplay2Value(__main_app, _main_none_app);
 
-            if (FirstPageChanged() == YES || needReloadQr)
+            if (FirstPageChanged() == YES || needReloadQr || _page_reload)
             {
                 if (ShmSysConfigAndInfo->SysConfig.isQRCode)
                 {
-                    char QrCodeBuf[512];
                     needReloadQr = false;
-                    sprintf(QrCodeBuf, "%s%s", ShmSysConfigAndInfo->SysConfig.ModelName, ShmSysConfigAndInfo->SysConfig.SerialNumber);
-                    ChangeQrCode_Idle(QrCodeBuf);
-                    ChangeQrCode_Charge(QrCodeBuf);
+                    char QrCodeContent[128];
+                    strcpy(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.ModelName);
+                    strcat(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.SerialNumber);
+                    ChangeQrCode_Idle(QrCodeContent);
                 }
             }
         }
@@ -1109,15 +1135,15 @@ void ProcessPageInfo()
                         _chargingInfoData[index]->SystemStatus == S_RESERVATION ||
                         _chargingInfoData[index]->SystemStatus == S_BOOTING)
                 {
-                    if (FirstPageChanged() == YES || needReloadQr)
+                    if (FirstPageChanged() == YES || needReloadQr || _page_reload)
                     {
                         if (ShmSysConfigAndInfo->SysConfig.isQRCode)
                         {
-                            char QrCodeBuf[512];
                             needReloadQr = false;
-                            sprintf(QrCodeBuf, "%s%s", ShmSysConfigAndInfo->SysConfig.ModelName, ShmSysConfigAndInfo->SysConfig.SerialNumber);
-                            ChangeQrCode_Idle(QrCodeBuf);
-                            ChangeQrCode_Charge(QrCodeBuf);
+                            char QrCodeContent[128];
+                            strcpy(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.ModelName);
+                            strcat(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.SerialNumber);
+                            ChangeQrCode_Charge(QrCodeContent);
                         }
                     }
                 }

+ 3 - 2
EVSE/Projects/DM30/Apps/Module_LcmControl.h

@@ -42,6 +42,7 @@ struct StatusCodeData           *ShmStatusCodeData;
 struct FanModuleData            *ShmFanModuleData;
 
 #define NO_DEFINE           255
+#define DEFAULT_AC_INDEX    2
 
 #define CMD_TITLE_1             0x5A
 #define CMD_TITLE_2             0xA5
@@ -79,10 +80,10 @@ byte isChangeBattMap = false;
 short _currentPage = _LCM_NONE;
 short _oldPage = _LCM_NONE;
 byte _gunIndex = 0;
-byte _idlePageRotate = 1;
-bool _backend_conn_status = false;
 bool _wifi_conn_status = false;
 bool _battery_display_ani = false;
+byte _curPage_index = 0;
+bool _page_reload = false;
 
 // LCM - HW
 byte _everyPageRollChange = 0;

+ 36 - 10
EVSE/Projects/DW30/Apps/Module_LcmControl.c

@@ -819,8 +819,34 @@ byte FirstPageChanged()
     return result;
 }
 
+bool IsPageReloadChk()
+{
+    bool result = false;
+
+    if (ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc == NO_DEFINE)
+    {
+        if (_curPage_index != ShmSysConfigAndInfo->SysInfo.CurGunSelected)
+        {
+            _curPage_index = ShmSysConfigAndInfo->SysInfo.CurGunSelected;
+            result = true;
+        }
+    }
+    else
+    {
+        if (_curPage_index != ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc)
+        {
+            _curPage_index = ShmSysConfigAndInfo->SysInfo.CurGunSelectedByAc;
+            result = true;
+        }
+    }
+
+    return result;
+}
+
 void ProcessPageInfo()
 {
+    _page_reload = IsPageReloadChk();
+
     switch(_currentPage)
     {
         case _LCM_IDLE:
@@ -844,15 +870,15 @@ void ProcessPageInfo()
             else
                 ChangeDisplay2Value(__main_app, _main_none_app);
 
-            if (FirstPageChanged() == YES || needReloadQr)
+            if (FirstPageChanged() == YES || needReloadQr || _page_reload)
             {
                 if (ShmSysConfigAndInfo->SysConfig.isQRCode)
                 {
-                    char QrCodeBuf[512];
                     needReloadQr = false;
-                    sprintf(QrCodeBuf, "%s%s", ShmSysConfigAndInfo->SysConfig.ModelName, ShmSysConfigAndInfo->SysConfig.SerialNumber);
-                    ChangeQrCode_Idle(QrCodeBuf);
-                    ChangeQrCode_Charge(QrCodeBuf);
+                    char QrCodeContent[128];
+                    strcpy(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.ModelName);
+                    strcat(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.SerialNumber);
+                    ChangeQrCode_Idle(QrCodeContent);
                 }
             }
         }
@@ -1109,15 +1135,15 @@ void ProcessPageInfo()
                         _chargingInfoData[index]->SystemStatus == S_RESERVATION ||
                         _chargingInfoData[index]->SystemStatus == S_BOOTING)
                 {
-                    if (FirstPageChanged() == YES || needReloadQr)
+                    if (FirstPageChanged() == YES || needReloadQr || _page_reload)
                     {
                         if (ShmSysConfigAndInfo->SysConfig.isQRCode)
                         {
-                            char QrCodeBuf[512];
                             needReloadQr = false;
-                            sprintf(QrCodeBuf, "%s%s", ShmSysConfigAndInfo->SysConfig.ModelName, ShmSysConfigAndInfo->SysConfig.SerialNumber);
-                            ChangeQrCode_Idle(QrCodeBuf);
-                            ChangeQrCode_Charge(QrCodeBuf);
+                            char QrCodeContent[128];
+                            strcpy(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.ModelName);
+                            strcat(QrCodeContent, (char *)ShmSysConfigAndInfo->SysConfig.SerialNumber);
+                            ChangeQrCode_Charge(QrCodeContent);
                         }
                     }
                 }

+ 3 - 2
EVSE/Projects/DW30/Apps/Module_LcmControl.h

@@ -42,6 +42,7 @@ struct StatusCodeData           *ShmStatusCodeData;
 struct FanModuleData            *ShmFanModuleData;
 
 #define NO_DEFINE           255
+#define DEFAULT_AC_INDEX    2
 
 #define CMD_TITLE_1             0x5A
 #define CMD_TITLE_2             0xA5
@@ -79,10 +80,10 @@ byte isChangeBattMap = false;
 short _currentPage = _LCM_NONE;
 short _oldPage = _LCM_NONE;
 byte _gunIndex = 0;
-byte _idlePageRotate = 1;
-bool _backend_conn_status = false;
 bool _wifi_conn_status = false;
 bool _battery_display_ani = false;
+byte _curPage_index = 0;
+bool _page_reload = false;
 
 // LCM - HW
 byte _everyPageRollChange = 0;