Răsfoiți Sursa

2022-08-16 / Simon Xue

Action:
1. [Fix] AutoStartCharging won't pass all level 2 warming.
2. [Add] Send Charging Info when gun in Complete or Alarm status.

Files
As the following commit history files

Image Version:V2.17.XX.XXXX.XX
Simon Xue 2 ani în urmă
părinte
comite
840fcd8935

+ 21 - 15
EVSE/Projects/DD360Tcci/Apps/CSU/main.c

@@ -82,8 +82,8 @@ uint8_t bd0_2_status = 0;
 uint8_t bd1_1_status = 0;
 uint8_t bd1_2_status = 0;
 
-char *fwVersion = "V2.16.00.0000.00"; // Phihong version
-char* DebugVersion = "V2.16.03";      // Software debug version
+char *fwVersion = "V2.17.00.0000.00"; // Phihong version
+char* DebugVersion = "V2.17.01";      // Software debug version
 //sqlite3 *localDb;
 bool isDb_ready;
 
@@ -2045,6 +2045,8 @@ void CheckErrorOccurStatus(uint8_t index)
             memcpy(pDcChargingInfo->ConnectorAlarmCode, "012238", 6);
         } else if (pAlarmCode->AlarmEvents.bits.DisconnectedFromDo == YES) {
             memcpy(pDcChargingInfo->ConnectorAlarmCode, "012304", 6);
+        } else if (pInfoCode->InfoEvents.bits.BackendDisconnectedViaEthernet == YES) {
+            memcpy(pDcChargingInfo->ConnectorAlarmCode, "033900", 6);
         }
         //Chiller temperature
         //else if (pAlarmCode->AlarmEvents.bits.SystemChillerOTP == YES) {
@@ -3599,22 +3601,26 @@ static void ReviewCriticalAlarm(void)
             ShmDcCommonData->PowerAlarmState.StatusBit.SystemL1InputOVP == YES ||
             ShmDcCommonData->PowerAlarmState.StatusBit.SystemL2InputOVP == YES ||
             ShmDcCommonData->PowerAlarmState.StatusBit.SystemL3InputOVP == YES ||
-            ShmDcCommonData->PowerAlarmState.StatusBit.PsuFailure == YES ||
-			ShmSelectGunInfo->EthDevStatus.Backend == 0 ||
-			ShmSelectGunInfo->EthDevStatus.Backend == 2
-       ) {
-        if ((ShmSelectGunInfo->EthDevStatus.Backend == 0 ||
-            ShmSelectGunInfo->EthDevStatus.Backend == 2) &&
-            (ShmDcCommonData->DebugFlag == TRUE ||
-                pSysConfig->AuthorisationMode )) {
-            pSysWarning->Level = WARN_LV_NL;
-            return;
-        }
-
+            ShmDcCommonData->PowerAlarmState.StatusBit.PsuFailure == YES ) {
         pSysWarning->Level = WARN_LV_ER;
     } else {
+        if (ShmSelectGunInfo->EthDevStatus.Backend == 0 ||
+            ShmSelectGunInfo->EthDevStatus.Backend == 2 ) {
+            pInfoCode->InfoEvents.bits.BackendDisconnectedViaEthernet = TRUE;
+            if (ShmDcCommonData->DebugFlag || pSysConfig->AuthorisationMode) {
+                pSysWarning->Level = WARN_LV_NL;
+            } else {
+                pSysWarning->Level = WARN_LV_ER;
+
+                return;
+            }
+        } else if (ShmSelectGunInfo->EthDevStatus.Backend == 1) {
+            pInfoCode->InfoEvents.bits.BackendDisconnectedViaEthernet = FALSE;
+        }
+        
         pSysWarning->Level = WARN_LV_NL;
     }
+
 }
 
 static void CheckRelayWeldingOrDrivingFault(uint8_t gunIndex)
@@ -4895,7 +4901,7 @@ int main(void)
 
                     } else {
                         StartGunInfoTimeoutDet(gunIndex, Timeout_FinalCost);
-						if(ShmDcCommonData->finalcost_flag[gunIndex] == FALSE && pSysInfo->CurGunSelected) {
+						if(ShmDcCommonData->finalcost_flag[gunIndex] == FALSE && pSysInfo->CurGunSelected == gunIndex) {
 							pSysInfo->SystemPage = _PAGE_PAYING;
 						}
                     }

+ 18 - 0
EVSE/Projects/DD360Tcci/Apps/ModuleDoComm/DoComm.c

@@ -2531,6 +2531,17 @@ static void systemStatusProcess(int fd, uint8_t totalGun, uint8_t plugNum, uint8
             DeductResultReq[plugNum] = NO;
         }
         */
+
+        if (pDcChargingInfo->SystemStatus == S_ALARM) {
+            ftime(&AuthNowTime);
+            if (DiffTimeb(gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO], AuthNowTime) > LOOP_RETRY_TIME ||
+                DiffTimeb(gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO], AuthNowTime) < 0
+                ) {
+                writePresentChargingInfo(fd, plugNum, gunID);
+                ftime(&gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO]);
+            }
+        }
+
         checkAuthorProcess(fd, plugNum);
 
         //authorization complete, write wait plug it state
@@ -2770,6 +2781,13 @@ static void systemStatusProcess(int fd, uint8_t totalGun, uint8_t plugNum, uint8
             ftime(&gRegTimeUp[plugNum][REG_CHARGING_CAP]);
         }
 
+        ftime(&AuthNowTime);
+        if (DiffTimeb(gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO], AuthNowTime) > LOOP_RETRY_TIME ||
+            DiffTimeb(gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO], AuthNowTime) < 0
+            ) {
+            writePresentChargingInfo(fd, plugNum, gunID);
+            ftime(&gRegTimeUp[plugNum][REG_PRESENT_CHARGING_INFO]);
+        }
         break;
 
     default:

BIN
EVSE/Projects/DD360Tcci/Images/ramdisk.gz


BIN
EVSE/Projects/DD360Tcci/output/Module_DoComm


BIN
EVSE/Projects/DD360Tcci/output/main