Config.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. /*
  2. * Config.h
  3. *
  4. * Created on: 2019年4月23日
  5. * Author: foluswen
  6. */
  7. #ifndef CONFIG_H_
  8. #define CONFIG_H_
  9. #include <sys/types.h>
  10. #define ShmCsuMeterKey 2001
  11. #define ShmCommonKey 2002
  12. typedef unsigned char byte;
  13. #define TOTAL_QUANTITY_GUN 4 //Max Count
  14. #define DC_CONNECTOR_COUNT 2
  15. #define AC_CONNECTOR_COUNT 1
  16. #define GFD_WAIT 0
  17. #define GFD_PASS 1
  18. #define GFD_FAIL 2
  19. #define GFD_WARNING 3
  20. #define PRECHARGE_WAIT 0
  21. #define PRECHARGE_READY 1
  22. #define PRECHARGE_PRERELAY_PASS 2
  23. #define PRECHARGE_CHARELAY_PASS 3
  24. #define BOOTTING 0
  25. #define BOOT_COMPLETE 1
  26. #define AC_MINIMUM_DUTY 6
  27. #define AC_STOP_DUTY 100
  28. enum _AC_SYSTEM_STATUS
  29. {
  30. AC_SYS_NONE = 0,
  31. AC_SYS_A,
  32. AC_SYS_B,
  33. AC_SYS_C,
  34. AC_SYS_D,
  35. AC_SYS_E,
  36. AC_SYS_F
  37. };
  38. enum _GUN_TYPE
  39. {
  40. _Type_Chademo = 0,
  41. _Type_CCS,
  42. _Type_GB,
  43. _Type_AC,
  44. };
  45. enum _CCS_TYPE
  46. {
  47. _CCS_TYPE_CCS1 = 0,
  48. _CCS_TYPE_CCS2 = 1,
  49. };
  50. enum _LCM_INDEX
  51. {
  52. _LCM_INIT = 0x00,
  53. _LCM_IDLE = 0x01,
  54. _LCM_AUTHORIZING = 0x02,
  55. _LCM_AUTHORIZ_COMP = 0x03,
  56. _LCM_AUTHORIZ_FAIL = 0x04,
  57. _LCM_WAIT_FOR_PLUG = 0x05,
  58. _LCM_PRE_CHARGE = 0x06,
  59. _LCM_CHARGING = 0x07,
  60. _LCM_COMPLETE = 0x08,
  61. _LCM_FIX = 0x09,
  62. _LCM_EMC = 0x0A,
  63. _LCM_NONE = 0xFF,
  64. };
  65. enum _SELF_TEST_SEQ
  66. {
  67. _STEST_VERSION = 0x00,
  68. _STEST_AC_CONTACTOR = 0x01,
  69. _STEST_PSU_DETECT = 0x02,
  70. _STEST_PSU_CAP = 0x03,
  71. _STEST_FAIL = 0x04,
  72. _STEST_COMPLETE = 0xEE,
  73. };
  74. enum _MODULE_PSU_WORK_STEP
  75. {
  76. INITIAL_START = 0,
  77. GET_PSU_COUNT = 1,
  78. GET_SYS_CAP = 2,
  79. BOOTING_COMPLETE = 3,
  80. _WORK_CHARGING = 10,
  81. _TEST_MODE = 20,
  82. _ALATON_MODE = 21,
  83. _NO_WORKING = 254
  84. };
  85. enum _OFFLINE_POLICY
  86. {
  87. _OFFLINE_POLICY_LOCAL_LIST = 0x00,
  88. _OFFLINE_POLICY_PHIHONG_RFID_TAG = 0x01,
  89. _OFFLINE_POLICY_FREE_CHARGING = 0x02,
  90. _OFFLINE_POLICY_NO_CHARGING = 0x03,
  91. };
  92. enum _REASSIGNED_RESOURCE_STEP
  93. {
  94. _REASSIGNED_NONE = 0, //
  95. _REASSIGNED_PREPARE_M_TO_A = 1, // 系統收到需要降載需求 (輸出總電流降低),PSU Task 收到將狀態切換至下個狀態
  96. _REASSIGNED_GET_NEW_CAP = 2, // 充電中的重新取得屬於自己火線上的總能量並透過小板通知車端 - 超過10秒直接跳下一步
  97. _REASSIGNED_ADJUST_M_TO_A = 3, // 模塊重新分配完成
  98. _REASSIGNED_RELAY_M_TO_A = 4, // 切斷橋接的 Relay
  99. _REASSIGNED_PREPARE_A_TO_M = 11,
  100. _REASSIGNED_ADJUST_A_TO_M = 12, // 模塊升壓
  101. _REASSIGNED_RELAY_A_TO_M = 13, // 搭接橋接的 Relay
  102. _REASSIGNED_WAITING = 14,
  103. _REASSIGNED_COMP = 15
  104. };
  105. enum _MAIN_CHARGING_MODE
  106. {
  107. _MAIN_CHARGING_MODE_MAX = 0,
  108. _MAIN_CHARGING_MODE_AVER = 1,
  109. };
  110. enum _EXTRA_ERR_PROCESS
  111. {
  112. _EXTRA_ERR_PROCESS_NONE = 0,
  113. _EXTRA_ERR_PROCESS_INUVP = 1,
  114. _EXTRA_ERR_PROCESS_INOVP = 2
  115. };
  116. enum _CHARGER_TYPE
  117. {
  118. _CHARGER_TYPE_IEC = 0,
  119. _CHARGER_TYPE_UL = 1,
  120. };
  121. enum _SYS_WIFI_MODE
  122. {
  123. _SYS_WIFI_MODE_DISABLE = 0,
  124. _SYS_WIFI_MODE_STATION = 1,
  125. _SYS_WIFI_MODE_AP = 2
  126. };
  127. enum _SYS_4G_MODE
  128. {
  129. _SYS_4G_MODE_DISABLE = 0,
  130. _SYS_4G_MODE_ENABLE = 1,
  131. };
  132. enum _LED_INTENSITY_LV
  133. {
  134. _LED_INTENSITY_DARKEST = 0,
  135. _LED_INTENSITY_MEDIUM = 1,
  136. _LED_INTENSITY_BRIGHTEST = 2
  137. };
  138. enum _UPDATE_TYPE
  139. {
  140. _UPDATE_TYPE_CSU_UBOOT = 0x10000001,
  141. _UPDATE_TYPE_CSU_DTB = 0x10000002,
  142. _UPDATE_TYPE_CSU_ZIMAGE = 0x10000003,
  143. _UPDATE_TYPE_CSU_RFILES = 0x10000004,
  144. _UPDATE_TYPE_CSU_CONFIG = 0x10000005,
  145. _UPDATE_TYPE_CCS_UBOOT = 0x10000007,
  146. _UPDATE_TYPE_CCS_DTB = 0x10000008,
  147. _UPDATE_TYPE_CCS_ZIMAGE = 0x10000009,
  148. _UPDATE_TYPE_CCS_RFILES = 0x1000000A,
  149. _UPDATE_TYPE_DCM_ST407 = 0x10000006,
  150. _UPDATE_TYPE_RELAY_CTR = 0x1000000D,
  151. _UPDATE_TYPE_FAN_CTR = 0x1000000E,
  152. _UPDATE_TYPE_AC_WLMOUNT_CTR = 0x20000002,
  153. _UPDATE_TYPE_LED_CTR = 0x10000014,
  154. _UPDATE_TYPE_CHADEMO = 0x1000000B,
  155. _UPDATE_TYPE_GBT = 0x1000000C,
  156. };
  157. enum _CCS_COMM_PROTOCOL
  158. {
  159. _CCS_COMM_V2GMessage_DIN70121 = 0x01,
  160. _CCS_COMM_V2GMessage_ISO15118_2014 = 0x02,
  161. _CCS_COMM_V2GMessage_ISO15118_2018 = 0x03
  162. };
  163. enum _ETHERNET_USAGE
  164. {
  165. _ETHERNET_USAGE_NONE = 0,
  166. _ETHERNET_USAGE_LAN,
  167. _ETHERNET_USAGE_WIFI,
  168. _ETHERNET_USAGE_3G_4g
  169. };
  170. enum _PRIMARY_CHECK_TAG
  171. {
  172. _PRIMARY_CHECK_TAG_AC_CONTACT = 0,
  173. _PRIMARY_CHECK_TAG_MAIN_BREAKER = 1,
  174. };
  175. enum _ALARM_LEVEL_TAG
  176. {
  177. _ALARM_LEVEL_NORMAL = 0,
  178. _ALARM_LEVEL_WARNING = 1,
  179. _ALARM_LEVEL_CRITICAL = 2
  180. };
  181. enum _SYSTEM_TASK_LOST_ITEM
  182. {
  183. _SYSTEM_TASK_LOST_ITEM_MAIN = 1,
  184. _SYSTEM_TASK_LOST_ITEM_EVCOMM = 2,
  185. _SYSTEM_TASK_LOST_ITEM_PSUCOMM = 3,
  186. _SYSTEM_TASK_LOST_ITEM_EVENTLOG = 4,
  187. _SYSTEM_TASK_LOST_ITEM_PRIMARYCOMM = 5,
  188. _SYSTEM_TASK_LOST_ITEM_LCMCONTROL = 6,
  189. _SYSTEM_TASK_LOST_ITEM_INTERCOMM = 7
  190. };
  191. struct StructMeter
  192. {
  193. float curMeterValue;
  194. float newMeterValue;
  195. byte isCalculation;
  196. float _chargingValue;
  197. float _curTotalCharging;
  198. };
  199. struct MeterInformation
  200. {
  201. struct StructMeter _meter[DC_CONNECTOR_COUNT];
  202. byte isWorking;
  203. };
  204. struct ConnectorBalanceInfo
  205. {
  206. unsigned int UserPrice; // connector user's user price, unit: 0.01 (dollar / kWh)
  207. unsigned int TotalCost; // connector user's total cost, unit: 0.01 dollar
  208. int AccountBalance; // connector user's account balance, unit: 0.01 dollar
  209. };
  210. struct BalanceInfo
  211. {
  212. unsigned int defaultPrice;
  213. struct ConnectorBalanceInfo connectorBalanceInfo[3]; // Max count : DC * 2 + AC * 1
  214. };
  215. struct ChademoTryCommunicationKey
  216. {
  217. byte try2CommunicationFlag;
  218. struct timespec detectTimer;
  219. byte elapsedTime;
  220. };
  221. enum _CCS_VERSION_CHECK_TAG
  222. {
  223. _CCS_VERSION_CHECK_TAG_V015S0 = 0,
  224. _CCS_VERSION_CHECK_TAG_V013S0 = 1,
  225. };
  226. enum RELAY_STATUS_ERROR_INDEX
  227. {
  228. RELAY_SMR1_P_STATUS = 0,
  229. RELAY_SMR1_N_STATUS = 1,
  230. RELAY_SMR2_P_STATUS = 2,
  231. RELAY_SMR2_N_STATUS = 3,
  232. RELAY_PARA_P_STATUS = 4,
  233. RELAY_PARA_N_STATUS = 5,
  234. };
  235. enum RELAY_STATUS_ERROR_TYPE
  236. {
  237. RELAY_STATUS_ERROR_NONE = 0,
  238. RELAY_STATUS_ERROR_WELDING = 10,
  239. RELAY_STATUS_ERROR_DRIVING = 11,
  240. RELAY_STATUS_ERROR_PARA_WELDING = 12,
  241. RELAY_STATUS_ERROR_PARA_DRIVING = 13,
  242. };
  243. enum START_TRANSATION_STATUS
  244. {
  245. START_TRANSATION_STATUS_WAIT = 0x00,
  246. START_TRANSATION_STATUS_PASS = 0x01,
  247. START_TRANSATION_STATUS_FAIL = 0x02,
  248. };
  249. enum CHARGER_TYPE
  250. {
  251. CHARGER_TYPE_STANDARD = 0x00,
  252. CHARGER_TYPE_SIMPLE = 0X01,
  253. };
  254. enum RESET_4G_STEP
  255. {
  256. RESET_4G_STEP_NONE = 0x00,
  257. RESET_4G_STEP_DELETE_TASK = 0x01,
  258. RESET_4G_STEP_GPIO_HIGH = 0x02,
  259. RESET_4G_STEP_GPIO_LOW_COMP = 0x03
  260. };
  261. enum _CCID_INDEX
  262. {
  263. _CCID_GET = 0x01,
  264. _CCID_CHECK = 0x02,
  265. _CCID_AUTH = 0x03,
  266. _CCID_AUTHCOMP = 0x04,
  267. _CCID_AUTHFAIL = 0x05,
  268. _CCID_NONE = 0xFF,
  269. };
  270. typedef union
  271. {
  272. unsigned int GunErrMessage;
  273. struct
  274. {
  275. unsigned char ChaGfdTrip:1;
  276. unsigned char ChaUvpFail:1;
  277. unsigned char ChaConnectOTP:1;
  278. unsigned char ChaConnectOVP:1;
  279. unsigned char ChaGfdWarning:1;
  280. unsigned char ChaRelayWeldingFault:1;
  281. unsigned char ChaRelayDrivingFault:1;
  282. unsigned char ChaConnectTempSensorFail:1;
  283. unsigned char CCSGfdTrip :1;
  284. unsigned char CCSUvpFail :1;
  285. unsigned char CCSConnectOTP :1;
  286. unsigned char CCSConnectOVP :1;
  287. unsigned char CCSGfdWarning :1;
  288. unsigned char CCSRelayWeldingFault :1;
  289. unsigned char CCSRelayDrivingFault :1;
  290. unsigned char CCSConnectTempSensorFail :1;
  291. unsigned char GBTGfdTrip :1;
  292. unsigned char GBTUvpFail :1;
  293. unsigned char GBTConnectOTP :1;
  294. unsigned char GBTConnectOVP :1;
  295. unsigned char GBTGfdWarning :1;
  296. unsigned char GBTRelayWeldingFault :1;
  297. unsigned char GBTRelayDrivingFault :1;
  298. unsigned char GBTConnectTempSensorFail :1;
  299. unsigned char ChaConnectUCP :1;
  300. unsigned char CCSConnectUCP :1;
  301. unsigned char GBTConnectUCP :1;
  302. unsigned char ParallelRelayWeldingFault :1;
  303. unsigned char ParallelRelayDrivingFault :1;
  304. unsigned char :3;
  305. }GunBits;
  306. }GunErr;
  307. struct DcCommonInformation
  308. {
  309. byte rebootCount;
  310. // charger type (standard、simple)
  311. byte chargerType;
  312. // minimun output current limit
  313. float minOutputCur;
  314. // check if the guns are of the same type
  315. byte SysGunAreSameType;
  316. // to check the ccs version
  317. byte CcsVersion;
  318. // for relay welding/driving check
  319. char RelayCheckStatus[6];
  320. char GunRelayWeldingOccur[DC_CONNECTOR_COUNT];
  321. char GunRelayDrivingOccur[DC_CONNECTOR_COUNT];
  322. char ParaRelayWeldingOccur;
  323. char ParaRelayDrivingOccur;
  324. byte ConnectorTemp1[DC_CONNECTOR_COUNT]; //0x00: -60¢XC ~ 0xFE: 194
  325. byte ConnectorTemp2[DC_CONNECTOR_COUNT]; //0x00: -60¢XC ~ 0xFE: 194
  326. // to check the ac contact status with psu communication
  327. byte acContactSwitch;
  328. byte psuKeepCommunication;
  329. byte startTransactionFlag[DC_CONNECTOR_COUNT];
  330. GunErr ConnectErrList[DC_CONNECTOR_COUNT];
  331. byte CcsTypeSaved[DC_CONNECTOR_COUNT];
  332. // Plugit Rack180 : for checking start/stop charging flag
  333. byte StartToChargingFlag[DC_CONNECTOR_COUNT]; // 0 : Stop, 1 : Start by modbus
  334. unsigned short LcmFwVersion;
  335. byte ShowLogoFlag;
  336. // ocpp offline policy
  337. byte _isAllowChargingOnDisconnect;
  338. // Billing Data extend
  339. byte _hour_index; //0 ~ 23
  340. float energy_time_period[DC_CONNECTOR_COUNT][24];
  341. // for OCPP Reserved
  342. byte _reserved_UserId[DC_CONNECTOR_COUNT][32];
  343. byte _reserved_ac_UserId[AC_CONNECTOR_COUNT][32];
  344. // auto run flag
  345. byte _isAutoRunTest;
  346. // chademo try to communicaton flag (for tesla adapter)
  347. struct ChademoTryCommunicationKey _cha_try_communication[DC_CONNECTOR_COUNT];
  348. // if the psu communication timedout, reset the AC contact for 30s
  349. struct timespec _psuComm_time;
  350. // for reset ev board (GBT or Chademo)
  351. byte evBoardResetFlag;
  352. // Psu module split by connector
  353. int connector[DC_CONNECTOR_COUNT][12];
  354. byte conn_1_count;
  355. byte conn_2_count;
  356. // Use ccid to obtain authorization
  357. byte enObtainAuthorizbyCCID;
  358. byte _CcidAuthProcessStep;
  359. byte _authWithCcidFlag[DC_CONNECTOR_COUNT];
  360. // balance information - for tariff
  361. struct BalanceInfo balanceInfo;
  362. // the hold time before return idle
  363. byte _returnIdleHoldFlag[DC_CONNECTOR_COUNT];
  364. // isPsuError
  365. byte _isPsuErrorOccur;
  366. byte for_alston_test_1;
  367. byte for_alston_test_2;
  368. byte for_alston_test_3;
  369. };
  370. #endif /* CONFIG_H_ */