MessageHandler.h 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043
  1. #ifndef MessageHandler_H
  2. #define MessageHandler_H
  3. //===================================
  4. // Define SQLite file constant
  5. //===================================
  6. #define OCPP_LOCAL_DB_FILE "/Storage/OCPP/charger.db"
  7. //===================================
  8. // Define CP State constant
  9. //===================================
  10. #define CP_STATE_UNKNOWN 0
  11. #define CP_STATE_A 1
  12. #define CP_STATE_B 2
  13. #define CP_STATE_C 3
  14. #define CP_STATE_D 4
  15. #define CP_STATE_E 5
  16. #define CP_STATE_F 6
  17. //==========================================
  18. // Init all Enumeration & Mapping String
  19. //==========================================
  20. #define MACROSTR(k) #k
  21. /* Common Data Type */
  22. /*APNAuthenticationEnumType */
  23. typedef enum {
  24. APNAuthenticationEnumType_CHAP,
  25. APNAuthenticationEnumType_NONE,
  26. APNAuthenticationEnumType_PAP,
  27. APNAuthenticationEnumType_AUTO
  28. } APNAuthenticationEnumType;
  29. /* AttributeEnumType */
  30. typedef enum {
  31. AttributeEnumType_Actual,
  32. AttributeEnumType_Target,
  33. AttributeEnumType_MinSet,
  34. AttributeEnumType_MaxSet
  35. } AttributeEnumType;
  36. /* AuthorizationStatusEnumType */
  37. typedef enum {
  38. AuthorizationStatusEnumType_Accepted,
  39. AuthorizationStatusEnumType_Blocked,
  40. AuthorizationStatusEnumType_ConcurrentTx,
  41. AuthorizationStatusEnumType_Expired,
  42. AuthorizationStatusEnumType_Invalid,
  43. AuthorizationStatusEnumType_NoCredit,
  44. AuthorizationStatusEnumType_NotAllowedTypeEVSE,
  45. AuthorizationStatusEnumType_NotAtThisLocation,
  46. AuthorizationStatusEnumType_NotAtThisTime,
  47. AuthorizationStatusEnumType_Unknown
  48. } AuthorizationStatusEnumType;
  49. /* AuthorizeCertificateStatusEnumType */
  50. typedef enum {
  51. AuthorizeCertificateStatusEnumType_Accepted,
  52. AuthorizeCertificateStatusEnumType_SignatureError,
  53. AuthorizeCertificateStatusEnumType_CertificateExpired,
  54. AuthorizeCertificateStatusEnumType_CertificateRevoked
  55. } AuthorizeCertificateStatusEnumType;
  56. /* BootReasonEnumType */
  57. typedef enum {
  58. BootReasonEnumType_ApplicationReset,
  59. BootReasonEnumType_FirmwareUpdate,
  60. BootReasonEnumType_LocalReset,
  61. BootReasonEnumType_PowerUp,
  62. BootReasonEnumType_RemoteReset,
  63. BootReasonEnumType_ScheduledReset,
  64. BootReasonEnumType_Triggered,
  65. BootReasonEnumType_Unknown,
  66. BootReasonEnumType_Watchdog
  67. } BootReasonEnumType;
  68. /* SecurityEventEnumType */
  69. typedef enum {
  70. SecurityEventEnumType_FirmwareUpdated,
  71. SecurityEventEnumType_FailedToAuthenticateAtCsms,
  72. SecurityEventEnumType_CsmsFailedToAuthenticate,
  73. SecurityEventEnumType_SettingSystemTime,
  74. SecurityEventEnumType_StartupOfTheDevice,
  75. SecurityEventEnumType_ResetOrReboot,
  76. SecurityEventEnumType_SecurityLogWasCleared,
  77. SecurityEventEnumType_ReconfigurationOfSecurityParameters,
  78. SecurityEventEnumType_MemoryExhaustion,
  79. SecurityEventEnumType_InvalidMessages,
  80. SecurityEventEnumType_AttemptedReplayAttacks,
  81. SecurityEventEnumType_TamperDetectionActivated,
  82. SecurityEventEnumType_InvalidFirmwareSignature,
  83. SecurityEventEnumType_InvalidFirmwareSigningCertificate,
  84. SecurityEventEnumType_InvalidCsmsCertificate,
  85. SecurityEventEnumType_InvalidChargingStationCertificate,
  86. SecurityEventEnumType_InvalidTLSVersion,
  87. SecurityEventEnumType_InvalidTLSCipherSuite
  88. } SecurityEventEnumType;
  89. /* CancelReservationStatusEnumType */
  90. typedef enum {
  91. CancelReservationStatusEnumType_Accepted,
  92. CancelReservationStatusEnumType_Rejected
  93. } CancelReservationStatusEnumType;
  94. /* CertificateActionEnumType */
  95. typedef enum {
  96. CertificateActionEnumType_Install,
  97. CertificateActionEnumType_Update
  98. } CertificateActionEnumType;
  99. /* CertificateSignedStatusEnumType */
  100. typedef enum {
  101. CertificateSignedStatusEnumType_Accepted,
  102. CertificateSignedStatusEnumType_Rejected
  103. } CertificateSignedStatusEnumType;
  104. /* CertificateSignedStatusEnumType */
  105. typedef enum {
  106. CertificateSignedStatusEnumType_ChargingStationCertificate,
  107. CertificateSignedStatusEnumType_V2GCertificate
  108. } CertificateSigningUseEnumType;
  109. /* ChangeAvailabilityStatusEnumType */
  110. typedef enum {
  111. ChangeAvailabilityStatusEnumType_Accepted,
  112. ChangeAvailabilityStatusEnumType_Rejected,
  113. ChangeAvailabilityStatusEnumType_Scheduled
  114. } ChangeAvailabilityStatusEnumType;
  115. /* ChargingLimitSourceEnumType */
  116. typedef enum {
  117. ChargingLimitSourceEnumType_EMS,
  118. ChargingLimitSourceEnumType_Other,
  119. ChargingLimitSourceEnumType_SO,
  120. ChargingLimitSourceEnumType_CSO
  121. } ChargingLimitSourceEnumType;
  122. /* ChargingProfileKindEnumType */
  123. typedef enum {
  124. ChargingProfileKindEnumType_Absolute,
  125. ChargingProfileKindEnumType_Recurring,
  126. ChargingProfileKindEnumType_Relative
  127. } ChargingProfileKindEnumType;
  128. /* ChargingProfilePurposeEnumType */
  129. typedef enum {
  130. ChargingProfilePurposeEnumType_ChargingStationExternalConstraints,
  131. ChargingProfilePurposeEnumType_ChargingStationMaxProfile,
  132. ChargingProfilePurposeEnumType_TxDefaultProfile,
  133. ChargingProfilePurposeEnumType_TxProfile
  134. } ChargingProfilePurposeEnumType;
  135. /* ChargingProfileStatusEnumType */
  136. typedef enum {
  137. ChargingProfileStatusEnumType_Accepted,
  138. ChargingProfileStatusEnumType_Rejected
  139. } ChargingProfileStatusEnumType;
  140. /* ChargingRateUnitEnumType */
  141. typedef enum {
  142. ChargingRateUnitEnumType_W,
  143. ChargingRateUnitEnumType_A
  144. } ChargingRateUnitEnumType;
  145. /* ChargingStateEnumType */
  146. typedef enum {
  147. ChargingStateEnumType_Charging,
  148. ChargingStateEnumType_EVConnected,
  149. ChargingStateEnumType_SuspendedEV,
  150. ChargingStateEnumType_SuspendedEVSE,
  151. ChargingStateEnumType_Idle
  152. }ChargingStateEnumType;
  153. /* ClearCacheStatusEnumType */
  154. typedef enum {
  155. ClearCacheStatusEnumType_Accepted,
  156. ClearCacheStatusEnumType_Rejected
  157. } ClearCacheStatusEnumType;
  158. /* ClearChargingProfileStatusEnumType */
  159. typedef enum {
  160. ClearChargingProfileStatusEnumType_Accepted,
  161. ClearChargingProfileStatusEnumType_Unknown
  162. } ClearChargingProfileStatusEnumType;
  163. /* ClearMessageStatusEnumType */
  164. typedef enum {
  165. ClearMessageStatusEnumType_Accepted,
  166. ClearMessageStatusEnumType_Unknown
  167. } ClearMessageStatusEnumType;
  168. /* ClearMonitoringStatusEnumType */
  169. typedef enum {
  170. ClearMonitoringStatusEnumType_Accepted,
  171. ClearMonitoringStatusEnumType_Rejected,
  172. ClearMonitoringStatusEnumType_NotFound
  173. } ClearMonitoringStatusEnumType;
  174. /* ComponentCriterionEnumType */
  175. typedef enum {
  176. ComponentCriterionEnumType_Active,
  177. ComponentCriterionEnumType_Available,
  178. ComponentCriterionEnumType_Enabled,
  179. ComponentCriterionEnumType_Problem
  180. } ComponentCriterionEnumType;
  181. /* ConnectorEnumType */
  182. typedef enum {
  183. ConnectorEnumType_cCCS1,
  184. ConnectorEnumType_cCCS2,
  185. ConnectorEnumType_cG105,
  186. ConnectorEnumType_cTesla,
  187. ConnectorEnumType_cType1,
  188. ConnectorEnumType_cType2,
  189. ConnectorEnumType_s309_1P_16A,
  190. ConnectorEnumType_s309_1P_32A,
  191. ConnectorEnumType_s309_3P_16A,
  192. ConnectorEnumType_s309_3P_32A,
  193. ConnectorEnumType_sBS1361,
  194. ConnectorEnumType_sCEE_7_7,
  195. ConnectorEnumType_sType2,
  196. ConnectorEnumType_sType3,
  197. ConnectorEnumType_Other1PhMax16A,
  198. ConnectorEnumType_Other1PhOver16A,
  199. ConnectorEnumType_Other3Ph,
  200. ConnectorEnumType_Pan,
  201. ConnectorEnumType_wInductive,
  202. ConnectorEnumType_wResonant,
  203. ConnectorEnumType_Undetermined,
  204. ConnectorEnumType_Unknown
  205. } ConnectorEnumType;
  206. /* ConnectorStatusEnumType */
  207. typedef enum {
  208. ConnectorStatusEnumType_Available,
  209. ConnectorStatusEnumType_Occupied,
  210. ConnectorStatusEnumType_Reserved,
  211. ConnectorStatusEnumType_Unavailable,
  212. ConnectorStatusEnumType_Faulted
  213. } ConnectorStatusEnumType;
  214. /* CostKindEnumType */
  215. typedef enum {
  216. CostKindEnumType_CarbonDioxideEmission,
  217. CostKindEnumType_RelativePricePercentage,
  218. CostKindEnumType_RenewableGenerationPercentage
  219. } CostKindEnumType;
  220. /* CustomerInformationStatusEnumType */
  221. typedef enum {
  222. CustomerInformationStatusEnumType_Accepted,
  223. CustomerInformationStatusEnumType_Rejected,
  224. CustomerInformationStatusEnumType_Invalid
  225. } CustomerInformationStatusEnumType;
  226. /* DataEnumType */
  227. typedef enum {
  228. DataEnumType_string,
  229. DataEnumType_decimal,
  230. DataEnumType_integer,
  231. DataEnumType_dateTime,
  232. DataEnumType_boolean,
  233. DataEnumType_OptionList,
  234. DataEnumType_SequenceList,
  235. DataEnumType_MemberList
  236. } DataEnumType;
  237. /* DataTransferStatusEnumType */
  238. typedef enum {
  239. DataTransferStatusEnumType_Accepted,
  240. DataTransferStatusEnumType_Rejected,
  241. DataTransferStatusEnumType_UnknownMessageId,
  242. DataTransferStatusEnumType_UnknownVendorId
  243. } DataTransferStatusEnumType;
  244. /* DeleteCertificateStatusEnumType */
  245. typedef enum {
  246. DeleteCertificateStatusEnumType_Accepted,
  247. DeleteCertificateStatusEnumType_Failed,
  248. DeleteCertificateStatusEnumType_NotFound
  249. } DeleteCertificateStatusEnumType;
  250. /* DisplayMessageStatusEnumType */
  251. typedef enum {
  252. DisplayMessageStatusEnumType_Accepted,
  253. DisplayMessageStatusEnumType_NotSupportedMessageFormat,
  254. DisplayMessageStatusEnumType_Rejected,
  255. DisplayMessageStatusEnumType_NotSupportedPriority,
  256. DisplayMessageStatusEnumType_NotSupportedState,
  257. DisplayMessageStatusEnumType_UnknownTransaction
  258. } DisplayMessageStatusEnumType;
  259. /* EnergyTransferModeEnumType */
  260. typedef enum {
  261. EnergyTransferModeEnumType_DC,
  262. EnergyTransferModeEnumType_AC_single_phase,
  263. EnergyTransferModeEnumType_AC_two_phase,
  264. EnergyTransferModeEnumType_AC_three_phase
  265. } EnergyTransferModeEnumType;
  266. /* EventNotificationEnumType */
  267. typedef enum {
  268. EventNotificationEnumType_HardWiredNotification,
  269. EventNotificationEnumType_HardWiredMonitor,
  270. EventNotificationEnumType_PreconfiguredMonitor,
  271. EventNotificationEnumType_CustomMonitor
  272. } EventNotificationEnumType;
  273. /* EventTriggerEnumType */
  274. typedef enum {
  275. EventTriggerEnumType_Alerting,
  276. EventTriggerEnumType_Delta,
  277. EventTriggerEnumType_Periodic
  278. } EventTriggerEnumType;
  279. /* FirmwareStatusEnumType */
  280. typedef enum {
  281. FirmwareStatusEnumType_Downloaded,
  282. FirmwareStatusEnumType_DownloadFailed,
  283. FirmwareStatusEnumType_Downloading,
  284. FirmwareStatusEnumType_DownloadScheduled,
  285. FirmwareStatusEnumType_DownloadPaused,
  286. FirmwareStatusEnumType_Idle,
  287. FirmwareStatusEnumType_InstallationFailed,
  288. FirmwareStatusEnumType_Installing,
  289. FirmwareStatusEnumType_Installed,
  290. FirmwareStatusEnumType_InstallRebooting,
  291. FirmwareStatusEnumType_InstallScheduled,
  292. FirmwareStatusEnumType_InstallVerificationFailed,
  293. FirmwareStatusEnumType_InvalidSignature,
  294. FirmwareStatusEnumType_SignatureVerified
  295. } FirmwareStatusEnumType;
  296. /* GenericDeviceModelStatusEnumType */
  297. typedef enum {
  298. GenericDeviceModelStatusEnumType_Accepted,
  299. GenericDeviceModelStatusEnumType_Rejected,
  300. GenericDeviceModelStatusEnumType_NotSupported,
  301. GenericDeviceModelStatusEnumType_EmptyResultSet
  302. } GenericDeviceModelStatusEnumType;
  303. /* GenericStatusEnumType */
  304. typedef enum {
  305. GenericStatusEnumType_Accepted,
  306. GenericStatusEnumType_Rejected
  307. } GenericStatusEnumType;
  308. /* GetCertificateIdUseEnumType */
  309. typedef enum {
  310. GetCertificateIdUseEnumType_V2GRootCertificate,
  311. GetCertificateIdUseEnumType_MORootCertificate,
  312. GetCertificateIdUseEnumType_CSMSRootCertificate,
  313. GetCertificateIdUseEnumType_V2GCertificateChain,
  314. GetCertificateIdUseEnumType_ManufacturerRootCertificate
  315. } GetCertificateIdUseEnumType;
  316. /* GetCertificateStatusEnumType */
  317. typedef enum {
  318. GetCertificateStatusEnumType_Accepted,
  319. GetCertificateStatusEnumType_Failed
  320. } GetCertificateStatusEnumType;
  321. /* GetChargingProfileStatusEnumType */
  322. typedef enum {
  323. GetChargingProfileStatusEnumType_Accepted,
  324. GetChargingProfileStatusEnumType_NoProfiles
  325. } GetChargingProfileStatusEnumType;
  326. /* GetDisplayMessagesStatusEnumType */
  327. typedef enum {
  328. GetDisplayMessagesStatusEnumType_Accepted,
  329. GetDisplayMessagesStatusEnumType_Unknown
  330. } GetDisplayMessagesStatusEnumType;
  331. /* GetInstalledCertificateStatusEnumType */
  332. typedef enum {
  333. GetInstalledCertificateStatusEnumType_Accepted,
  334. GetInstalledCertificateStatusEnumType_NotFound
  335. } GetInstalledCertificateStatusEnumType;
  336. /* GetVariableStatusEnumType */
  337. typedef enum {
  338. GetVariableStatusEnumType_Accepted,
  339. GetVariableStatusEnumType_Rejected,
  340. GetVariableStatusEnumType_UnknownComponent,
  341. GetVariableStatusEnumType_UnknownVariable,
  342. GetVariableStatusEnumType_NotSupportedAttributeType
  343. } GetVariableStatusEnumType;
  344. /* HashAlgorithmEnumType */
  345. typedef enum {
  346. HashAlgorithmEnumType_SHA256,
  347. HashAlgorithmEnumType_SHA384,
  348. HashAlgorithmEnumType_SHA512
  349. } HashAlgorithmEnumType;
  350. /* IdTokenEnumType */
  351. typedef enum {
  352. IdTokenEnumType_Central,
  353. IdTokenEnumType_eMAID,
  354. IdTokenEnumType_ISO14443,
  355. IdTokenEnumType_KeyCode,
  356. IdTokenEnumType_Local,
  357. IdTokenEnumType_NoAuthorization,
  358. IdTokenEnumType_ISO15693
  359. } IdTokenEnumType;
  360. /* InstallCertificateUseEnumType */
  361. typedef enum {
  362. InstallCertificateUseEnumType_V2GRootCertificate,
  363. InstallCertificateUseEnumType_MORootCertificate,
  364. InstallCertificateUseEnumType_CSMSRootCertificate,
  365. InstallCertificateUseEnumType_ManufacturerRootCertificate
  366. } InstallCertificateUseEnumType;
  367. /* InstallCertificateStatusEnumType */
  368. typedef enum {
  369. InstallCertificateStatusEnumType_Accepted,
  370. InstallCertificateStatusEnumType_Failed,
  371. InstallCertificateStatusEnumType_Rejected
  372. } InstallCertificateStatusEnumType;
  373. /* Iso15118EVCertificateStatusEnumType */
  374. typedef enum {
  375. Iso15118EVCertificateStatusEnumType_Accepted,
  376. Iso15118EVCertificateStatusEnumType_Failed
  377. } Iso15118EVCertificateStatusEnumType;
  378. /* LocationEnumType */
  379. typedef enum {
  380. LocationEnumType_Body,
  381. LocationEnumType_Cable,
  382. LocationEnumType_EV,
  383. LocationEnumType_Inlet,
  384. LocationEnumType_Outlet
  385. } LocationEnumType;
  386. /* LogEnumType */
  387. typedef enum {
  388. LogEnumType_DiagnosticsLog,
  389. LogEnumType_SecurityLog
  390. } LogEnumType;
  391. /* LogStatusEnumType */
  392. typedef enum {
  393. LogStatusEnumType_Accepted,
  394. LogStatusEnumType_Rejected,
  395. LogStatusEnumType_AcceptedCanceled
  396. } LogStatusEnumType;
  397. /* MeasurandEnumType */
  398. typedef enum {
  399. MeasurandEnumType_Current_Export,
  400. MeasurandEnumType_Current_Import,
  401. MeasurandEnumType_Current_Offered,
  402. MeasurandEnumType_Energy_Active_Export_Register,
  403. MeasurandEnumType_Energy_Active_Import_Register,
  404. MeasurandEnumType_Energy_Reactive_Export_Register,
  405. MeasurandEnumType_Energy_Reactive_Import_Register,
  406. MeasurandEnumType_Energy_Active_Export_Interval,
  407. MeasurandEnumType_Energy_Active_Import_Interval,
  408. MeasurandEnumType_Energy_Active_Net,
  409. MeasurandEnumType_Energy_Reactive_Export_Interval,
  410. MeasurandEnumType_Energy_Reactive_Import_Interval,
  411. MeasurandEnumType_Energy_Reactive_Net,
  412. MeasurandEnumType_Energy_Apparent_Net,
  413. MeasurandEnumType_Energy_Apparent_Import,
  414. MeasurandEnumType_Energy_Apparent_Export,
  415. MeasurandEnumType_Frequency,
  416. MeasurandEnumType_Power_Active_Export ,
  417. MeasurandEnumType_Power_Active_Import,
  418. MeasurandEnumType_Power_Factor,
  419. MeasurandEnumType_Power_Offered,
  420. MeasurandEnumType_Power_Reactive_Export,
  421. MeasurandEnumType_Power_Reactive_Import,
  422. MeasurandEnumType_SoC,
  423. MeasurandEnumType_Voltage
  424. } MeasurandEnumType;
  425. /* MessageFormatEnumType */
  426. typedef enum {
  427. MessageFormatEnumType_ASCII,
  428. MessageFormatEnumType_HTML,
  429. MessageFormatEnumType_URI,
  430. MessageFormatEnumType_UTF8
  431. } MessageFormatEnumType;
  432. /* MessagePriorityEnumType */
  433. typedef enum {
  434. MessagePriorityEnumType_AlwaysFront,
  435. MessagePriorityEnumType_InFront,
  436. MessagePriorityEnumType_NormalCycle
  437. } MessagePriorityEnumType;
  438. /* MessageStateEnumType */
  439. typedef enum {
  440. MessageStateEnumType_Charging,
  441. MessageStateEnumType_Faulted,
  442. MessageStateEnumType_Idle,
  443. MessageStateEnumType_Unavailable
  444. } MessageStateEnumType;
  445. /* MessageTriggerEnumType */
  446. typedef enum {
  447. MessageTriggerEnumType_BootNotification,
  448. MessageTriggerEnumType_LogStatusNotification,
  449. MessageTriggerEnumType_FirmwareStatusNotification,
  450. MessageTriggerEnumType_Heartbeat,
  451. MessageTriggerEnumType_MeterValues,
  452. MessageTriggerEnumType_SignChargingStationCertificate,
  453. MessageTriggerEnumType_SignV2GCertificate,
  454. MessageTriggerEnumType_StatusNotification,
  455. MessageTriggerEnumType_TransactionEvent,
  456. MessageTriggerEnumType_SignCombinedCertificate,
  457. MessageTriggerEnumType_PublishFirmwareStatusNotification
  458. } MessageTriggerEnumType;
  459. /* MonitorEnumType */
  460. typedef enum {
  461. MonitorEnumType_UpperThreshold,
  462. MonitorEnumType_LowerThreshold,
  463. MonitorEnumType_Delta,
  464. MonitorEnumType_Periodic,
  465. MonitorEnumType_PeriodicClockAligned
  466. } MonitorEnumType;
  467. /* MonitoringBaseEnumType */
  468. typedef enum {
  469. MonitoringBaseEnumType_All,
  470. MonitoringBaseEnumType_FactoryDefault,
  471. MonitoringBaseEnumType_HardWiredOnly
  472. } MonitoringBaseEnumType;
  473. /* MonitoringCriterionEnumType */
  474. typedef enum {
  475. MonitoringCriterionEnumType_ThresholdMonitoring,
  476. MonitoringCriterionEnumType_DeltaMonitoring,
  477. MonitoringCriterionEnumType_PeriodicMonitoring
  478. } MonitoringCriterionEnumType;
  479. /* MutabilityEnumType */
  480. typedef enum {
  481. MutabilityEnumType_ReadOnly,
  482. MutabilityEnumType_WriteOnly,
  483. MutabilityEnumType_ReadWrite
  484. } MutabilityEnumType;
  485. /* NotifyEVChargingNeedsStatusEnumType */
  486. typedef enum {
  487. NotifyEVChargingNeedsStatusEnumType_Accepted,
  488. NotifyEVChargingNeedsStatusEnumType_Rejected,
  489. NotifyEVChargingNeedsStatusEnumType_Processing
  490. } NotifyEVChargingNeedsStatusEnumType;
  491. /* OCPPInterfaceEnumType */
  492. typedef enum {
  493. OCPPInterfaceEnumType_Wired0,
  494. OCPPInterfaceEnumType_Wired1,
  495. OCPPInterfaceEnumType_Wired2,
  496. OCPPInterfaceEnumType_Wired3,
  497. OCPPInterfaceEnumType_Wireless0,
  498. OCPPInterfaceEnumType_Wireless1,
  499. OCPPInterfaceEnumType_Wireless2,
  500. OCPPInterfaceEnumType_Wireless3
  501. } OCPPInterfaceEnumType;
  502. /* OCPPTransportEnumType */
  503. typedef enum {
  504. OCPPTransportEnumType_JSON,
  505. OCPPTransportEnumType_SOAP
  506. } OCPPTransportEnumType;
  507. /* OCPPVersionEnumType */
  508. typedef enum {
  509. OCPPVersionEnumType_OCPP12,
  510. OCPPVersionEnumType_OCPP15,
  511. OCPPVersionEnumType_OCPP16,
  512. OCPPVersionEnumType_OCPP20
  513. } OCPPVersionEnumType;
  514. /* OperationalStatusEnumType */
  515. typedef enum {
  516. OperationalStatusEnumType_Inoperative,
  517. OperationalStatusEnumType_Operative
  518. } OperationalStatusEnumType;
  519. /* PhaseEnumType */
  520. typedef enum {
  521. PhaseEnumType_L1,
  522. PhaseEnumType_L2,
  523. PhaseEnumType_L3,
  524. PhaseEnumType_N,
  525. PhaseEnumType_L1_N,
  526. PhaseEnumType_L2_N,
  527. PhaseEnumType_L3_N,
  528. PhaseEnumType_L1_L2,
  529. PhaseEnumType_L2_L3,
  530. PhaseEnumType_L3_L1
  531. } PhaseEnumType;
  532. /* PublishFirmwareStatusEnumType */
  533. typedef enum {
  534. PublishFirmwareStatusEnumType_Downloaded,
  535. PublishFirmwareStatusEnumType_DownloadFailed,
  536. PublishFirmwareStatusEnumType_Downloading,
  537. PublishFirmwareStatusEnumType_DownloadScheduled,
  538. PublishFirmwareStatusEnumType_DownloadPaused,
  539. PublishFirmwareStatusEnumType_PublishFailed,
  540. PublishFirmwareStatusEnumType_Published,
  541. PublishFirmwareStatusEnumType_InvalidChecksum,
  542. PublishFirmwareStatusEnumType_ChecksumVerified
  543. } PublishFirmwareStatusEnumType;
  544. /* ReadingContextEnumType */
  545. typedef enum {
  546. ReadingContextEnumType_Interruption_Begin,
  547. ReadingContextEnumType_Interruption_End,
  548. ReadingContextEnumType_Other,
  549. ReadingContextEnumType_Sample_Clock,
  550. ReadingContextEnumType_Sample_Periodic,
  551. ReadingContextEnumType_Transaction_Begin,
  552. ReadingContextEnumType_Transaction_End,
  553. ReadingContextEnumType_Trigger
  554. } ReadingContextEnumType;
  555. /* ReasonEnumType */
  556. typedef enum {
  557. ReasonEnumType_DeAuthorized,
  558. ReasonEnumType_EmergencyStop,
  559. ReasonEnumType_EnergyLimitReached,
  560. ReasonEnumType_EVDisconnected,
  561. ReasonEnumType_GroundFault,
  562. ReasonEnumType_ImmediateReset,
  563. ReasonEnumType_Local,
  564. ReasonEnumType_LocalOutOfCredit,
  565. ReasonEnumType_MasterPass,
  566. ReasonEnumType_Other,
  567. ReasonEnumType_OvercurrentFault,
  568. ReasonEnumType_PowerLoss,
  569. ReasonEnumType_PowerQuality,
  570. ReasonEnumType_Reboot,
  571. ReasonEnumType_Remote,
  572. ReasonEnumType_SOCLimitReached,
  573. ReasonEnumType_StoppedByEV,
  574. ReasonEnumType_TimeLimitReached,
  575. ReasonEnumType_Timeout
  576. } ReasonEnumType;
  577. /* RecurrencyKindEnumType */
  578. typedef enum {
  579. RecurrencyKindEnumType_Daily,
  580. RecurrencyKindEnumType_Weekly
  581. } RecurrencyKindEnumType;
  582. /* RegistrationStatusEnumType */
  583. typedef enum {
  584. RegistrationStatusEnumType_Accepted,
  585. RegistrationStatusEnumType_Pending,
  586. RegistrationStatusEnumType_Rejected
  587. } RegistrationStatusEnumType;
  588. /* ReportBaseEnumType */
  589. typedef enum {
  590. ReportBaseEnumType_ConfigurationInventory,
  591. ReportBaseEnumType_FullInventory,
  592. ReportBaseEnumType_SummaryInventory
  593. } ReportBaseEnumType;
  594. /* RequestStartStopStatusEnumType */
  595. typedef enum {
  596. RequestStartStopStatusEnumType_Accepted,
  597. RequestStartStopStatusEnumType_Rejected
  598. } RequestStartStopStatusEnumType;
  599. /* ReservationUpdateStatusEnumType */
  600. typedef enum {
  601. ReservationUpdateStatusEnumType_Expired,
  602. ReservationUpdateStatusEnumType_Removed
  603. } ReservationUpdateStatusEnumType;
  604. /* ReserveNowStatusEnumType */
  605. typedef enum {
  606. ReserveNowStatusEnumType_Accepted,
  607. ReserveNowStatusEnumType_Faulted,
  608. ReserveNowStatusEnumType_Occupied,
  609. ReserveNowStatusEnumType_Rejected,
  610. ReserveNowStatusEnumType_Unavailable
  611. } ReserveNowStatusEnumType;
  612. /* ResetEnumType */
  613. typedef enum {
  614. ResetEnumType_Immediate,
  615. ResetEnumType_OnIdle
  616. } ResetEnumType;
  617. /* ResetStatusEnumType */
  618. typedef enum {
  619. ResetStatusEnumType_Accepted,
  620. ResetStatusEnumType_Rejected,
  621. ResetStatusEnumType_Scheduled
  622. } ResetStatusEnumType;
  623. /* SetMonitoringStatusEnumType */
  624. typedef enum {
  625. SetMonitoringStatusEnumType_Accepted,
  626. SetMonitoringStatusEnumType_UnknownComponent,
  627. SetMonitoringStatusEnumType_UnknownVariable,
  628. SetMonitoringStatusEnumType_UnsupportedMonitorType,
  629. SetMonitoringStatusEnumType_Rejected,
  630. SetMonitoringStatusEnumType_OutOfRange,
  631. SetMonitoringStatusEnumType_Duplicate
  632. } SetMonitoringStatusEnumType;
  633. /* SetNetworkProfileStatusEnumType */
  634. typedef enum {
  635. SetNetworkProfileStatusEnumType_Accepted,
  636. SetNetworkProfileStatusEnumType_Rejected,
  637. SetNetworkProfileStatusEnumType_Failed
  638. } SetNetworkProfileStatusEnumType;
  639. /* SetVariableStatusEnumType */
  640. typedef enum {
  641. SetVariableStatusEnumType_Accepted,
  642. SetVariableStatusEnumType_Rejected,
  643. SetVariableStatusEnumType_InvalidValue,
  644. SetVariableStatusEnumType_UnknownComponent,
  645. SetVariableStatusEnumType_UnknownVariable,
  646. SetVariableStatusEnumType_NotSupportedAttributeType,
  647. SetVariableStatusEnumType_OutOfRange,
  648. SetVariableStatusEnumType_RebootRequired
  649. } SetVariableStatusEnumType;
  650. /* TransactionEventEnumType */
  651. typedef enum {
  652. TransactionEventEnumType_Ended,
  653. TransactionEventEnumType_Started,
  654. TransactionEventEnumType_Updated
  655. } TransactionEventEnumType;
  656. /* TriggerMessageStatusEnumType */
  657. typedef enum {
  658. TriggerMessageStatusEnumType_Accepted,
  659. TriggerMessageStatusEnumType_Rejected,
  660. TriggerMessageStatusEnumType_NotImplemented
  661. } TriggerMessageStatusEnumType;
  662. /* TriggerReasonEnumType */
  663. typedef enum {
  664. TriggerReasonEnumType_Authorized,
  665. TriggerReasonEnumType_CablePluggedIn,
  666. TriggerReasonEnumType_ChargingRateChanged,
  667. TriggerReasonEnumType_ChargingStateChanged,
  668. TriggerReasonEnumType_Deauthorized,
  669. TriggerReasonEnumType_EnergyLimitReached,
  670. TriggerReasonEnumType_EVCommunicationLost,
  671. TriggerReasonEnumType_EVConnectTimeout,
  672. TriggerReasonEnumType_MeterValueClock,
  673. TriggerReasonEnumType_MeterValuePeriodic,
  674. TriggerReasonEnumType_TimeLimitReached,
  675. TriggerReasonEnumType_Trigger,
  676. TriggerReasonEnumType_UnlockCommand,
  677. TriggerReasonEnumType_StopAuthorized,
  678. TriggerReasonEnumType_EVDeparted,
  679. TriggerReasonEnumType_EVDetected,
  680. TriggerReasonEnumType_RemoteStop,
  681. TriggerReasonEnumType_RemoteStart,
  682. TriggerReasonEnumType_AbnormalCondition,
  683. TriggerReasonEnumType_SignedDataReceived,
  684. TriggerReasonEnumType_ResetCommand
  685. } TriggerReasonEnumType;
  686. /* UnlockStatusEnumType */
  687. typedef enum {
  688. UnlockStatusEnumType_Unlocked,
  689. UnlockStatusEnumType_UnlockFailed,
  690. UnlockStatusEnumType_OngoingAuthorizedTransaction,
  691. UnlockStatusEnumType_UnknownConnector
  692. } UnlockStatusEnumType;
  693. /* UnpublishFirmwareStatusEnumType */
  694. typedef enum {
  695. Unpublished_DownloadOngoing,
  696. Unpublished_NoFirmware,
  697. Unpublished_Unpublished
  698. } UnpublishFirmwareStatusEnumType;
  699. /* UpdateEnumType */
  700. typedef enum {
  701. UpdateEnumType_Differential,
  702. UpdateEnumType_Full
  703. } UpdateEnumType;
  704. /* UpdateFirmwareStatusEnumType */
  705. typedef enum {
  706. UpdateFirmwareStatusEnumType_Accepted,
  707. UpdateFirmwareStatusEnumType_Rejected,
  708. UpdateFirmwareStatusEnumType_AcceptedCanceled,
  709. UpdateFirmwareStatusEnumType_InvalidCertificate,
  710. UpdateFirmwareStatusEnumType_RevokedCertificate
  711. } UpdateFirmwareStatusEnumType;
  712. /* UpdateStatusEnumType */
  713. typedef enum {
  714. UpdateStatusEnumType_Accepted,
  715. UpdateStatusEnumType_Failed,
  716. UpdateStatusEnumType_VersionMismatch
  717. } UpdateStatusEnumType;
  718. /* UploadLogStatusEnumType */
  719. typedef enum {
  720. UploadLogStatusEnumType_BadMessage,
  721. UploadLogStatusEnumType_Idle,
  722. UploadLogStatusEnumType_NotSupportedOperation,
  723. UploadLogStatusEnumType_PermissionDenied,
  724. UploadLogStatusEnumType_Uploaded,
  725. UploadLogStatusEnumType_UploadFailure,
  726. UploadLogStatusEnumType_Uploading
  727. } UploadLogStatusEnumType;
  728. /* VPNEnumType */
  729. typedef enum {
  730. VPNEnumType_IKEv2,
  731. VPNEnumType_IPSec,
  732. VPNEnumType_L2TP,
  733. VPNEnumType_PPTP
  734. } VPNEnumType;
  735. struct StructPeriod
  736. {
  737. int StartPeriod;
  738. float Limit;//0.1;
  739. int NumberPhases;
  740. };
  741. struct StructProfile
  742. {
  743. int Duration;
  744. int TotalPeriod;
  745. struct StructPeriod Period[10];
  746. };
  747. //===============================================
  748. // Common routine
  749. //===============================================
  750. int initialConfigurationTable(void);
  751. void StoreConfigurationTable(void);
  752. void GetStartTransactionIdTag(int gun_index);
  753. //==========================================
  754. // send request routine
  755. //==========================================
  756. int sendAuthorizeRequest(int gun_index);
  757. int sendBootNotificationRequest(void);
  758. int sendClearedChargingLimitRequest(int gun_index);
  759. int sendDataTransferRequest(int gun_index);
  760. int sendFirmwareStatusNotificationRequest(char *status);
  761. int sendGet15118EVCertificateRequest();
  762. int sendGetCertificateStatusRequest();
  763. int sendHeartbeatRequest();
  764. int sendLogStatusNotificationRequest(char *status);
  765. int sendMeterValuesRequest(int gun_index, ReadingContextEnumType dataType);
  766. int sendNotifyChargingLimitRequest(int gun_index);
  767. int sendNotifyCustomerInformationRequest();
  768. int sendNotifyDisplayMessagesRequest();
  769. int sendNotifyEVChargingNeedsRequest(int gun_index);
  770. int sendNotifyEVChargingScheduleRequest(int gun_index);
  771. int sendNotifyEventRequest();
  772. int sendNotifyMonitoringReportRequest();
  773. int sendNotifyReportRequest();
  774. int sendPublishFirmwareStatusNotificationRequest();
  775. int sendReportChargingProfilesRequest(int gun_index);
  776. int sendReservationStatusUpdateRequest(int gun_index);
  777. int sendSecurityEventNotificationRequest();
  778. int sendSignCertificateRequest();
  779. int sendStatusNotificationRequest(int gun_index);
  780. int sendTransactionEventRequest(int gun_index);
  781. //==========================================
  782. // send confirm routine
  783. //==========================================
  784. int sendCancelReservationConfirmation(char *uuid, unsigned char gun_index);
  785. int sendCertificateSignedConfirmation(char *uuid);
  786. int sendChangeAvailabilityConfirmation(char *uuid, unsigned char gun_index);
  787. int sendClearCacheConfirmation(char *uuid);
  788. int sendClearChargingProfileConfirmation(char *uuid,char *payload);
  789. int sendClearDisplayMessageConfirmation(char *uuid);
  790. int sendClearVariableMonitoringConfirmation(char *uuid, unsigned char variableQuantity);
  791. int sendCostUpdatedConfirmation(char *uuid);
  792. int sendCustomerInformationConfirmation(char *uuid);
  793. int sendDataTransferConfirmation(char *uuid, unsigned char gun_index);
  794. int sendDeleteCertificateConfirmation(char *uuid);
  795. int sendGetBaseReportConfirmation(char *uuid);
  796. int sendGetChargingProfilesConfirmation(char *uuid, unsigned char gun_index);
  797. int sendGetCompositeScheduleConfirmation(char *uuid,char *payload, int connectorIdInt,int nPeriod);
  798. int sendGetDisplayMessagesConfirmation(char *uuid);
  799. int sendGetInstalledCertificateIdsConfirmation(char *uuid, unsigned char certQuantity);
  800. int sendGetLocalListVersionConfirmation(char *uuid);
  801. int sendGetLogConfirmation(char *uuid);
  802. int sendGetMonitoringReportConfirmation(char *uuid);
  803. int sendGetReportConfirmation(char *uuid);
  804. int sendGetTransactionStatusConfirmation(char *uuid, unsigned char gun_index);
  805. int sendGetVariablesConfirmation(char *uuid, unsigned char variableQuantity);
  806. int sendInstallCertificateConfirmation(char *uuid);
  807. int sendPublishFirmwareConfirmation(char *uuid);
  808. int sendRemoteStartTransactionConfirmation(char *uuid, unsigned char gun_index);
  809. int sendRemoteStopTransactionConfirmation(char *uuid, unsigned char gun_index);
  810. int sendReserveNowConfirmation(char *uuid, unsigned char gun_index);
  811. int sendResetConfirmation(char *uuid);
  812. int sendSendLocalListConfirmation(char *uuid);
  813. int sendSetChargingProfileConfirmation(char *uuid, unsigned char gun_index);
  814. int sendSetDisplayMessagesConfirmation(char *uuid);
  815. int sendSetMonitoringBaseConfirmation(char *uuid);
  816. int sendSetMonitoringLevelConfirmation(char *uuid);
  817. int sendSetNetworkProfileConfirmation(char *uuid);
  818. int sendSetVariableMonitoringConfirmation(char *uuid, unsigned char variableQuantity);
  819. int sendSetVariableConfirmation(char *uuid, unsigned char variableQuantity);
  820. int sendTriggerMessageConfirmation(char *uuid);
  821. int sendUnlockConnectorConfirmation(char *uuid, unsigned char gun_index);
  822. int sendUnpublishFirmwareConfirmation(char *uuid);
  823. int sendUpdateFirmwareConfirmation(char *uuid);
  824. int sendUnknownConfirmation(char *uuid);
  825. //==========================================
  826. // send CallError routine
  827. //==========================================
  828. void SendCallError(char *uniqueId, char *action, char *errorCode, char *errorDescription);
  829. //==========================================
  830. // Handle server request routine Start
  831. //==========================================
  832. int handleCancelReservationRequest(char *uuid, char *payload);
  833. int handleCertificateSignedRequest(char *uuid, char *payload);
  834. int handleChangeAvailabilityRequest(char *uuid, char *payload);
  835. int handleClearCacheRequest(char *uuid, char *payload);
  836. int handleClearChargingProfileRequest(char *uuid, char *payload);
  837. int handleClearDisplayMessageRequest(char *uuid, char *payload);
  838. int handleClearVariableMonitoringRequest(char *uuid, char *payload);
  839. int handleCostUpdatedRequest(char *uuid, char *payload);
  840. int handleCustomerInformationRequest(char *uuid, char *payload);
  841. int handleDataTransferRequest(char *uuid, char *payload);
  842. int handleDeleteCertificateRequest(char *uuid, char *payload);
  843. int handleGetBaseReportRequest(char *uuid, char *payload);
  844. int handleGetChargingProfilesRequest(char *uuid, char *payload);
  845. int handleGetCompositeScheduleRequest(char *uuid, char *payload);
  846. int handleGetDisplayMessagesRequest(char *uuid, char *payload);
  847. int handleGetInstalledCertificateIdsRequest(char *uuid, char *payload);
  848. int handleGetLocalListVersionRequest(char *uuid, char *payload);
  849. int handleGetLogRequest(char *uuid, char *payload);
  850. int handleGetMonitoringReportRequest(char *uuid, char *payload);
  851. int handleGetReportRequest(char *uuid, char *payload);
  852. int handleGetTransactionStatusRequest(char *uuid, char *payload);
  853. int handleGetVariablesRequest(char *uuid, char *payload);
  854. int handleInstallCertificateRequest(char *uuid, char *payload);
  855. int handlePublishFirmwareRequest(char *uuid, char *payload);
  856. int handleRequestStartTransactionRequest(char *uuid, char *payload);
  857. int handleRequestStopTransactionRequest(char *uuid, char *payload);
  858. int handleReserveNowRequest(char *uuid, char *payload);
  859. int handleResetRequest(char *uuid, char *payload);
  860. int handleSendLocalListRequest(char *uuid, char *payload);
  861. int handleSetChargingProfileRequest(char *uuid, char *payload);
  862. int handleSetDisplayMessageRequest(char *uuid, char *payload);
  863. int handleSetMonitoringBaseRequest(char *uuid, char *payload);
  864. int handleSetMonitoringLevelRequest(char *uuid, char *payload);
  865. int handleSetNetworkProfileRequest(char *uuid, char *payload);
  866. int handleSetVariableMonitoringRequest(char *uuid, char *payload);
  867. int handleSetVariablesRequest(char *uuid, char *payload);
  868. int handleTriggerMessageRequest(char *uuid, char *payload);
  869. int handleUnlockConnectorRequest(char *uuid, char *payload);
  870. int handleUnpublishFirmwareRequest(char *uuid, char *payload);
  871. int handleUpdateFirmwareRequest(char *uuid, char *payload);
  872. int handleUnknownRequest(char *uuid, char *payload);
  873. void handleAuthorizeResponse(char *payload, int gun_index);
  874. void handleBootNotificationResponse(char *payload, int gun_index);
  875. void handleClearedChargingLimitResponse(char *payload, int gun_index);
  876. void handleDataTransferResponse(char *payload, int gun_index);
  877. void handleFirmwareStatusNotificationResponse(char *payload, int gun_index);
  878. void handleGet15118EVCertificateResponse(char *payload, int gun_index);
  879. void handleGetCertificateStatusResponse(char *payload, int gun_index);
  880. void handleHeartbeatResponse(char *payload, int gun_index);
  881. void handleLogStatusNotificationResponse(char *payload, int gun_index);
  882. void handleMeterValuesResponse(char *payload, int gun_index);
  883. void handleNotifyChargingLimitResponse(char *payload, int gun_index);
  884. void handleNotifyCustomerInformationResponse(char *payload, int gun_index);
  885. void handleNotifyDisplayMessagesResponse(char *payload, int gun_index);
  886. void handleNotifyEVChargingNeedsResponse(char *payload, int gun_index);
  887. void handleNotifyEVChargingScheduleResponse(char *payload, int gun_index);
  888. void handleNotifyEventResponse(char *payload, int gun_index);
  889. void handleNotifyMonitoringReportResponse(char *payload, int gun_index);
  890. void handleNotifyReportResponse(char *payload, int gun_index);
  891. void handlePublishFirmwareStatusNotificationResponse(char *payload, int gun_index);
  892. void handleReportChargingProfilesResponse(char *payload, int gun_index);
  893. void handleReservationStatusUpdateResponse(char *payload, int gun_index);
  894. void handleSecurityEventNotificationResponse(char *payload, int gun_index);
  895. void handleSignCertificateResponse(char *payload, int gun_index);
  896. void handleStatusNotificationResponse(char *payload, int gun_index);
  897. void handleTransactionEventResponse(char *payload, int gun_index);
  898. //==========================================
  899. // Handle Error routine
  900. //==========================================
  901. void handleError(char *id, char *errorCode, char *errorDescription,char *payload);
  902. //===============================================
  903. // Common routine
  904. //===============================================
  905. void getKeyValue(char *keyReq);
  906. int setKeyValue(char *key, char *value);
  907. int updateSetting(char *key, char *value);
  908. int httpDownLoadFile(char *location, char *path, char *filename,char *url);
  909. int ftpDownLoadFile(char *location, char *user, char *password, int port, char *path, char *filename,char *url);
  910. void *UpdateFirmwareProcess(void* data);
  911. void* GetDiagnosticsProcess(void* data);
  912. int httpUploadFile(char *location, char *path, char *filename,char *url);
  913. int ftpUploadFile(char *location, char *user, char *password, int port, char *path, char *fnamePlusPath,char *filename);
  914. int get_file_contents(const char* filename, char** outbuffer);
  915. void LWS_Send(char * str);
  916. void LWS_SendNow(char * str);
  917. extern int queue_operation(int type, char *frontUUID, char *frontData);
  918. int GetOcppServerURL();
  919. int GetOcppPath();
  920. int GetOcppPort();
  921. int GetTransactionId(int gunindex, unsigned char idTag[], uint8_t isStopTransaction);
  922. void SetTransactionIdZero(int transactionId);
  923. void GetChargingProfileRequest(int gunindex);
  924. void FillStartTransaction(int ConnectorId, unsigned char IdTag[], int MeterStart,int ReservationId,unsigned char Timestamp[]);
  925. void splitstring(char *src,const char *separator,char **dest,int *num);
  926. int GetWebSocketPingInterval(void);
  927. int GetInternetConn(void);
  928. int GetBackendConnectionTimeout(void);
  929. int isConnectorInitMode(int gun_index);
  930. void refreshProcDogTimer();
  931. int GetServerSign(void);
  932. void SetServerSign(int value);
  933. int GetBootNotificationInterval(void);
  934. void InitialSystemValue(void);
  935. void checkTempStopTransaction(int gun_index);
  936. void storeTempStopTransaction(int gun_index);
  937. #endif