v2g_serviceDataTypes.h 31 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679
  1. /*
  2. * Copyright (C) 2007-2012 Siemens AG
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Lesser General Public License as published
  6. * by the Free Software Foundation, either version 3 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public License
  15. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17. /*******************************************************************
  18. *
  19. * @author Sebastian.Kaebisch.EXT@siemens.com
  20. * @version 0.6
  21. * @contact Joerg.Heuer@siemens.com
  22. *
  23. * <p>Code generated by EXISeGen</p>
  24. *
  25. ********************************************************************/
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29. #ifndef SERVICEDATATYPES_H
  30. #define SERVICEDATATYPES_H
  31. #include "EXITypes.h"
  32. enum faultCodeType
  33. {
  34. ParsingError_faultCodeType,
  35. NoTLSRootCertificatAvailable_faultCodeType,
  36. UnknownError_faultCodeType
  37. };
  38. enum responseCodeType
  39. {
  40. OK_responseCodeType,
  41. OK_NewSessionEstablished_responseCodeType,
  42. OK_OldSessionJoined_responseCodeType,
  43. OK_CertificateExpiresSoon_responseCodeType,
  44. FAILED_responseCodeType,
  45. FAILED_SequenceError_responseCodeType,
  46. FAILED_ServiceIDInvalid_responseCodeType,
  47. FAILED_UnknownSession_responseCodeType,
  48. FAILED_ServiceSelectionInvalid_responseCodeType,
  49. FAILED_PaymentSelectionInvalid_responseCodeType,
  50. FAILED_CertificateExpired_responseCodeType,
  51. FAILED_SignatureError_responseCodeType,
  52. FAILED_NoCertificateAvailable_responseCodeType,
  53. FAILED_CertChainError_responseCodeType,
  54. FAILED_ChallengeInvalid_responseCodeType,
  55. FAILED_ContractCanceled_responseCodeType,
  56. FAILED_WrongChargeParameter_responseCodeType,
  57. FAILED_PowerDeliveryNotApplied_responseCodeType,
  58. FAILED_TariffSelectionInvalid_responseCodeType,
  59. FAILED_ChargingProfileInvalid_responseCodeType,
  60. FAILED_EVSEPresentVoltageToLow_responseCodeType,
  61. FAILED_MeteringSignatureNotValid_responseCodeType
  62. };
  63. enum serviceCategoryType
  64. {
  65. EVCharging_serviceCategoryType,
  66. Internet_serviceCategoryType,
  67. ContractCertificate_serviceCategoryType,
  68. OtherCustom_serviceCategoryType
  69. };
  70. enum paymentOptionType
  71. {
  72. Contract_paymentOptionType,
  73. ExternalPayment_paymentOptionType
  74. };
  75. enum EVSESupportedEnergyTransferType
  76. {
  77. AC_single_phase_core_EVSESupportedEnergyTransferType,
  78. AC_three_phase_core_EVSESupportedEnergyTransferType,
  79. DC_core_EVSESupportedEnergyTransferType,
  80. DC_extended_EVSESupportedEnergyTransferType,
  81. DC_combo_core_EVSESupportedEnergyTransferType,
  82. DC_dual_EVSESupportedEnergyTransferType,
  83. AC_core1p_DC_extended_EVSESupportedEnergyTransferType,
  84. AC_single_DC_core_EVSESupportedEnergyTransferType,
  85. AC_single_phase_three_phase_core_DC_extended_EVSESupportedEnergyTransferType,
  86. AC_core3p_DC_extended_EVSESupportedEnergyTransferType
  87. };
  88. enum unitSymbolType
  89. {
  90. h_unitSymbolType,
  91. m_unitSymbolType,
  92. s_unitSymbolType,
  93. A_unitSymbolType,
  94. Ah_unitSymbolType,
  95. V_unitSymbolType,
  96. VA_unitSymbolType,
  97. W_unitSymbolType,
  98. W_s_unitSymbolType,
  99. Wh_unitSymbolType
  100. };
  101. enum EVRequestedEnergyTransferType
  102. {
  103. AC_single_phase_core_EVRequestedEnergyTransferType,
  104. AC_three_phase_core_EVRequestedEnergyTransferType,
  105. DC_core_EVRequestedEnergyTransferType,
  106. DC_extended_EVRequestedEnergyTransferType,
  107. DC_combo_core_EVRequestedEnergyTransferType,
  108. DC_unique_EVRequestedEnergyTransferType
  109. };
  110. enum DC_EVErrorCodeType
  111. {
  112. NO_ERROR_DC_EVErrorCodeType,
  113. FAILED_RESSTemperatureInhibit_DC_EVErrorCodeType,
  114. FAILED_EVShiftPosition_DC_EVErrorCodeType,
  115. FAILED_ChargerConnectorLockFault_DC_EVErrorCodeType,
  116. FAILED_EVRESSMalfunction_DC_EVErrorCodeType,
  117. FAILED_ChargingCurrentdifferential_DC_EVErrorCodeType,
  118. FAILED_ChargingVoltageOutOfRange_DC_EVErrorCodeType,
  119. Reserved_A_DC_EVErrorCodeType,
  120. Reserved_B_DC_EVErrorCodeType,
  121. Reserved_C_DC_EVErrorCodeType,
  122. FAILED_ChargingSystemIncompatibility_DC_EVErrorCodeType,
  123. NoData_DC_EVErrorCodeType
  124. };
  125. enum costKindType
  126. {
  127. relativePricePercentage_costKindType,
  128. RenewableGenerationPercentage_costKindType,
  129. CarbonDioxideEmission_costKindType
  130. };
  131. enum isolationLevelType
  132. {
  133. Invalid_isolationLevelType,
  134. Safe_isolationLevelType,
  135. Warning_isolationLevelType,
  136. Fault_isolationLevelType
  137. };
  138. enum DC_EVSEStatusCodeType
  139. {
  140. EVSE_NotReady_DC_EVSEStatusCodeType,
  141. EVSE_Ready_DC_EVSEStatusCodeType,
  142. EVSE_Shutdown_DC_EVSEStatusCodeType,
  143. EVSE_UtilityInterruptEvent_DC_EVSEStatusCodeType,
  144. EVSE_Precharge_DC_EVSEStatusCodeType,
  145. EVSE_IsolationMonitoringActive_DC_EVSEStatusCodeType,
  146. EVSE_EmergencyShutdown_DC_EVSEStatusCodeType,
  147. EVSE_Malfunction_DC_EVSEStatusCodeType,
  148. Reserved_8_DC_EVSEStatusCodeType,
  149. Reserved_9_DC_EVSEStatusCodeType,
  150. Reserved_A_DC_EVSEStatusCodeType,
  151. Reserved_B_DC_EVSEStatusCodeType,
  152. Reserved_C_DC_EVSEStatusCodeType
  153. };
  154. struct arraylen_sessionIDType
  155. {
  156. size_t data;
  157. };
  158. struct sessionIDType
  159. {
  160. uint8_t data[8];
  161. struct arraylen_sessionIDType arraylen;
  162. };
  163. struct arraylen_faultMsgType
  164. {
  165. size_t data;
  166. };
  167. struct faultMsgType
  168. {
  169. uint32_t data[64];
  170. struct arraylen_faultMsgType arraylen;
  171. };
  172. struct selection_NotificationType
  173. {
  174. unsigned int FaultMsg:1;
  175. };
  176. struct NotificationType
  177. {
  178. enum faultCodeType FaultCode;
  179. struct faultMsgType FaultMsg;
  180. struct selection_NotificationType isused;
  181. };
  182. struct selection_MessageHeaderType
  183. {
  184. unsigned int Notification:1;
  185. unsigned int Signature:1;
  186. };
  187. struct arraylen_service_string
  188. {
  189. size_t data;
  190. };
  191. struct service_string
  192. {
  193. uint32_t data[256];
  194. struct arraylen_service_string arraylen;
  195. };
  196. struct selection_SignatureType
  197. {
  198. unsigned int attr_Id:1;
  199. unsigned int KeyInfo:1;
  200. };
  201. struct selection_SignedInfoType
  202. {
  203. unsigned int attr_Id:1;
  204. };
  205. struct CanonicalizationMethodType
  206. {
  207. struct service_string attr_Algorithm;
  208. };
  209. struct SignatureMethodType
  210. {
  211. struct service_string attr_Algorithm;
  212. };
  213. struct selection_ReferenceType
  214. {
  215. unsigned int attr_Id:1;
  216. unsigned int attr_URI:1;
  217. unsigned int attr_Type:1;
  218. };
  219. struct DigestMethodType
  220. {
  221. struct service_string attr_Algorithm;
  222. };
  223. struct arraylen_DigestValueType
  224. {
  225. size_t data;
  226. };
  227. struct DigestValueType
  228. {
  229. uint8_t data[128];
  230. struct arraylen_DigestValueType arraylen;
  231. };
  232. struct ReferenceType
  233. {
  234. struct service_string attr_Id;
  235. struct service_string attr_URI;
  236. struct service_string attr_Type;
  237. struct DigestMethodType DigestMethod;
  238. struct DigestValueType DigestValue;
  239. struct selection_ReferenceType isused;
  240. };
  241. struct arraylen_SignedInfoType
  242. {
  243. size_t Reference;
  244. };
  245. struct SignedInfoType
  246. {
  247. struct service_string attr_Id;
  248. struct CanonicalizationMethodType CanonicalizationMethod;
  249. struct SignatureMethodType SignatureMethod;
  250. struct ReferenceType Reference[1];
  251. struct selection_SignedInfoType isused; struct arraylen_SignedInfoType arraylen;
  252. };
  253. struct arraylen_SignatureValueType
  254. {
  255. size_t data;
  256. };
  257. struct SignatureValueType
  258. {
  259. uint8_t data[128];
  260. struct arraylen_SignatureValueType arraylen;
  261. };
  262. struct selection_KeyInfoType
  263. {
  264. unsigned int attr_Id:1;
  265. };
  266. struct X509IssuerSerialType
  267. {
  268. struct service_string X509IssuerName;
  269. int64_t X509SerialNumber;
  270. };
  271. struct arraylen_service_byte
  272. {
  273. size_t data;
  274. };
  275. struct service_byte
  276. {
  277. uint8_t data[128];
  278. struct arraylen_service_byte arraylen;
  279. };
  280. struct X509DataType
  281. {
  282. struct X509IssuerSerialType X509IssuerSerial;
  283. struct service_byte X509SKI;
  284. struct service_string X509SubjectName;
  285. struct service_byte X509Certificate;
  286. struct service_byte X509CRL;
  287. };
  288. struct KeyInfoType
  289. {
  290. struct service_string attr_Id;
  291. struct X509DataType X509Data;
  292. struct selection_KeyInfoType isused;
  293. };
  294. struct SignatureType
  295. {
  296. struct service_string attr_Id;
  297. struct SignedInfoType SignedInfo;
  298. struct SignatureValueType SignatureValue;
  299. struct KeyInfoType KeyInfo;
  300. struct selection_SignatureType isused;
  301. };
  302. struct MessageHeaderType
  303. {
  304. struct sessionIDType SessionID;
  305. struct NotificationType Notification;
  306. struct SignatureType* Signature;
  307. struct selection_MessageHeaderType isused;
  308. };
  309. struct arraylen_evccIDType
  310. {
  311. size_t data;
  312. };
  313. struct evccIDType
  314. {
  315. uint8_t data[8];
  316. struct arraylen_evccIDType arraylen;
  317. };
  318. struct SessionSetupReqType
  319. {
  320. struct evccIDType EVCCID;
  321. };
  322. struct selection_BodyType
  323. {
  324. unsigned int SessionSetupReq:1;
  325. unsigned int SessionSetupRes:1;
  326. unsigned int ServiceDiscoveryReq:1;
  327. unsigned int ServiceDiscoveryRes:1;
  328. unsigned int ServiceDetailReq:1;
  329. unsigned int ServiceDetailRes:1;
  330. unsigned int ServicePaymentSelectionReq:1;
  331. unsigned int ServicePaymentSelectionRes:1;
  332. unsigned int PaymentDetailsReq:1;
  333. unsigned int PaymentDetailsRes:1;
  334. unsigned int ContractAuthenticationReq:1;
  335. unsigned int ContractAuthenticationRes:1;
  336. unsigned int ChargeParameterDiscoveryReq:1;
  337. unsigned int ChargeParameterDiscoveryRes:1;
  338. unsigned int PowerDeliveryReq:1;
  339. unsigned int PowerDeliveryRes:1;
  340. unsigned int ChargingStatusReq:1;
  341. unsigned int ChargingStatusRes:1;
  342. unsigned int MeteringReceiptReq:1;
  343. unsigned int MeteringReceiptRes:1;
  344. unsigned int SessionStopReq:1;
  345. unsigned int SessionStopRes:1;
  346. unsigned int CertificateUpdateReq:1;
  347. unsigned int CertificateUpdateRes:1;
  348. unsigned int CertificateInstallationReq:1;
  349. unsigned int CertificateInstallationRes:1;
  350. unsigned int CableCheckReq:1;
  351. unsigned int CableCheckRes:1;
  352. unsigned int PreChargeReq:1;
  353. unsigned int PreChargeRes:1;
  354. unsigned int CurrentDemandReq:1;
  355. unsigned int CurrentDemandRes:1;
  356. unsigned int WeldingDetectionReq:1;
  357. unsigned int WeldingDetectionRes:1;
  358. };
  359. struct arraylen_evseIDType
  360. {
  361. size_t data;
  362. };
  363. struct evseIDType
  364. {
  365. uint8_t data[32];
  366. struct arraylen_evseIDType arraylen;
  367. };
  368. struct selection_SessionSetupResType
  369. {
  370. unsigned int DateTimeNow:1;
  371. };
  372. struct SessionSetupResType
  373. {
  374. enum responseCodeType ResponseCode;
  375. struct evseIDType EVSEID;
  376. int64_t DateTimeNow;
  377. struct selection_SessionSetupResType isused;
  378. };
  379. struct arraylen_serviceScopeType
  380. {
  381. size_t data;
  382. };
  383. struct serviceScopeType
  384. {
  385. uint32_t data[32];
  386. struct arraylen_serviceScopeType arraylen;
  387. };
  388. struct selection_ServiceDiscoveryReqType
  389. {
  390. unsigned int ServiceScope:1;
  391. unsigned int ServiceCategory:1;
  392. };
  393. struct ServiceDiscoveryReqType
  394. {
  395. struct serviceScopeType ServiceScope;
  396. enum serviceCategoryType ServiceCategory;
  397. struct selection_ServiceDiscoveryReqType isused;
  398. };
  399. struct arraylen_PaymentOptionsType
  400. {
  401. size_t PaymentOption;
  402. };
  403. struct PaymentOptionsType
  404. {
  405. enum paymentOptionType PaymentOption[2];
  406. struct arraylen_PaymentOptionsType arraylen;
  407. };
  408. struct arraylen_serviceNameType
  409. {
  410. size_t data;
  411. };
  412. struct serviceNameType
  413. {
  414. uint32_t data[32];
  415. struct arraylen_serviceNameType arraylen;
  416. };
  417. struct selection_ServiceTagType
  418. {
  419. unsigned int ServiceName:1;
  420. unsigned int ServiceCategory:1;
  421. unsigned int ServiceScope:1;
  422. };
  423. struct ServiceTagType
  424. {
  425. uint16_t ServiceID;
  426. struct serviceNameType ServiceName;
  427. enum serviceCategoryType ServiceCategory;
  428. struct serviceScopeType ServiceScope;
  429. struct selection_ServiceTagType isused;
  430. };
  431. struct ServiceChargeType
  432. {
  433. struct ServiceTagType ServiceTag;
  434. int FreeService;
  435. enum EVSESupportedEnergyTransferType EnergyTransferType;
  436. };
  437. struct ServiceType
  438. {
  439. struct ServiceTagType ServiceTag;
  440. int FreeService;
  441. };
  442. struct arraylen_ServiceTagListType
  443. {
  444. size_t Service;
  445. };
  446. struct ServiceTagListType
  447. {
  448. struct ServiceType Service[2];
  449. struct arraylen_ServiceTagListType arraylen;
  450. };
  451. struct selection_ServiceDiscoveryResType
  452. {
  453. unsigned int ServiceList:1;
  454. };
  455. struct ServiceDiscoveryResType
  456. {
  457. enum responseCodeType ResponseCode;
  458. struct PaymentOptionsType PaymentOptions;
  459. struct ServiceChargeType ChargeService;
  460. struct ServiceTagListType ServiceList;
  461. struct selection_ServiceDiscoveryResType isused;
  462. };
  463. struct ServiceDetailReqType
  464. {
  465. uint16_t ServiceID;
  466. };
  467. struct selection_PhysicalValueType
  468. {
  469. unsigned int Unit:1;
  470. };
  471. struct PhysicalValueType
  472. {
  473. int8_t Multiplier;
  474. enum unitSymbolType Unit;
  475. int16_t Value;
  476. struct selection_PhysicalValueType isused;
  477. };
  478. struct ParameterType
  479. {
  480. struct service_string attr_Name;
  481. struct service_string attr_ValueType;
  482. int boolValue;
  483. int8_t byteValue;
  484. int16_t shortValue;
  485. int32_t intValue;
  486. struct PhysicalValueType physicalValue;
  487. struct service_string stringValue;
  488. };
  489. struct arraylen_ParameterSetType
  490. {
  491. size_t Parameter;
  492. };
  493. struct ParameterSetType
  494. {
  495. int16_t ParameterSetID;
  496. struct ParameterType Parameter[2];
  497. struct arraylen_ParameterSetType arraylen;
  498. };
  499. struct arraylen_ServiceParameterListType
  500. {
  501. size_t ParameterSet;
  502. };
  503. struct ServiceParameterListType
  504. {
  505. struct ParameterSetType ParameterSet[2];
  506. struct arraylen_ServiceParameterListType arraylen;
  507. };
  508. struct selection_ServiceDetailResType
  509. {
  510. unsigned int ServiceParameterList:1;
  511. };
  512. struct ServiceDetailResType
  513. {
  514. enum responseCodeType ResponseCode;
  515. uint16_t ServiceID;
  516. struct ServiceParameterListType ServiceParameterList;
  517. struct selection_ServiceDetailResType isused;
  518. };
  519. struct selection_SelectedServiceType
  520. {
  521. unsigned int ParameterSetID:1;
  522. };
  523. struct SelectedServiceType
  524. {
  525. uint16_t ServiceID;
  526. int16_t ParameterSetID;
  527. struct selection_SelectedServiceType isused;
  528. };
  529. struct arraylen_SelectedServiceListType
  530. {
  531. size_t SelectedService;
  532. };
  533. struct SelectedServiceListType
  534. {
  535. struct SelectedServiceType SelectedService[2];
  536. struct arraylen_SelectedServiceListType arraylen;
  537. };
  538. struct ServicePaymentSelectionReqType
  539. {
  540. enum paymentOptionType SelectedPaymentOption;
  541. struct SelectedServiceListType SelectedServiceList;
  542. };
  543. struct ServicePaymentSelectionResType
  544. {
  545. enum responseCodeType ResponseCode;
  546. };
  547. struct arraylen_contractIDType
  548. {
  549. size_t data;
  550. };
  551. struct contractIDType
  552. {
  553. uint32_t data[24];
  554. struct arraylen_contractIDType arraylen;
  555. };
  556. struct arraylen_certificateType
  557. {
  558. size_t data;
  559. };
  560. struct certificateType
  561. {
  562. uint8_t data[1200];
  563. struct arraylen_certificateType arraylen;
  564. };
  565. struct arraylen_SubCertificatesType
  566. {
  567. size_t Certificate;
  568. };
  569. struct SubCertificatesType
  570. {
  571. struct certificateType Certificate[2];
  572. struct arraylen_SubCertificatesType arraylen;
  573. };
  574. struct selection_CertificateChainType
  575. {
  576. unsigned int SubCertificates:1;
  577. };
  578. struct CertificateChainType
  579. {
  580. struct certificateType Certificate;
  581. struct SubCertificatesType SubCertificates;
  582. struct selection_CertificateChainType isused;
  583. };
  584. struct PaymentDetailsReqType
  585. {
  586. struct contractIDType ContractID;
  587. struct CertificateChainType ContractSignatureCertChain;
  588. };
  589. struct arraylen_genChallengeType
  590. {
  591. size_t data;
  592. };
  593. struct genChallengeType
  594. {
  595. uint32_t data[256];
  596. struct arraylen_genChallengeType arraylen;
  597. };
  598. struct PaymentDetailsResType
  599. {
  600. enum responseCodeType ResponseCode;
  601. struct genChallengeType GenChallenge;
  602. int64_t DateTimeNow;
  603. };
  604. struct ContractAuthenticationReqType
  605. {
  606. struct service_string attr_Id;
  607. struct genChallengeType GenChallenge;
  608. };
  609. struct ContractAuthenticationResType
  610. {
  611. enum responseCodeType ResponseCode;
  612. };
  613. struct AC_EVChargeParameterType
  614. {
  615. uint32_t DepartureTime;
  616. struct PhysicalValueType EAmount;
  617. struct PhysicalValueType EVMaxVoltage;
  618. struct PhysicalValueType EVMaxCurrent;
  619. struct PhysicalValueType EVMinCurrent;
  620. };
  621. struct selection_ChargeParameterDiscoveryReqType
  622. {
  623. unsigned int AC_EVChargeParameter:1;
  624. unsigned int DC_EVChargeParameter:1;
  625. };
  626. struct selection_DC_EVStatusType
  627. {
  628. unsigned int EVCabinConditioning:1;
  629. unsigned int EVRESSConditioning:1;
  630. };
  631. struct DC_EVStatusType
  632. {
  633. int EVReady;
  634. int EVCabinConditioning;
  635. int EVRESSConditioning;
  636. enum DC_EVErrorCodeType EVErrorCode;
  637. int8_t EVRESSSOC;
  638. struct selection_DC_EVStatusType isused;
  639. };
  640. struct selection_DC_EVChargeParameterType
  641. {
  642. unsigned int EVMaximumPowerLimit:1;
  643. unsigned int EVEnergyCapacity:1;
  644. unsigned int EVEnergyRequest:1;
  645. unsigned int FullSOC:1;
  646. unsigned int BulkSOC:1;
  647. };
  648. struct DC_EVChargeParameterType
  649. {
  650. struct DC_EVStatusType DC_EVStatus;
  651. struct PhysicalValueType EVMaximumCurrentLimit;
  652. struct PhysicalValueType EVMaximumPowerLimit;
  653. struct PhysicalValueType EVMaximumVoltageLimit;
  654. struct PhysicalValueType EVEnergyCapacity;
  655. struct PhysicalValueType EVEnergyRequest;
  656. int8_t FullSOC;
  657. int8_t BulkSOC;
  658. struct selection_DC_EVChargeParameterType isused;
  659. };
  660. struct ChargeParameterDiscoveryReqType
  661. {
  662. enum EVRequestedEnergyTransferType EVRequestedEnergyTransferType;
  663. struct AC_EVChargeParameterType* AC_EVChargeParameter;
  664. struct DC_EVChargeParameterType* DC_EVChargeParameter;
  665. struct selection_ChargeParameterDiscoveryReqType isused;
  666. };
  667. struct selection_RelativeTimeIntervalType
  668. {
  669. unsigned int duration:1;
  670. };
  671. struct RelativeTimeIntervalType
  672. {
  673. uint32_t start;
  674. uint32_t duration;
  675. struct selection_RelativeTimeIntervalType isused;
  676. };
  677. struct PMaxScheduleEntryType
  678. {
  679. struct RelativeTimeIntervalType RelativeTimeInterval;
  680. int16_t PMax;
  681. };
  682. struct arraylen_PMaxScheduleType
  683. {
  684. size_t PMaxScheduleEntry;
  685. };
  686. struct PMaxScheduleType
  687. {
  688. int16_t PMaxScheduleID;
  689. struct PMaxScheduleEntryType PMaxScheduleEntry[12];
  690. struct arraylen_PMaxScheduleType arraylen;
  691. };
  692. struct arraylen_tariffDescriptionType
  693. {
  694. size_t data;
  695. };
  696. struct tariffDescriptionType
  697. {
  698. uint32_t data[32];
  699. struct arraylen_tariffDescriptionType arraylen;
  700. };
  701. struct selection_SalesTariffType
  702. {
  703. unsigned int SalesTariffDescription:1;
  704. };
  705. struct selection_CostType
  706. {
  707. unsigned int amountMultiplier:1;
  708. };
  709. struct CostType
  710. {
  711. enum costKindType costKind;
  712. uint32_t amount;
  713. int8_t amountMultiplier;
  714. struct selection_CostType isused;
  715. };
  716. struct selection_ConsumptionCostType
  717. {
  718. unsigned int Cost:1;
  719. };
  720. struct arraylen_ConsumptionCostType
  721. {
  722. size_t Cost;
  723. };
  724. struct ConsumptionCostType
  725. {
  726. uint32_t startValue;
  727. struct CostType Cost[2];
  728. struct selection_ConsumptionCostType isused; struct arraylen_ConsumptionCostType arraylen;
  729. };
  730. struct selection_SalesTariffEntryType
  731. {
  732. unsigned int ConsumptionCost:1;
  733. };
  734. struct arraylen_SalesTariffEntryType
  735. {
  736. size_t ConsumptionCost;
  737. };
  738. struct SalesTariffEntryType
  739. {
  740. struct RelativeTimeIntervalType RelativeTimeInterval;
  741. uint8_t EPriceLevel;
  742. struct ConsumptionCostType ConsumptionCost[3];
  743. struct selection_SalesTariffEntryType isused; struct arraylen_SalesTariffEntryType arraylen;
  744. };
  745. struct arraylen_SalesTariffType
  746. {
  747. size_t SalesTariffEntry;
  748. };
  749. struct SalesTariffType
  750. {
  751. struct service_string attr_Id;
  752. int16_t SalesTariffID;
  753. struct tariffDescriptionType SalesTariffDescription;
  754. uint8_t NumEPriceLevels;
  755. struct SalesTariffEntryType SalesTariffEntry[12];
  756. struct selection_SalesTariffType isused;
  757. struct arraylen_SalesTariffType arraylen;
  758. };
  759. struct selection_SAScheduleTupleType
  760. {
  761. unsigned int SalesTariff:1;
  762. };
  763. struct SAScheduleTupleType
  764. {
  765. int16_t SAScheduleTupleID;
  766. struct PMaxScheduleType PMaxSchedule;
  767. struct SalesTariffType* SalesTariff;
  768. struct selection_SAScheduleTupleType isused;
  769. };
  770. struct arraylen_SAScheduleListType
  771. {
  772. size_t SAScheduleTuple;
  773. };
  774. struct SAScheduleListType
  775. {
  776. struct SAScheduleTupleType SAScheduleTuple[3];
  777. struct arraylen_SAScheduleListType arraylen;
  778. };
  779. struct selection_ChargeParameterDiscoveryResType
  780. {
  781. unsigned int SAScheduleList:1;
  782. unsigned int AC_EVSEChargeParameter:1;
  783. unsigned int DC_EVSEChargeParameter:1;
  784. };
  785. struct AC_EVSEStatusType
  786. {
  787. int PowerSwitchClosed;
  788. int RCD;
  789. uint32_t ShutDownTime;
  790. int StopCharging;
  791. };
  792. struct AC_EVSEChargeParameterType
  793. {
  794. struct AC_EVSEStatusType AC_EVSEStatus;
  795. struct PhysicalValueType EVSEMaxVoltage;
  796. struct PhysicalValueType EVSEMaxCurrent;
  797. struct PhysicalValueType EVSEMinCurrent;
  798. };
  799. struct selection_DC_EVSEStatusType
  800. {
  801. unsigned int EVSEIsolationStatus:1;
  802. };
  803. struct DC_EVSEStatusType
  804. {
  805. enum isolationLevelType EVSEIsolationStatus;
  806. enum DC_EVSEStatusCodeType EVSEStatusCode;
  807. struct selection_DC_EVSEStatusType isused;
  808. };
  809. struct selection_DC_EVSEChargeParameterType
  810. {
  811. unsigned int EVSEMaximumPowerLimit:1;
  812. unsigned int EVSECurrentRegulationTolerance:1;
  813. unsigned int EVSEEnergyToBeDelivered:1;
  814. };
  815. struct DC_EVSEChargeParameterType
  816. {
  817. struct DC_EVSEStatusType DC_EVSEStatus;
  818. struct PhysicalValueType EVSEMaximumCurrentLimit;
  819. struct PhysicalValueType EVSEMaximumPowerLimit;
  820. struct PhysicalValueType EVSEMaximumVoltageLimit;
  821. struct PhysicalValueType EVSEMinimumCurrentLimit;
  822. struct PhysicalValueType EVSEMinimumVoltageLimit;
  823. struct PhysicalValueType EVSECurrentRegulationTolerance;
  824. struct PhysicalValueType EVSEPeakCurrentRipple;
  825. struct PhysicalValueType EVSEEnergyToBeDelivered;
  826. struct selection_DC_EVSEChargeParameterType isused;
  827. };
  828. struct ChargeParameterDiscoveryResType
  829. {
  830. enum responseCodeType ResponseCode;
  831. struct SAScheduleListType* SAScheduleList;
  832. struct AC_EVSEChargeParameterType* AC_EVSEChargeParameter;
  833. struct DC_EVSEChargeParameterType* DC_EVSEChargeParameter;
  834. struct selection_ChargeParameterDiscoveryResType isused;
  835. };
  836. struct ProfileEntryType
  837. {
  838. uint32_t ChargingProfileEntryStart;
  839. int16_t ChargingProfileEntryMaxPower;
  840. };
  841. struct arraylen_ChargingProfileType
  842. {
  843. size_t ProfileEntry;
  844. };
  845. struct ChargingProfileType
  846. {
  847. int16_t SAScheduleTupleID;
  848. struct ProfileEntryType ProfileEntry[24];
  849. struct arraylen_ChargingProfileType arraylen;
  850. };
  851. struct selection_PowerDeliveryReqType
  852. {
  853. unsigned int ChargingProfile:1;
  854. unsigned int DC_EVPowerDeliveryParameter:1;
  855. };
  856. struct selection_DC_EVPowerDeliveryParameterType
  857. {
  858. unsigned int BulkChargingComplete:1;
  859. };
  860. struct DC_EVPowerDeliveryParameterType
  861. {
  862. struct DC_EVStatusType DC_EVStatus;
  863. int BulkChargingComplete;
  864. int ChargingComplete;
  865. struct selection_DC_EVPowerDeliveryParameterType isused;
  866. };
  867. struct PowerDeliveryReqType
  868. {
  869. int ReadyToChargeState;
  870. struct ChargingProfileType ChargingProfile;
  871. struct DC_EVPowerDeliveryParameterType* DC_EVPowerDeliveryParameter;
  872. struct selection_PowerDeliveryReqType isused;
  873. };
  874. struct selection_PowerDeliveryResType
  875. {
  876. unsigned int AC_EVSEStatus:1;
  877. unsigned int DC_EVSEStatus:1;
  878. };
  879. struct PowerDeliveryResType
  880. {
  881. enum responseCodeType ResponseCode;
  882. struct AC_EVSEStatusType* AC_EVSEStatus;
  883. struct DC_EVSEStatusType* DC_EVSEStatus;
  884. struct selection_PowerDeliveryResType isused;
  885. };
  886. struct ChargingStatusReqType
  887. {
  888. int NO_MEMBER:1;
  889. };
  890. struct selection_ChargingStatusResType
  891. {
  892. unsigned int EVSEMaxCurrent:1;
  893. unsigned int MeterInfo:1;
  894. };
  895. struct arraylen_meterIDType
  896. {
  897. size_t data;
  898. };
  899. struct meterIDType
  900. {
  901. uint32_t data[32];
  902. struct arraylen_meterIDType arraylen;
  903. };
  904. struct selection_MeterInfoType
  905. {
  906. unsigned int MeterReading:1;
  907. unsigned int SigMeterReading:1;
  908. unsigned int MeterStatus:1;
  909. unsigned int TMeter:1;
  910. };
  911. struct arraylen_sigMeterReadingType
  912. {
  913. size_t data;
  914. };
  915. struct sigMeterReadingType
  916. {
  917. uint8_t data[32];
  918. struct arraylen_sigMeterReadingType arraylen;
  919. };
  920. struct MeterInfoType
  921. {
  922. struct meterIDType MeterID;
  923. struct PhysicalValueType MeterReading;
  924. struct sigMeterReadingType SigMeterReading;
  925. int16_t MeterStatus;
  926. int64_t TMeter;
  927. struct selection_MeterInfoType isused;
  928. };
  929. struct ChargingStatusResType
  930. {
  931. enum responseCodeType ResponseCode;
  932. struct evseIDType EVSEID;
  933. int16_t SAScheduleTupleID;
  934. struct PhysicalValueType EVSEMaxCurrent;
  935. struct MeterInfoType MeterInfo;
  936. int ReceiptRequired;
  937. struct AC_EVSEStatusType AC_EVSEStatus;
  938. struct selection_ChargingStatusResType isused;
  939. };
  940. struct selection_MeteringReceiptReqType
  941. {
  942. unsigned int attr_Id:1;
  943. };
  944. struct MeteringReceiptReqType
  945. {
  946. struct service_string attr_Id;
  947. struct sessionIDType SessionID;
  948. int16_t SAScheduleTupleID;
  949. struct MeterInfoType MeterInfo;
  950. struct selection_MeteringReceiptReqType isused;
  951. };
  952. struct MeteringReceiptResType
  953. {
  954. enum responseCodeType ResponseCode;
  955. struct AC_EVSEStatusType AC_EVSEStatus;
  956. };
  957. struct SessionStopType
  958. {
  959. int NO_MEMBER:1;
  960. };
  961. struct SessionStopResType
  962. {
  963. enum responseCodeType ResponseCode;
  964. };
  965. struct selection_CertificateUpdateReqType
  966. {
  967. unsigned int attr_Id:1;
  968. };
  969. struct arraylen_rootCertificateIDType
  970. {
  971. size_t data;
  972. };
  973. struct rootCertificateIDType
  974. {
  975. uint32_t data[40];
  976. struct arraylen_rootCertificateIDType arraylen;
  977. };
  978. struct arraylen_ListOfRootCertificateIDsType
  979. {
  980. size_t RootCertificateID;
  981. };
  982. struct ListOfRootCertificateIDsType
  983. {
  984. struct rootCertificateIDType RootCertificateID[2];
  985. struct arraylen_ListOfRootCertificateIDsType arraylen;
  986. };
  987. struct CertificateUpdateReqType
  988. {
  989. struct service_string attr_Id;
  990. struct CertificateChainType ContractSignatureCertChain;
  991. struct contractIDType ContractID;
  992. struct ListOfRootCertificateIDsType ListOfRootCertificateIDs;
  993. struct selection_CertificateUpdateReqType isused;
  994. };
  995. struct arraylen_privateKeyType
  996. {
  997. size_t data;
  998. };
  999. struct privateKeyType
  1000. {
  1001. uint8_t data[128];
  1002. struct arraylen_privateKeyType arraylen;
  1003. };
  1004. struct arraylen_dHParamsType
  1005. {
  1006. size_t data;
  1007. };
  1008. struct dHParamsType
  1009. {
  1010. uint8_t data[256];
  1011. struct arraylen_dHParamsType arraylen;
  1012. };
  1013. struct CertificateUpdateResType
  1014. {
  1015. struct service_string attr_Id;
  1016. enum responseCodeType ResponseCode;
  1017. struct CertificateChainType ContractSignatureCertChain;
  1018. struct privateKeyType ContractSignatureEncryptedPrivateKey;
  1019. struct privateKeyType ContractEncryptionEncryptedPrivateKey;
  1020. struct dHParamsType DHParams;
  1021. struct contractIDType ContractID;
  1022. int16_t RetryCounter;
  1023. };
  1024. struct selection_CertificateInstallationReqType
  1025. {
  1026. unsigned int attr_Id:1;
  1027. };
  1028. struct CertificateInstallationReqType
  1029. {
  1030. struct service_string attr_Id;
  1031. struct certificateType OEMProvisioningCert;
  1032. struct ListOfRootCertificateIDsType ListOfRootCertificateIDs;
  1033. struct selection_CertificateInstallationReqType isused;
  1034. };
  1035. struct CertificateInstallationResType
  1036. {
  1037. struct service_string attr_Id;
  1038. enum responseCodeType ResponseCode;
  1039. struct CertificateChainType ContractSignatureCertChain;
  1040. struct privateKeyType ContractSignatureEncryptedPrivateKey;
  1041. struct privateKeyType ContractEncryptionEncryptedPrivateKey;
  1042. struct dHParamsType DHParams;
  1043. struct contractIDType ContractID;
  1044. };
  1045. struct CableCheckReqType
  1046. {
  1047. struct DC_EVStatusType DC_EVStatus;
  1048. };
  1049. struct CableCheckResType
  1050. {
  1051. enum responseCodeType ResponseCode;
  1052. struct DC_EVSEStatusType DC_EVSEStatus;
  1053. };
  1054. struct PreChargeReqType
  1055. {
  1056. struct DC_EVStatusType DC_EVStatus;
  1057. struct PhysicalValueType EVTargetVoltage;
  1058. struct PhysicalValueType EVTargetCurrent;
  1059. };
  1060. struct PreChargeResType
  1061. {
  1062. enum responseCodeType ResponseCode;
  1063. struct DC_EVSEStatusType DC_EVSEStatus;
  1064. struct PhysicalValueType EVSEPresentVoltage;
  1065. };
  1066. struct selection_CurrentDemandReqType
  1067. {
  1068. unsigned int EVMaximumVoltageLimit:1;
  1069. unsigned int EVMaximumCurrentLimit:1;
  1070. unsigned int EVMaximumPowerLimit:1;
  1071. unsigned int BulkChargingComplete:1;
  1072. unsigned int RemainingTimeToFullSoC:1;
  1073. unsigned int RemainingTimeToBulkSoC:1;
  1074. };
  1075. struct CurrentDemandReqType
  1076. {
  1077. struct DC_EVStatusType DC_EVStatus;
  1078. struct PhysicalValueType EVTargetCurrent;
  1079. struct PhysicalValueType EVMaximumVoltageLimit;
  1080. struct PhysicalValueType EVMaximumCurrentLimit;
  1081. struct PhysicalValueType EVMaximumPowerLimit;
  1082. int BulkChargingComplete;
  1083. int ChargingComplete;
  1084. struct PhysicalValueType RemainingTimeToFullSoC;
  1085. struct PhysicalValueType RemainingTimeToBulkSoC;
  1086. struct PhysicalValueType EVTargetVoltage;
  1087. struct selection_CurrentDemandReqType isused;
  1088. };
  1089. struct selection_CurrentDemandResType
  1090. {
  1091. unsigned int EVSEMaximumVoltageLimit:1;
  1092. unsigned int EVSEMaximumCurrentLimit:1;
  1093. unsigned int EVSEMaximumPowerLimit:1;
  1094. };
  1095. struct CurrentDemandResType
  1096. {
  1097. enum responseCodeType ResponseCode;
  1098. struct DC_EVSEStatusType DC_EVSEStatus;
  1099. struct PhysicalValueType EVSEPresentVoltage;
  1100. struct PhysicalValueType EVSEPresentCurrent;
  1101. int EVSECurrentLimitAchieved;
  1102. int EVSEVoltageLimitAchieved;
  1103. int EVSEPowerLimitAchieved;
  1104. struct PhysicalValueType EVSEMaximumVoltageLimit;
  1105. struct PhysicalValueType EVSEMaximumCurrentLimit;
  1106. struct PhysicalValueType EVSEMaximumPowerLimit;
  1107. struct selection_CurrentDemandResType isused;
  1108. };
  1109. struct WeldingDetectionReqType
  1110. {
  1111. struct DC_EVStatusType DC_EVStatus;
  1112. };
  1113. struct WeldingDetectionResType
  1114. {
  1115. enum responseCodeType ResponseCode;
  1116. struct DC_EVSEStatusType DC_EVSEStatus;
  1117. struct PhysicalValueType EVSEPresentVoltage;
  1118. };
  1119. struct BodyType
  1120. {
  1121. struct SessionSetupReqType* SessionSetupReq;
  1122. struct SessionSetupResType* SessionSetupRes;
  1123. struct ServiceDiscoveryReqType* ServiceDiscoveryReq;
  1124. struct ServiceDiscoveryResType* ServiceDiscoveryRes;
  1125. struct ServiceDetailReqType* ServiceDetailReq;
  1126. struct ServiceDetailResType* ServiceDetailRes;
  1127. struct ServicePaymentSelectionReqType* ServicePaymentSelectionReq;
  1128. struct ServicePaymentSelectionResType* ServicePaymentSelectionRes;
  1129. struct PaymentDetailsReqType* PaymentDetailsReq;
  1130. struct PaymentDetailsResType* PaymentDetailsRes;
  1131. struct ContractAuthenticationReqType* ContractAuthenticationReq;
  1132. struct ContractAuthenticationResType* ContractAuthenticationRes;
  1133. struct ChargeParameterDiscoveryReqType* ChargeParameterDiscoveryReq;
  1134. struct ChargeParameterDiscoveryResType* ChargeParameterDiscoveryRes;
  1135. struct PowerDeliveryReqType* PowerDeliveryReq;
  1136. struct PowerDeliveryResType* PowerDeliveryRes;
  1137. struct ChargingStatusReqType* ChargingStatusReq;
  1138. struct ChargingStatusResType* ChargingStatusRes;
  1139. struct MeteringReceiptReqType* MeteringReceiptReq;
  1140. struct MeteringReceiptResType* MeteringReceiptRes;
  1141. struct SessionStopType* SessionStopReq;
  1142. struct SessionStopResType* SessionStopRes;
  1143. struct CertificateUpdateReqType* CertificateUpdateReq;
  1144. struct CertificateUpdateResType* CertificateUpdateRes;
  1145. struct CertificateInstallationReqType* CertificateInstallationReq;
  1146. struct CertificateInstallationResType* CertificateInstallationRes;
  1147. struct CableCheckReqType* CableCheckReq;
  1148. struct CableCheckResType* CableCheckRes;
  1149. struct PreChargeReqType* PreChargeReq;
  1150. struct PreChargeResType* PreChargeRes;
  1151. struct CurrentDemandReqType* CurrentDemandReq;
  1152. struct CurrentDemandResType* CurrentDemandRes;
  1153. struct WeldingDetectionReqType* WeldingDetectionReq;
  1154. struct WeldingDetectionResType* WeldingDetectionRes;
  1155. struct selection_BodyType isused;
  1156. };
  1157. struct AnonType_V2G_Message
  1158. {
  1159. struct MessageHeaderType* Header;
  1160. struct BodyType Body;
  1161. };
  1162. struct EXIDocumentType
  1163. {
  1164. struct AnonType_V2G_Message V2G_Message;
  1165. };
  1166. enum responseMessages
  1167. {
  1168. SESSIONSETUPRES,
  1169. SERVICEDISCOVERYRES,
  1170. SERVICEDETAILRES,
  1171. SERVICEPAYMENTSELECTIONRES,
  1172. PAYMENTDETAILSRES,
  1173. CONTRACTAUTHENTICATIONRES,
  1174. CHARGEPARAMETERDISCOVERYRES,
  1175. POWERDELIVERYRES,
  1176. CHARGINGSTATUSRES,
  1177. METERINGRECEIPTRES,
  1178. SESSIONSTOPRES,
  1179. CERTIFICATEUPDATERES,
  1180. CERTIFICATEINSTALLATIONRES,
  1181. CABLECHECKRES,
  1182. PRECHARGERES,
  1183. CURRENTDEMANDRES,
  1184. WELDINGDETECTIONRES
  1185. };
  1186. #endif
  1187. #ifdef __cplusplus
  1188. }
  1189. #endif