AbnormalGBT.c 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  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. void ClearAbnormalStatus_GB(uint8_t gun_index)
  11. {
  12. bool isCleanCheck = false;
  13. char code[7];
  14. struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
  15. struct InfoCodeData *pInfoCode = (struct InfoCodeData *)GetShmInfoCodeData();
  16. struct ChargingInfoData *pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(gun_index);
  17. if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "", 6) == EQUAL) {
  18. return;
  19. }
  20. if (true) {
  21. if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023702", 6) == EQUAL &&
  22. pInfoCode->InfoEvents.bits.GbEvCommFail == YES) {
  23. memcpy(code, "023702", 6);
  24. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  25. isCleanCheck = true;
  26. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023900", 6) == EQUAL &&
  27. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_LOS_CC1 == YES) {
  28. memcpy(code, "023900", 6);
  29. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  30. isCleanCheck = true;
  31. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023901", 6) == EQUAL &&
  32. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CONNECTOR_LOCK_FAIL == YES) {
  33. memcpy(code, "023901", 6);
  34. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  35. isCleanCheck = true;
  36. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023902", 6) == EQUAL &&
  37. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BATTERY_INCOMPATIBLE == YES) {
  38. memcpy(code, "023902", 6);
  39. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  40. isCleanCheck = true;
  41. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023903", 6) == EQUAL &&
  42. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_BROAA_TIMEOUT == YES) {
  43. memcpy(code, "023903", 6);
  44. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  45. isCleanCheck = true;
  46. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023904", 6) == EQUAL &&
  47. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CSU_PRECHARGE_TIMEOUT == YES) {
  48. memcpy(code, "023904", 6);
  49. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  50. isCleanCheck = true;
  51. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023905", 6) == EQUAL &&
  52. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_PRESENT_VOLTAGE_FAULT == YES) {
  53. memcpy(code, "023905", 6);
  54. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  55. isCleanCheck = true;
  56. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023906", 6) == EQUAL &&
  57. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_VOLTAGE_OVER_RANGE == YES) {
  58. memcpy(code, "023906", 6);
  59. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  60. isCleanCheck = true;
  61. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023907", 6) == EQUAL &&
  62. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BSM_CHARGE_ALLOW_00_10MIN_COUUNTDONE == YES) {
  63. memcpy(code, "023907", 6);
  64. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  65. isCleanCheck = true;
  66. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023908", 6) == EQUAL &&
  67. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_WAIT_GROUNDFAULT_TIMEOUT == YES) {
  68. memcpy(code, "023908", 6);
  69. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  70. isCleanCheck = true;
  71. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023909", 6) == EQUAL &&
  72. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_10V == YES) {
  73. memcpy(code, "023909", 6);
  74. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  75. isCleanCheck = true;
  76. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023910", 6) == EQUAL &&
  77. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_60V == YES) {
  78. memcpy(code, "023910", 6);
  79. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  80. isCleanCheck = true;
  81. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023911", 6) == EQUAL &&
  82. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_NORMAL_STOP_CMD == YES) {
  83. memcpy(code, "023911", 6);
  84. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  85. isCleanCheck = true;
  86. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023912", 6) == EQUAL &&
  87. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_EMERGENCY_STOP_CMD == YES) {
  88. memcpy(code, "023912", 6);
  89. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  90. isCleanCheck = true;
  91. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023913", 6) == EQUAL &&
  92. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ISOLATION_RESULT_FAIL == YES) {
  93. memcpy(code, "023913", 6);
  94. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  95. isCleanCheck = true;
  96. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023914", 6) == EQUAL &&
  97. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_MOTHER_BOARD_MISS_LINK == YES) {
  98. memcpy(code, "023914", 6);
  99. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  100. isCleanCheck = true;
  101. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023915", 6) == EQUAL &&
  102. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_LIMIT == YES) {
  103. memcpy(code, "023915", 6);
  104. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  105. isCleanCheck = true;
  106. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023916", 6) == EQUAL &&
  107. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_REQ_CURRENT_MORE_THAN_LIMIT == YES) {
  108. memcpy(code, "023916", 6);
  109. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  110. isCleanCheck = true;
  111. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023917", 6) == EQUAL &&
  112. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_10_PERCENT == YES) {
  113. memcpy(code, "023917", 6);
  114. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  115. isCleanCheck = true;
  116. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023918", 6) == EQUAL &&
  117. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_DIFF_BCS_5_PERCENT == YES) {
  118. memcpy(code, "023918", 6);
  119. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  120. isCleanCheck = true;
  121. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023919", 6) == EQUAL &&
  122. pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_STOP_ADC_MORE_THAN_10V == YES) {
  123. memcpy(code, "023919", 6);
  124. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  125. isCleanCheck = true;
  126. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023930", 6) == EQUAL &&
  127. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BHM_TIMEOUT == YES) {
  128. memcpy(code, "023930", 6);
  129. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  130. isCleanCheck = true;
  131. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023931", 6) == EQUAL &&
  132. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRM_TIMEOUT == YES) {
  133. memcpy(code, "023931", 6);
  134. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  135. isCleanCheck = true;
  136. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023932", 6) == EQUAL &&
  137. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCP_TIMEOUT == YES) {
  138. memcpy(code, "023932", 6);
  139. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  140. isCleanCheck = true;
  141. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023933", 6) == EQUAL &&
  142. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRO_TIMEOUT == YES) {
  143. memcpy(code, "023933", 6);
  144. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  145. isCleanCheck = true;
  146. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023934", 6) == EQUAL &&
  147. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCL_TIMEOUT == YES) {
  148. memcpy(code, "023934", 6);
  149. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  150. isCleanCheck = true;
  151. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023935", 6) == EQUAL &&
  152. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCS_TIMEOUT == YES) {
  153. memcpy(code, "023935", 6);
  154. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  155. isCleanCheck = true;
  156. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023936", 6) == EQUAL &&
  157. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSM_TIMEOUT == YES) {
  158. memcpy(code, "023936", 6);
  159. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  160. isCleanCheck = true;
  161. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023937", 6) == EQUAL &&
  162. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BST_TIMEOUT == YES) {
  163. memcpy(code, "023937", 6);
  164. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  165. isCleanCheck = true;
  166. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023938", 6) == EQUAL &&
  167. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSD_TIMEOUT == YES) {
  168. memcpy(code, "023938", 6);
  169. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  170. isCleanCheck = true;
  171. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023939", 6) == EQUAL &&
  172. pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BEM_OTHER_TIMEOUT == YES) {
  173. memcpy(code, "023939", 6);
  174. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  175. isCleanCheck = true;
  176. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023940", 6) == EQUAL &&
  177. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRM_TIMEOUT == YES) {
  178. memcpy(code, "023940", 6);
  179. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  180. isCleanCheck = true;
  181. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023941", 6) == EQUAL &&
  182. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRMAA_TIMEOUT == YES) {
  183. memcpy(code, "023941", 6);
  184. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  185. isCleanCheck = true;
  186. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023942", 6) == EQUAL &&
  187. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CTS_CML_TIMEOUT == YES) {
  188. memcpy(code, "023942", 6);
  189. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  190. isCleanCheck = true;
  191. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023943", 6) == EQUAL &&
  192. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRO_TIMEOUT == YES) {
  193. memcpy(code, "023943", 6);
  194. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  195. isCleanCheck = true;
  196. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023944", 6) == EQUAL &&
  197. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CCS_TIMEOUT == YES) {
  198. memcpy(code, "023944", 6);
  199. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  200. isCleanCheck = true;
  201. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023945", 6) == EQUAL &&
  202. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CST_TIMEOUT == YES) {
  203. memcpy(code, "023945", 6);
  204. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  205. isCleanCheck = true;
  206. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023946", 6) == EQUAL &&
  207. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CSD_TIMEOUT == YES) {
  208. memcpy(code, "023946", 6);
  209. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  210. isCleanCheck = true;
  211. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023947", 6) == EQUAL &&
  212. pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_BEM_OTHER_TIMEOUT == YES) {
  213. memcpy(code, "023947", 6);
  214. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  215. isCleanCheck = true;
  216. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023950", 6) == EQUAL &&
  217. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_SOC_GOAL == YES) {
  218. memcpy(code, "023950", 6);
  219. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  220. isCleanCheck = true;
  221. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023951", 6) == EQUAL &&
  222. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_TOTAL_VOLTAGE_GOAL == YES) {
  223. memcpy(code, "023951", 6);
  224. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  225. isCleanCheck = true;
  226. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023952", 6) == EQUAL &&
  227. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CELL_VOLTAGE_GOAL == YES) {
  228. memcpy(code, "023952", 6);
  229. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  230. isCleanCheck = true;
  231. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023953", 6) == EQUAL &&
  232. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_GET_CST == YES) {
  233. memcpy(code, "023953", 6);
  234. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  235. isCleanCheck = true;
  236. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023954", 6) == EQUAL &&
  237. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_ISOLATION == YES) {
  238. memcpy(code, "023954", 6);
  239. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  240. isCleanCheck = true;
  241. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023955", 6) == EQUAL &&
  242. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OUTPUT_CONNECTOR_OTP == YES) {
  243. memcpy(code, "023955", 6);
  244. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  245. isCleanCheck = true;
  246. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023956", 6) == EQUAL &&
  247. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_COMPONENT == YES) {
  248. memcpy(code, "023956", 6);
  249. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  250. isCleanCheck = true;
  251. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023957", 6) == EQUAL &&
  252. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CHARGE_CONNECTOR == YES) {
  253. memcpy(code, "023957", 6);
  254. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  255. isCleanCheck = true;
  256. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023958", 6) == EQUAL &&
  257. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTP == YES) {
  258. memcpy(code, "023958", 6);
  259. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  260. isCleanCheck = true;
  261. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023959", 6) == EQUAL &&
  262. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTHER == YES) {
  263. memcpy(code, "023959", 6);
  264. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  265. isCleanCheck = true;
  266. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023960", 6) == EQUAL &&
  267. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_HIGH_V == YES) {
  268. memcpy(code, "023960", 6);
  269. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  270. isCleanCheck = true;
  271. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023961", 6) == EQUAL &&
  272. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CC2 == YES) {
  273. memcpy(code, "023961", 6);
  274. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  275. isCleanCheck = true;
  276. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023962", 6) == EQUAL &&
  277. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CURRENT == YES) {
  278. memcpy(code, "023962", 6);
  279. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  280. isCleanCheck = true;
  281. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023963", 6) == EQUAL &&
  282. pInfoCode->InfoEvents.bits.ERROR_CODE_BST_VOLTAGE == YES) {
  283. memcpy(code, "023963", 6);
  284. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  285. isCleanCheck = true;
  286. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023964", 6) == EQUAL &&
  287. pInfoCode->InfoEvents.bits.ERROR_CODE_GET_BST_NO_REASON == YES) {
  288. memcpy(code, "023964", 6);
  289. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  290. isCleanCheck = true;
  291. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023970", 6) == EQUAL &&
  292. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_OVER_VOLTAGE == YES) {
  293. memcpy(code, "023970", 6);
  294. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  295. isCleanCheck = true;
  296. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023971", 6) == EQUAL &&
  297. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_UNDER_VOLTAGE == YES) {
  298. memcpy(code, "023971", 6);
  299. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  300. isCleanCheck = true;
  301. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023972", 6) == EQUAL &&
  302. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OVER_SOC == YES) {
  303. memcpy(code, "023972", 6);
  304. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  305. isCleanCheck = true;
  306. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023973", 6) == EQUAL &&
  307. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_UNDER_SOC == YES) {
  308. memcpy(code, "023973", 6);
  309. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  310. isCleanCheck = true;
  311. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023974", 6) == EQUAL &&
  312. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CURRENT == YES) {
  313. memcpy(code, "023974", 6);
  314. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  315. isCleanCheck = true;
  316. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023975", 6) == EQUAL &&
  317. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_TEMPERATURE == YES) {
  318. memcpy(code, "023975", 6);
  319. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  320. isCleanCheck = true;
  321. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023976", 6) == EQUAL &&
  322. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_ISOLATE == YES) {
  323. memcpy(code, "023976", 6);
  324. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  325. isCleanCheck = true;
  326. } else if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "023977", 6) == EQUAL &&
  327. pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OUTPUT_CONNECTOR == YES) {
  328. memcpy(code, "023977", 6);
  329. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  330. isCleanCheck = true;
  331. }
  332. }
  333. if (isCleanCheck) {
  334. for (uint8_t index = 0; index < pSysConfig->TotalConnectorCount; index++) {
  335. pDcChargingInfo = (struct ChargingInfoData *)GetDcChargingInfoData(index);
  336. if (index != gun_index || pSysConfig->TotalConnectorCount == 1) {
  337. /*
  338. log_info("GBT clean error : index = %d, EvConnAlarmCode = %s, code = %s \n",
  339. index,
  340. pDcChargingInfo->EvConnAlarmCode,
  341. code);
  342. */
  343. if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, code, 6) != EQUAL) {
  344. if (strncmp(code, "023702", 6) == EQUAL) { pInfoCode->InfoEvents.bits.GbEvCommFail = NO; }
  345. if (strncmp(code, "023900", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_LOS_CC1 = NO; }
  346. if (strncmp(code, "023901", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CONNECTOR_LOCK_FAIL = NO; }
  347. if (strncmp(code, "023902", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BATTERY_INCOMPATIBLE = NO; }
  348. if (strncmp(code, "023903", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_BROAA_TIMEOUT = NO; }
  349. if (strncmp(code, "023904", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CSU_PRECHARGE_TIMEOUT = NO; }
  350. if (strncmp(code, "023905", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_PRESENT_VOLTAGE_FAULT = NO; }
  351. if (strncmp(code, "023906", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BMS_VOLTAGE_OVER_RANGE = NO; }
  352. if (strncmp(code, "023907", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_BSM_CHARGE_ALLOW_00_10MIN_COUUNTDONE = NO; }
  353. if (strncmp(code, "023908", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_WAIT_GROUNDFAULT_TIMEOUT = NO; }
  354. if (strncmp(code, "023909", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_10V = NO; }
  355. if (strncmp(code, "023910", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ADC_MORE_THAN_60V = NO; }
  356. if (strncmp(code, "023911", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_NORMAL_STOP_CMD = NO; }
  357. if (strncmp(code, "023912", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_CHARGER_GET_EMERGENCY_STOP_CMD = NO; }
  358. if (strncmp(code, "023913", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_ISOLATION_RESULT_FAIL = NO; }
  359. if (strncmp(code, "023914", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_MOTHER_BOARD_MISS_LINK = NO; }
  360. if (strncmp(code, "023915", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_LIMIT = NO; }
  361. if (strncmp(code, "023916", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_REQ_CURRENT_MORE_THAN_LIMIT = NO; }
  362. if (strncmp(code, "023917", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_MORE_THAN_10_PERCENT = NO; }
  363. if (strncmp(code, "023918", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_OUTPUT_VOLTAGE_DIFF_BCS_5_PERCENT = NO; }
  364. if (strncmp(code, "023919", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GBT_STOP_ADC_MORE_THAN_10V = NO; }
  365. if (strncmp(code, "023930", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BHM_TIMEOUT = NO; }
  366. if (strncmp(code, "023931", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRM_TIMEOUT = NO; }
  367. if (strncmp(code, "023932", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCP_TIMEOUT = NO; }
  368. if (strncmp(code, "023933", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BRO_TIMEOUT = NO; }
  369. if (strncmp(code, "023934", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCL_TIMEOUT = NO; }
  370. if (strncmp(code, "023935", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BCS_TIMEOUT = NO; }
  371. if (strncmp(code, "023936", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSM_TIMEOUT = NO; }
  372. if (strncmp(code, "023937", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BST_TIMEOUT = NO; }
  373. if (strncmp(code, "023938", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BSD_TIMEOUT = NO; }
  374. if (strncmp(code, "023939", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_CEM_BEM_OTHER_TIMEOUT = NO; }
  375. if (strncmp(code, "023940", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRM_TIMEOUT = NO; }
  376. if (strncmp(code, "023941", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRMAA_TIMEOUT = NO; }
  377. if (strncmp(code, "023942", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CTS_CML_TIMEOUT = NO; }
  378. if (strncmp(code, "023943", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CRO_TIMEOUT = NO; }
  379. if (strncmp(code, "023944", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CCS_TIMEOUT = NO; }
  380. if (strncmp(code, "023945", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CST_TIMEOUT = NO; }
  381. if (strncmp(code, "023946", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_CSD_TIMEOUT = NO; }
  382. if (strncmp(code, "023947", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BEM_BEM_OTHER_TIMEOUT = NO; }
  383. if (strncmp(code, "023950", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_SOC_GOAL = NO; }
  384. if (strncmp(code, "023951", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_TOTAL_VOLTAGE_GOAL = NO; }
  385. if (strncmp(code, "023952", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CELL_VOLTAGE_GOAL = NO; }
  386. if (strncmp(code, "023953", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_GET_CST = NO; }
  387. if (strncmp(code, "023954", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_ISOLATION = NO; }
  388. if (strncmp(code, "023955", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OUTPUT_CONNECTOR_OTP = NO; }
  389. if (strncmp(code, "023956", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_COMPONENT = NO; }
  390. if (strncmp(code, "023957", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CHARGE_CONNECTOR = NO; }
  391. if (strncmp(code, "023958", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTP = NO; }
  392. if (strncmp(code, "023959", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_OTHER = NO; }
  393. if (strncmp(code, "023960", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_HIGH_V = NO; }
  394. if (strncmp(code, "023961", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CC2 = NO; }
  395. if (strncmp(code, "023962", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_CURRENT = NO; }
  396. if (strncmp(code, "023963", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BST_VOLTAGE = NO; }
  397. if (strncmp(code, "023964", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_GET_BST_NO_REASON = NO; }
  398. if (strncmp(code, "023970", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_OVER_VOLTAGE = NO; }
  399. if (strncmp(code, "023971", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CELL_UNDER_VOLTAGE = NO; }
  400. if (strncmp(code, "023972", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OVER_SOC = NO; }
  401. if (strncmp(code, "023973", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_UNDER_SOC = NO; }
  402. if (strncmp(code, "023974", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_CURRENT = NO; }
  403. if (strncmp(code, "023975", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_TEMPERATURE = NO; }
  404. if (strncmp(code, "023976", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_ISOLATE = NO; }
  405. if (strncmp(code, "023977", 6) == EQUAL) { pInfoCode->InfoEvents.bits.ERROR_CODE_BSM_OUTPUT_CONNECTOR = NO; }
  406. }
  407. }
  408. }
  409. }
  410. pDcChargingInfo = (struct ChargingInfoData*)GetDcChargingInfoData(gun_index);
  411. if (strncmp((char *)pDcChargingInfo->EvConnAlarmCode, "", 6) != EQUAL) {
  412. memcpy(pDcChargingInfo->EvConnAlarmCode, "", 6);
  413. }
  414. }