123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- #include <stdio.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include "../Config.h"
- #include "../Log/log.h"
- #include "../ShareMemory/shmMem.h"
- #include "../Define/define.h"
- //------------------------------------------------------------------------------
- void ClearAbnormalStatus_Chademo(uint8_t gun_index)
- {
- bool isCleanCheck = false;
- char code[7];
- struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
- struct InfoCodeData *pInfoCode = (struct InfoCodeData *)GetShmInfoCodeData();
- struct ChargingInfoData *pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(gun_index);
- if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "", 6) == EQUAL) {
- return;
- }
- if (true) {
- if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023700", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoEvCommFail == YES) {
- memcpy(code, "023700", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023704", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryMalfun == YES) {
- memcpy(code, "023704", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023705", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoNoPermission == YES) {
- memcpy(code, "023705", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023706", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryIncompatibility == YES) {
- memcpy(code, "023706", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023707", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryOVP == YES) {
- memcpy(code, "023707", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023708", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryUVP == YES) {
- memcpy(code, "023708", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023709", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryOTP == YES) {
- memcpy(code, "023709", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023710", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryCurrentDiff == YES) {
- memcpy(code, "023710", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023711", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryVoltageDiff == YES) {
- memcpy(code, "023711", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023712", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoShiftPosition == YES) {
- memcpy(code, "023712", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023713", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBatteryOtherFault == YES) {
- memcpy(code, "023713", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023714", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoChargingSystemError == YES) {
- memcpy(code, "023714", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023715", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoEvNormalStop == YES) {
- memcpy(code, "023715", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023716", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoTempSensorBroken == YES) {
- memcpy(code, "023716", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023717", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoConnectorLockFail == YES) {
- memcpy(code, "023717", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023718", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoD1OnNoReceive == YES) {
- memcpy(code, "023718", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023719", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsKtoJTimeout == YES) {
- memcpy(code, "023719", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023720", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsChargeAllowTimeout == YES) {
- memcpy(code, "023720", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023721", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoWaitGfdTimeout == YES) {
- memcpy(code, "023721", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023722", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsEvRelayTimeout == YES) {
- memcpy(code, "023722", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023723", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsReqCurrentTimeout == YES) {
- memcpy(code, "023723", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023724", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsKtoJOffTimeout == YES) {
- memcpy(code, "023724", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023725", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsEvRelayOffTimeout == YES) {
- memcpy(code, "023725", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023726", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoAdcMoreThan10V == YES) {
- memcpy(code, "023726", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023727", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoAdcMoreThan20V == YES) {
- memcpy(code, "023727", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023728", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoBmsChargeBeforeStop == YES) {
- memcpy(code, "023728", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023729", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoChargerGetNormalStop == YES) {
- memcpy(code, "023729", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023730", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoChargerGetEmergencyStop == YES) {
- memcpy(code, "023730", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023731", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoIsolationResultFail == YES) {
- memcpy(code, "023731", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023732", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoMissLinkWithMotherBoard == YES) {
- memcpy(code, "023732", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023733", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoOutputVolMoreThanLimit == YES) {
- memcpy(code, "023733", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023734", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoReqCurrentMoreThanLimit == YES) {
- memcpy(code, "023734", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023735", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoReCapBmsEqrCurrentExceed == YES) {
- memcpy(code, "023735", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023736", 6) == EQUAL &&
- pInfoCode->InfoEvents.bits.ChademoChargeRemainCountDown == YES) {
- memcpy(code, "023736", 6);
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- isCleanCheck = true;
- }
- }
- if (isCleanCheck) {
- for (uint8_t index = 0; index < pSysConfig->TotalConnectorCount; index++) {
- pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(index);
- if (index != gun_index || pSysConfig->TotalConnectorCount == 1) {
- /*
- log_info("CHA clean error : index = %d, EvConnAlarmCode = %s, code = %s \n",
- index,
- pDcChargingInfo->EvConnAlarmCode,
- code);
- */
- if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, code, 6) != EQUAL) {
- if (strncmp(code, "023700", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoEvCommFail = NO; }
- if (strncmp(code, "023704", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryMalfun = NO; }
- if (strncmp(code, "023705", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoNoPermission = NO; }
- if (strncmp(code, "023706", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryIncompatibility = NO; }
- if (strncmp(code, "023707", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOVP = NO; }
- if (strncmp(code, "023708", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryUVP = NO; }
- if (strncmp(code, "023709", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOTP = NO; }
- if (strncmp(code, "023710", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryCurrentDiff = NO; }
- if (strncmp(code, "023711", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryVoltageDiff = NO; }
- if (strncmp(code, "023712", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoShiftPosition = NO; }
- if (strncmp(code, "023713", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOtherFault = NO; }
- if (strncmp(code, "023714", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargingSystemError = NO; }
- if (strncmp(code, "023715", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoEvNormalStop = NO; }
- if (strncmp(code, "023716", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoTempSensorBroken = NO; }
- if (strncmp(code, "023717", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoConnectorLockFail = NO; }
- if (strncmp(code, "023718", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoD1OnNoReceive = NO; }
- if (strncmp(code, "023719", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsKtoJTimeout = NO; }
- if (strncmp(code, "023720", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsChargeAllowTimeout = NO; }
- if (strncmp(code, "023721", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoWaitGfdTimeout = NO; }
- if (strncmp(code, "023722", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsEvRelayTimeout = NO; }
- if (strncmp(code, "023723", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsReqCurrentTimeout = NO; }
- if (strncmp(code, "023724", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsKtoJOffTimeout = NO; }
- if (strncmp(code, "023725", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsEvRelayOffTimeout = NO; }
- if (strncmp(code, "023726", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoAdcMoreThan10V = NO; }
- if (strncmp(code, "023727", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoAdcMoreThan20V = NO; }
- if (strncmp(code, "023728", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsChargeBeforeStop = NO; }
- if (strncmp(code, "023729", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargerGetNormalStop = NO; }
- if (strncmp(code, "023730", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargerGetEmergencyStop = NO; }
- if (strncmp(code, "023731", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoIsolationResultFail = NO; }
- if (strncmp(code, "023732", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoMissLinkWithMotherBoard = NO; }
- if (strncmp(code, "023733", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoOutputVolMoreThanLimit = NO; }
- if (strncmp(code, "023734", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoReqCurrentMoreThanLimit = NO; }
- if (strncmp(code, "023735", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoReCapBmsEqrCurrentExceed = NO; }
- if (strncmp(code, "023736", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargeRemainCountDown = NO; }
- }
- }
- }
- }
- pDcChargingInfo = (struct ChargingInfoData*)GetDcChargingInfoData(gun_index);
- if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "", 6) != EQUAL) {
- memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
- }
- }
|