MessageHandler.h 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053
  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_ISO15693,
  356. IdTokenEnumType_KeyCode,
  357. IdTokenEnumType_Local,
  358. IdTokenEnumType_MacAddress,
  359. IdTokenEnumType_NoAuthorization
  360. } IdTokenEnumType;
  361. /* InstallCertificateUseEnumType */
  362. typedef enum {
  363. InstallCertificateUseEnumType_V2GRootCertificate,
  364. InstallCertificateUseEnumType_MORootCertificate,
  365. InstallCertificateUseEnumType_CSMSRootCertificate,
  366. InstallCertificateUseEnumType_ManufacturerRootCertificate
  367. } InstallCertificateUseEnumType;
  368. /* InstallCertificateStatusEnumType */
  369. typedef enum {
  370. InstallCertificateStatusEnumType_Accepted,
  371. InstallCertificateStatusEnumType_Failed,
  372. InstallCertificateStatusEnumType_Rejected
  373. } InstallCertificateStatusEnumType;
  374. /* Iso15118EVCertificateStatusEnumType */
  375. typedef enum {
  376. Iso15118EVCertificateStatusEnumType_Accepted,
  377. Iso15118EVCertificateStatusEnumType_Failed
  378. } Iso15118EVCertificateStatusEnumType;
  379. /* LocationEnumType */
  380. typedef enum {
  381. LocationEnumType_Body,
  382. LocationEnumType_Cable,
  383. LocationEnumType_EV,
  384. LocationEnumType_Inlet,
  385. LocationEnumType_Outlet
  386. } LocationEnumType;
  387. /* LogEnumType */
  388. typedef enum {
  389. LogEnumType_DiagnosticsLog,
  390. LogEnumType_SecurityLog
  391. } LogEnumType;
  392. /* LogStatusEnumType */
  393. typedef enum {
  394. LogStatusEnumType_Accepted,
  395. LogStatusEnumType_Rejected,
  396. LogStatusEnumType_AcceptedCanceled
  397. } LogStatusEnumType;
  398. /* MeasurandEnumType */
  399. typedef enum {
  400. MeasurandEnumType_Current_Export,
  401. MeasurandEnumType_Current_Import,
  402. MeasurandEnumType_Current_Offered,
  403. MeasurandEnumType_Energy_Active_Export_Register,
  404. MeasurandEnumType_Energy_Active_Import_Register,
  405. MeasurandEnumType_Energy_Reactive_Export_Register,
  406. MeasurandEnumType_Energy_Reactive_Import_Register,
  407. MeasurandEnumType_Energy_Active_Export_Interval,
  408. MeasurandEnumType_Energy_Active_Import_Interval,
  409. MeasurandEnumType_Energy_Active_Net,
  410. MeasurandEnumType_Energy_Reactive_Export_Interval,
  411. MeasurandEnumType_Energy_Reactive_Import_Interval,
  412. MeasurandEnumType_Energy_Reactive_Net,
  413. MeasurandEnumType_Energy_Apparent_Net,
  414. MeasurandEnumType_Energy_Apparent_Import,
  415. MeasurandEnumType_Energy_Apparent_Export,
  416. MeasurandEnumType_Frequency,
  417. MeasurandEnumType_Power_Active_Export ,
  418. MeasurandEnumType_Power_Active_Import,
  419. MeasurandEnumType_Power_Factor,
  420. MeasurandEnumType_Power_Offered,
  421. MeasurandEnumType_Power_Reactive_Export,
  422. MeasurandEnumType_Power_Reactive_Import,
  423. MeasurandEnumType_SoC,
  424. MeasurandEnumType_Voltage
  425. } MeasurandEnumType;
  426. /* MessageFormatEnumType */
  427. typedef enum {
  428. MessageFormatEnumType_ASCII,
  429. MessageFormatEnumType_HTML,
  430. MessageFormatEnumType_URI,
  431. MessageFormatEnumType_UTF8
  432. } MessageFormatEnumType;
  433. /* MessagePriorityEnumType */
  434. typedef enum {
  435. MessagePriorityEnumType_AlwaysFront,
  436. MessagePriorityEnumType_InFront,
  437. MessagePriorityEnumType_NormalCycle
  438. } MessagePriorityEnumType;
  439. /* MessageStateEnumType */
  440. typedef enum {
  441. MessageStateEnumType_Charging,
  442. MessageStateEnumType_Faulted,
  443. MessageStateEnumType_Idle,
  444. MessageStateEnumType_Unavailable
  445. } MessageStateEnumType;
  446. /* MessageTriggerEnumType */
  447. typedef enum {
  448. MessageTriggerEnumType_BootNotification,
  449. MessageTriggerEnumType_LogStatusNotification,
  450. MessageTriggerEnumType_FirmwareStatusNotification,
  451. MessageTriggerEnumType_Heartbeat,
  452. MessageTriggerEnumType_MeterValues,
  453. MessageTriggerEnumType_SignChargingStationCertificate,
  454. MessageTriggerEnumType_SignV2GCertificate,
  455. MessageTriggerEnumType_StatusNotification,
  456. MessageTriggerEnumType_TransactionEvent,
  457. MessageTriggerEnumType_SignCombinedCertificate,
  458. MessageTriggerEnumType_PublishFirmwareStatusNotification
  459. } MessageTriggerEnumType;
  460. /* MonitorEnumType */
  461. typedef enum {
  462. MonitorEnumType_UpperThreshold,
  463. MonitorEnumType_LowerThreshold,
  464. MonitorEnumType_Delta,
  465. MonitorEnumType_Periodic,
  466. MonitorEnumType_PeriodicClockAligned
  467. } MonitorEnumType;
  468. /* MonitoringBaseEnumType */
  469. typedef enum {
  470. MonitoringBaseEnumType_All,
  471. MonitoringBaseEnumType_FactoryDefault,
  472. MonitoringBaseEnumType_HardWiredOnly
  473. } MonitoringBaseEnumType;
  474. /* MonitoringCriterionEnumType */
  475. typedef enum {
  476. MonitoringCriterionEnumType_ThresholdMonitoring,
  477. MonitoringCriterionEnumType_DeltaMonitoring,
  478. MonitoringCriterionEnumType_PeriodicMonitoring
  479. } MonitoringCriterionEnumType;
  480. /* MutabilityEnumType */
  481. typedef enum {
  482. MutabilityEnumType_ReadOnly,
  483. MutabilityEnumType_WriteOnly,
  484. MutabilityEnumType_ReadWrite
  485. } MutabilityEnumType;
  486. /* NotifyEVChargingNeedsStatusEnumType */
  487. typedef enum {
  488. NotifyEVChargingNeedsStatusEnumType_Accepted,
  489. NotifyEVChargingNeedsStatusEnumType_Rejected,
  490. NotifyEVChargingNeedsStatusEnumType_Processing
  491. } NotifyEVChargingNeedsStatusEnumType;
  492. /* OCPPInterfaceEnumType */
  493. typedef enum {
  494. OCPPInterfaceEnumType_Wired0,
  495. OCPPInterfaceEnumType_Wired1,
  496. OCPPInterfaceEnumType_Wired2,
  497. OCPPInterfaceEnumType_Wired3,
  498. OCPPInterfaceEnumType_Wireless0,
  499. OCPPInterfaceEnumType_Wireless1,
  500. OCPPInterfaceEnumType_Wireless2,
  501. OCPPInterfaceEnumType_Wireless3
  502. } OCPPInterfaceEnumType;
  503. /* OCPPTransportEnumType */
  504. typedef enum {
  505. OCPPTransportEnumType_JSON,
  506. OCPPTransportEnumType_SOAP
  507. } OCPPTransportEnumType;
  508. /* OCPPVersionEnumType */
  509. typedef enum {
  510. OCPPVersionEnumType_OCPP12,
  511. OCPPVersionEnumType_OCPP15,
  512. OCPPVersionEnumType_OCPP16,
  513. OCPPVersionEnumType_OCPP20
  514. } OCPPVersionEnumType;
  515. /* OperationalStatusEnumType */
  516. typedef enum {
  517. OperationalStatusEnumType_Inoperative,
  518. OperationalStatusEnumType_Operative
  519. } OperationalStatusEnumType;
  520. /* PhaseEnumType */
  521. typedef enum {
  522. PhaseEnumType_L1,
  523. PhaseEnumType_L2,
  524. PhaseEnumType_L3,
  525. PhaseEnumType_N,
  526. PhaseEnumType_L1_N,
  527. PhaseEnumType_L2_N,
  528. PhaseEnumType_L3_N,
  529. PhaseEnumType_L1_L2,
  530. PhaseEnumType_L2_L3,
  531. PhaseEnumType_L3_L1
  532. } PhaseEnumType;
  533. /* PublishFirmwareStatusEnumType */
  534. typedef enum {
  535. PublishFirmwareStatusEnumType_Downloaded,
  536. PublishFirmwareStatusEnumType_DownloadFailed,
  537. PublishFirmwareStatusEnumType_Downloading,
  538. PublishFirmwareStatusEnumType_DownloadScheduled,
  539. PublishFirmwareStatusEnumType_DownloadPaused,
  540. PublishFirmwareStatusEnumType_PublishFailed,
  541. PublishFirmwareStatusEnumType_Published,
  542. PublishFirmwareStatusEnumType_InvalidChecksum,
  543. PublishFirmwareStatusEnumType_ChecksumVerified
  544. } PublishFirmwareStatusEnumType;
  545. /* ReadingContextEnumType */
  546. typedef enum {
  547. ReadingContextEnumType_Interruption_Begin,
  548. ReadingContextEnumType_Interruption_End,
  549. ReadingContextEnumType_Other,
  550. ReadingContextEnumType_Sample_Clock,
  551. ReadingContextEnumType_Sample_Periodic,
  552. ReadingContextEnumType_Transaction_Begin,
  553. ReadingContextEnumType_Transaction_End,
  554. ReadingContextEnumType_Trigger
  555. } ReadingContextEnumType;
  556. /* ReasonEnumType */
  557. typedef enum {
  558. ReasonEnumType_DeAuthorized,
  559. ReasonEnumType_EmergencyStop,
  560. ReasonEnumType_EnergyLimitReached,
  561. ReasonEnumType_EVDisconnected,
  562. ReasonEnumType_GroundFault,
  563. ReasonEnumType_ImmediateReset,
  564. ReasonEnumType_Local,
  565. ReasonEnumType_LocalOutOfCredit,
  566. ReasonEnumType_MasterPass,
  567. ReasonEnumType_Other,
  568. ReasonEnumType_OvercurrentFault,
  569. ReasonEnumType_PowerLoss,
  570. ReasonEnumType_PowerQuality,
  571. ReasonEnumType_Reboot,
  572. ReasonEnumType_Remote,
  573. ReasonEnumType_SOCLimitReached,
  574. ReasonEnumType_StoppedByEV,
  575. ReasonEnumType_TimeLimitReached,
  576. ReasonEnumType_Timeout
  577. } ReasonEnumType;
  578. /* RecurrencyKindEnumType */
  579. typedef enum {
  580. RecurrencyKindEnumType_Daily,
  581. RecurrencyKindEnumType_Weekly
  582. } RecurrencyKindEnumType;
  583. /* RegistrationStatusEnumType */
  584. typedef enum {
  585. RegistrationStatusEnumType_Accepted,
  586. RegistrationStatusEnumType_Pending,
  587. RegistrationStatusEnumType_Rejected
  588. } RegistrationStatusEnumType;
  589. /* ReportBaseEnumType */
  590. typedef enum {
  591. ReportBaseEnumType_ConfigurationInventory,
  592. ReportBaseEnumType_FullInventory,
  593. ReportBaseEnumType_SummaryInventory
  594. } ReportBaseEnumType;
  595. /* RequestStartStopStatusEnumType */
  596. typedef enum {
  597. RequestStartStopStatusEnumType_Accepted,
  598. RequestStartStopStatusEnumType_Rejected
  599. } RequestStartStopStatusEnumType;
  600. /* ReservationUpdateStatusEnumType */
  601. typedef enum {
  602. ReservationUpdateStatusEnumType_Expired,
  603. ReservationUpdateStatusEnumType_Removed
  604. } ReservationUpdateStatusEnumType;
  605. /* ReserveNowStatusEnumType */
  606. typedef enum {
  607. ReserveNowStatusEnumType_Accepted,
  608. ReserveNowStatusEnumType_Faulted,
  609. ReserveNowStatusEnumType_Occupied,
  610. ReserveNowStatusEnumType_Rejected,
  611. ReserveNowStatusEnumType_Unavailable
  612. } ReserveNowStatusEnumType;
  613. /* ResetEnumType */
  614. typedef enum {
  615. ResetEnumType_Immediate,
  616. ResetEnumType_OnIdle
  617. } ResetEnumType;
  618. /* ResetStatusEnumType */
  619. typedef enum {
  620. ResetStatusEnumType_Accepted,
  621. ResetStatusEnumType_Rejected,
  622. ResetStatusEnumType_Scheduled
  623. } ResetStatusEnumType;
  624. /* SetMonitoringStatusEnumType */
  625. typedef enum {
  626. SetMonitoringStatusEnumType_Accepted,
  627. SetMonitoringStatusEnumType_UnknownComponent,
  628. SetMonitoringStatusEnumType_UnknownVariable,
  629. SetMonitoringStatusEnumType_UnsupportedMonitorType,
  630. SetMonitoringStatusEnumType_Rejected,
  631. SetMonitoringStatusEnumType_OutOfRange,
  632. SetMonitoringStatusEnumType_Duplicate
  633. } SetMonitoringStatusEnumType;
  634. /* SetNetworkProfileStatusEnumType */
  635. typedef enum {
  636. SetNetworkProfileStatusEnumType_Accepted,
  637. SetNetworkProfileStatusEnumType_Rejected,
  638. SetNetworkProfileStatusEnumType_Failed
  639. } SetNetworkProfileStatusEnumType;
  640. /* SetVariableStatusEnumType */
  641. typedef enum {
  642. SetVariableStatusEnumType_Accepted,
  643. SetVariableStatusEnumType_Rejected,
  644. SetVariableStatusEnumType_InvalidValue,
  645. SetVariableStatusEnumType_UnknownComponent,
  646. SetVariableStatusEnumType_UnknownVariable,
  647. SetVariableStatusEnumType_NotSupportedAttributeType,
  648. SetVariableStatusEnumType_OutOfRange,
  649. SetVariableStatusEnumType_RebootRequired
  650. } SetVariableStatusEnumType;
  651. /* TransactionEventEnumType */
  652. typedef enum {
  653. TransactionEventEnumType_Ended,
  654. TransactionEventEnumType_Started,
  655. TransactionEventEnumType_Updated
  656. } TransactionEventEnumType;
  657. /* TriggerMessageStatusEnumType */
  658. typedef enum {
  659. TriggerMessageStatusEnumType_Accepted,
  660. TriggerMessageStatusEnumType_Rejected,
  661. TriggerMessageStatusEnumType_NotImplemented
  662. } TriggerMessageStatusEnumType;
  663. /* TriggerReasonEnumType */
  664. typedef enum {
  665. TriggerReasonEnumType_Authorized,
  666. TriggerReasonEnumType_CablePluggedIn,
  667. TriggerReasonEnumType_ChargingRateChanged,
  668. TriggerReasonEnumType_ChargingStateChanged,
  669. TriggerReasonEnumType_Deauthorized,
  670. TriggerReasonEnumType_EnergyLimitReached,
  671. TriggerReasonEnumType_EVCommunicationLost,
  672. TriggerReasonEnumType_EVConnectTimeout,
  673. TriggerReasonEnumType_MeterValueClock,
  674. TriggerReasonEnumType_MeterValuePeriodic,
  675. TriggerReasonEnumType_TimeLimitReached,
  676. TriggerReasonEnumType_Trigger,
  677. TriggerReasonEnumType_UnlockCommand,
  678. TriggerReasonEnumType_StopAuthorized,
  679. TriggerReasonEnumType_EVDeparted,
  680. TriggerReasonEnumType_EVDetected,
  681. TriggerReasonEnumType_RemoteStop,
  682. TriggerReasonEnumType_RemoteStart,
  683. TriggerReasonEnumType_AbnormalCondition,
  684. TriggerReasonEnumType_SignedDataReceived,
  685. TriggerReasonEnumType_ResetCommand
  686. } TriggerReasonEnumType;
  687. /* UnlockStatusEnumType */
  688. typedef enum {
  689. UnlockStatusEnumType_Unlocked,
  690. UnlockStatusEnumType_UnlockFailed,
  691. UnlockStatusEnumType_OngoingAuthorizedTransaction,
  692. UnlockStatusEnumType_UnknownConnector
  693. } UnlockStatusEnumType;
  694. /* UnpublishFirmwareStatusEnumType */
  695. typedef enum {
  696. Unpublished_DownloadOngoing,
  697. Unpublished_NoFirmware,
  698. Unpublished_Unpublished
  699. } UnpublishFirmwareStatusEnumType;
  700. /* UpdateEnumType */
  701. typedef enum {
  702. UpdateEnumType_Differential,
  703. UpdateEnumType_Full
  704. } UpdateEnumType;
  705. /* UpdateFirmwareStatusEnumType */
  706. typedef enum {
  707. UpdateFirmwareStatusEnumType_Accepted,
  708. UpdateFirmwareStatusEnumType_Rejected,
  709. UpdateFirmwareStatusEnumType_AcceptedCanceled,
  710. UpdateFirmwareStatusEnumType_InvalidCertificate,
  711. UpdateFirmwareStatusEnumType_RevokedCertificate
  712. } UpdateFirmwareStatusEnumType;
  713. /* UpdateStatusEnumType */
  714. typedef enum {
  715. UpdateStatusEnumType_Accepted,
  716. UpdateStatusEnumType_Failed,
  717. UpdateStatusEnumType_VersionMismatch
  718. } UpdateStatusEnumType;
  719. /* UploadLogStatusEnumType */
  720. typedef enum {
  721. UploadLogStatusEnumType_BadMessage,
  722. UploadLogStatusEnumType_Idle,
  723. UploadLogStatusEnumType_NotSupportedOperation,
  724. UploadLogStatusEnumType_PermissionDenied,
  725. UploadLogStatusEnumType_Uploaded,
  726. UploadLogStatusEnumType_UploadFailure,
  727. UploadLogStatusEnumType_Uploading,
  728. UploadLogStatusEnumType_AcceptedCanceled
  729. } UploadLogStatusEnumType;
  730. /* VPNEnumType */
  731. typedef enum {
  732. VPNEnumType_IKEv2,
  733. VPNEnumType_IPSec,
  734. VPNEnumType_L2TP,
  735. VPNEnumType_PPTP
  736. } VPNEnumType;
  737. enum CERTIFICATE_PARSE_TYPE
  738. {
  739. CERT_PARSE_HashAlgorithm = 0,
  740. CERT_PARSE_SerialNumber = 1,
  741. CERT_PARSE_IssuerNameHash = 2,
  742. CERT_PARSE_IssuerKeyHash = 3,
  743. CERT_PARSE_OcspUrl = 4
  744. };
  745. struct StructPeriod
  746. {
  747. int StartPeriod;
  748. float Limit;//0.1;
  749. int NumberPhases;
  750. };
  751. struct StructProfile
  752. {
  753. int Duration;
  754. int TotalPeriod;
  755. struct StructPeriod Period[10];
  756. };
  757. //===============================================
  758. // Common routine
  759. //===============================================
  760. int initialConfigurationTable(void);
  761. void StoreConfigurationTable(void);
  762. void GetStartTransactionIdTag(int gun_index);
  763. //==========================================
  764. // send request routine
  765. //==========================================
  766. int sendAuthorizeRequest(int gun_index);
  767. int sendBootNotificationRequest(void);
  768. int sendClearedChargingLimitRequest(int gun_index);
  769. int sendDataTransferRequest(int gun_index);
  770. int sendFirmwareStatusNotificationRequest(char *status);
  771. int sendGet15118EVCertificateRequest();
  772. int sendGetCertificateStatusRequest();
  773. int sendHeartbeatRequest();
  774. int sendLogStatusNotificationRequest(char *status);
  775. int sendMeterValuesRequest(int gun_index, ReadingContextEnumType dataType, uint8_t isSampledDataTxEnd);
  776. int sendNotifyChargingLimitRequest(int gun_index);
  777. int sendNotifyCustomerInformationRequest();
  778. int sendNotifyDisplayMessagesRequest();
  779. int sendNotifyEVChargingNeedsRequest(int gun_index);
  780. int sendNotifyEVChargingScheduleRequest(int gun_index);
  781. int sendNotifyEventRequest();
  782. int sendNotifyMonitoringReportRequest();
  783. int sendNotifyReportRequest();
  784. int sendPublishFirmwareStatusNotificationRequest();
  785. int sendReportChargingProfilesRequest(int gun_index);
  786. int sendReservationStatusUpdateRequest(int gun_index);
  787. int sendSecurityEventNotificationRequest();
  788. int sendSignCertificateRequest();
  789. int sendStatusNotificationRequest(int gun_index);
  790. int sendTransactionEventRequest(int gun_index);
  791. //==========================================
  792. // send confirm routine
  793. //==========================================
  794. int sendCancelReservationConfirmation(char *uuid, unsigned char gun_index);
  795. int sendCertificateSignedConfirmation(char *uuid);
  796. int sendChangeAvailabilityConfirmation(char *uuid, unsigned char gun_index);
  797. int sendClearCacheConfirmation(char *uuid);
  798. int sendClearChargingProfileConfirmation(char *uuid,char *payload);
  799. int sendClearDisplayMessageConfirmation(char *uuid);
  800. int sendClearVariableMonitoringConfirmation(char *uuid, unsigned char variableQuantity);
  801. int sendCostUpdatedConfirmation(char *uuid);
  802. int sendCustomerInformationConfirmation(char *uuid);
  803. int sendDataTransferConfirmation(char *uuid, unsigned char gun_index);
  804. int sendDeleteCertificateConfirmation(char *uuid);
  805. int sendGetBaseReportConfirmation(char *uuid);
  806. int sendGetChargingProfilesConfirmation(char *uuid, unsigned char gun_index);
  807. int sendGetCompositeScheduleConfirmation(char *uuid,char *payload, int connectorIdInt,int nPeriod);
  808. int sendGetDisplayMessagesConfirmation(char *uuid);
  809. int sendGetInstalledCertificateIdsConfirmation(char *uuid, unsigned char certQuantity);
  810. int sendGetLocalListVersionConfirmation(char *uuid);
  811. int sendGetLogConfirmation(char *uuid);
  812. int sendGetMonitoringReportConfirmation(char *uuid);
  813. int sendGetReportConfirmation(char *uuid);
  814. int sendGetTransactionStatusConfirmation(char *uuid);
  815. int sendGetVariablesConfirmation(char *uuid, unsigned char variableQuantity);
  816. int sendInstallCertificateConfirmation(char *uuid);
  817. int sendPublishFirmwareConfirmation(char *uuid);
  818. int sendRemoteStartTransactionConfirmation(char *uuid, unsigned char gun_index);
  819. int sendRemoteStopTransactionConfirmation(char *uuid, unsigned char gun_index);
  820. int sendReserveNowConfirmation(char *uuid, unsigned char gun_index);
  821. int sendResetConfirmation(char *uuid);
  822. int sendSendLocalListConfirmation(char *uuid);
  823. int sendSetChargingProfileConfirmation(char *uuid, unsigned char gun_index);
  824. int sendSetDisplayMessagesConfirmation(char *uuid);
  825. int sendSetMonitoringBaseConfirmation(char *uuid);
  826. int sendSetMonitoringLevelConfirmation(char *uuid);
  827. int sendSetNetworkProfileConfirmation(char *uuid);
  828. int sendSetVariableMonitoringConfirmation(char *uuid, unsigned char variableQuantity);
  829. int sendSetVariableConfirmation(char *uuid, unsigned char variableQuantity);
  830. int sendTriggerMessageConfirmation(char *uuid);
  831. int sendUnlockConnectorConfirmation(char *uuid, unsigned char gun_index);
  832. int sendUnpublishFirmwareConfirmation(char *uuid);
  833. int sendUpdateFirmwareConfirmation(char *uuid);
  834. int sendUnknownConfirmation(char *uuid);
  835. //==========================================
  836. // send CallError routine
  837. //==========================================
  838. void SendCallError(char *uniqueId, char *action, char *errorCode, char *errorDescription);
  839. //==========================================
  840. // Handle server request routine Start
  841. //==========================================
  842. int handleCancelReservationRequest(char *uuid, char *payload);
  843. int handleCertificateSignedRequest(char *uuid, char *payload);
  844. int handleChangeAvailabilityRequest(char *uuid, char *payload);
  845. int handleClearCacheRequest(char *uuid, char *payload);
  846. int handleClearChargingProfileRequest(char *uuid, char *payload);
  847. int handleClearDisplayMessageRequest(char *uuid, char *payload);
  848. int handleClearVariableMonitoringRequest(char *uuid, char *payload);
  849. int handleCostUpdatedRequest(char *uuid, char *payload);
  850. int handleCustomerInformationRequest(char *uuid, char *payload);
  851. int handleDataTransferRequest(char *uuid, char *payload);
  852. int handleDeleteCertificateRequest(char *uuid, char *payload);
  853. int handleGetBaseReportRequest(char *uuid, char *payload);
  854. int handleGetChargingProfilesRequest(char *uuid, char *payload);
  855. int handleGetCompositeScheduleRequest(char *uuid, char *payload);
  856. int handleGetDisplayMessagesRequest(char *uuid, char *payload);
  857. int handleGetInstalledCertificateIdsRequest(char *uuid, char *payload);
  858. int handleGetLocalListVersionRequest(char *uuid, char *payload);
  859. int handleGetLogRequest(char *uuid, char *payload);
  860. int handleGetMonitoringReportRequest(char *uuid, char *payload);
  861. int handleGetReportRequest(char *uuid, char *payload);
  862. int handleGetTransactionStatusRequest(char *uuid, char *payload);
  863. int handleGetVariablesRequest(char *uuid, char *payload);
  864. int handleInstallCertificateRequest(char *uuid, char *payload);
  865. int handlePublishFirmwareRequest(char *uuid, char *payload);
  866. int handleRequestStartTransactionRequest(char *uuid, char *payload);
  867. int handleRequestStopTransactionRequest(char *uuid, char *payload);
  868. int handleReserveNowRequest(char *uuid, char *payload);
  869. int handleResetRequest(char *uuid, char *payload);
  870. int handleSendLocalListRequest(char *uuid, char *payload);
  871. int handleSetChargingProfileRequest(char *uuid, char *payload);
  872. int handleSetDisplayMessageRequest(char *uuid, char *payload);
  873. int handleSetMonitoringBaseRequest(char *uuid, char *payload);
  874. int handleSetMonitoringLevelRequest(char *uuid, char *payload);
  875. int handleSetNetworkProfileRequest(char *uuid, char *payload);
  876. int handleSetVariableMonitoringRequest(char *uuid, char *payload);
  877. int handleSetVariablesRequest(char *uuid, char *payload);
  878. int handleTriggerMessageRequest(char *uuid, char *payload);
  879. int handleUnlockConnectorRequest(char *uuid, char *payload);
  880. int handleUnpublishFirmwareRequest(char *uuid, char *payload);
  881. int handleUpdateFirmwareRequest(char *uuid, char *payload);
  882. int handleUnknownRequest(char *uuid, char *payload);
  883. void handleAuthorizeResponse(char *payload, int gun_index);
  884. void handleBootNotificationResponse(char *payload, int gun_index);
  885. void handleClearedChargingLimitResponse(char *payload, int gun_index);
  886. void handleDataTransferResponse(char *payload, int gun_index);
  887. void handleFirmwareStatusNotificationResponse(char *payload, int gun_index);
  888. void handleGet15118EVCertificateResponse(char *payload, int gun_index);
  889. void handleGetCertificateStatusResponse(char *payload, int gun_index);
  890. void handleHeartbeatResponse(char *payload, int gun_index);
  891. void handleLogStatusNotificationResponse(char *payload, int gun_index);
  892. void handleMeterValuesResponse(char *payload, int gun_index);
  893. void handleNotifyChargingLimitResponse(char *payload, int gun_index);
  894. void handleNotifyCustomerInformationResponse(char *payload, int gun_index);
  895. void handleNotifyDisplayMessagesResponse(char *payload, int gun_index);
  896. void handleNotifyEVChargingNeedsResponse(char *payload, int gun_index);
  897. void handleNotifyEVChargingScheduleResponse(char *payload, int gun_index);
  898. void handleNotifyEventResponse(char *payload, int gun_index);
  899. void handleNotifyMonitoringReportResponse(char *payload, int gun_index);
  900. void handleNotifyReportResponse(char *payload, int gun_index);
  901. void handlePublishFirmwareStatusNotificationResponse(char *payload, int gun_index);
  902. void handleReportChargingProfilesResponse(char *payload, int gun_index);
  903. void handleReservationStatusUpdateResponse(char *payload, int gun_index);
  904. void handleSecurityEventNotificationResponse(char *payload, int gun_index);
  905. void handleSignCertificateResponse(char *payload, int gun_index);
  906. void handleStatusNotificationResponse(char *payload, int gun_index);
  907. void handleTransactionEventResponse(char *payload, int gun_index);
  908. //==========================================
  909. // Handle Error routine
  910. //==========================================
  911. void handleError(char *id, char *errorCode, char *errorDescription,char *payload);
  912. //===============================================
  913. // Common routine
  914. //===============================================
  915. void getKeyValue(char *keyReq);
  916. int setKeyValue(char *key, char *value);
  917. int updateSetting(char *key, char *value);
  918. int httpDownLoadFile(char *location, char *path, char *filename,char *url);
  919. int ftpDownLoadFile(char *location, char *user, char *password, int port, char *path, char *filename,char *url);
  920. void *UpdateFirmwareProcess(void* data);
  921. void* GetDiagnosticsProcess(void* data);
  922. int httpUploadFile(char *location, char *path, char *filename,char *url);
  923. int ftpUploadFile(char *location, char *user, char *password, int port, char *path, char *fnamePlusPath,char *filename);
  924. int get_file_contents(const char* filename, char** outbuffer);
  925. void LWS_Send(char * str);
  926. void LWS_SendNow(char * str);
  927. extern int queue_operation(int type, char *frontUUID, char *frontData);
  928. int GetOcppServerURL();
  929. int GetOcppPath();
  930. int GetOcppPort();
  931. int GetTransactionId(int gunindex, unsigned char idTag[], uint8_t isStopTransaction);
  932. void SetTransactionIdZero(int transactionId);
  933. void GetChargingProfileRequest(int gunindex);
  934. void FillStartTransaction(int ConnectorId, unsigned char IdTag[], int MeterStart,int ReservationId,unsigned char Timestamp[]);
  935. void splitstring(char *src,const char *separator,char **dest,int *num);
  936. int GetWebSocketPingInterval(void);
  937. int GetInternetConn(void);
  938. int GetBackendConnectionTimeout(void);
  939. int isConnectorInitMode(int gun_index);
  940. void refreshProcDogTimer();
  941. int GetServerSign(void);
  942. void SetServerSign(int value);
  943. int GetBootNotificationInterval(void);
  944. void InitialSystemValue(void);
  945. void checkTempStopTransaction(int gun_index);
  946. void storeTempStopTransaction(int gun_index);
  947. #endif