Prechádzať zdrojové kódy

2021-02-03 / Jerry Wang

Actions:
1. DoComm misc command add power cabinet ethernet status command.
2. DoComm connector status add alarm status and report alarm code.

Files:
1. As follow commit history.
Jerry_Wang 4 rokov pred
rodič
commit
c435676335

+ 15 - 0
EVSE/Projects/DD360/Apps/AudiCust.h

@@ -32,6 +32,20 @@
 //#define RT_SOFTWARE_RESTART                     0x02
 
 //------------------------------------------------------------------------------
+//--- power cabinet Ethernet device status ---
+//------------------------------------------------------------------------------
+#define DEV_ST_DISABLE                          0x00
+#define DEV_ST_ENABLE_USE                       0x01
+#define DEV_ST_ENABLE_NO_USE                    0x02
+
+//------------------------------------------------------------------------------
+typedef struct StEthDevStatus {
+    uint8_t Backend;
+    uint8_t Ethernet;
+    uint8_t Wifi;
+    uint8_t FourG;
+} EthDevStatus;
+
 typedef struct StSelGunInfo {
     uint8_t LeftGun;
     uint8_t RightGun;
@@ -73,6 +87,7 @@ typedef struct StAudiCustInfo {
     SelGunInfo SelGunInfo;
     PricesInfo PricesInfo[2];
     RemoteSetup RemoteSetup;
+    EthDevStatus EthDevStatus;
 } AudiCustInfo;
 
 #endif /* _AUDI_CUSTOM_H_ */

+ 29 - 8
EVSE/Projects/DD360/Apps/ReDoComm.c

@@ -632,6 +632,23 @@ static int miscCommandHandle(uint8_t dataLen, uint8_t id, uint8_t *data)
             clearMiscCommand();
             break;
 
+        case MISC_CMD_BACKEND_STATUS :
+            gAudiCustInfo->EthDevStatus.Backend = value;
+            break;
+
+        case MISC_CMD_ETHERNET_STATUS :
+            gAudiCustInfo->EthDevStatus.Ethernet = value;
+            break;
+
+        case MISC_CMD_WIFI_STATUS :
+            gAudiCustInfo->EthDevStatus.Wifi = value;
+            break;
+
+        case MISC_CMD_4G_STATUS :
+            gAudiCustInfo->EthDevStatus.FourG = value;
+            break;
+
+
         //--- Control Dispenser ---
         case MISC_CMD_HARDWARE_REBOOT:
             if (value != YES) {
@@ -1325,26 +1342,30 @@ static int writeUserID(int fd, uint8_t id, uint8_t *pUserID)
 
 static int writeConnectorState(int fd, uint8_t plugNum, uint8_t id)
 {
-    uint8_t dataBuf[2] = {0};
+    uint8_t dataBuf[8] = {0};
+    uint8_t alarmCode[WARNING_CODE_SIZE] = {0};
     int ret = PASS;
 
-    if (ChargingData[plugNum]->SystemStatus <= 2) {
+    if (ChargingData[plugNum]->SystemStatus <= S_AUTHORIZING) {
         dataBuf[0] = 0;    //idle
-    } else if ((ChargingData[plugNum]->SystemStatus <= 7) ||
-               (ChargingData[plugNum]->SystemStatus == 17) ||
-               (ChargingData[plugNum]->SystemStatus == 18)) {
+    } else if ((ChargingData[plugNum]->SystemStatus <= S_PREPARING_FOR_EVSE) ||
+               (ChargingData[plugNum]->SystemStatus == S_CCS_PRECHARGE_ST0) ||
+               (ChargingData[plugNum]->SystemStatus == S_CCS_PRECHARGE_ST1)) {
         dataBuf[0] = 1;    //preparing
-    } else if (ChargingData[plugNum]->SystemStatus == 8) {
+    } else if (ChargingData[plugNum]->SystemStatus == S_CHARGING) {
         dataBuf[0] = 2;    //charging
-    } else if (ChargingData[plugNum]->SystemStatus == 9) {
+    } else if (ChargingData[plugNum]->SystemStatus == S_TERMINATING) {
         dataBuf[0] = 3;    //terminating
+    } else if (ChargingData[plugNum]->SystemStatus == S_ALARM) {
+        dataBuf[0] = 4;    //Alarm
+        memcpy(&alarmCode[1], ShmOCPP16Data->StatusNotification[plugNum].VendorErrorCode, WARNING_CODE_SIZE);
     }
 
     ret = composeSocketData(fd,
                             id,
                             OP_WRITE_DATA,
                             REG_CONNECTOR_STATE,
-                            1,
+                            sizeof(dataBuf),
                             &dataBuf[0]);
     return ret;
 }

+ 5 - 0
EVSE/Projects/DD360/Apps/ReDoComm.h

@@ -101,6 +101,11 @@
 #define MISC_CMD_DEFAULT_CURRENCY               0x0004
 #define MISC_CMD_ACCOUNT_BALANCE                0x0005
 
+#define MISC_CMD_BACKEND_STATUS                 0x0006
+#define MISC_CMD_ETHERNET_STATUS                0x0007
+#define MISC_CMD_WIFI_STATUS                    0x0008
+#define MISC_CMD_4G_STATUS                      0x0009
+
 #define MISC_CMD_HARDWARE_REBOOT                0x0101
 #define MISC_CMD_SOFTWARE_RESTART               0x0102
 #define MISC_CMD_REMOTE_START_CHARGING          0x0103

+ 58 - 1
EVSE/Projects/DD360/Apps/ReModule_LcmControl.c

@@ -927,9 +927,64 @@ void RefreshConnStatus()
     // Wifi priority is higher than Ethernet
 #if defined DD360 || defined DD360Audi
     uint8_t i = 0;
-    unsigned char flag[4] = {0};
 
     for (i = 0; i < ShmSysConfigAndInfo->SysWarningInfo.WarningCount; i++) {
+        if (memcmp(&ShmSysConfigAndInfo->SysWarningInfo.WarningCode[i][0], "012304", 6) == 0) {
+            if (gAudiCustInfo->EthDevStatus.Ethernet != DEV_ST_DISABLE) {
+                gAudiCustInfo->EthDevStatus.Ethernet = DEV_ST_ENABLE_NO_USE;
+            }
+            continue;
+        }
+    }
+
+    if (gAudiCustInfo->EthDevStatus.Backend == DEV_ST_DISABLE) {
+        ChangeDisplay2Value(__conn_status, _disappear);
+    } else if (gAudiCustInfo->EthDevStatus.Backend == DEV_ST_ENABLE_USE) {
+        ChangeDisplay2Value(__conn_status, _connect);
+    } else if (gAudiCustInfo->EthDevStatus.Backend == DEV_ST_ENABLE_NO_USE) {
+        ChangeDisplay2Value(__conn_status, _disconnect);
+    }
+
+    if (gAudiCustInfo->EthDevStatus.Ethernet == DEV_ST_DISABLE) {
+    } else if (gAudiCustInfo->EthDevStatus.Ethernet == DEV_ST_ENABLE_USE) {
+        ChangeDisplay2Value(__ethernet_status, _eth_connect);
+    } else if (gAudiCustInfo->EthDevStatus.Ethernet == DEV_ST_ENABLE_NO_USE) {
+        ChangeDisplay2Value(__ethernet_status, _eth_disconnect);
+    }
+
+
+    if (gAudiCustInfo->EthDevStatus.Wifi == DEV_ST_DISABLE) {
+        ChangeDisplay2Value(__wifi_status, _disappear);
+
+        ChangeDisplay2Value(__3G4G_status, _disappear);
+        if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_DISABLE) {
+            ChangeDisplay2Value(__3G4G_move_status, _disappear);
+        } else if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_ENABLE_USE) {
+            ChangeDisplay2Value(__3G4G_move_status, __3G4G_connect);
+        } else if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_ENABLE_NO_USE) {
+            ChangeDisplay2Value(__3G4G_move_status, _3G4G_disconnect);
+        }
+    } else if (gAudiCustInfo->EthDevStatus.Wifi == DEV_ST_ENABLE_USE) {
+        ChangeDisplay2Value(__3G4G_move_status, _disappear);
+        ChangeDisplay2Value(__wifi_status, _wifi_connect);
+    } else if (gAudiCustInfo->EthDevStatus.Wifi == DEV_ST_ENABLE_NO_USE) {
+        ChangeDisplay2Value(__3G4G_move_status, _disappear);
+        ChangeDisplay2Value(__wifi_status, _wifi_disconnect);
+    }
+
+    if (gAudiCustInfo->EthDevStatus.Wifi != DEV_ST_DISABLE) {
+        if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_DISABLE) {
+            ChangeDisplay2Value(__3G4G_status, _disappear);
+        } else if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_ENABLE_USE) {
+            ChangeDisplay2Value(__3G4G_status, __3G4G_connect);
+        } else if (gAudiCustInfo->EthDevStatus.FourG == DEV_ST_ENABLE_NO_USE) {
+            ChangeDisplay2Value(__3G4G_status, _3G4G_disconnect);
+        }
+    }
+
+    //unsigned char flag[4] = {0};
+
+    /*for (i = 0; i < ShmSysConfigAndInfo->SysWarningInfo.WarningCount; i++) {
         //printf("status code = %s\r\n", &ShmSysConfigAndInfo->SysWarningInfo.WarningCode[i][0]);
         if (memcmp(&ShmSysConfigAndInfo->SysWarningInfo.WarningCode[i][0], "012304", 6) == 0) {
             flag[0] = 1;
@@ -966,6 +1021,7 @@ void RefreshConnStatus()
         }
     }
 
+
     if (flag[0] == 1) {
         ChangeDisplay2Value(__ethernet_status, _eth_disconnect);
     } else {
@@ -1010,6 +1066,7 @@ void RefreshConnStatus()
             ChangeDisplay2Value(__3G4G_status, __3G4G_connect);
         }
     }
+    */
 #else
 // eth
     if (ShmSysConfigAndInfo->SysInfo.ethInternetConn == YES) {

BIN
EVSE/Projects/DD360/Images/ACYE0000000\002P0_FactoryDefaultConfig.bin


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


BIN
EVSE/Projects/DD360/output/DoComm


BIN
EVSE/Projects/DD360/output/Module_LcmControl


BIN
EVSE/Projects/DD360/output/main