AbnormalState.c 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include "../Config.h"
  6. #include "../Log/log.h"
  7. #include "../ShareMemory/shmMem.h"
  8. #include "../Define/define.h"
  9. //------------------------------------------------------------------------------
  10. bool AbnormalStopAnalysis(uint8_t gun_index, uint8_t *errCode)
  11. {
  12. char string[7];
  13. struct ChargingInfoData *pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(gun_index);
  14. struct AlarmCodeData *pAlarmCode = (struct AlarmCodeData *)GetShmAlarmCodeData();
  15. struct InfoCodeData *pInfoCode = (struct InfoCodeData *)GetShmInfoCodeData();
  16. sprintf(string, "%d%d%d%d%d%d",
  17. *(errCode + 0),
  18. *(errCode + 1),
  19. *(errCode + 2),
  20. *(errCode + 3),
  21. *(errCode + 4),
  22. *(errCode + 5));
  23. //iflog_info("NOTIFICATION_EV_STOP : Err Code = %s \n", string);
  24. if (strncmp(string, "000000", 6) == EQUAL ||
  25. strncmp(string, "023983", 6) == EQUAL ||
  26. strncmp(string, "023979", 6) == EQUAL )
  27. {
  28. log_info("NOTIFICATION_EV_STOP : NormalEvCode = %s", string);
  29. return false;
  30. }
  31. if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "", 6) != EQUAL) {
  32. return true;
  33. }
  34. memcpy(pDcChargingInfo->EvConnAlarmCode, string, 6);
  35. log_info("----------------- NOTIFICATION_EV_STOP : EvConnAlarmCode = %s -----------------", pDcChargingInfo->EvConnAlarmCode);
  36. if (strcmp(string, "023700") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoEvCommFail = YES; }
  37. if (strcmp(string, "023704") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryMalfun = YES; }
  38. if (strcmp(string, "023705") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoNoPermission = YES; }
  39. if (strcmp(string, "023706") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryIncompatibility = YES; }
  40. if (strcmp(string, "023707") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOVP = YES; }
  41. if (strcmp(string, "023708") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryUVP = YES; }
  42. if (strcmp(string, "023709") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOTP = YES; }
  43. if (strcmp(string, "023710") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryCurrentDiff = YES; }
  44. if (strcmp(string, "023711") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryVoltageDiff = YES; }
  45. if (strcmp(string, "023712") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoShiftPosition = YES; }
  46. if (strcmp(string, "023713") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBatteryOtherFault = YES; }
  47. if (strcmp(string, "023714") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargingSystemError = YES; }
  48. if (strcmp(string, "023715") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoEvNormalStop = YES; }
  49. if (strcmp(string, "023716") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoTempSensorBroken = YES; }
  50. if (strcmp(string, "023717") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoConnectorLockFail = YES; }
  51. if (strcmp(string, "023718") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoD1OnNoReceive = YES; }
  52. if (strcmp(string, "023719") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsKtoJTimeout = YES; }
  53. if (strcmp(string, "023720") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsChargeAllowTimeout = YES; }
  54. if (strcmp(string, "023721") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoWaitGfdTimeout = YES; }
  55. if (strcmp(string, "023722") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsEvRelayTimeout = YES; }
  56. if (strcmp(string, "023723") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsReqCurrentTimeout = YES; }
  57. if (strcmp(string, "023724") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsKtoJOffTimeout = YES; }
  58. if (strcmp(string, "023725") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsEvRelayOffTimeout = YES; }
  59. if (strcmp(string, "023726") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoAdcMoreThan10V = YES; }
  60. if (strcmp(string, "023727") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoAdcMoreThan20V = YES; }
  61. if (strcmp(string, "023728") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoBmsChargeBeforeStop = YES; }
  62. if (strcmp(string, "023729") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargerGetNormalStop = YES; }
  63. if (strcmp(string, "023730") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargerGetEmergencyStop = YES; }
  64. if (strcmp(string, "023731") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoIsolationResultFail = YES; }
  65. if (strcmp(string, "023732") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoMissLinkWithMotherBoard = YES; }
  66. if (strcmp(string, "023733") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoOutputVolMoreThanLimit = YES; }
  67. if (strcmp(string, "023734") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoReqCurrentMoreThanLimit = YES; }
  68. if (strcmp(string, "023735") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoReCapBmsEqrCurrentExceed = YES; }
  69. if (strcmp(string, "023736") == EQUAL) { pInfoCode->InfoEvents.bits.ChademoChargeRemainCountDown = YES; }
  70. if (strcmp(string, "023980") == EQUAL) { pInfoCode->InfoEvents.bits.CHADEMO_BMS_CHARGE_ALLOW_ERROR = YES; }
  71. if (strcmp(string, "023981") == EQUAL) { pInfoCode->InfoEvents.bits.CHADEMO_OUTPUT_VOLTAGE_MORE_THEN_10_PERCENT = YES; }
  72. if (strcmp(string, "023982") == EQUAL) { pInfoCode->InfoEvents.bits.CHADEMO_ADC_LESS_THAN_10V = YES; }
  73. if (strcmp(string, "012288") == EQUAL) { pAlarmCode->AlarmEvents.bits.CcsOutputUVPFail = YES; }
  74. if (strcmp(string, "023701") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEvCommFail = YES; }
  75. if (strcmp(string, "023737") == EQUAL) { pInfoCode->InfoEvents.bits.CcsRESTemperatureInhibit = YES; }
  76. if (strcmp(string, "023738") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEVShiftPosition = YES; }
  77. if (strcmp(string, "023739") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargerConnectorLockFault = YES; }
  78. if (strcmp(string, "023740") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEVRESSMalfunction = YES; }
  79. if (strcmp(string, "023741") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargingCurrentdifferential = YES; }
  80. if (strcmp(string, "023742") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargingVoltageOutOfRange = YES; }
  81. if (strcmp(string, "023743") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargingSystemIncompatibility = YES; }
  82. if (strcmp(string, "023744") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEmergencyEvent = YES; }
  83. if (strcmp(string, "023745") == EQUAL) { pInfoCode->InfoEvents.bits.CcsBreaker = YES; }
  84. if (strcmp(string, "023746") == EQUAL) { pInfoCode->InfoEvents.bits.CcsNoData = YES; }
  85. if (strcmp(string, "023747") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_DIN_A = YES; }
  86. if (strcmp(string, "023748") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_DIN_B = YES; }
  87. if (strcmp(string, "023749") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_DIN_C = YES; }
  88. if (strcmp(string, "023750") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_ISO_1 = YES; }
  89. if (strcmp(string, "023751") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_ISO_2 = YES; }
  90. if (strcmp(string, "023752") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_ISO_3 = YES; }
  91. if (strcmp(string, "023753") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_OEM_1 = YES; }
  92. if (strcmp(string, "023754") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_OEM_2 = YES; }
  93. if (strcmp(string, "023755") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_OEM_3 = YES; }
  94. if (strcmp(string, "023756") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_OEM_4 = YES; }
  95. if (strcmp(string, "023757") == EQUAL) { pInfoCode->InfoEvents.bits.Ccsreserved_by_OEM_5 = YES; }
  96. if (strcmp(string, "023758") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSequenceError = YES; }
  97. if (strcmp(string, "023759") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSignatureError = YES; }
  98. if (strcmp(string, "023760") == EQUAL) { pInfoCode->InfoEvents.bits.CcsUnknownSession = YES; }
  99. if (strcmp(string, "023761") == EQUAL) { pInfoCode->InfoEvents.bits.CcsServiceIDInvalid = YES; }
  100. if (strcmp(string, "023762") == EQUAL) { pInfoCode->InfoEvents.bits.CcsPaymentSelectionInvalid = YES; }
  101. if (strcmp(string, "023763") == EQUAL) { pInfoCode->InfoEvents.bits.CcsIdentificationSelectionInvalid = YES; }
  102. if (strcmp(string, "023764") == EQUAL) { pInfoCode->InfoEvents.bits.CcsServiceSelectionInvalid = YES; }
  103. if (strcmp(string, "023765") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertificateExpired = YES; }
  104. if (strcmp(string, "023766") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertificateNotYetValid = YES; }
  105. if (strcmp(string, "023767") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertificateRevoked = YES; }
  106. if (strcmp(string, "023768") == EQUAL) { pInfoCode->InfoEvents.bits.CcsNoCertificateAvailable = YES; }
  107. if (strcmp(string, "023769") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertChainError = YES; }
  108. if (strcmp(string, "023770") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertValidationError = YES; }
  109. if (strcmp(string, "023771") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertVerificationError = YES; }
  110. if (strcmp(string, "023772") == EQUAL) { pInfoCode->InfoEvents.bits.CcsContractCanceled = YES; }
  111. if (strcmp(string, "023773") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChallengeInvalid = YES; }
  112. if (strcmp(string, "023774") == EQUAL) { pInfoCode->InfoEvents.bits.CcsWrongEnergyTransferMode = YES; }
  113. if (strcmp(string, "023775") == EQUAL) { pInfoCode->InfoEvents.bits.CcsWrongChargeParameter = YES; }
  114. if (strcmp(string, "023776") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargingProfileInvalid = YES; }
  115. if (strcmp(string, "023777") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTariffSelectionInvalid = YES; }
  116. if (strcmp(string, "023778") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEVSEPresentVoltageToLow = YES; }
  117. if (strcmp(string, "023779") == EQUAL) { pInfoCode->InfoEvents.bits.CcsPowerDeliveryNotApplied = YES; }
  118. if (strcmp(string, "023780") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMeteringSignatureNotValid = YES; }
  119. if (strcmp(string, "023781") == EQUAL) { pInfoCode->InfoEvents.bits.CcsNoChargeServiceSelected = YES; }
  120. if (strcmp(string, "023782") == EQUAL) { pInfoCode->InfoEvents.bits.CcsContactorError = YES; }
  121. if (strcmp(string, "023783") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCertificateNotAllowedAtThisEVSE = YES; }
  122. if (strcmp(string, "023784") == EQUAL) { pInfoCode->InfoEvents.bits.CcsGAChargeStop = YES; }
  123. if (strcmp(string, "023785") == EQUAL) { pInfoCode->InfoEvents.bits.CcsAlignmentError = YES; }
  124. if (strcmp(string, "023786") == EQUAL) { pInfoCode->InfoEvents.bits.CcsACDError = YES; }
  125. if (strcmp(string, "023787") == EQUAL) { pInfoCode->InfoEvents.bits.CcsAssociationError = YES; }
  126. if (strcmp(string, "023788") == EQUAL) { pInfoCode->InfoEvents.bits.CcsEVSEChargeAbort = YES; }
  127. if (strcmp(string, "023789") == EQUAL) { pInfoCode->InfoEvents.bits.CcsNoSupportedAppProtocol = YES; }
  128. if (strcmp(string, "023790") == EQUAL) { pInfoCode->InfoEvents.bits.CcsContractNotAccepted = YES; }
  129. if (strcmp(string, "023791") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMOUnknown = YES; }
  130. if (strcmp(string, "023792") == EQUAL) { pInfoCode->InfoEvents.bits.CcsOEM_Prov_CertificateRevoke = YES; }
  131. if (strcmp(string, "023793") == EQUAL) { pInfoCode->InfoEvents.bits.CcsOEM_SubCA1_CertificateRevoked = YES; }
  132. if (strcmp(string, "023794") == EQUAL) { pInfoCode->InfoEvents.bits.CcsOEM_SubCA2_CertificateRevoked = YES; }
  133. if (strcmp(string, "023795") == EQUAL) { pInfoCode->InfoEvents.bits.CcsOEM_RootCA_CertificateRevoked = YES; }
  134. if (strcmp(string, "023796") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMO_Prov_CertificateRevoked = YES; }
  135. if (strcmp(string, "023797") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMO_SubCA1_CertificateRevoked = YES; }
  136. if (strcmp(string, "023798") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMO_SubCA2_CertificateRevoked = YES; }
  137. if (strcmp(string, "023799") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMO_RootCA_CertificateRevoked = YES; }
  138. if (strcmp(string, "023800") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPS_Prov_CertificateRevoked = YES; }
  139. if (strcmp(string, "023801") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPS_SubCA1_CertificateRevoked = YES; }
  140. if (strcmp(string, "023802") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPS_SubCA2_CertificateRevoked = YES; }
  141. if (strcmp(string, "023803") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPS_RootCA_CertificateRevoked = YES; }
  142. if (strcmp(string, "023809") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_SLAC_init = YES; }
  143. if (strcmp(string, "023810") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_match_response = YES; }
  144. if (strcmp(string, "023811") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_match_sequence = YES; }
  145. if (strcmp(string, "023812") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_match_MNBC = YES; }
  146. if (strcmp(string, "023813") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_EVSE_avg_atten_calc = YES; }
  147. if (strcmp(string, "023814") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_match_response = YES; }
  148. if (strcmp(string, "023815") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_EVSE_match_session = YES; }
  149. if (strcmp(string, "023816") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_assoc_session = YES; }
  150. if (strcmp(string, "023817") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_vald_toggle = YES; }
  151. if (strcmp(string, "023818") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccSlacTimeoutCmMnbcSound = YES; }
  152. if (strcmp(string, "023819") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccSlacTimeoutCmValidateReq = YES; }
  153. if (strcmp(string, "023823") == EQUAL) { pInfoCode->InfoEvents.bits.CcsUDP_TT_match_join = YES; }
  154. if (strcmp(string, "023824") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTCP_TT_match_join = YES; }
  155. if (strcmp(string, "023825") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_amp_map_exchange = YES; }
  156. if (strcmp(string, "023826") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_link_ready_notification = YES; }
  157. if (strcmp(string, "023832") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSupportedAppProtocolRes = YES; }
  158. if (strcmp(string, "023833") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSessionSetupRes = YES; }
  159. if (strcmp(string, "023834") == EQUAL) { pInfoCode->InfoEvents.bits.CcsServiceDiscoveryRes = YES; }
  160. if (strcmp(string, "023835") == EQUAL) { pInfoCode->InfoEvents.bits.CcsServicePaymentSelectionRes = YES; }
  161. if (strcmp(string, "023836") == EQUAL) { pInfoCode->InfoEvents.bits.CcsContractAuthenticationRes = YES; }
  162. if (strcmp(string, "023837") == EQUAL) { pInfoCode->InfoEvents.bits.CcsChargeParameterDiscoveryRes = YES; }
  163. if (strcmp(string, "023838") == EQUAL) { pInfoCode->InfoEvents.bits.CcsPowerDeliveryRes = YES; }
  164. if (strcmp(string, "023839") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCableCheckRes = YES; }
  165. if (strcmp(string, "023840") == EQUAL) { pInfoCode->InfoEvents.bits.CcsPreChargeRes = YES; }
  166. if (strcmp(string, "023841") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCurrentDemandRes = YES; }
  167. if (strcmp(string, "023842") == EQUAL) { pInfoCode->InfoEvents.bits.CcsWeldingDetectionRes = YES; }
  168. if (strcmp(string, "023843") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSessionStopRes = YES; }
  169. if (strcmp(string, "023844") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSequence_Time = YES; }
  170. if (strcmp(string, "023845") == EQUAL) { pInfoCode->InfoEvents.bits.CcsReadyToCharge_Performance_Time = YES; }
  171. if (strcmp(string, "023846") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCommunicationSetup_Performance_Time = YES; }
  172. if (strcmp(string, "023847") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCableCheck_Performance_Time = YES; }
  173. if (strcmp(string, "023848") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPState_Detection_Time = YES; }
  174. if (strcmp(string, "023849") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCPOscillator_Retain_Time = YES; }
  175. if (strcmp(string, "023850") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccTimeoutV2GPreChargePerformaceTime = YES; }
  176. if (strcmp(string, "023855") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_GET_EV_TARGET_INFO = YES; }
  177. if (strcmp(string, "023856") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_GET_EV_TARGET_INFO = YES; }
  178. if (strcmp(string, "023857") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_GET_EV_BATTERY_INFO = YES; }
  179. if (strcmp(string, "023858") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_GET_EV_BATTERY_INFO = YES; }
  180. if (strcmp(string, "023859") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_EV_STOP_EVENT = YES; }
  181. if (strcmp(string, "023860") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EV_STOP_EVENT = YES; }
  182. if (strcmp(string, "023861") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_EVSE_STOP_EVENT = YES; }
  183. if (strcmp(string, "023862") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_STOP_EVENT = YES; }
  184. if (strcmp(string, "023863") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_GET_MISC_INFO = YES; }
  185. if (strcmp(string, "023864") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_GET_MISC_INFO = YES; }
  186. if (strcmp(string, "023865") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_DOWNLOAD_REQUEST = YES; }
  187. if (strcmp(string, "023866") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_DOWNLOAD_REQUEST = YES; }
  188. if (strcmp(string, "023867") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_START_BLOCK_TRANSFER = YES; }
  189. if (strcmp(string, "023868") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_START_BLOCK_TRANSFER = YES; }
  190. if (strcmp(string, "023869") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_DATA_TRANSFER = YES; }
  191. if (strcmp(string, "023870") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_DATA_TRANSFER = YES; }
  192. if (strcmp(string, "023871") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_DOWNLOAD_FINISH = YES; }
  193. if (strcmp(string, "023872") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_DOWNLOAD_FINISH = YES; }
  194. if (strcmp(string, "023873") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_ISOLATION_STATUS = YES; }
  195. if (strcmp(string, "023874") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_ISOLATION_STATUS = YES; }
  196. if (strcmp(string, "023875") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_CONNECTOR_INFO = YES; }
  197. if (strcmp(string, "023876") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_CONNECTOR_INFO = YES; }
  198. if (strcmp(string, "023877") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_RTC_INFO = YES; }
  199. if (strcmp(string, "023878") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_RTC_INFO = YES; }
  200. if (strcmp(string, "023879") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTP_EVSE_PRECHARGE_INFO = YES; }
  201. if (strcmp(string, "023880") == EQUAL) { pInfoCode->InfoEvents.bits.CcsTT_EVSE_PRECHARGE_INFO = YES; }
  202. if (strcmp(string, "023881") == EQUAL) { pInfoCode->InfoEvents.bits.CcsMSG_Sequence = YES; }
  203. if (strcmp(string, "023882") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCAN_MSG_Unrecognized_CMD_ID = YES; }
  204. if (strcmp(string, "023883") == EQUAL) { pInfoCode->InfoEvents.bits.CcsDIN_Msg_Decode_Error = YES; }
  205. if (strcmp(string, "023884") == EQUAL) { pInfoCode->InfoEvents.bits.CcsDIN_Msg_Encode_Error = YES; }
  206. if (strcmp(string, "023885") == EQUAL) { pInfoCode->InfoEvents.bits.CcsISO1_Msg_Decode_Error = YES; }
  207. if (strcmp(string, "023886") == EQUAL) { pInfoCode->InfoEvents.bits.CcsISO1_Msg_Encode_Error = YES; }
  208. if (strcmp(string, "023887") == EQUAL) { pInfoCode->InfoEvents.bits.CcsISO2_Msg_Decode_Error = YES; }
  209. if (strcmp(string, "023888") == EQUAL) { pInfoCode->InfoEvents.bits.CcsISO2_Msg_Encode_Error = YES; }
  210. if (strcmp(string, "023889") == EQUAL) { pInfoCode->InfoEvents.bits.CcsCpStatus_Error = YES; }
  211. if (strcmp(string, "023890") == EQUAL) { pInfoCode->InfoEvents.bits.CcsUnexpectVolBeforeCharing_Error = YES; }
  212. if (strcmp(string, "023891") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccNotReadyForCharging = YES; }
  213. if (strcmp(string, "023892") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccTimeoutQCA7000Comm = YES; }
  214. if (strcmp(string, "023893") == EQUAL) { pInfoCode->InfoEvents.bits.CcsSeccFailForQCA7000SetKey = YES; }
  215. if (strcmp(string, "023979") == EQUAL) { pInfoCode->InfoEvents.bits.EV_Full_Charging = YES; }
  216. if (strcmp(string, "023983") == EQUAL) { pInfoCode->InfoEvents.bits.Stop_by_EV_with_unknow_reason = YES; }
  217. if (strcmp(string, "023702") == EQUAL) { pInfoCode->InfoEvents.bits.GbEvCommFail = YES; }
  218. if (strcmp(string, "023900") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_LOS_CC1 = YES; }
  219. if (strcmp(string, "023901") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CONNECTOR_LOCK_FAIL = YES; }
  220. if (strcmp(string, "023902") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BATTERY_INCOMPATIBLE = YES; }
  221. if (strcmp(string, "023903") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_BROAA_TIMEOUT = YES; }
  222. if (strcmp(string, "023904") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CSU_PRECHARGE_TIMEOUT = YES; }
  223. if (strcmp(string, "023905") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_PRESENT_VOLTAGE_FAULT = YES; }
  224. if (strcmp(string, "023906") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_VOLTAGE_OVER_RANGE = YES; }
  225. if (strcmp(string, "023907") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BSM_CHARGE_ALLOW_00_10MIN_COUUNTDONE = YES; }
  226. if (strcmp(string, "023908") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_WAIT_GROUNDFAULT_TIMEOUT = YES; }
  227. if (strcmp(string, "023909") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_10V = YES; }
  228. if (strcmp(string, "023910") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_60V = YES; }
  229. if (strcmp(string, "023911") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_NORMAL_STOP_CMD = YES; }
  230. if (strcmp(string, "023912") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_EMERGENCY_STOP_CMD = YES; }
  231. if (strcmp(string, "023913") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ISOLATION_RESULT_FAIL = YES; }
  232. if (strcmp(string, "023914") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_MOTHER_BOARD_MISS_LINK = YES; }
  233. if (strcmp(string, "023915") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_LIMIT = YES; }
  234. if (strcmp(string, "023916") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_REQ_CURRENT_MORE_THAN_LIMIT = YES; }
  235. if (strcmp(string, "023917") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_10_PERCENT = YES; }
  236. if (strcmp(string, "023918") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_DIFF_BCS_5_PERCENT = YES; }
  237. if (strcmp(string, "023919") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_STOP_ADC_MORE_THAN_10V = YES; }
  238. if (strcmp(string, "023930") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BHM_TIMEOUT = YES; }
  239. if (strcmp(string, "023931") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRM_TIMEOUT = YES; }
  240. if (strcmp(string, "023932") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCP_TIMEOUT = YES; }
  241. if (strcmp(string, "023933") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRO_TIMEOUT = YES; }
  242. if (strcmp(string, "023934") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCL_TIMEOUT = YES; }
  243. if (strcmp(string, "023935") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCS_TIMEOUT = YES; }
  244. if (strcmp(string, "023936") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSM_TIMEOUT = YES; }
  245. if (strcmp(string, "023937") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BST_TIMEOUT = YES; }
  246. if (strcmp(string, "023938") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSD_TIMEOUT = YES; }
  247. if (strcmp(string, "023939") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BEM_OTHER_TIMEOUT = YES; }
  248. if (strcmp(string, "023940") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRM_TIMEOUT = YES; }
  249. if (strcmp(string, "023941") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRMAA_TIMEOUT = YES; }
  250. if (strcmp(string, "023942") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CTS_CML_TIMEOUT = YES; }
  251. if (strcmp(string, "023943") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRO_TIMEOUT = YES; }
  252. if (strcmp(string, "023944") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CCS_TIMEOUT = YES; }
  253. if (strcmp(string, "023945") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CST_TIMEOUT = YES; }
  254. if (strcmp(string, "023946") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CSD_TIMEOUT = YES; }
  255. if (strcmp(string, "023947") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_BEM_OTHER_TIMEOUT = YES; }
  256. if (strcmp(string, "023950") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_SOC_GOAL = YES; }
  257. if (strcmp(string, "023951") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_TOTAL_VOLTAGE_GOAL = YES; }
  258. if (strcmp(string, "023952") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CELL_VOLTAGE_GOAL = YES; }
  259. if (strcmp(string, "023953") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_GET_CST = YES; }
  260. if (strcmp(string, "023954") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_ISOLATION = YES; }
  261. if (strcmp(string, "023955") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OUTPUT_CONNECTOR_OTP = YES; }
  262. if (strcmp(string, "023956") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_COMPONENT = YES; }
  263. if (strcmp(string, "023957") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CHARGE_CONNECTOR = YES; }
  264. if (strcmp(string, "023958") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTP = YES; }
  265. if (strcmp(string, "023959") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTHER = YES; }
  266. if (strcmp(string, "023960") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_HIGH_V = YES; }
  267. if (strcmp(string, "023961") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CC2 = YES; }
  268. if (strcmp(string, "023962") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CURRENT = YES; }
  269. if (strcmp(string, "023963") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_VOLTAGE = YES; }
  270. if (strcmp(string, "023964") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GET_BST_NO_REASON = YES; }
  271. if (strcmp(string, "023970") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_OVER_VOLTAGE = YES; }
  272. if (strcmp(string, "023971") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_UNDER_VOLTAGE = YES; }
  273. if (strcmp(string, "023972") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OVER_SOC = YES; }
  274. if (strcmp(string, "023973") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_UNDER_SOC = YES; }
  275. if (strcmp(string, "023974") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CURRENT = YES; }
  276. if (strcmp(string, "023975") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_TEMPERATURE = YES; }
  277. if (strcmp(string, "023976") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_ISOLATE = YES; }
  278. if (strcmp(string, "023977") == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OUTPUT_CONNECTOR = YES; }
  279. return true;
  280. }