瀏覽代碼

[Improve][DM30][DW30][Self test]: Merge new self test behavior from alston's application code.

2020.06.17 / TC Hsu

Actions: Add led self test flag initialize. Modify model name parse for network task enable sequence(for Wi-Fi+4G type). Remove SPD self test and related EmcOccureByString() trigger to avoid SPD self test gating issue, it will show alarm code only now. Add more variable initialize section.

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

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

Files:

	modified:   EVSE/Projects/DM30/Apps/main.c
	modified:   EVSE/Projects/DW30/Apps/main.c
TC_Hsu 4 年之前
父節點
當前提交
936ddde01c
共有 2 個文件被更改,包括 50 次插入20 次删除
  1. 25 10
      EVSE/Projects/DM30/Apps/main.c
  2. 25 10
      EVSE/Projects/DW30/Apps/main.c

+ 25 - 10
EVSE/Projects/DM30/Apps/main.c

@@ -1172,6 +1172,7 @@ void InitialShareMemoryInfo()
     ShmPrimaryMcuData->SelfTest_Comp = NO;
     ShmRelayModuleData->SelfTest_Comp = NO;
     ShmFanModuleData->SelfTest_Comp = NO;
+    ShmLedModuleData->SelfTest_Comp = NO;
     ShmSysConfigAndInfo->SysInfo.SystemPage = _LCM_NONE;
     ShmSysConfigAndInfo->SysInfo.MainChargingMode = _MAIN_CHARGING_MODE_MAX;
     ShmSysConfigAndInfo->SysInfo.ReAssignedFlag = _REASSIGNED_NONE;
@@ -1519,7 +1520,8 @@ int SpawnTask()
     {
         system("/root/Module_4g &");
     }
-    else if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
+
+    if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
     {
         system("/root/Module_Wifi &");
     }
@@ -1750,7 +1752,7 @@ void DisplayChargingInfo()
 
 void _AutoReturnTimeout()
 {
-    PRINTF_FUNC("*********** _AutoReturnTimeout *********** \n");
+    PRINTF_FUNC("*********** _AutoReturnTimeout %d*********** \n", ShmSysConfigAndInfo->SysInfo.PageIndex);
     if (ShmSysConfigAndInfo->SysInfo.PageIndex == _LCM_WAIT_FOR_PLUG)
     {
         ClearDetectPluginFlag();
@@ -2197,10 +2199,11 @@ void ChkPrimaryStatus()
     if (ShmPrimaryMcuData->InputDet.bits.SpdDetec == ABNORMAL)
     {
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SpdTrip = YES;
-        EmcOccureByString("012237");
+        //EmcOccureByString("012237");
     }
     else
-        ReleaseEmsOccureByString(0, "012237");
+        ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SpdTrip = NO;
+        //ReleaseEmsOccureByString(0, "012237");
 
     if (ShmPrimaryMcuData->InputDet.bits.DoorOpen == ABNORMAL)
     {
@@ -2391,6 +2394,14 @@ void CheckErrorOccurStatus(byte index)
             }
         }
     }
+    else
+    {
+        if (ShmSysConfigAndInfo->SysWarningInfo.ExtraErrProcess == _EXTRA_ERR_PROCESS_INUVP)
+        {
+            ShmSysConfigAndInfo->SysWarningInfo.ExtraErrProcess = _EXTRA_ERR_PROCESS_NONE;
+            ReleaseChargingProcessByString(2);
+        }
+    }
 
     if (ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == YES ||
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == YES ||
@@ -4430,10 +4441,10 @@ int main(void)
     SpawnTask();
     if (!isModelNameMatch)
     {
+        PRINTF_FUNC("Module Name & HW info none match. \n");
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.ModelNameNoneMatchStestFail = YES;
         ChangeLcmByIndex(_LCM_FIX);
         // Module Name 與硬體對應不正確
-        PRINTF_FUNC("Module Name & HW info none match. \n");
         DEBUG_ERROR_MSG("Module Name & HW info none match. \n");
         sleep(3);
         KillTask();
@@ -4448,7 +4459,9 @@ int main(void)
     if (ShmSysConfigAndInfo->SysInfo.SelfTestSeq == _STEST_FAIL ||
         ShmPsuData->Work_Step == _NO_WORKING)
     {
+        if (ShmSysConfigAndInfo->SysWarningInfo.Level != 2)
         DisplaySelfTestFailReason();
+
         for (byte gun_index = 0; gun_index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; gun_index++)
         {
             setChargerMode(gun_index, MODE_ALARM);
@@ -4475,9 +4488,10 @@ int main(void)
     else
     {
         isDb_ready = true;
-
         for(int _index=0; _index< ShmSysConfigAndInfo->SysConfig.TotalConnectorCount;_index++)
+        {
             chargingInfo[_index]->IsAvailable = DB_Get_Operactive(localDb, _index);
+        }
     }
 
     ChangeLcmByIndex(_LCM_IDLE);
@@ -4489,7 +4503,7 @@ int main(void)
     // Create Watchdog
     //CreateWatchdog();
     // Main loop
-    PRINTF_FUNC("Main Loop. \n");
+    PRINTF_FUNC("****************************Main Loop********************************** \n");
     gettimeofday(&_cmdMainPriority_time, NULL);
     for (;;)
     {
@@ -4538,10 +4552,11 @@ int main(void)
                         isModeChange(gun_index))
                     {
                         PRINTF_FUNC("S_IDLE================================== %x \n", gun_index);
-                        chargingInfo[gun_index]->RemainChargingDuration = 0;
                         chargingInfo[gun_index]->PresentChargedDuration = 0;
-                        chargingInfo[gun_index]->PresentChargedEnergy = 0;
-                        chargingInfo[gun_index]->EvBatterySoc = 0;
+                        chargingInfo[gun_index]->RemainChargingDuration = 0;
+                        strcpy((char *)chargingInfo[gun_index]->StartDateTime, "");
+                        strcpy((char *)chargingInfo[gun_index]->StopDateTime, "");
+                        strcpy((char *)chargingInfo[gun_index]->StartUserId, "");
                         strcpy((char *)ShmOCPP16Data->StopTransaction[gun_index].StopReason, "");
                     }
                     else if (chargingInfo[gun_index]->SystemStatus == S_RESERVATION &&

+ 25 - 10
EVSE/Projects/DW30/Apps/main.c

@@ -1172,6 +1172,7 @@ void InitialShareMemoryInfo()
     ShmPrimaryMcuData->SelfTest_Comp = NO;
     ShmRelayModuleData->SelfTest_Comp = NO;
     ShmFanModuleData->SelfTest_Comp = NO;
+    ShmLedModuleData->SelfTest_Comp = NO;
     ShmSysConfigAndInfo->SysInfo.SystemPage = _LCM_NONE;
     ShmSysConfigAndInfo->SysInfo.MainChargingMode = _MAIN_CHARGING_MODE_MAX;
     ShmSysConfigAndInfo->SysInfo.ReAssignedFlag = _REASSIGNED_NONE;
@@ -1519,7 +1520,8 @@ int SpawnTask()
     {
         system("/root/Module_4g &");
     }
-    else if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
+
+    if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
     {
         system("/root/Module_Wifi &");
     }
@@ -1750,7 +1752,7 @@ void DisplayChargingInfo()
 
 void _AutoReturnTimeout()
 {
-    PRINTF_FUNC("*********** _AutoReturnTimeout *********** \n");
+    PRINTF_FUNC("*********** _AutoReturnTimeout %d*********** \n", ShmSysConfigAndInfo->SysInfo.PageIndex);
     if (ShmSysConfigAndInfo->SysInfo.PageIndex == _LCM_WAIT_FOR_PLUG)
     {
         ClearDetectPluginFlag();
@@ -2197,10 +2199,11 @@ void ChkPrimaryStatus()
     if (ShmPrimaryMcuData->InputDet.bits.SpdDetec == ABNORMAL)
     {
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SpdTrip = YES;
-        EmcOccureByString("012237");
+        //EmcOccureByString("012237");
     }
     else
-        ReleaseEmsOccureByString(0, "012237");
+        ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SpdTrip = NO;
+        //ReleaseEmsOccureByString(0, "012237");
 
     if (ShmPrimaryMcuData->InputDet.bits.DoorOpen == ABNORMAL)
     {
@@ -2391,6 +2394,14 @@ void CheckErrorOccurStatus(byte index)
             }
         }
     }
+    else
+    {
+        if (ShmSysConfigAndInfo->SysWarningInfo.ExtraErrProcess == _EXTRA_ERR_PROCESS_INUVP)
+        {
+            ShmSysConfigAndInfo->SysWarningInfo.ExtraErrProcess = _EXTRA_ERR_PROCESS_NONE;
+            ReleaseChargingProcessByString(2);
+        }
+    }
 
     if (ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL1InputOVP == YES ||
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.SystemL2InputOVP == YES ||
@@ -4430,10 +4441,10 @@ int main(void)
     SpawnTask();
     if (!isModelNameMatch)
     {
+        PRINTF_FUNC("Module Name & HW info none match. \n");
         ShmStatusCodeData->AlarmCode.AlarmEvents.bits.ModelNameNoneMatchStestFail = YES;
         ChangeLcmByIndex(_LCM_FIX);
         // Module Name 與硬體對應不正確
-        PRINTF_FUNC("Module Name & HW info none match. \n");
         DEBUG_ERROR_MSG("Module Name & HW info none match. \n");
         sleep(3);
         KillTask();
@@ -4448,7 +4459,9 @@ int main(void)
     if (ShmSysConfigAndInfo->SysInfo.SelfTestSeq == _STEST_FAIL ||
         ShmPsuData->Work_Step == _NO_WORKING)
     {
+        if (ShmSysConfigAndInfo->SysWarningInfo.Level != 2)
         DisplaySelfTestFailReason();
+
         for (byte gun_index = 0; gun_index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; gun_index++)
         {
             setChargerMode(gun_index, MODE_ALARM);
@@ -4475,9 +4488,10 @@ int main(void)
     else
     {
         isDb_ready = true;
-
         for(int _index=0; _index< ShmSysConfigAndInfo->SysConfig.TotalConnectorCount;_index++)
+        {
             chargingInfo[_index]->IsAvailable = DB_Get_Operactive(localDb, _index);
+        }
     }
 
     ChangeLcmByIndex(_LCM_IDLE);
@@ -4489,7 +4503,7 @@ int main(void)
     // Create Watchdog
     //CreateWatchdog();
     // Main loop
-    PRINTF_FUNC("Main Loop. \n");
+    PRINTF_FUNC("****************************Main Loop********************************** \n");
     gettimeofday(&_cmdMainPriority_time, NULL);
     for (;;)
     {
@@ -4538,10 +4552,11 @@ int main(void)
                         isModeChange(gun_index))
                     {
                         PRINTF_FUNC("S_IDLE================================== %x \n", gun_index);
-                        chargingInfo[gun_index]->RemainChargingDuration = 0;
                         chargingInfo[gun_index]->PresentChargedDuration = 0;
-                        chargingInfo[gun_index]->PresentChargedEnergy = 0;
-                        chargingInfo[gun_index]->EvBatterySoc = 0;
+                        chargingInfo[gun_index]->RemainChargingDuration = 0;
+                        strcpy((char *)chargingInfo[gun_index]->StartDateTime, "");
+                        strcpy((char *)chargingInfo[gun_index]->StopDateTime, "");
+                        strcpy((char *)chargingInfo[gun_index]->StartUserId, "");
                         strcpy((char *)ShmOCPP16Data->StopTransaction[gun_index].StopReason, "");
                     }
                     else if (chargingInfo[gun_index]->SystemStatus == S_RESERVATION &&