| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589 |
- /*
- * Copyright (C) 2007-2018 Siemens AG
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- /*******************************************************************
- *
- * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.4
- * @contact Richard.Kuntschke@siemens.com
- *
- * <p>Code generated by EXIdizer</p>
- * <p>Schema: V2G_CI_MsgDef.xsd</p>
- *
- *
- ********************************************************************/
- #include "iso1EXIDatatypesEncoder.h"
- #include "EncoderChannel.h"
- #include "EXIHeaderEncoder.h"
- #include "iso1EXIDatatypes.h"
- #include "ErrorCodes.h"
- #ifndef EXI_iso1_DATATYPES_ENCODER_C
- #define EXI_iso1_DATATYPES_ENCODER_C
- #if DEPLOY_ISO1_CODEC == SUPPORT_YES
- static int errn;
- /* Forward Declarations */
- static int encode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType);
- static int encode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType);
- static int encode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType);
- static int encode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType);
- static int encode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType);
- static int encode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType);
- static int encode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType);
- static int encode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType);
- static int encode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType);
- static int encode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType);
- static int encode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType);
- static int encode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType);
- static int encode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType);
- static int encode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType);
- static int encode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType);
- static int encode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType);
- static int encode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType);
- static int encode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType);
- static int encode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType);
- static int encode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType);
- static int encode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType);
- static int encode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType);
- static int encode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType);
- static int encode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType);
- static int encode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType);
- static int encode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType);
- static int encode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType);
- static int encode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType);
- static int encode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType);
- static int encode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType);
- static int encode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType);
- static int encode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType);
- static int encode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType);
- static int encode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType);
- static int encode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType);
- static int encode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType);
- static int encode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType);
- static int encode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType);
- static int encode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType);
- static int encode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType);
- static int encode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType);
- static int encode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType);
- static int encode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType);
- static int encode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType);
- static int encode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType);
- static int encode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType);
- static int encode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType);
- static int encode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType);
- static int encode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType);
- static int encode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType);
- static int encode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType);
- static int encode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType);
- static int encode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType);
- static int encode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType);
- static int encode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType);
- static int encode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType);
- static int encode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType);
- static int encode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType);
- static int encode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType);
- static int encode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType);
- static int encode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType);
- static int encode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType);
- static int encode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType);
- static int encode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType);
- static int encode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType);
- static int encode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType);
- static int encode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType);
- static int encode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType);
- static int encode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message);
- static int encode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType);
- static int encode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType);
- static int encode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType);
- static int encode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType);
- static int encode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType);
- static int encode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType);
- static int encode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType);
- static int encode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType);
- static int encode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType);
- static int encode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType);
- static int encode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType);
- static int encode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType);
- static int encode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType);
- static int encode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType);
- static int encode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType);
- static int encode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType);
- static int encode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType);
- static int encode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType);
- static int encode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType);
- static int encode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType);
- static int encode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType);
- static int encode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType);
- static int encode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType);
- static int encode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType);
- static int encode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType);
- static int encode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType);
- static int encode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType);
- static int encode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType);
- static int encode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType);
- static int encode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType);
- static int encode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType);
- static int encode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType);
- static int encode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType);
- static int encode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType);
- static int encode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType);
- static int encode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType);
- static int encode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType);
-
/* Complex type name='urn:iso:15118:2:2013:MsgHeader,MessageHeaderType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgHeader":SessionID,"urn:iso:15118:2:2013:MsgHeader":Notification{0-1},"http://www.w3.org/2000/09/xmldsig#":Signature{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1MessageHeaderType(bitstream_t* stream, struct iso1MessageHeaderType* iso1MessageHeaderType) {
- int grammarID = 0;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 0:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MessageHeaderType->SessionID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1MessageHeaderType->SessionID.bytes, iso1MessageHeaderType->SessionID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 1;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 1:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- if ( iso1MessageHeaderType->Notification_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1NotificationType(stream, &iso1MessageHeaderType->Notification );
- }
- grammarID = 2;
- } else if ( iso1MessageHeaderType->Signature_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 2:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */
- if ( iso1MessageHeaderType->Signature_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SignatureType(stream, &iso1MessageHeaderType->Signature );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1SignatureType(bitstream_t* stream, struct iso1SignatureType* iso1SignatureType) {
- int grammarID = 5;
- int done = 0;
-
- unsigned int iso1SignatureType_Object_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 5:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- if ( iso1SignatureType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureType->Id.characters, iso1SignatureType->Id.charactersLen);
- }
- }
- grammarID = 6;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo );
- }
- grammarID = 7;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 6:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SignedInfoType(stream, &iso1SignatureType->SignedInfo );
- }
- grammarID = 7;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 7:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SignatureValueType(stream, &iso1SignatureType->SignatureValue );
- }
- grammarID = 8;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 8:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- if ( iso1SignatureType->KeyInfo_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1KeyInfoType(stream, &iso1SignatureType->KeyInfo );
- }
- grammarID = 9;
- } else if (iso1SignatureType_Object_currArrayIndex < iso1SignatureType->Object.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1ObjectType(stream, &iso1SignatureType->Object.array [iso1SignatureType_Object_currArrayIndex++]);
- }
- grammarID = 9;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 9:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */
- if (iso1SignatureType_Object_currArrayIndex < iso1SignatureType->Object.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ObjectType(stream, &iso1SignatureType->Object.array [iso1SignatureType_Object_currArrayIndex++]);
- }
- grammarID = 9;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargeProgress,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":ChargingProfile{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVPowerDeliveryParameter{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1PowerDeliveryReqType(bitstream_t* stream, struct iso1PowerDeliveryReqType* iso1PowerDeliveryReqType) {
- int grammarID = 10;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 10:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1PowerDeliveryReqType->ChargeProgress);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 11;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 11:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1PowerDeliveryReqType->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 12;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 12:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- if ( iso1PowerDeliveryReqType->ChargingProfile_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1ChargingProfileType(stream, &iso1PowerDeliveryReqType->ChargingProfile );
- }
- grammarID = 13;
- } else if ( iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter );
- }
- grammarID = 3;
- } else if ( iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 13:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */
- if ( iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->DC_EVPowerDeliveryParameter );
- }
- grammarID = 3;
- } else if ( iso1PowerDeliveryReqType->EVPowerDeliveryParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1EVPowerDeliveryParameterType(stream, &iso1PowerDeliveryReqType->EVPowerDeliveryParameter );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":boolValue|"urn:iso:15118:2:2013:MsgDataTypes":byteValue|"urn:iso:15118:2:2013:MsgDataTypes":shortValue|"urn:iso:15118:2:2013:MsgDataTypes":intValue|"urn:iso:15118:2:2013:MsgDataTypes":physicalValue|"urn:iso:15118:2:2013:MsgDataTypes":stringValue)', derivedBy='RESTRICTION'. */
- static int encode_iso1ParameterType(bitstream_t* stream, struct iso1ParameterType* iso1ParameterType) {
- int grammarID = 14;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 14:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ParameterType->Name.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ParameterType->Name.characters, iso1ParameterType->Name.charactersLen);
- }
- }
- grammarID = 15;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 15:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue)] */
- if ( iso1ParameterType->boolValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ParameterType->boolValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if ( iso1ParameterType->byteValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1ParameterType->byteValue + 128));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if ( iso1ParameterType->shortValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1ParameterType->shortValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if ( iso1ParameterType->intValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger32(stream, iso1ParameterType->intValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if ( iso1ParameterType->physicalValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1ParameterType->physicalValue );
- }
- grammarID = 3;
- } else if ( iso1ParameterType->stringValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ParameterType->stringValue.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ParameterType->stringValue.characters, iso1ParameterType->stringValue.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":OEMProvisioningCert,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
- static int encode_iso1CertificateInstallationReqType(bitstream_t* stream, struct iso1CertificateInstallationReqType* iso1CertificateInstallationReqType) {
- int grammarID = 16;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 16:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateInstallationReqType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CertificateInstallationReqType->Id.characters, iso1CertificateInstallationReqType->Id.charactersLen);
- }
- }
- grammarID = 17;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 17:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1CertificateInstallationReqType->OEMProvisioningCert.bytes, iso1CertificateInstallationReqType->OEMProvisioningCert.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 18;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateInstallationReqType->ListOfRootCertificateIDs );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1SessionSetupResType(bitstream_t* stream, struct iso1SessionSetupResType* iso1SessionSetupResType) {
- int grammarID = 19;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 19:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1SessionSetupResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 20;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 20:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SessionSetupResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SessionSetupResType->EVSEID.characters, iso1SessionSetupResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 21;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 21:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), END_ELEMENT] */
- if ( iso1SessionSetupResType->EVSETimeStamp_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1SessionSetupResType->EVSETimeStamp);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVChargeParameterType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1EVChargeParameterType(bitstream_t* stream, struct iso1EVChargeParameterType* iso1EVChargeParameterType) {
- int grammarID = 22;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 22:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), END_ELEMENT] */
- if ( iso1EVChargeParameterType->DepartureTime_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1EVChargeParameterType->DepartureTime);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DiffieHellmanPublickeyType', base type name='dHpublickeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
- static int encode_iso1DiffieHellmanPublickeyType(bitstream_t* stream, struct iso1DiffieHellmanPublickeyType* iso1DiffieHellmanPublickeyType) {
- int grammarID = 23;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 23:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DiffieHellmanPublickeyType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1DiffieHellmanPublickeyType->Id.characters, iso1DiffieHellmanPublickeyType->Id.charactersLen);
- }
- }
- grammarID = 24;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 24:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DiffieHellmanPublickeyType->CONTENT.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DiffieHellmanPublickeyType->CONTENT.bytes, iso1DiffieHellmanPublickeyType->CONTENT.bytesLen);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":PaymentOptionList,"urn:iso:15118:2:2013:MsgBody":ChargeService,"urn:iso:15118:2:2013:MsgBody":ServiceList{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1ServiceDiscoveryResType(bitstream_t* stream, struct iso1ServiceDiscoveryResType* iso1ServiceDiscoveryResType) {
- int grammarID = 25;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 25:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1ServiceDiscoveryResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 26;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 26:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PaymentOptionListType(stream, &iso1ServiceDiscoveryResType->PaymentOptionList );
- }
- grammarID = 27;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 27:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ChargeServiceType(stream, &iso1ServiceDiscoveryResType->ChargeService );
- }
- grammarID = 28;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 28:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), END_ELEMENT] */
- if ( iso1ServiceDiscoveryResType->ServiceList_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceListType(stream, &iso1ServiceDiscoveryResType->ServiceList );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceParameterListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSet{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1ServiceParameterListType(bitstream_t* stream, struct iso1ServiceParameterListType* iso1ServiceParameterListType) {
- int grammarID = 29;
- int done = 0;
-
- unsigned int iso1ServiceParameterListType_ParameterSet_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 29:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet)] */
- if (iso1ServiceParameterListType_ParameterSet_currArrayIndex < iso1ServiceParameterListType->ParameterSet.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array [iso1ServiceParameterListType_ParameterSet_currArrayIndex++]);
- }
- grammarID = 30;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 30:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), END_ELEMENT] */
- if (iso1ServiceParameterListType_ParameterSet_currArrayIndex < iso1ServiceParameterListType->ParameterSet.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterSetType(stream, &iso1ServiceParameterListType->ParameterSet.array [iso1ServiceParameterListType_ParameterSet_currArrayIndex++]);
- }
- grammarID = 30;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CertificateChainType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate,"urn:iso:15118:2:2013:MsgDataTypes":SubCertificates{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1CertificateChainType(bitstream_t* stream, struct iso1CertificateChainType* iso1CertificateChainType) {
- int grammarID = 31;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 31:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- if ( iso1CertificateChainType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CertificateChainType->Id.characters, iso1CertificateChainType->Id.charactersLen);
- }
- }
- grammarID = 32;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Certificate.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1CertificateChainType->Certificate.bytes, iso1CertificateChainType->Certificate.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 33;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 32:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateChainType->Certificate.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1CertificateChainType->Certificate.bytes, iso1CertificateChainType->Certificate.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 33;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 33:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), END_ELEMENT] */
- if ( iso1CertificateChainType->SubCertificates_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SubCertificatesType(stream, &iso1CertificateChainType->SubCertificates );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SASchedulesType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1SASchedulesType(bitstream_t* stream, struct iso1SASchedulesType* iso1SASchedulesType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":EVSEIsolationStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatusCode))', derivedBy='EXTENSION'. */
- static int encode_iso1DC_EVSEStatusType(bitstream_t* stream, struct iso1DC_EVSEStatusType* iso1DC_EVSEStatusType) {
- int grammarID = 35;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 35:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1DC_EVSEStatusType->NotificationMaxDelay);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 36;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 36:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1DC_EVSEStatusType->EVSENotification);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 37;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 37:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- if ( iso1DC_EVSEStatusType->EVSEIsolationStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1DC_EVSEStatusType->EVSEIsolationStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 38;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVSEStatusType->EVSEStatusCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 38:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVSEStatusType->EVSEStatusCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
- static int encode_iso1PreChargeResType(bitstream_t* stream, struct iso1PreChargeResType* iso1PreChargeResType) {
- int grammarID = 39;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 39:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1PreChargeResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 40;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 40:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1PreChargeResType->DC_EVSEStatus );
- }
- grammarID = 41;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 41:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeResType->EVSEPresentVoltage );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ParameterSetType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID,"urn:iso:15118:2:2013:MsgDataTypes":Parameter{1-16})', derivedBy='RESTRICTION'. */
- static int encode_iso1ParameterSetType(bitstream_t* stream, struct iso1ParameterSetType* iso1ParameterSetType) {
- int grammarID = 42;
- int done = 0;
-
- unsigned int iso1ParameterSetType_Parameter_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 42:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1ParameterSetType->ParameterSetID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 43;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 43:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter)] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 44;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 44:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 45;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 45:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 46;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 46:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 47;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 47:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 48;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 48:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 49;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 49:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 50;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 50:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 51;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 51:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 52;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 52:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 53;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 53:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 54;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 54:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 55;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 55:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 56;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 56:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 57;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 57:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 58;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 58:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), END_ELEMENT] */
- if (iso1ParameterSetType_Parameter_currArrayIndex < iso1ParameterSetType->Parameter.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &iso1ParameterSetType->Parameter.array [iso1ParameterSetType_Parameter_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceID)', derivedBy='EXTENSION'. */
- static int encode_iso1ServiceDetailReqType(bitstream_t* stream, struct iso1ServiceDetailReqType* iso1ServiceDetailReqType) {
- int grammarID = 59;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 59:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1ServiceDetailReqType->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,RelativeTimeIntervalType', base type name='IntervalType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":start,"urn:iso:15118:2:2013:MsgDataTypes":duration{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1RelativeTimeIntervalType(bitstream_t* stream, struct iso1RelativeTimeIntervalType* iso1RelativeTimeIntervalType) {
- int grammarID = 60;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 60:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1RelativeTimeIntervalType->start);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 61;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 61:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), END_ELEMENT] */
- if ( iso1RelativeTimeIntervalType->duration_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1RelativeTimeIntervalType->duration);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1SignedInfoType(bitstream_t* stream, struct iso1SignedInfoType* iso1SignedInfoType) {
- int grammarID = 62;
- int done = 0;
-
- unsigned int iso1SignedInfoType_Reference_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 62:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- if ( iso1SignedInfoType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignedInfoType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignedInfoType->Id.characters, iso1SignedInfoType->Id.charactersLen);
- }
- }
- grammarID = 63;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod );
- }
- grammarID = 64;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 63:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CanonicalizationMethodType(stream, &iso1SignedInfoType->CanonicalizationMethod );
- }
- grammarID = 64;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 64:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SignatureMethodType(stream, &iso1SignedInfoType->SignatureMethod );
- }
- grammarID = 65;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 65:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- if (iso1SignedInfoType_Reference_currArrayIndex < iso1SignedInfoType->Reference.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array [iso1SignedInfoType_Reference_currArrayIndex++]);
- }
- grammarID = 66;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 66:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- if (iso1SignedInfoType_Reference_currArrayIndex < iso1SignedInfoType->Reference.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &iso1SignedInfoType->Reference.array [iso1SignedInfoType_Reference_currArrayIndex++]);
- }
- grammarID = 66;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EMAIDType', base type name='eMAIDType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
- static int encode_iso1EMAIDType(bitstream_t* stream, struct iso1EMAIDType* iso1EMAIDType) {
- int grammarID = 67;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 67:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1EMAIDType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1EMAIDType->Id.characters, iso1EMAIDType->Id.charactersLen);
- }
- }
- grammarID = 68;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 68:
- /* StartTag[CHARACTERS[STRING]] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1EMAIDType->CONTENT.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1EMAIDType->CONTENT.characters, iso1EMAIDType->CONTENT.charactersLen);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVStatusType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1EVStatusType(bitstream_t* stream, struct iso1EVStatusType* iso1EVStatusType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Service{1-8})', derivedBy='RESTRICTION'. */
- static int encode_iso1ServiceListType(bitstream_t* stream, struct iso1ServiceListType* iso1ServiceListType) {
- int grammarID = 69;
- int done = 0;
-
- unsigned int iso1ServiceListType_Service_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 69:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service)] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 70;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 70:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 71;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 71:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 72;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 72:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 73;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 73:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 74;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 74:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 75;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 75:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 76;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 76:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), END_ELEMENT] */
- if (iso1ServiceListType_Service_currArrayIndex < iso1ServiceListType->Service.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &iso1ServiceListType->Service.array [iso1ServiceListType_Service_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEChargeParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1EVSEChargeParameterType(bitstream_t* stream, struct iso1EVSEChargeParameterType* iso1EVSEChargeParameterType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVPowerDeliveryParameterType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1EVPowerDeliveryParameterType* iso1EVPowerDeliveryParameterType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ProfileEntryType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryStart,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxPower,"urn:iso:15118:2:2013:MsgDataTypes":ChargingProfileEntryMaxNumberOfPhasesInUse{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1ProfileEntryType(bitstream_t* stream, struct iso1ProfileEntryType* iso1ProfileEntryType) {
- int grammarID = 77;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 77:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1ProfileEntryType->ChargingProfileEntryStart);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 78;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 78:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1ProfileEntryType->ChargingProfileEntryMaxPower );
- }
- grammarID = 79;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 79:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), END_ELEMENT] */
- if ( iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, (uint32_t)(iso1ProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":GenChallenge{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1AuthorizationReqType(bitstream_t* stream, struct iso1AuthorizationReqType* iso1AuthorizationReqType) {
- int grammarID = 80;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 80:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- if ( iso1AuthorizationReqType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1AuthorizationReqType->Id.characters, iso1AuthorizationReqType->Id.charactersLen);
- }
- }
- grammarID = 81;
- } else if ( iso1AuthorizationReqType->GenChallenge_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->GenChallenge.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytes, iso1AuthorizationReqType->GenChallenge.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 81:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), END_ELEMENT] */
- if ( iso1AuthorizationReqType->GenChallenge_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1AuthorizationReqType->GenChallenge.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1AuthorizationReqType->GenChallenge.bytes, iso1AuthorizationReqType->GenChallenge.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,MeterInfoType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":MeterID,"urn:iso:15118:2:2013:MsgDataTypes":MeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SigMeterReading{0-1},"urn:iso:15118:2:2013:MsgDataTypes":MeterStatus{0-1},"urn:iso:15118:2:2013:MsgDataTypes":TMeter{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1MeterInfoType(bitstream_t* stream, struct iso1MeterInfoType* iso1MeterInfoType) {
- int grammarID = 82;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 82:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->MeterID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1MeterInfoType->MeterID.characters, iso1MeterInfoType->MeterID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 83;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 83:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( iso1MeterInfoType->MeterReading_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger64(stream, iso1MeterInfoType->MeterReading);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 84;
- } else if ( iso1MeterInfoType->SigMeterReading_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->SigMeterReading.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytes, iso1MeterInfoType->SigMeterReading.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 85;
- } else if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 86;
- } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1MeterInfoType->TMeter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 84:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( iso1MeterInfoType->SigMeterReading_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeterInfoType->SigMeterReading.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1MeterInfoType->SigMeterReading.bytes, iso1MeterInfoType->SigMeterReading.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 85;
- } else if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 86;
- } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1MeterInfoType->TMeter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 85:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( iso1MeterInfoType->MeterStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1MeterInfoType->MeterStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 86;
- } else if ( iso1MeterInfoType->TMeter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1MeterInfoType->TMeter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 86:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), END_ELEMENT] */
- if ( iso1MeterInfoType->TMeter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1MeterInfoType->TMeter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1ManifestType(bitstream_t* stream, struct iso1ManifestType* iso1ManifestType) {
- int grammarID = 87;
- int done = 0;
-
- unsigned int iso1ManifestType_Reference_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 87:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- if ( iso1ManifestType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ManifestType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ManifestType->Id.characters, iso1ManifestType->Id.charactersLen);
- }
- }
- grammarID = 88;
- } else if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]);
- }
- grammarID = 66;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 88:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */
- if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]);
- }
- grammarID = 66;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 66:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */
- if (iso1ManifestType_Reference_currArrayIndex < iso1ManifestType->Reference.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &iso1ManifestType->Reference.array [iso1ManifestType_Reference_currArrayIndex++]);
- }
- grammarID = 66;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing,"urn:iso:15118:2:2013:MsgDataTypes":SASchedules{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEChargeParameter)', derivedBy='EXTENSION'. */
- static int encode_iso1ChargeParameterDiscoveryResType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryResType* iso1ChargeParameterDiscoveryResType) {
- int grammarID = 89;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 89:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1ChargeParameterDiscoveryResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 90;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 90:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeParameterDiscoveryResType->EVSEProcessing);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 91;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 91:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- if ( iso1ChargeParameterDiscoveryResType->SAScheduleList_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1SAScheduleListType(stream, &iso1ChargeParameterDiscoveryResType->SAScheduleList );
- }
- grammarID = 92;
- } else if ( iso1ChargeParameterDiscoveryResType->SASchedules_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1SASchedulesType(stream, &iso1ChargeParameterDiscoveryResType->SASchedules );
- }
- grammarID = 92;
- } else if ( iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 92:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter)] */
- if ( iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->AC_EVSEChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->DC_EVSEChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1EVSEChargeParameterType(stream, &iso1ChargeParameterDiscoveryResType->EVSEChargeParameter );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PowerDeliveryResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
- static int encode_iso1PowerDeliveryResType(bitstream_t* stream, struct iso1PowerDeliveryResType* iso1PowerDeliveryResType) {
- int grammarID = 93;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 93:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1PowerDeliveryResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 94;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- if ( iso1PowerDeliveryResType->AC_EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1PowerDeliveryResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else if ( iso1PowerDeliveryResType->DC_EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1PowerDeliveryResType->DC_EVSEStatus );
- }
- grammarID = 3;
- } else if ( iso1PowerDeliveryResType->EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1EVSEStatusType(stream, &iso1PowerDeliveryResType->EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyCapacity{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVEnergyRequest{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FullSOC{0-1},"urn:iso:15118:2:2013:MsgDataTypes":BulkSOC{0-1}))', derivedBy='EXTENSION'. */
- static int encode_iso1DC_EVChargeParameterType(bitstream_t* stream, struct iso1DC_EVChargeParameterType* iso1DC_EVChargeParameterType) {
- int grammarID = 95;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 95:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- if ( iso1DC_EVChargeParameterType->DepartureTime_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1DC_EVChargeParameterType->DepartureTime);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 96;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus );
- }
- grammarID = 97;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 96:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVChargeParameterType->DC_EVStatus );
- }
- grammarID = 97;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 97:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumCurrentLimit );
- }
- grammarID = 98;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 98:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- if ( iso1DC_EVChargeParameterType->EVMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumPowerLimit );
- }
- grammarID = 99;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit );
- }
- grammarID = 100;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 99:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVMaximumVoltageLimit );
- }
- grammarID = 100;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 100:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- if ( iso1DC_EVChargeParameterType->EVEnergyCapacity_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyCapacity );
- }
- grammarID = 101;
- } else if ( iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest );
- }
- grammarID = 102;
- } else if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 103;
- } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 101:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- if ( iso1DC_EVChargeParameterType->EVEnergyRequest_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVChargeParameterType->EVEnergyRequest );
- }
- grammarID = 102;
- } else if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 103;
- } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 102:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- if ( iso1DC_EVChargeParameterType->FullSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->FullSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 103;
- } else if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 103:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), END_ELEMENT] */
- if ( iso1DC_EVChargeParameterType->BulkSOC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVChargeParameterType->BulkSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ConsumptionCostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":startValue,"urn:iso:15118:2:2013:MsgDataTypes":Cost{1-3})', derivedBy='RESTRICTION'. */
- static int encode_iso1ConsumptionCostType(bitstream_t* stream, struct iso1ConsumptionCostType* iso1ConsumptionCostType) {
- int grammarID = 104;
- int done = 0;
-
- unsigned int iso1ConsumptionCostType_Cost_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 104:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1ConsumptionCostType->startValue );
- }
- grammarID = 105;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 105:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost)] */
- if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]);
- }
- grammarID = 106;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 106:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]);
- }
- grammarID = 107;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 107:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), END_ELEMENT] */
- if (iso1ConsumptionCostType_Cost_currArrayIndex < iso1ConsumptionCostType->Cost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1CostType(stream, &iso1ConsumptionCostType->Cost.array [iso1ConsumptionCostType_Cost_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PMaxScheduleEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1PMaxScheduleType(bitstream_t* stream, struct iso1PMaxScheduleType* iso1PMaxScheduleType) {
- int grammarID = 108;
- int done = 0;
-
- unsigned int iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 108:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry)] */
- if (iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array [iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]);
- }
- grammarID = 109;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 109:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */
- if (iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex < iso1PMaxScheduleType->PMaxScheduleEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleEntryType(stream, &iso1PMaxScheduleType->PMaxScheduleEntry.array [iso1PMaxScheduleType_PMaxScheduleEntry_currArrayIndex++]);
- }
- grammarID = 109;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PaymentOptionListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":PaymentOption{1-2})', derivedBy='RESTRICTION'. */
- static int encode_iso1PaymentOptionListType(bitstream_t* stream, struct iso1PaymentOptionListType* iso1PaymentOptionListType) {
- int grammarID = 110;
- int done = 0;
-
- unsigned int iso1PaymentOptionListType_PaymentOption_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 110:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption)] */
- if (iso1PaymentOptionListType_PaymentOption_currArrayIndex < iso1PaymentOptionListType->PaymentOption.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType_PaymentOption_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 111;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 111:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), END_ELEMENT] */
- if (iso1PaymentOptionListType_PaymentOption_currArrayIndex < iso1PaymentOptionListType->PaymentOption.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentOptionListType->PaymentOption.array[iso1PaymentOptionListType_PaymentOption_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any])){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1ObjectType(bitstream_t* stream, struct iso1ObjectType* iso1ObjectType) {
- int grammarID = 112;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 112:
- /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1ObjectType->Encoding_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Encoding.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->Encoding.characters, iso1ObjectType->Encoding.charactersLen);
- }
- }
- grammarID = 113;
- } else if ( iso1ObjectType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->Id.characters, iso1ObjectType->Id.charactersLen);
- }
- }
- grammarID = 114;
- } else if ( iso1ObjectType->MimeType_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen);
- }
- }
- grammarID = 115;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1ObjectType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 5);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 113:
- /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1ObjectType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->Id.characters, iso1ObjectType->Id.charactersLen);
- }
- }
- grammarID = 114;
- } else if ( iso1ObjectType->MimeType_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen);
- }
- }
- grammarID = 115;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1ObjectType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 114:
- /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1ObjectType->MimeType_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->MimeType.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->MimeType.characters, iso1ObjectType->MimeType.charactersLen);
- }
- }
- grammarID = 115;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1ObjectType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 115:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1ObjectType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 116:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1ObjectType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1ObjectType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ObjectType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ObjectType->ANY.characters, iso1ObjectType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PhysicalValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Multiplier,"urn:iso:15118:2:2013:MsgDataTypes":Unit,"urn:iso:15118:2:2013:MsgDataTypes":Value)', derivedBy='RESTRICTION'. */
- static int encode_iso1PhysicalValueType(bitstream_t* stream, struct iso1PhysicalValueType* iso1PhysicalValueType) {
- int grammarID = 117;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 117:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(iso1PhysicalValueType->Multiplier + 3));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 118;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 118:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1PhysicalValueType->Unit);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 119;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 119:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1PhysicalValueType->Value);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)', derivedBy='RESTRICTION'. */
- static int encode_iso1RSAKeyValueType(bitstream_t* stream, struct iso1RSAKeyValueType* iso1RSAKeyValueType) {
- int grammarID = 120;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 120:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RSAKeyValueType->Modulus.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1RSAKeyValueType->Modulus.bytes, iso1RSAKeyValueType->Modulus.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 121;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 121:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RSAKeyValueType->Exponent.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1RSAKeyValueType->Exponent.bytes, iso1RSAKeyValueType->Exponent.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
- static int encode_iso1SessionStopResType(bitstream_t* stream, struct iso1SessionStopResType* iso1SessionStopResType) {
- int grammarID = 122;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 122:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1SessionStopResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ListOfRootCertificateIDs)', derivedBy='EXTENSION'. */
- static int encode_iso1CertificateUpdateReqType(bitstream_t* stream, struct iso1CertificateUpdateReqType* iso1CertificateUpdateReqType) {
- int grammarID = 123;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 123:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateUpdateReqType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CertificateUpdateReqType->Id.characters, iso1CertificateUpdateReqType->Id.charactersLen);
- }
- }
- grammarID = 124;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 124:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateReqType->ContractSignatureCertChain );
- }
- grammarID = 125;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 125:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CertificateUpdateReqType->eMAID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CertificateUpdateReqType->eMAID.characters, iso1CertificateUpdateReqType->eMAID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 18;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 18:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ListOfRootCertificateIDsType(stream, &iso1CertificateUpdateReqType->ListOfRootCertificateIDs );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType', base type name='base64Binary', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
- static int encode_iso1SignatureValueType(bitstream_t* stream, struct iso1SignatureValueType* iso1SignatureValueType) {
- int grammarID = 126;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 126:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */
- if ( iso1SignatureValueType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureValueType->Id.characters, iso1SignatureValueType->Id.charactersLen);
- }
- }
- grammarID = 24;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->CONTENT.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SignatureValueType->CONTENT.bytes, iso1SignatureValueType->CONTENT.bytesLen);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 24:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureValueType->CONTENT.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SignatureValueType->CONTENT.bytes, iso1SignatureValueType->CONTENT.bytesLen);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain)', derivedBy='EXTENSION'. */
- static int encode_iso1PaymentDetailsReqType(bitstream_t* stream, struct iso1PaymentDetailsReqType* iso1PaymentDetailsReqType) {
- int grammarID = 127;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 127:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PaymentDetailsReqType->eMAID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1PaymentDetailsReqType->eMAID.characters, iso1PaymentDetailsReqType->eMAID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 128;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 128:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1PaymentDetailsReqType->ContractSignatureCertChain );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,AuthorizationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
- static int encode_iso1AuthorizationResType(bitstream_t* stream, struct iso1AuthorizationResType* iso1AuthorizationResType) {
- int grammarID = 129;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 129:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1AuthorizationResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 130;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1AuthorizationResType->EVSEProcessing);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumPowerLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaximumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumCurrentLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMinimumVoltageLimit,"urn:iso:15118:2:2013:MsgDataTypes":EVSECurrentRegulationTolerance{0-1},"urn:iso:15118:2:2013:MsgDataTypes":EVSEPeakCurrentRipple,"urn:iso:15118:2:2013:MsgDataTypes":EVSEEnergyToBeDelivered{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1DC_EVSEChargeParameterType(bitstream_t* stream, struct iso1DC_EVSEChargeParameterType* iso1DC_EVSEChargeParameterType) {
- int grammarID = 131;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 131:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1DC_EVSEChargeParameterType->DC_EVSEStatus );
- }
- grammarID = 132;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 132:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumCurrentLimit );
- }
- grammarID = 133;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 133:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumPowerLimit );
- }
- grammarID = 134;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 134:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMaximumVoltageLimit );
- }
- grammarID = 135;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 135:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumCurrentLimit );
- }
- grammarID = 136;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 136:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEMinimumVoltageLimit );
- }
- grammarID = 137;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 137:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- if ( iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSECurrentRegulationTolerance );
- }
- grammarID = 138;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple );
- }
- grammarID = 139;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 138:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEPeakCurrentRipple );
- }
- grammarID = 139;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 139:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */
- if ( iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1DC_EVSEChargeParameterType->EVSEEnergyToBeDelivered );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SubCertificatesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":Certificate{1-4})', derivedBy='RESTRICTION'. */
- static int encode_iso1SubCertificatesType(bitstream_t* stream, struct iso1SubCertificatesType* iso1SubCertificatesType) {
- int grammarID = 140;
- int done = 0;
-
- unsigned int iso1SubCertificatesType_Certificate_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 140:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate)] */
- if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen);
- iso1SubCertificatesType_Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 141;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 141:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen);
- iso1SubCertificatesType_Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 142;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 142:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen);
- iso1SubCertificatesType_Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 143;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 143:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), END_ELEMENT] */
- if (iso1SubCertificatesType_Certificate_currArrayIndex < iso1SubCertificatesType->Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytes, iso1SubCertificatesType->Certificate.array[iso1SubCertificatesType_Certificate_currArrayIndex].bytesLen);
- iso1SubCertificatesType_Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":EVSEMaxCurrent{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1},"urn:iso:15118:2:2013:MsgBody":AC_EVSEStatus)', derivedBy='EXTENSION'. */
- static int encode_iso1ChargingStatusResType(bitstream_t* stream, struct iso1ChargingStatusResType* iso1ChargingStatusResType) {
- int grammarID = 144;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 144:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1ChargingStatusResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 145;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 145:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargingStatusResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ChargingStatusResType->EVSEID.characters, iso1ChargingStatusResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 146;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 146:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1ChargingStatusResType->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 147;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 147:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- if ( iso1ChargingStatusResType->EVSEMaxCurrent_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1ChargingStatusResType->EVSEMaxCurrent );
- }
- grammarID = 148;
- } else if ( iso1ChargingStatusResType->MeterInfo_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo );
- }
- grammarID = 149;
- } else if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 150;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 148:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- if ( iso1ChargingStatusResType->MeterInfo_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &iso1ChargingStatusResType->MeterInfo );
- }
- grammarID = 149;
- } else if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 150;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 149:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- if ( iso1ChargingStatusResType->ReceiptRequired_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ChargingStatusResType->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 150;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 150:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1ChargingStatusResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1DSAKeyValueType(bitstream_t* stream, struct iso1DSAKeyValueType* iso1DSAKeyValueType) {
- int grammarID = 151;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 151:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- if ( iso1DSAKeyValueType->P_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->P.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->P.bytes, iso1DSAKeyValueType->P.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 152;
- } else if ( iso1DSAKeyValueType->G_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->G.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->G.bytes, iso1DSAKeyValueType->G.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 153;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 154;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 152:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */
- if ( iso1DSAKeyValueType->Q_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Q.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Q.bytes, iso1DSAKeyValueType->Q.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 155;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 155:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- if ( iso1DSAKeyValueType->G_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->G.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->G.bytes, iso1DSAKeyValueType->G.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 153;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 154;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 153:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Y.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Y.bytes, iso1DSAKeyValueType->Y.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 154;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 154:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- if ( iso1DSAKeyValueType->J_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->J.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->J.bytes, iso1DSAKeyValueType->J.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 156;
- } else if ( iso1DSAKeyValueType->Seed_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Seed.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Seed.bytes, iso1DSAKeyValueType->Seed.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 157;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 156:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */
- if ( iso1DSAKeyValueType->Seed_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->Seed.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->Seed.bytes, iso1DSAKeyValueType->Seed.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 157;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 157:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */
- if ( iso1DSAKeyValueType->PgenCounter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DSAKeyValueType->PgenCounter.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1DSAKeyValueType->PgenCounter.bytes, iso1DSAKeyValueType->PgenCounter.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ListOfRootCertificateIDsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":RootCertificateID{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1ListOfRootCertificateIDsType(bitstream_t* stream, struct iso1ListOfRootCertificateIDsType* iso1ListOfRootCertificateIDsType) {
- int grammarID = 158;
- int done = 0;
-
- unsigned int iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 158:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID)] */
- if (iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array [iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]);
- }
- grammarID = 159;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 159:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), END_ELEMENT] */
- if (iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex < iso1ListOfRootCertificateIDsType->RootCertificateID.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &iso1ListOfRootCertificateIDsType->RootCertificateID.array [iso1ListOfRootCertificateIDsType_RootCertificateID_currArrayIndex++]);
- }
- grammarID = 159;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargeServiceType', base type name='ServiceType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService),("urn:iso:15118:2:2013:MsgDataTypes":SupportedEnergyTransferMode))', derivedBy='EXTENSION'. */
- static int encode_iso1ChargeServiceType(bitstream_t* stream, struct iso1ChargeServiceType* iso1ChargeServiceType) {
- int grammarID = 160;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 160:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1ChargeServiceType->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 161;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 161:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- if ( iso1ChargeServiceType->ServiceName_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargeServiceType->ServiceName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ChargeServiceType->ServiceName.characters, iso1ChargeServiceType->ServiceName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 162;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeServiceType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 163;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 162:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ChargeServiceType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 163;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 163:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- if ( iso1ChargeServiceType->ServiceScope_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ChargeServiceType->ServiceScope.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ChargeServiceType->ServiceScope.characters, iso1ChargeServiceType->ServiceScope.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 164;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ChargeServiceType->FreeService);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 165;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 164:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ChargeServiceType->FreeService);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 165;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 165:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SupportedEnergyTransferModeType(stream, &iso1ChargeServiceType->SupportedEnergyTransferMode );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,IntervalType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1IntervalType(bitstream_t* stream, struct iso1IntervalType* iso1IntervalType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SessionID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID{0-1},"urn:iso:15118:2:2013:MsgBody":MeterInfo)', derivedBy='EXTENSION'. */
- static int encode_iso1MeteringReceiptReqType(bitstream_t* stream, struct iso1MeteringReceiptReqType* iso1MeteringReceiptReqType) {
- int grammarID = 166;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 166:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- if ( iso1MeteringReceiptReqType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1MeteringReceiptReqType->Id.characters, iso1MeteringReceiptReqType->Id.charactersLen);
- }
- }
- grammarID = 167;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->SessionID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytes, iso1MeteringReceiptReqType->SessionID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 168;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 167:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1MeteringReceiptReqType->SessionID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1MeteringReceiptReqType->SessionID.bytes, iso1MeteringReceiptReqType->SessionID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 168;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 168:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- if ( iso1MeteringReceiptReqType->SAScheduleTupleID_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1MeteringReceiptReqType->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 169;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 169:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &iso1MeteringReceiptReqType->MeterInfo );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDetailResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":ServiceID,"urn:iso:15118:2:2013:MsgBody":ServiceParameterList{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1ServiceDetailResType(bitstream_t* stream, struct iso1ServiceDetailResType* iso1ServiceDetailResType) {
- int grammarID = 170;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 170:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1ServiceDetailResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 171;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 171:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1ServiceDetailResType->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 172;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 172:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), END_ELEMENT] */
- if ( iso1ServiceDetailResType->ServiceParameterList_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ServiceParameterListType(stream, &iso1ServiceDetailResType->ServiceParameterList );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))', derivedBy='RESTRICTION'. */
- static int encode_iso1KeyValueType(bitstream_t* stream, struct iso1KeyValueType* iso1KeyValueType) {
- int grammarID = 173;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 173:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if ( iso1KeyValueType->DSAKeyValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue );
- }
- grammarID = 174;
- } else if ( iso1KeyValueType->RSAKeyValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue );
- }
- grammarID = 174;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 174;
- } else if ( iso1KeyValueType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 175;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 174:
- /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1KeyValueType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1KeyValueType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 174;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 175:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if ( iso1KeyValueType->DSAKeyValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1DSAKeyValueType(stream, &iso1KeyValueType->DSAKeyValue );
- }
- grammarID = 174;
- } else if ( iso1KeyValueType->RSAKeyValue_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1RSAKeyValueType(stream, &iso1KeyValueType->RSAKeyValue );
- }
- grammarID = 174;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 174;
- } else if ( iso1KeyValueType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyValueType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyValueType->ANY.characters, iso1KeyValueType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 175;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceListType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SelectedService{1-16})', derivedBy='RESTRICTION'. */
- static int encode_iso1SelectedServiceListType(bitstream_t* stream, struct iso1SelectedServiceListType* iso1SelectedServiceListType) {
- int grammarID = 176;
- int done = 0;
-
- unsigned int iso1SelectedServiceListType_SelectedService_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 176:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService)] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 177;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 177:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 178;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 178:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 179;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 179:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 180;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 180:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 181;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 181:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 182;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 182:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 183;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 183:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 184;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 184:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 185;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 185:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 186;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 186:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 187;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 187:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 188;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 188:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 189;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 189:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 190;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 190:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 191;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 191:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), END_ELEMENT] */
- if (iso1SelectedServiceListType_SelectedService_currArrayIndex < iso1SelectedServiceListType->SelectedService.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &iso1SelectedServiceListType->SelectedService.array [iso1SelectedServiceListType_SelectedService_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEProcessing)', derivedBy='EXTENSION'. */
- static int encode_iso1CableCheckResType(bitstream_t* stream, struct iso1CableCheckResType* iso1CableCheckResType) {
- int grammarID = 192;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 192:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1CableCheckResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 193;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 193:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1CableCheckResType->DC_EVSEStatus );
- }
- grammarID = 130;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 130:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1CableCheckResType->EVSEProcessing);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)', derivedBy='RESTRICTION'. */
- static int encode_iso1X509IssuerSerialType(bitstream_t* stream, struct iso1X509IssuerSerialType* iso1X509IssuerSerialType) {
- int grammarID = 194;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 194:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509IssuerSerialType->X509IssuerName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1X509IssuerSerialType->X509IssuerName.characters, iso1X509IssuerSerialType->X509IssuerName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 195;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 195:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* errn = encodeInteger64(stream, iso1X509IssuerSerialType->X509SerialNumber); */
- errn = encodeIntegerBig(stream, iso1X509IssuerSerialType->X509SerialNumber.negative, iso1X509IssuerSerialType_X509SerialNumber_BYTES_SIZE, iso1X509IssuerSerialType->X509SerialNumber.data, iso1X509IssuerSerialType->X509SerialNumber.len);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1KeyInfoType(bitstream_t* stream, struct iso1KeyInfoType* iso1KeyInfoType) {
- int grammarID = 196;
- int done = 0;
- int wcDone = 0;
-
- unsigned int iso1KeyInfoType_KeyName_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_KeyValue_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_RetrievalMethod_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_X509Data_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_PGPData_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_SPKIData_currArrayIndex = 0;
- unsigned int iso1KeyInfoType_MgmtData_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 196:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if ( iso1KeyInfoType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->Id.characters, iso1KeyInfoType->Id.charactersLen);
- }
- }
- grammarID = 197;
- } else if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen);
- iso1KeyInfoType_KeyName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 2);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 3);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 4);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 5);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 6);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 7);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen);
- iso1KeyInfoType_MgmtData_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 198;
- } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 199;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 197:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen);
- iso1KeyInfoType_KeyName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 1);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 2);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 3);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 4);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 5);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 6);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen);
- iso1KeyInfoType_MgmtData_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 198;
- } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 199;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 198:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen);
- iso1KeyInfoType_KeyName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 1);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 2);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 3);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 4);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 5);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 6);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen);
- iso1KeyInfoType_MgmtData_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 198;
- } else if ( iso1KeyInfoType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 9);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 198;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 199:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (iso1KeyInfoType_KeyName_currArrayIndex < iso1KeyInfoType->KeyName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].characters, iso1KeyInfoType->KeyName.array[iso1KeyInfoType_KeyName_currArrayIndex].charactersLen);
- iso1KeyInfoType_KeyName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_KeyValue_currArrayIndex < iso1KeyInfoType->KeyValue.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 1);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &iso1KeyInfoType->KeyValue.array [iso1KeyInfoType_KeyValue_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_RetrievalMethod_currArrayIndex < iso1KeyInfoType->RetrievalMethod.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 2);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &iso1KeyInfoType->RetrievalMethod.array [iso1KeyInfoType_RetrievalMethod_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_X509Data_currArrayIndex < iso1KeyInfoType->X509Data.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 3);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &iso1KeyInfoType->X509Data.array [iso1KeyInfoType_X509Data_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_PGPData_currArrayIndex < iso1KeyInfoType->PGPData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 4);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &iso1KeyInfoType->PGPData.array [iso1KeyInfoType_PGPData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_SPKIData_currArrayIndex < iso1KeyInfoType->SPKIData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 5);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &iso1KeyInfoType->SPKIData.array [iso1KeyInfoType_SPKIData_currArrayIndex++]);
- }
- grammarID = 198;
- } else if (iso1KeyInfoType_MgmtData_currArrayIndex < iso1KeyInfoType->MgmtData.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 6);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].characters, iso1KeyInfoType->MgmtData.array[iso1KeyInfoType_MgmtData_currArrayIndex].charactersLen);
- iso1KeyInfoType_MgmtData_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 198;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 198;
- } else if ( iso1KeyInfoType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 4, 8);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1KeyInfoType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1KeyInfoType->ANY.characters, iso1KeyInfoType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 199;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1TransformsType(bitstream_t* stream, struct iso1TransformsType* iso1TransformsType) {
- int grammarID = 200;
- int done = 0;
-
- unsigned int iso1TransformsType_Transform_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 200:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */
- if (iso1TransformsType_Transform_currArrayIndex < iso1TransformsType->Transform.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1TransformType(stream, &iso1TransformsType->Transform.array [iso1TransformsType_Transform_currArrayIndex++]);
- }
- grammarID = 201;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 201:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */
- if (iso1TransformsType_Transform_currArrayIndex < iso1TransformsType->Transform.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1TransformType(stream, &iso1TransformsType->Transform.array [iso1TransformsType_Transform_currArrayIndex++]);
- }
- grammarID = 201;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargeParameterDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":MaxEntriesSAScheduleTuple{0-1},"urn:iso:15118:2:2013:MsgBody":RequestedEnergyTransferMode,"urn:iso:15118:2:2013:MsgDataTypes":EVChargeParameter)', derivedBy='EXTENSION'. */
- static int encode_iso1ChargeParameterDiscoveryReqType(bitstream_t* stream, struct iso1ChargeParameterDiscoveryReqType* iso1ChargeParameterDiscoveryReqType) {
- int grammarID = 202;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 202:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- if ( iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1ChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 203;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 204;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 203:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1ChargeParameterDiscoveryReqType->RequestedEnergyTransferMode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 204;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 204:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter)] */
- if ( iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->AC_EVChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->DC_EVChargeParameter );
- }
- grammarID = 3;
- } else if ( iso1ChargeParameterDiscoveryReqType->EVChargeParameter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1EVChargeParameterType(stream, &iso1ChargeParameterDiscoveryReqType->EVChargeParameter );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PreChargeReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent)', derivedBy='EXTENSION'. */
- static int encode_iso1PreChargeReqType(bitstream_t* stream, struct iso1PreChargeReqType* iso1PreChargeReqType) {
- int grammarID = 205;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 205:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1PreChargeReqType->DC_EVStatus );
- }
- grammarID = 206;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 206:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetVoltage );
- }
- grammarID = 207;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 207:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1PreChargeReqType->EVTargetCurrent );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EVSEStatusType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification)', derivedBy='RESTRICTION'. */
- static int encode_iso1EVSEStatusType(bitstream_t* stream, struct iso1EVSEStatusType* iso1EVSEStatusType) {
- int grammarID = 208;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 208:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1EVSEStatusType->NotificationMaxDelay);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 209;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 209:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1EVSEStatusType->EVSENotification);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1SignatureMethodType(bitstream_t* stream, struct iso1SignatureMethodType* iso1SignatureMethodType) {
- int grammarID = 210;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 210:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->Algorithm.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureMethodType->Algorithm.characters, iso1SignatureMethodType->Algorithm.charactersLen);
- }
- }
- grammarID = 211;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 211:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1SignatureMethodType->HMACOutputLength_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1SignatureMethodType->HMACOutputLength);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 116;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 212;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 116:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 212:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( iso1SignatureMethodType->HMACOutputLength_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1SignatureMethodType->HMACOutputLength);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 116;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1SignatureMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignatureMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignatureMethodType->ANY.characters, iso1SignatureMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 212;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1X509DataType(bitstream_t* stream, struct iso1X509DataType* iso1X509DataType) {
- int grammarID = 213;
- int done = 0;
- int wcDone = 0;
-
- unsigned int iso1X509DataType_X509IssuerSerial_currArrayIndex = 0;
- unsigned int iso1X509DataType_X509SKI_currArrayIndex = 0;
- unsigned int iso1X509DataType_X509SubjectName_currArrayIndex = 0;
- unsigned int iso1X509DataType_X509Certificate_currArrayIndex = 0;
- unsigned int iso1X509DataType_X509CRL_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 213:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */
- if (iso1X509DataType_X509IssuerSerial_currArrayIndex < iso1X509DataType->X509IssuerSerial.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array [iso1X509DataType_X509IssuerSerial_currArrayIndex++]);
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509SKI_currArrayIndex < iso1X509DataType->X509SKI.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytes, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen);
- iso1X509DataType_X509SKI_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509SubjectName_currArrayIndex < iso1X509DataType->X509SubjectName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].characters, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen);
- iso1X509DataType_X509SubjectName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509Certificate_currArrayIndex < iso1X509DataType->X509Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytes, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen);
- iso1X509DataType_X509Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509CRL_currArrayIndex < iso1X509DataType->X509CRL.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytes, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen);
- iso1X509DataType_X509CRL_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 214;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 214:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */
- if (iso1X509DataType_X509IssuerSerial_currArrayIndex < iso1X509DataType->X509IssuerSerial.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &iso1X509DataType->X509IssuerSerial.array [iso1X509DataType_X509IssuerSerial_currArrayIndex++]);
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509SKI_currArrayIndex < iso1X509DataType->X509SKI.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytes, iso1X509DataType->X509SKI.array[iso1X509DataType_X509SKI_currArrayIndex].bytesLen);
- iso1X509DataType_X509SKI_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509SubjectName_currArrayIndex < iso1X509DataType->X509SubjectName.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].characters, iso1X509DataType->X509SubjectName.array[iso1X509DataType_X509SubjectName_currArrayIndex].charactersLen);
- iso1X509DataType_X509SubjectName_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509Certificate_currArrayIndex < iso1X509DataType->X509Certificate.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytes, iso1X509DataType->X509Certificate.array[iso1X509DataType_X509Certificate_currArrayIndex].bytesLen);
- iso1X509DataType_X509Certificate_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (iso1X509DataType_X509CRL_currArrayIndex < iso1X509DataType->X509CRL.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytes, iso1X509DataType->X509CRL.array[iso1X509DataType_X509CRL_currArrayIndex].bytesLen);
- iso1X509DataType_X509CRL_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 214;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 214;
- } else if ( iso1X509DataType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 6);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,NotificationType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":FaultCode,"urn:iso:15118:2:2013:MsgDataTypes":FaultMsg{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1NotificationType(bitstream_t* stream, struct iso1NotificationType* iso1NotificationType) {
- int grammarID = 215;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 215:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1NotificationType->FaultCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 216;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 216:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), END_ELEMENT] */
- if ( iso1NotificationType->FaultMsg_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1NotificationType->FaultMsg.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1NotificationType->FaultMsg.characters, iso1NotificationType->FaultMsg.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleListType', base type name='SASchedulesType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTuple{1-3})', derivedBy='EXTENSION'. */
- static int encode_iso1SAScheduleListType(bitstream_t* stream, struct iso1SAScheduleListType* iso1SAScheduleListType) {
- int grammarID = 217;
- int done = 0;
-
- unsigned int iso1SAScheduleListType_SAScheduleTuple_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 217:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple)] */
- if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]);
- }
- grammarID = 218;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 218:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]);
- }
- grammarID = 219;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 219:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */
- if (iso1SAScheduleListType_SAScheduleTuple_currArrayIndex < iso1SAScheduleListType->SAScheduleTuple.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SAScheduleTupleType(stream, &iso1SAScheduleListType->SAScheduleTuple.array [iso1SAScheduleListType_SAScheduleTuple_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":BodyElement{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1BodyType(bitstream_t* stream, struct iso1BodyType* iso1BodyType) {
- int grammarID = 220;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 220:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), END_ELEMENT] */
- if ( iso1BodyType->AuthorizationReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 0);
- if(errn == 0) {
- errn = encode_iso1AuthorizationReqType(stream, &iso1BodyType->AuthorizationReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->AuthorizationRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 1);
- if(errn == 0) {
- errn = encode_iso1AuthorizationResType(stream, &iso1BodyType->AuthorizationRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->BodyElement_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 2);
- if(errn == 0) {
- errn = encode_iso1BodyBaseType(stream, &iso1BodyType->BodyElement );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CableCheckReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 3);
- if(errn == 0) {
- errn = encode_iso1CableCheckReqType(stream, &iso1BodyType->CableCheckReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CableCheckRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 4);
- if(errn == 0) {
- errn = encode_iso1CableCheckResType(stream, &iso1BodyType->CableCheckRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CertificateInstallationReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 5);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationReqType(stream, &iso1BodyType->CertificateInstallationReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CertificateInstallationRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 6);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationResType(stream, &iso1BodyType->CertificateInstallationRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CertificateUpdateReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 7);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateReqType(stream, &iso1BodyType->CertificateUpdateReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CertificateUpdateRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 8);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateResType(stream, &iso1BodyType->CertificateUpdateRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ChargeParameterDiscoveryReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 9);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &iso1BodyType->ChargeParameterDiscoveryReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ChargeParameterDiscoveryRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 10);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryResType(stream, &iso1BodyType->ChargeParameterDiscoveryRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ChargingStatusReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 11);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusReqType(stream, &iso1BodyType->ChargingStatusReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ChargingStatusRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 12);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusResType(stream, &iso1BodyType->ChargingStatusRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CurrentDemandReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 13);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandReqType(stream, &iso1BodyType->CurrentDemandReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->CurrentDemandRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 14);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandResType(stream, &iso1BodyType->CurrentDemandRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->MeteringReceiptReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 15);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptReqType(stream, &iso1BodyType->MeteringReceiptReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->MeteringReceiptRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 16);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptResType(stream, &iso1BodyType->MeteringReceiptRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PaymentDetailsReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 17);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsReqType(stream, &iso1BodyType->PaymentDetailsReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PaymentDetailsRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 18);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsResType(stream, &iso1BodyType->PaymentDetailsRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PaymentServiceSelectionReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 19);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionReqType(stream, &iso1BodyType->PaymentServiceSelectionReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PaymentServiceSelectionRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 20);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionResType(stream, &iso1BodyType->PaymentServiceSelectionRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PowerDeliveryReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 21);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryReqType(stream, &iso1BodyType->PowerDeliveryReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PowerDeliveryRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 22);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryResType(stream, &iso1BodyType->PowerDeliveryRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PreChargeReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 23);
- if(errn == 0) {
- errn = encode_iso1PreChargeReqType(stream, &iso1BodyType->PreChargeReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->PreChargeRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 24);
- if(errn == 0) {
- errn = encode_iso1PreChargeResType(stream, &iso1BodyType->PreChargeRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ServiceDetailReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 25);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailReqType(stream, &iso1BodyType->ServiceDetailReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ServiceDetailRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 26);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailResType(stream, &iso1BodyType->ServiceDetailRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ServiceDiscoveryReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 27);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryReqType(stream, &iso1BodyType->ServiceDiscoveryReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->ServiceDiscoveryRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 28);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryResType(stream, &iso1BodyType->ServiceDiscoveryRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->SessionSetupReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 29);
- if(errn == 0) {
- errn = encode_iso1SessionSetupReqType(stream, &iso1BodyType->SessionSetupReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->SessionSetupRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 30);
- if(errn == 0) {
- errn = encode_iso1SessionSetupResType(stream, &iso1BodyType->SessionSetupRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->SessionStopReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 31);
- if(errn == 0) {
- errn = encode_iso1SessionStopReqType(stream, &iso1BodyType->SessionStopReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->SessionStopRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 32);
- if(errn == 0) {
- errn = encode_iso1SessionStopResType(stream, &iso1BodyType->SessionStopRes );
- }
- grammarID = 3;
- } else if ( iso1BodyType->WeldingDetectionReq_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 33);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionReqType(stream, &iso1BodyType->WeldingDetectionReq );
- }
- grammarID = 3;
- } else if ( iso1BodyType->WeldingDetectionRes_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 6, 34);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionResType(stream, &iso1BodyType->WeldingDetectionRes );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 6, 35);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ChargingProfileType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ProfileEntry{1-24})', derivedBy='RESTRICTION'. */
- static int encode_iso1ChargingProfileType(bitstream_t* stream, struct iso1ChargingProfileType* iso1ChargingProfileType) {
- int grammarID = 221;
- int done = 0;
-
- unsigned int iso1ChargingProfileType_ProfileEntry_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 221:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry)] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 222;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 222:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 223;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 223:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 224;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 224:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 225;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 225:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 226;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 226:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 227;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 227:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 228;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 228:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 229;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 229:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 230;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 230:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 231;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 231:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 232;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 232:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 233;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 233:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 234;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 234:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 235;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 235:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 236;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 236:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 237;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 237:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 238;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 238:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 239;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 239:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 240;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 240:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 241;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 241:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 242;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 242:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 243;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 243:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 244;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 244:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), END_ELEMENT] */
- if (iso1ChargingProfileType_ProfileEntry_currArrayIndex < iso1ChargingProfileType->ProfileEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &iso1ChargingProfileType->ProfileEntry.array [iso1ChargingProfileType_ProfileEntry_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1TransformType(bitstream_t* stream, struct iso1TransformType* iso1TransformType) {
- int grammarID = 245;
- int done = 0;
- int wcDone = 0;
-
- unsigned int iso1TransformType_XPath_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 245:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->Algorithm.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1TransformType->Algorithm.characters, iso1TransformType->Algorithm.charactersLen);
- }
- }
- grammarID = 246;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 246:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (iso1TransformType_XPath_currArrayIndex < iso1TransformType->XPath.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].characters, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen);
- iso1TransformType_XPath_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 247;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 247;
- } else if ( iso1TransformType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1TransformType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1TransformType->ANY.characters, iso1TransformType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 247;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 247:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (iso1TransformType_XPath_currArrayIndex < iso1TransformType->XPath.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].characters, iso1TransformType->XPath.array[iso1TransformType_XPath_currArrayIndex].charactersLen);
- iso1TransformType_XPath_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 247;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 247;
- } else if ( iso1TransformType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1TransformType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1TransformType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1TransformType->ANY.characters, iso1TransformType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 247;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SAScheduleTupleType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgDataTypes":PMaxSchedule,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariff{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1SAScheduleTupleType(bitstream_t* stream, struct iso1SAScheduleTupleType* iso1SAScheduleTupleType) {
- int grammarID = 248;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 248:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SAScheduleTupleType->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 249;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 249:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleType(stream, &iso1SAScheduleTupleType->PMaxSchedule );
- }
- grammarID = 250;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 250:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), END_ELEMENT] */
- if ( iso1SAScheduleTupleType->SalesTariff_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SalesTariffType(stream, &iso1SAScheduleTupleType->SalesTariff );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVChargeParameterType', base type name='EVChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":DepartureTime{0-1}),("urn:iso:15118:2:2013:MsgDataTypes":EAmount,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVMaxCurrent,"urn:iso:15118:2:2013:MsgDataTypes":EVMinCurrent))', derivedBy='EXTENSION'. */
- static int encode_iso1AC_EVChargeParameterType(bitstream_t* stream, struct iso1AC_EVChargeParameterType* iso1AC_EVChargeParameterType) {
- int grammarID = 251;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 251:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- if ( iso1AC_EVChargeParameterType->DepartureTime_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1AC_EVChargeParameterType->DepartureTime);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 252;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount );
- }
- grammarID = 253;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 252:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EAmount );
- }
- grammarID = 253;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 253:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxVoltage );
- }
- grammarID = 254;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 254:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMaxCurrent );
- }
- grammarID = 255;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 255:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVChargeParameterType->EVMinCurrent );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDef,#AnonType_V2G_Message', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDef":Header,"urn:iso:15118:2:2013:MsgDef":Body)', derivedBy='RESTRICTION'. */
- static int encode_iso1AnonType_V2G_Message(bitstream_t* stream, struct iso1AnonType_V2G_Message* iso1AnonType_V2G_Message) {
- int grammarID = 256;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 256:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1MessageHeaderType(stream, &iso1AnonType_V2G_Message->Header );
- }
- grammarID = 257;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 257:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1BodyType(stream, &iso1AnonType_V2G_Message->Body );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentDetailsResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":GenChallenge,"urn:iso:15118:2:2013:MsgBody":EVSETimeStamp)', derivedBy='EXTENSION'. */
- static int encode_iso1PaymentDetailsResType(bitstream_t* stream, struct iso1PaymentDetailsResType* iso1PaymentDetailsResType) {
- int grammarID = 258;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 258:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1PaymentDetailsResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 259;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 259:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PaymentDetailsResType->GenChallenge.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1PaymentDetailsResType->GenChallenge.bytes, iso1PaymentDetailsResType->GenChallenge.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 260;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 260:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, iso1PaymentDetailsResType->EVSETimeStamp);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ContractSignatureEncryptedPrivateKeyType', base type name='privateKeyType', content type='SIMPLE', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
- static int encode_iso1ContractSignatureEncryptedPrivateKeyType(bitstream_t* stream, struct iso1ContractSignatureEncryptedPrivateKeyType* iso1ContractSignatureEncryptedPrivateKeyType) {
- int grammarID = 23;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 23:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ContractSignatureEncryptedPrivateKeyType->Id.characters, iso1ContractSignatureEncryptedPrivateKeyType->Id.charactersLen);
- }
- }
- grammarID = 24;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 24:
- /* StartTag[CHARACTERS[BINARY_BASE64]] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytes, iso1ContractSignatureEncryptedPrivateKeyType->CONTENT.bytesLen);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,PMaxScheduleEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":PMax))', derivedBy='EXTENSION'. */
- static int encode_iso1PMaxScheduleEntryType(bitstream_t* stream, struct iso1PMaxScheduleEntryType* iso1PMaxScheduleEntryType) {
- int grammarID = 261;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 261:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- if ( iso1PMaxScheduleEntryType->RelativeTimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1RelativeTimeIntervalType(stream, &iso1PMaxScheduleEntryType->RelativeTimeInterval );
- }
- grammarID = 262;
- } else if ( iso1PMaxScheduleEntryType->TimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1IntervalType(stream, &iso1PMaxScheduleEntryType->TimeInterval );
- }
- grammarID = 262;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 262:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1PMaxScheduleEntryType->PMax );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1SPKIDataType(bitstream_t* stream, struct iso1SPKIDataType* iso1SPKIDataType) {
- int grammarID = 263;
- int done = 0;
- int wcDone = 0;
-
- unsigned int iso1SPKIDataType_SPKISexp_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 263:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */
- if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen);
- iso1SPKIDataType_SPKISexp_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 264;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 264:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */
- if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen);
- iso1SPKIDataType_SPKISexp_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 264;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 265;
- } else if ( iso1SPKIDataType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 265:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */
- if (iso1SPKIDataType_SPKISexp_currArrayIndex < iso1SPKIDataType->SPKISexp.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytes, iso1SPKIDataType->SPKISexp.array[iso1SPKIDataType_SPKISexp_currArrayIndex].bytesLen);
- iso1SPKIDataType_SPKISexp_currArrayIndex++;
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 264;
- } else if ( iso1SPKIDataType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,MeteringReceiptResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgDataTypes":EVSEStatus)', derivedBy='EXTENSION'. */
- static int encode_iso1MeteringReceiptResType(bitstream_t* stream, struct iso1MeteringReceiptResType* iso1MeteringReceiptResType) {
- int grammarID = 93;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 93:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1MeteringReceiptResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 94;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 94:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus)] */
- if ( iso1MeteringReceiptResType->AC_EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1MeteringReceiptResType->AC_EVSEStatus );
- }
- grammarID = 3;
- } else if ( iso1MeteringReceiptResType->DC_EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1MeteringReceiptResType->DC_EVSEStatus );
- }
- grammarID = 3;
- } else if ( iso1MeteringReceiptResType->EVSEStatus_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1EVSEStatusType(stream, &iso1MeteringReceiptResType->EVSEStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionStopReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ChargingSession)', derivedBy='EXTENSION'. */
- static int encode_iso1SessionStopReqType(bitstream_t* stream, struct iso1SessionStopReqType* iso1SessionStopReqType) {
- int grammarID = 266;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 266:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, iso1SessionStopReqType->ChargingSession);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage)', derivedBy='EXTENSION'. */
- static int encode_iso1WeldingDetectionResType(bitstream_t* stream, struct iso1WeldingDetectionResType* iso1WeldingDetectionResType) {
- int grammarID = 39;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 39:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1WeldingDetectionResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 40;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 40:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1WeldingDetectionResType->DC_EVSEStatus );
- }
- grammarID = 41;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 41:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1WeldingDetectionResType->EVSEPresentVoltage );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)', derivedBy='RESTRICTION'. */
- static int encode_iso1ReferenceType(bitstream_t* stream, struct iso1ReferenceType* iso1ReferenceType) {
- int grammarID = 267;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 267:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- if ( iso1ReferenceType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->Id.characters, iso1ReferenceType->Id.charactersLen);
- }
- }
- grammarID = 268;
- } else if ( iso1ReferenceType->Type_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Type.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->Type.characters, iso1ReferenceType->Type.charactersLen);
- }
- }
- grammarID = 269;
- } else if ( iso1ReferenceType->URI_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen);
- }
- }
- grammarID = 270;
- } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms );
- }
- grammarID = 271;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod );
- }
- grammarID = 272;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 268:
- /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- if ( iso1ReferenceType->Type_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->Type.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->Type.characters, iso1ReferenceType->Type.charactersLen);
- }
- }
- grammarID = 269;
- } else if ( iso1ReferenceType->URI_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen);
- }
- }
- grammarID = 270;
- } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms );
- }
- grammarID = 271;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod );
- }
- grammarID = 272;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 269:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- if ( iso1ReferenceType->URI_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->URI.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ReferenceType->URI.characters, iso1ReferenceType->URI.charactersLen);
- }
- }
- grammarID = 270;
- } else if ( iso1ReferenceType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms );
- }
- grammarID = 271;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod );
- }
- grammarID = 272;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 270:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- if ( iso1ReferenceType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1ReferenceType->Transforms );
- }
- grammarID = 271;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod );
- }
- grammarID = 272;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 271:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &iso1ReferenceType->DigestMethod );
- }
- grammarID = 272;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 272:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ReferenceType->DigestValue.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1ReferenceType->DigestValue.bytes, iso1ReferenceType->DigestValue.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus,"urn:iso:15118:2:2013:MsgBody":EVTargetCurrent,"urn:iso:15118:2:2013:MsgBody":EVMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgBody":ChargingComplete,"urn:iso:15118:2:2013:MsgBody":RemainingTimeToFullSoC{0-1},"urn:iso:15118:2:2013:MsgBody":RemainingTimeToBulkSoC{0-1},"urn:iso:15118:2:2013:MsgBody":EVTargetVoltage)', derivedBy='EXTENSION'. */
- static int encode_iso1CurrentDemandReqType(bitstream_t* stream, struct iso1CurrentDemandReqType* iso1CurrentDemandReqType) {
- int grammarID = 273;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 273:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1CurrentDemandReqType->DC_EVStatus );
- }
- grammarID = 274;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 274:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetCurrent );
- }
- grammarID = 275;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 275:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- if ( iso1CurrentDemandReqType->EVMaximumVoltageLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumVoltageLimit );
- }
- grammarID = 276;
- } else if ( iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit );
- }
- grammarID = 277;
- } else if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit );
- }
- grammarID = 278;
- } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 279;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 4);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 280;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 276:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- if ( iso1CurrentDemandReqType->EVMaximumCurrentLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumCurrentLimit );
- }
- grammarID = 277;
- } else if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit );
- }
- grammarID = 278;
- } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 279;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 280;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 277:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- if ( iso1CurrentDemandReqType->EVMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVMaximumPowerLimit );
- }
- grammarID = 278;
- } else if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 279;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 280;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 278:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- if ( iso1CurrentDemandReqType->BulkChargingComplete_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 279;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 280;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 279:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandReqType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 280;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 280:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- if ( iso1CurrentDemandReqType->RemainingTimeToFullSoC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToFullSoC );
- }
- grammarID = 281;
- } else if ( iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC );
- }
- grammarID = 282;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 281:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- if ( iso1CurrentDemandReqType->RemainingTimeToBulkSoC_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->RemainingTimeToBulkSoC );
- }
- grammarID = 282;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 282:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandReqType->EVTargetVoltage );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffEntryType', base type name='EntryType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval),("urn:iso:15118:2:2013:MsgDataTypes":EPriceLevel{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ConsumptionCost{0-3}))', derivedBy='EXTENSION'. */
- static int encode_iso1SalesTariffEntryType(bitstream_t* stream, struct iso1SalesTariffEntryType* iso1SalesTariffEntryType) {
- int grammarID = 283;
- int done = 0;
-
- unsigned int iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 283:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- if ( iso1SalesTariffEntryType->RelativeTimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1RelativeTimeIntervalType(stream, &iso1SalesTariffEntryType->RelativeTimeInterval );
- }
- grammarID = 284;
- } else if ( iso1SalesTariffEntryType->TimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1IntervalType(stream, &iso1SalesTariffEntryType->TimeInterval );
- }
- grammarID = 284;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 284:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- if ( iso1SalesTariffEntryType->EPriceLevel_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffEntryType->EPriceLevel - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 285;
- } else if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
- }
- grammarID = 286;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 285:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
- }
- grammarID = 286;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 286:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
- }
- grammarID = 287;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 287:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), END_ELEMENT] */
- if (iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex < iso1SalesTariffEntryType->ConsumptionCost.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1ConsumptionCostType(stream, &iso1SalesTariffEntryType->ConsumptionCost.array [iso1SalesTariffEntryType_ConsumptionCost_currArrayIndex++]);
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,EntryType', base type name='anyType', content type='ELEMENT', isAbstract='true', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":TimeInterval)', derivedBy='RESTRICTION'. */
- static int encode_iso1EntryType(bitstream_t* stream, struct iso1EntryType* iso1EntryType) {
- int grammarID = 288;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 288:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval)] */
- if ( iso1EntryType->RelativeTimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1RelativeTimeIntervalType(stream, &iso1EntryType->RelativeTimeInterval );
- }
- grammarID = 3;
- } else if ( iso1EntryType->TimeInterval_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1IntervalType(stream, &iso1EntryType->TimeInterval );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,SessionSetupReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":EVCCID)', derivedBy='EXTENSION'. */
- static int encode_iso1SessionSetupReqType(bitstream_t* stream, struct iso1SessionSetupReqType* iso1SessionSetupReqType) {
- int grammarID = 289;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 289:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SessionSetupReqType->EVCCID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1SessionSetupReqType->EVCCID.bytes, iso1SessionSetupReqType->EVCCID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,CostType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":costKind,"urn:iso:15118:2:2013:MsgDataTypes":amount,"urn:iso:15118:2:2013:MsgDataTypes":amountMultiplier{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1CostType(bitstream_t* stream, struct iso1CostType* iso1CostType) {
- int grammarID = 290;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 290:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1CostType->costKind);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 291;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 291:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, iso1CostType->amount);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 292;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 292:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), END_ELEMENT] */
- if ( iso1CostType->amountMultiplier_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(iso1CostType->amountMultiplier + 3));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVPowerDeliveryParameterType', base type name='EVPowerDeliveryParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":DC_EVStatus,"urn:iso:15118:2:2013:MsgDataTypes":BulkChargingComplete{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ChargingComplete)', derivedBy='EXTENSION'. */
- static int encode_iso1DC_EVPowerDeliveryParameterType(bitstream_t* stream, struct iso1DC_EVPowerDeliveryParameterType* iso1DC_EVPowerDeliveryParameterType) {
- int grammarID = 293;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 293:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1DC_EVPowerDeliveryParameterType->DC_EVStatus );
- }
- grammarID = 294;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 294:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- if ( iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 295;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 295:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1DC_EVPowerDeliveryParameterType->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1RetrievalMethodType(bitstream_t* stream, struct iso1RetrievalMethodType* iso1RetrievalMethodType) {
- int grammarID = 296;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 296:
- /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- if ( iso1RetrievalMethodType->Type_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->Type.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1RetrievalMethodType->Type.characters, iso1RetrievalMethodType->Type.charactersLen);
- }
- }
- grammarID = 297;
- } else if ( iso1RetrievalMethodType->URI_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->URI.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType->URI.charactersLen);
- }
- }
- grammarID = 298;
- } else if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 297:
- /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- if ( iso1RetrievalMethodType->URI_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1RetrievalMethodType->URI.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1RetrievalMethodType->URI.characters, iso1RetrievalMethodType->URI.charactersLen);
- }
- }
- grammarID = 298;
- } else if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 298:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */
- if ( iso1RetrievalMethodType->Transforms_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &iso1RetrievalMethodType->Transforms );
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateUpdateResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID,"urn:iso:15118:2:2013:MsgBody":RetryCounter{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1CertificateUpdateResType(bitstream_t* stream, struct iso1CertificateUpdateResType* iso1CertificateUpdateResType) {
- int grammarID = 299;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 299:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1CertificateUpdateResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 300;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 300:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->SAProvisioningCertificateChain );
- }
- grammarID = 301;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 301:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1CertificateUpdateResType->ContractSignatureCertChain );
- }
- grammarID = 302;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 302:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateUpdateResType->ContractSignatureEncryptedPrivateKey );
- }
- grammarID = 303;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 303:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateUpdateResType->DHpublickey );
- }
- grammarID = 304;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 304:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1EMAIDType(stream, &iso1CertificateUpdateResType->eMAID );
- }
- grammarID = 305;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 305:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), END_ELEMENT] */
- if ( iso1CertificateUpdateResType->RetryCounter_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1CertificateUpdateResType->RetryCounter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CertificateInstallationResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":SAProvisioningCertificateChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureCertChain,"urn:iso:15118:2:2013:MsgBody":ContractSignatureEncryptedPrivateKey,"urn:iso:15118:2:2013:MsgBody":DHpublickey,"urn:iso:15118:2:2013:MsgBody":eMAID)', derivedBy='EXTENSION'. */
- static int encode_iso1CertificateInstallationResType(bitstream_t* stream, struct iso1CertificateInstallationResType* iso1CertificateInstallationResType) {
- int grammarID = 306;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 306:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1CertificateInstallationResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 307;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 307:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->SAProvisioningCertificateChain );
- }
- grammarID = 308;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 308:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &iso1CertificateInstallationResType->ContractSignatureCertChain );
- }
- grammarID = 309;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 309:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &iso1CertificateInstallationResType->ContractSignatureEncryptedPrivateKey );
- }
- grammarID = 310;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 310:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DiffieHellmanPublickeyType(stream, &iso1CertificateInstallationResType->DHpublickey );
- }
- grammarID = 311;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 311:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1EMAIDType(stream, &iso1CertificateInstallationResType->eMAID );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##any]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1CanonicalizationMethodType(bitstream_t* stream, struct iso1CanonicalizationMethodType* iso1CanonicalizationMethodType) {
- int grammarID = 312;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 312:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->Algorithm.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CanonicalizationMethodType->Algorithm.characters, iso1CanonicalizationMethodType->Algorithm.charactersLen);
- }
- }
- grammarID = 115;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 115:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 116:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1CanonicalizationMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CanonicalizationMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CanonicalizationMethodType->ANY.characters, iso1CanonicalizationMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,WeldingDetectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
- static int encode_iso1WeldingDetectionReqType(bitstream_t* stream, struct iso1WeldingDetectionReqType* iso1WeldingDetectionReqType) {
- int grammarID = 313;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 313:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1WeldingDetectionReqType->DC_EVStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,DC_EVStatusType', base type name='EVStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EVReady,"urn:iso:15118:2:2013:MsgDataTypes":EVErrorCode,"urn:iso:15118:2:2013:MsgDataTypes":EVRESSSOC)', derivedBy='EXTENSION'. */
- static int encode_iso1DC_EVStatusType(bitstream_t* stream, struct iso1DC_EVStatusType* iso1DC_EVStatusType) {
- int grammarID = 314;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 314:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1DC_EVStatusType->EVReady);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 315;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 315:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, iso1DC_EVStatusType->EVErrorCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 316;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 316:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(iso1DC_EVStatusType->EVRESSSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CurrentDemandResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode,"urn:iso:15118:2:2013:MsgBody":DC_EVSEStatus,"urn:iso:15118:2:2013:MsgBody":EVSEPresentVoltage,"urn:iso:15118:2:2013:MsgBody":EVSEPresentCurrent,"urn:iso:15118:2:2013:MsgBody":EVSECurrentLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEVoltageLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEPowerLimitAchieved,"urn:iso:15118:2:2013:MsgBody":EVSEMaximumVoltageLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumCurrentLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEMaximumPowerLimit{0-1},"urn:iso:15118:2:2013:MsgBody":EVSEID,"urn:iso:15118:2:2013:MsgBody":SAScheduleTupleID,"urn:iso:15118:2:2013:MsgBody":MeterInfo{0-1},"urn:iso:15118:2:2013:MsgBody":ReceiptRequired{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1CurrentDemandResType(bitstream_t* stream, struct iso1CurrentDemandResType* iso1CurrentDemandResType) {
- int grammarID = 317;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 317:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1CurrentDemandResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 318;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 318:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &iso1CurrentDemandResType->DC_EVSEStatus );
- }
- grammarID = 319;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 319:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentVoltage );
- }
- grammarID = 320;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 320:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEPresentCurrent );
- }
- grammarID = 321;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 321:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSECurrentLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 322;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 322:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSEVoltageLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 323;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 323:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandResType->EVSEPowerLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 324;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 324:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( iso1CurrentDemandResType->EVSEMaximumVoltageLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumVoltageLimit );
- }
- grammarID = 325;
- } else if ( iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit );
- }
- grammarID = 326;
- } else if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 2);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit );
- }
- grammarID = 327;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 3, 3);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 328;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 325:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( iso1CurrentDemandResType->EVSEMaximumCurrentLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumCurrentLimit );
- }
- grammarID = 326;
- } else if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit );
- }
- grammarID = 327;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 328;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 326:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( iso1CurrentDemandResType->EVSEMaximumPowerLimit_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1CurrentDemandResType->EVSEMaximumPowerLimit );
- }
- grammarID = 327;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 328;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 327:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1CurrentDemandResType->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1CurrentDemandResType->EVSEID.characters, iso1CurrentDemandResType->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 328;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 328:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1CurrentDemandResType->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 329;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 329:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- if ( iso1CurrentDemandResType->MeterInfo_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &iso1CurrentDemandResType->MeterInfo );
- }
- grammarID = 330;
- } else if ( iso1CurrentDemandResType->ReceiptRequired_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandResType->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 330:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), END_ELEMENT] */
- if ( iso1CurrentDemandResType->ReceiptRequired_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1CurrentDemandResType->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,ServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ServiceName{0-1},"urn:iso:15118:2:2013:MsgDataTypes":ServiceCategory,"urn:iso:15118:2:2013:MsgDataTypes":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgDataTypes":FreeService)', derivedBy='RESTRICTION'. */
- static int encode_iso1ServiceType(bitstream_t* stream, struct iso1ServiceType* iso1ServiceType) {
- int grammarID = 331;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 331:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1ServiceType->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 332;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 332:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- if ( iso1ServiceType->ServiceName_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceType->ServiceName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ServiceType->ServiceName.characters, iso1ServiceType->ServiceName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 333;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 334;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 333:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 334;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 334:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- if ( iso1ServiceType->ServiceScope_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceType->ServiceScope.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ServiceType->ServiceScope.characters, iso1ServiceType->ServiceScope.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 335;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ServiceType->FreeService);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 335:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1ServiceType->FreeService);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ServiceDiscoveryReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ServiceScope{0-1},"urn:iso:15118:2:2013:MsgBody":ServiceCategory{0-1})', derivedBy='EXTENSION'. */
- static int encode_iso1ServiceDiscoveryReqType(bitstream_t* stream, struct iso1ServiceDiscoveryReqType* iso1ServiceDiscoveryReqType) {
- int grammarID = 336;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 336:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- if ( iso1ServiceDiscoveryReqType->ServiceScope_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1ServiceDiscoveryReqType->ServiceScope.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1ServiceDiscoveryReqType->ServiceScope.characters, iso1ServiceDiscoveryReqType->ServiceScope.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 337;
- } else if ( iso1ServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceDiscoveryReqType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 337:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), END_ELEMENT] */
- if ( iso1ServiceDiscoveryReqType->ServiceCategory_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1ServiceDiscoveryReqType->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEChargeParameterType', base type name='EVSEChargeParameterType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":AC_EVSEStatus,"urn:iso:15118:2:2013:MsgDataTypes":EVSENominalVoltage,"urn:iso:15118:2:2013:MsgDataTypes":EVSEMaxCurrent)', derivedBy='EXTENSION'. */
- static int encode_iso1AC_EVSEChargeParameterType(bitstream_t* stream, struct iso1AC_EVSEChargeParameterType* iso1AC_EVSEChargeParameterType) {
- int grammarID = 338;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 338:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &iso1AC_EVSEChargeParameterType->AC_EVSEStatus );
- }
- grammarID = 339;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 339:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSENominalVoltage );
- }
- grammarID = 340;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 340:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &iso1AC_EVSEChargeParameterType->EVSEMaxCurrent );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,CableCheckReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":DC_EVStatus)', derivedBy='EXTENSION'. */
- static int encode_iso1CableCheckReqType(bitstream_t* stream, struct iso1CableCheckReqType* iso1CableCheckReqType) {
- int grammarID = 313;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 313:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &iso1CableCheckReqType->DC_EVStatus );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SelectedServiceType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":ServiceID,"urn:iso:15118:2:2013:MsgDataTypes":ParameterSetID{0-1})', derivedBy='RESTRICTION'. */
- static int encode_iso1SelectedServiceType(bitstream_t* stream, struct iso1SelectedServiceType* iso1SelectedServiceType) {
- int grammarID = 341;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 341:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1SelectedServiceType->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 342;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 342:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), END_ELEMENT] */
- if ( iso1SelectedServiceType->ParameterSetID_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, iso1SelectedServiceType->ParameterSetID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,AC_EVSEStatusType', base type name='EVSEStatusType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("urn:iso:15118:2:2013:MsgDataTypes":NotificationMaxDelay,"urn:iso:15118:2:2013:MsgDataTypes":EVSENotification),("urn:iso:15118:2:2013:MsgDataTypes":RCD))', derivedBy='EXTENSION'. */
- static int encode_iso1AC_EVSEStatusType(bitstream_t* stream, struct iso1AC_EVSEStatusType* iso1AC_EVSEStatusType) {
- int grammarID = 343;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 343:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, iso1AC_EVSEStatusType->NotificationMaxDelay);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 344;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 344:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, iso1AC_EVSEStatusType->EVSENotification);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 345;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 345:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, iso1AC_EVSEStatusType->RCD);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SalesTariffType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":SalesTariffID,"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffDescription{0-1},"urn:iso:15118:2:2013:MsgDataTypes":NumEPriceLevels{0-1},"urn:iso:15118:2:2013:MsgDataTypes":SalesTariffEntry{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1SalesTariffType(bitstream_t* stream, struct iso1SalesTariffType* iso1SalesTariffType) {
- int grammarID = 346;
- int done = 0;
-
- unsigned int iso1SalesTariffType_SalesTariffEntry_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 346:
- /* FirstStartTag[ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- if ( iso1SalesTariffType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SalesTariffType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SalesTariffType->Id.characters, iso1SalesTariffType->Id.charactersLen);
- }
- }
- grammarID = 347;
- } else if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->SalesTariffID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 348;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 347:
- /* StartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->SalesTariffID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 348;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 348:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- if ( iso1SalesTariffType->SalesTariffDescription_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SalesTariffType->SalesTariffDescription.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SalesTariffType->SalesTariffDescription.characters, iso1SalesTariffType->SalesTariffDescription.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 349;
- } else if ( iso1SalesTariffType->NumEPriceLevels_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->NumEPriceLevels - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 350;
- } else if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]);
- }
- grammarID = 351;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 349:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- if ( iso1SalesTariffType->NumEPriceLevels_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(iso1SalesTariffType->NumEPriceLevels - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 350;
- } else if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]);
- }
- grammarID = 351;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 350:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry)] */
- if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]);
- }
- grammarID = 351;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 351:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */
- if (iso1SalesTariffType_SalesTariffEntry_currArrayIndex < iso1SalesTariffType->SalesTariffEntry.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &iso1SalesTariffType->SalesTariffEntry.array [iso1SalesTariffType_SalesTariffEntry_currArrayIndex++]);
- }
- grammarID = 351;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionReqType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":SelectedPaymentOption,"urn:iso:15118:2:2013:MsgBody":SelectedServiceList)', derivedBy='EXTENSION'. */
- static int encode_iso1PaymentServiceSelectionReqType(bitstream_t* stream, struct iso1PaymentServiceSelectionReqType* iso1PaymentServiceSelectionReqType) {
- int grammarID = 352;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 352:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, iso1PaymentServiceSelectionReqType->SelectedPaymentOption);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 353;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 353:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceListType(stream, &iso1PaymentServiceSelectionReqType->SelectedServiceList );
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1SignaturePropertiesType(bitstream_t* stream, struct iso1SignaturePropertiesType* iso1SignaturePropertiesType) {
- int grammarID = 354;
- int done = 0;
-
- unsigned int iso1SignaturePropertiesType_SignatureProperty_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 354:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- if ( iso1SignaturePropertiesType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertiesType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertiesType->Id.characters, iso1SignaturePropertiesType->Id.charactersLen);
- }
- }
- grammarID = 355;
- } else if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]);
- }
- grammarID = 356;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 355:
- /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */
- if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]);
- }
- grammarID = 356;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 356:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */
- if (iso1SignaturePropertiesType_SignatureProperty_currArrayIndex < iso1SignaturePropertiesType->SignatureProperty.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertyType(stream, &iso1SignaturePropertiesType->SignatureProperty.array [iso1SignaturePropertiesType_SignatureProperty_currArrayIndex++]);
- }
- grammarID = 356;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,BodyBaseType', base type name='anyType', content type='EMPTY', isAbstract='true', hasTypeId='false', final='0', block='0', derivedBy='RESTRICTION'. */
- static int encode_iso1BodyBaseType(bitstream_t* stream, struct iso1BodyBaseType* iso1BodyBaseType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgDataTypes,SupportedEnergyTransferModeType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgDataTypes":EnergyTransferMode{1-6})', derivedBy='RESTRICTION'. */
- static int encode_iso1SupportedEnergyTransferModeType(bitstream_t* stream, struct iso1SupportedEnergyTransferModeType* iso1SupportedEnergyTransferModeType) {
- int grammarID = 357;
- int done = 0;
-
- unsigned int iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex = 0;
-
- while(!done) {
- switch(grammarID) {
- case 357:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode)] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 358;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 358:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 359;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 359:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 360;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 360:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 361;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 361:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 362;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 362:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), END_ELEMENT] */
- if (iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex < iso1SupportedEnergyTransferModeType->EnergyTransferMode.arrayLen ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, iso1SupportedEnergyTransferModeType->EnergyTransferMode.array[iso1SupportedEnergyTransferModeType_EnergyTransferMode_currArrayIndex++]);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,ChargingStatusReqType', base type name='BodyBaseType', content type='EMPTY', isAbstract='false', hasTypeId='false', final='0', block='0', derivedBy='EXTENSION'. */
- static int encode_iso1ChargingStatusReqType(bitstream_t* stream, struct iso1ChargingStatusReqType* iso1ChargingStatusReqType) {
- int grammarID = 34;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 34:
- /* FirstStartTag[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='urn:iso:15118:2:2013:MsgBody,PaymentServiceSelectionResType', base type name='BodyBaseType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='("urn:iso:15118:2:2013:MsgBody":ResponseCode)', derivedBy='EXTENSION'. */
- static int encode_iso1PaymentServiceSelectionResType(bitstream_t* stream, struct iso1PaymentServiceSelectionResType* iso1PaymentServiceSelectionResType) {
- int grammarID = 122;
- int done = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 122:
- /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode)] */
- if ( 1 == 1 ) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, iso1PaymentServiceSelectionResType->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 3;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 3:
- /* Element[END_ELEMENT] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})', derivedBy='RESTRICTION'. */
- static int encode_iso1DigestMethodType(bitstream_t* stream, struct iso1DigestMethodType* iso1DigestMethodType) {
- int grammarID = 312;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 312:
- /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->Algorithm.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1DigestMethodType->Algorithm.characters, iso1DigestMethodType->Algorithm.charactersLen);
- }
- }
- grammarID = 115;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 115:
- /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1DigestMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1DigestMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1DigestMethodType->ANY.characters, iso1DigestMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 116:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1DigestMethodType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1DigestMethodType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1DigestMethodType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1DigestMethodType->ANY.characters, iso1DigestMethodType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType', base type name='anyType', content type='MIXED', isAbstract='false', hasTypeId='false', final='0', block='0', particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}', derivedBy='RESTRICTION'. */
- static int encode_iso1SignaturePropertyType(bitstream_t* stream, struct iso1SignaturePropertyType* iso1SignaturePropertyType) {
- int grammarID = 363;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 363:
- /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */
- if ( iso1SignaturePropertyType->Id_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->Id.characters, iso1SignaturePropertyType->Id.charactersLen);
- }
- }
- grammarID = 364;
- } else if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Target.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType->Target.charactersLen);
- }
- }
- grammarID = 365;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 364:
- /* StartTag[ATTRIBUTE[STRING](Target)] */
- if (1==1) {
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->Target.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->Target.characters, iso1SignaturePropertyType->Target.charactersLen);
- }
- }
- grammarID = 365;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 365:
- /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 366;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 116:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignaturePropertyType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 116;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 366:
- /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 116;
- } else if ( iso1SignaturePropertyType->ANY_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1SignaturePropertyType->ANY.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, iso1SignaturePropertyType->ANY.characters, iso1SignaturePropertyType->ANY.charactersLen);
- }
- }
- wcDone = 1;
- grammarID = 366;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- /* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType', base type name='anyType', content type='ELEMENT', isAbstract='false', hasTypeId='false', final='0', block='0', particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))', derivedBy='RESTRICTION'. */
- static int encode_iso1PGPDataType(bitstream_t* stream, struct iso1PGPDataType* iso1PGPDataType) {
- int grammarID = 367;
- int done = 0;
- int wcDone = 0;
-
-
- while(!done) {
- switch(grammarID) {
- case 367:
- /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */
- if ( iso1PGPDataType->PGPKeyID_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1PGPDataType->PGPKeyID.bytes, iso1PGPDataType->PGPKeyID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 368;
- } else if ( iso1PGPDataType->PGPKeyPacket_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyPacket.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytes, iso1PGPDataType->PGPKeyPacket.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 369;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 368:
- /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */
- if ( iso1PGPDataType->PGPKeyPacket_isUsed == 1u ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 0);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(iso1PGPDataType->PGPKeyPacket.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, iso1PGPDataType->PGPKeyPacket.bytes, iso1PGPDataType->PGPKeyPacket.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- grammarID = 369;
- } else if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 369;
- } else if ( iso1PGPDataType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 2);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- case 369:
- /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */
- if (1==0) {
- errn = EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS;
- grammarID = 369;
- } else if ( iso1PGPDataType->ANY_isUsed == 0u || wcDone ) {
- errn = encodeNBitUnsignedInteger(stream, 2, 1);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- int encode_iso1EXISchemaInformedElementFragmentGrammar(bitstream_t* stream, struct iso1EXISchemaInformedElementFragmentGrammar* exiElementFrag) {
- int grammarID = 370;
- int done = 0;
-
- while(!done) {
- switch(grammarID) {
- case 370:
- /* First(xsi:type)(xsi:nil)StartTag[ATTRIBUTE[STRING](Algorithm), ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgBody}Id), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Id), ATTRIBUTE[STRING](MimeType), ATTRIBUTE[STRING]({urn:iso:15118:2:2013:MsgDataTypes}Name), ATTRIBUTE[STRING](Target), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), ATTRIBUTE_GENERIC, START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if ( exiElementFrag->Id_isUsed == 1u ) {
- exiElementFrag->Id_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */
- errn = encodeNBitUnsignedInteger(stream, 9, 4);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->Id.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiElementFrag->Id.characters, exiElementFrag->Id.charactersLen);
- }
- }
- grammarID = 370;
- } else if (1==0) {
- errn = encodeNBitUnsignedInteger(stream, 9, 255);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( exiElementFrag->CHARACTERS_GENERIC_isUsed == 1u ) {
- exiElementFrag->CHARACTERS_GENERIC_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */
- errn = encodeNBitUnsignedInteger(stream, 9, 256);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.characters, exiElementFrag->CHARACTERS_GENERIC.charactersLen);
- }
- }
- grammarID = 371;
- } else {
- errn = encodeNBitUnsignedInteger(stream, 9, 255); /* EE */
- done = 1;
- }
- break;
- case 371:
- /* Element[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */
- if (1==0) {
- errn = encodeNBitUnsignedInteger(stream, 8, 244);
- if(errn == 0) {
- done = 1;
- }
- grammarID = 4;
- } else if ( exiElementFrag->CHARACTERS_GENERIC_isUsed == 1u ) {
- exiElementFrag->CHARACTERS_GENERIC_isUsed = 0u; /* hack to indicate for next loop that this has been handled already */
- errn = encodeNBitUnsignedInteger(stream, 8, 245);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiElementFrag->CHARACTERS_GENERIC.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiElementFrag->CHARACTERS_GENERIC.characters, exiElementFrag->CHARACTERS_GENERIC.charactersLen);
- }
- }
- grammarID = 371;
- } else {
- errn = encodeNBitUnsignedInteger(stream, 8, 244); /* EE */
- done = 1;
- }
- break;
- default:
- errn = EXI_ERROR_UNKOWN_GRAMMAR_ID;
- break;
- }
- if(errn) {
- done = 1;
- }
- }
- return errn;
- }
- int encode_iso1ExiDocument(bitstream_t* stream, struct iso1EXIDocument* exiDoc) {
- errn = writeEXIHeader(stream);
- if(errn == 0) {
- /* DocContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */
- if ( exiDoc->AC_EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVChargeParameterType(stream, &exiDoc->AC_EVChargeParameter );
- }
- } else if ( exiDoc->AC_EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 1);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEChargeParameterType(stream, &exiDoc->AC_EVSEChargeParameter );
- }
- } else if ( exiDoc->AC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 7, 2);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &exiDoc->AC_EVSEStatus );
- }
- } else if ( exiDoc->AuthorizationReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 3);
- if(errn == 0) {
- errn = encode_iso1AuthorizationReqType(stream, &exiDoc->AuthorizationReq );
- }
- } else if ( exiDoc->AuthorizationRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 4);
- if(errn == 0) {
- errn = encode_iso1AuthorizationResType(stream, &exiDoc->AuthorizationRes );
- }
- } else if ( exiDoc->BodyElement_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */
- errn = encodeNBitUnsignedInteger(stream, 7, 5);
- if(errn == 0) {
- errn = encode_iso1BodyBaseType(stream, &exiDoc->BodyElement );
- }
- } else if ( exiDoc->CableCheckReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 6);
- if(errn == 0) {
- errn = encode_iso1CableCheckReqType(stream, &exiDoc->CableCheckReq );
- }
- } else if ( exiDoc->CableCheckRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 7);
- if(errn == 0) {
- errn = encode_iso1CableCheckResType(stream, &exiDoc->CableCheckRes );
- }
- } else if ( exiDoc->CanonicalizationMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */
- errn = encodeNBitUnsignedInteger(stream, 7, 8);
- if(errn == 0) {
- errn = encode_iso1CanonicalizationMethodType(stream, &exiDoc->CanonicalizationMethod );
- }
- } else if ( exiDoc->CertificateInstallationReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 9);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationReqType(stream, &exiDoc->CertificateInstallationReq );
- }
- } else if ( exiDoc->CertificateInstallationRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 10);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationResType(stream, &exiDoc->CertificateInstallationRes );
- }
- } else if ( exiDoc->CertificateUpdateReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 11);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateReqType(stream, &exiDoc->CertificateUpdateReq );
- }
- } else if ( exiDoc->CertificateUpdateRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 12);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateResType(stream, &exiDoc->CertificateUpdateRes );
- }
- } else if ( exiDoc->ChargeParameterDiscoveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 13);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &exiDoc->ChargeParameterDiscoveryReq );
- }
- } else if ( exiDoc->ChargeParameterDiscoveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 14);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryResType(stream, &exiDoc->ChargeParameterDiscoveryRes );
- }
- } else if ( exiDoc->ChargingStatusReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 15);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusReqType(stream, &exiDoc->ChargingStatusReq );
- }
- } else if ( exiDoc->ChargingStatusRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 16);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusResType(stream, &exiDoc->ChargingStatusRes );
- }
- } else if ( exiDoc->CurrentDemandReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 17);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandReqType(stream, &exiDoc->CurrentDemandReq );
- }
- } else if ( exiDoc->CurrentDemandRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 18);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandResType(stream, &exiDoc->CurrentDemandRes );
- }
- } else if ( exiDoc->DC_EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 19);
- if(errn == 0) {
- errn = encode_iso1DC_EVChargeParameterType(stream, &exiDoc->DC_EVChargeParameter );
- }
- } else if ( exiDoc->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 20);
- if(errn == 0) {
- errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &exiDoc->DC_EVPowerDeliveryParameter );
- }
- } else if ( exiDoc->DC_EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 21);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEChargeParameterType(stream, &exiDoc->DC_EVSEChargeParameter );
- }
- } else if ( exiDoc->DC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 7, 22);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &exiDoc->DC_EVSEStatus );
- }
- } else if ( exiDoc->DC_EVStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
- errn = encodeNBitUnsignedInteger(stream, 7, 23);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &exiDoc->DC_EVStatus );
- }
- } else if ( exiDoc->DSAKeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 7, 24);
- if(errn == 0) {
- errn = encode_iso1DSAKeyValueType(stream, &exiDoc->DSAKeyValue );
- }
- } else if ( exiDoc->DigestMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */
- errn = encodeNBitUnsignedInteger(stream, 7, 25);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &exiDoc->DigestMethod );
- }
- } else if ( exiDoc->DigestValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */
- errn = encodeNBitUnsignedInteger(stream, 7, 26);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->DigestValue.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiDoc->DigestValue.bytes, exiDoc->DigestValue.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiDoc->EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 27);
- if(errn == 0) {
- errn = encode_iso1EVChargeParameterType(stream, &exiDoc->EVChargeParameter );
- }
- } else if ( exiDoc->EVPowerDeliveryParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 28);
- if(errn == 0) {
- errn = encode_iso1EVPowerDeliveryParameterType(stream, &exiDoc->EVPowerDeliveryParameter );
- }
- } else if ( exiDoc->EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 7, 29);
- if(errn == 0) {
- errn = encode_iso1EVSEChargeParameterType(stream, &exiDoc->EVSEChargeParameter );
- }
- } else if ( exiDoc->EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 7, 30);
- if(errn == 0) {
- errn = encode_iso1EVSEStatusType(stream, &exiDoc->EVSEStatus );
- }
- } else if ( exiDoc->EVStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */
- errn = encodeNBitUnsignedInteger(stream, 7, 31);
- if(errn == 0) {
- errn = encode_iso1EVStatusType(stream, &exiDoc->EVStatus );
- }
- } else if ( exiDoc->Entry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */
- errn = encodeNBitUnsignedInteger(stream, 7, 32);
- if(errn == 0) {
- errn = encode_iso1EntryType(stream, &exiDoc->Entry );
- }
- } else if ( exiDoc->KeyInfo_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */
- errn = encodeNBitUnsignedInteger(stream, 7, 33);
- if(errn == 0) {
- errn = encode_iso1KeyInfoType(stream, &exiDoc->KeyInfo );
- }
- } else if ( exiDoc->KeyName_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */
- errn = encodeNBitUnsignedInteger(stream, 7, 34);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->KeyName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiDoc->KeyName.characters, exiDoc->KeyName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiDoc->KeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 7, 35);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &exiDoc->KeyValue );
- }
- } else if ( exiDoc->Manifest_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
- errn = encodeNBitUnsignedInteger(stream, 7, 36);
- if(errn == 0) {
- errn = encode_iso1ManifestType(stream, &exiDoc->Manifest );
- }
- } else if ( exiDoc->MeteringReceiptReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 37);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptReqType(stream, &exiDoc->MeteringReceiptReq );
- }
- } else if ( exiDoc->MeteringReceiptRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 38);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptResType(stream, &exiDoc->MeteringReceiptRes );
- }
- } else if ( exiDoc->MgmtData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */
- errn = encodeNBitUnsignedInteger(stream, 7, 39);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiDoc->MgmtData.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiDoc->MgmtData.characters, exiDoc->MgmtData.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiDoc->Object_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */
- errn = encodeNBitUnsignedInteger(stream, 7, 40);
- if(errn == 0) {
- errn = encode_iso1ObjectType(stream, &exiDoc->Object );
- }
- } else if ( exiDoc->PGPData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */
- errn = encodeNBitUnsignedInteger(stream, 7, 41);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &exiDoc->PGPData );
- }
- } else if ( exiDoc->PMaxScheduleEntry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */
- errn = encodeNBitUnsignedInteger(stream, 7, 42);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleEntryType(stream, &exiDoc->PMaxScheduleEntry );
- }
- } else if ( exiDoc->PaymentDetailsReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 43);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsReqType(stream, &exiDoc->PaymentDetailsReq );
- }
- } else if ( exiDoc->PaymentDetailsRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 44);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsResType(stream, &exiDoc->PaymentDetailsRes );
- }
- } else if ( exiDoc->PaymentServiceSelectionReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 45);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionReqType(stream, &exiDoc->PaymentServiceSelectionReq );
- }
- } else if ( exiDoc->PaymentServiceSelectionRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 46);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionResType(stream, &exiDoc->PaymentServiceSelectionRes );
- }
- } else if ( exiDoc->PowerDeliveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 47);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryReqType(stream, &exiDoc->PowerDeliveryReq );
- }
- } else if ( exiDoc->PowerDeliveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 48);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryResType(stream, &exiDoc->PowerDeliveryRes );
- }
- } else if ( exiDoc->PreChargeReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 49);
- if(errn == 0) {
- errn = encode_iso1PreChargeReqType(stream, &exiDoc->PreChargeReq );
- }
- } else if ( exiDoc->PreChargeRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 50);
- if(errn == 0) {
- errn = encode_iso1PreChargeResType(stream, &exiDoc->PreChargeRes );
- }
- } else if ( exiDoc->RSAKeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 7, 51);
- if(errn == 0) {
- errn = encode_iso1RSAKeyValueType(stream, &exiDoc->RSAKeyValue );
- }
- } else if ( exiDoc->Reference_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
- errn = encodeNBitUnsignedInteger(stream, 7, 52);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &exiDoc->Reference );
- }
- } else if ( exiDoc->RelativeTimeInterval_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */
- errn = encodeNBitUnsignedInteger(stream, 7, 53);
- if(errn == 0) {
- errn = encode_iso1RelativeTimeIntervalType(stream, &exiDoc->RelativeTimeInterval );
- }
- } else if ( exiDoc->RetrievalMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
- errn = encodeNBitUnsignedInteger(stream, 7, 54);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &exiDoc->RetrievalMethod );
- }
- } else if ( exiDoc->SAScheduleList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
- errn = encodeNBitUnsignedInteger(stream, 7, 55);
- if(errn == 0) {
- errn = encode_iso1SAScheduleListType(stream, &exiDoc->SAScheduleList );
- }
- } else if ( exiDoc->SASchedules_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
- errn = encodeNBitUnsignedInteger(stream, 7, 56);
- if(errn == 0) {
- errn = encode_iso1SASchedulesType(stream, &exiDoc->SASchedules );
- }
- } else if ( exiDoc->SPKIData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */
- errn = encodeNBitUnsignedInteger(stream, 7, 57);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &exiDoc->SPKIData );
- }
- } else if ( exiDoc->SalesTariffEntry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */
- errn = encodeNBitUnsignedInteger(stream, 7, 58);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &exiDoc->SalesTariffEntry );
- }
- } else if ( exiDoc->ServiceDetailReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 59);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailReqType(stream, &exiDoc->ServiceDetailReq );
- }
- } else if ( exiDoc->ServiceDetailRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 60);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailResType(stream, &exiDoc->ServiceDetailRes );
- }
- } else if ( exiDoc->ServiceDiscoveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 61);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryReqType(stream, &exiDoc->ServiceDiscoveryReq );
- }
- } else if ( exiDoc->ServiceDiscoveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 62);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryResType(stream, &exiDoc->ServiceDiscoveryRes );
- }
- } else if ( exiDoc->SessionSetupReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 63);
- if(errn == 0) {
- errn = encode_iso1SessionSetupReqType(stream, &exiDoc->SessionSetupReq );
- }
- } else if ( exiDoc->SessionSetupRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 64);
- if(errn == 0) {
- errn = encode_iso1SessionSetupResType(stream, &exiDoc->SessionSetupRes );
- }
- } else if ( exiDoc->SessionStopReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 65);
- if(errn == 0) {
- errn = encode_iso1SessionStopReqType(stream, &exiDoc->SessionStopReq );
- }
- } else if ( exiDoc->SessionStopRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 66);
- if(errn == 0) {
- errn = encode_iso1SessionStopResType(stream, &exiDoc->SessionStopRes );
- }
- } else if ( exiDoc->Signature_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */
- errn = encodeNBitUnsignedInteger(stream, 7, 67);
- if(errn == 0) {
- errn = encode_iso1SignatureType(stream, &exiDoc->Signature );
- }
- } else if ( exiDoc->SignatureMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */
- errn = encodeNBitUnsignedInteger(stream, 7, 68);
- if(errn == 0) {
- errn = encode_iso1SignatureMethodType(stream, &exiDoc->SignatureMethod );
- }
- } else if ( exiDoc->SignatureProperties_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */
- errn = encodeNBitUnsignedInteger(stream, 7, 69);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertiesType(stream, &exiDoc->SignatureProperties );
- }
- } else if ( exiDoc->SignatureProperty_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */
- errn = encodeNBitUnsignedInteger(stream, 7, 70);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertyType(stream, &exiDoc->SignatureProperty );
- }
- } else if ( exiDoc->SignatureValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */
- errn = encodeNBitUnsignedInteger(stream, 7, 71);
- if(errn == 0) {
- errn = encode_iso1SignatureValueType(stream, &exiDoc->SignatureValue );
- }
- } else if ( exiDoc->SignedInfo_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */
- errn = encodeNBitUnsignedInteger(stream, 7, 72);
- if(errn == 0) {
- errn = encode_iso1SignedInfoType(stream, &exiDoc->SignedInfo );
- }
- } else if ( exiDoc->TimeInterval_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */
- errn = encodeNBitUnsignedInteger(stream, 7, 73);
- if(errn == 0) {
- errn = encode_iso1IntervalType(stream, &exiDoc->TimeInterval );
- }
- } else if ( exiDoc->Transform_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */
- errn = encodeNBitUnsignedInteger(stream, 7, 74);
- if(errn == 0) {
- errn = encode_iso1TransformType(stream, &exiDoc->Transform );
- }
- } else if ( exiDoc->Transforms_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */
- errn = encodeNBitUnsignedInteger(stream, 7, 75);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &exiDoc->Transforms );
- }
- } else if ( exiDoc->V2G_Message_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */
- errn = encodeNBitUnsignedInteger(stream, 7, 76);
- if(errn == 0) {
- errn = encode_iso1AnonType_V2G_Message(stream, &exiDoc->V2G_Message );
- }
- } else if ( exiDoc->WeldingDetectionReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */
- errn = encodeNBitUnsignedInteger(stream, 7, 77);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionReqType(stream, &exiDoc->WeldingDetectionReq );
- }
- } else if ( exiDoc->WeldingDetectionRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */
- errn = encodeNBitUnsignedInteger(stream, 7, 78);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionResType(stream, &exiDoc->WeldingDetectionRes );
- }
- } else if ( exiDoc->X509Data_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */
- errn = encodeNBitUnsignedInteger(stream, 7, 79);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &exiDoc->X509Data );
- }
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- }
- if(errn == 0) {
- /* flush any pending bits */
- errn = encodeFinish(stream);
- }
- return errn;
- }
- #if DEPLOY_ISO1_CODEC_FRAGMENT == SUPPORT_YES
- int encode_iso1ExiFragment(bitstream_t* stream, struct iso1EXIFragment* exiFrag) {
- errn = writeEXIHeader(stream);
- if(errn == 0) {
- /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */
- if ( exiFrag->AC_EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 0);
- if(errn == 0) {
- errn = encode_iso1AC_EVChargeParameterType(stream, &exiFrag->AC_EVChargeParameter );
- }
- } else if ( exiFrag->AC_EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 1);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEChargeParameterType(stream, &exiFrag->AC_EVSEChargeParameter );
- }
- } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 2);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
- }
- } else if ( exiFrag->AC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}AC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 3);
- if(errn == 0) {
- errn = encode_iso1AC_EVSEStatusType(stream, &exiFrag->AC_EVSEStatus );
- }
- } else if ( exiFrag->AuthorizationReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 4);
- if(errn == 0) {
- errn = encode_iso1AuthorizationReqType(stream, &exiFrag->AuthorizationReq );
- }
- } else if ( exiFrag->AuthorizationRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}AuthorizationRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 5);
- if(errn == 0) {
- errn = encode_iso1AuthorizationResType(stream, &exiFrag->AuthorizationRes );
- }
- } else if ( exiFrag->Body_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Body) */
- errn = encodeNBitUnsignedInteger(stream, 8, 6);
- if(errn == 0) {
- errn = encode_iso1BodyType(stream, &exiFrag->Body );
- }
- } else if ( exiFrag->BodyElement_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BodyElement) */
- errn = encodeNBitUnsignedInteger(stream, 8, 7);
- if(errn == 0) {
- errn = encode_iso1BodyBaseType(stream, &exiFrag->BodyElement );
- }
- } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}BulkChargingComplete) */
- errn = encodeNBitUnsignedInteger(stream, 8, 8);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->BulkChargingComplete_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkChargingComplete) */
- errn = encodeNBitUnsignedInteger(stream, 8, 9);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->BulkChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->BulkSOC_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}BulkSOC) */
- errn = encodeNBitUnsignedInteger(stream, 8, 10);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->BulkSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->CableCheckReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 11);
- if(errn == 0) {
- errn = encode_iso1CableCheckReqType(stream, &exiFrag->CableCheckReq );
- }
- } else if ( exiFrag->CableCheckRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CableCheckRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 12);
- if(errn == 0) {
- errn = encode_iso1CableCheckResType(stream, &exiFrag->CableCheckRes );
- }
- } else if ( exiFrag->CanonicalizationMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod) */
- errn = encodeNBitUnsignedInteger(stream, 8, 13);
- if(errn == 0) {
- errn = encode_iso1CanonicalizationMethodType(stream, &exiFrag->CanonicalizationMethod );
- }
- } else if ( exiFrag->Certificate_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Certificate) */
- errn = encodeNBitUnsignedInteger(stream, 8, 14);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Certificate.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Certificate.bytes, exiFrag->Certificate.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->CertificateInstallationReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 15);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationReqType(stream, &exiFrag->CertificateInstallationReq );
- }
- } else if ( exiFrag->CertificateInstallationRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateInstallationRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 16);
- if(errn == 0) {
- errn = encode_iso1CertificateInstallationResType(stream, &exiFrag->CertificateInstallationRes );
- }
- } else if ( exiFrag->CertificateUpdateReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 17);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateReqType(stream, &exiFrag->CertificateUpdateReq );
- }
- } else if ( exiFrag->CertificateUpdateRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CertificateUpdateRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 18);
- if(errn == 0) {
- errn = encode_iso1CertificateUpdateResType(stream, &exiFrag->CertificateUpdateRes );
- }
- } else if ( exiFrag->ChargeParameterDiscoveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 19);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryReqType(stream, &exiFrag->ChargeParameterDiscoveryReq );
- }
- } else if ( exiFrag->ChargeParameterDiscoveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeParameterDiscoveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 20);
- if(errn == 0) {
- errn = encode_iso1ChargeParameterDiscoveryResType(stream, &exiFrag->ChargeParameterDiscoveryRes );
- }
- } else if ( exiFrag->ChargeProgress_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeProgress) */
- errn = encodeNBitUnsignedInteger(stream, 8, 21);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ChargeProgress);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargeService_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargeService) */
- errn = encodeNBitUnsignedInteger(stream, 8, 22);
- if(errn == 0) {
- errn = encode_iso1ChargeServiceType(stream, &exiFrag->ChargeService );
- }
- } else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingComplete) */
- errn = encodeNBitUnsignedInteger(stream, 8, 23);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargingComplete_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingComplete) */
- errn = encodeNBitUnsignedInteger(stream, 8, 24);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->ChargingComplete);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargingProfile_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingProfile) */
- errn = encodeNBitUnsignedInteger(stream, 8, 25);
- if(errn == 0) {
- errn = encode_iso1ChargingProfileType(stream, &exiFrag->ChargingProfile );
- }
- } else if ( exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxNumberOfPhasesInUse) */
- errn = encodeNBitUnsignedInteger(stream, 8, 26);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, (uint32_t)(exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargingProfileEntryMaxPower_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryMaxPower) */
- errn = encodeNBitUnsignedInteger(stream, 8, 27);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->ChargingProfileEntryMaxPower );
- }
- } else if ( exiFrag->ChargingProfileEntryStart_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ChargingProfileEntryStart) */
- errn = encodeNBitUnsignedInteger(stream, 8, 28);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, exiFrag->ChargingProfileEntryStart);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargingSession_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingSession) */
- errn = encodeNBitUnsignedInteger(stream, 8, 29);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->ChargingSession);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ChargingStatusReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 30);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusReqType(stream, &exiFrag->ChargingStatusReq );
- }
- } else if ( exiFrag->ChargingStatusRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ChargingStatusRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 31);
- if(errn == 0) {
- errn = encode_iso1ChargingStatusResType(stream, &exiFrag->ChargingStatusRes );
- }
- } else if ( exiFrag->ConsumptionCost_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ConsumptionCost) */
- errn = encodeNBitUnsignedInteger(stream, 8, 32);
- if(errn == 0) {
- errn = encode_iso1ConsumptionCostType(stream, &exiFrag->ConsumptionCost );
- }
- } else if ( exiFrag->ContractSignatureCertChain_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureCertChain) */
- errn = encodeNBitUnsignedInteger(stream, 8, 33);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &exiFrag->ContractSignatureCertChain );
- }
- } else if ( exiFrag->ContractSignatureEncryptedPrivateKey_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ContractSignatureEncryptedPrivateKey) */
- errn = encodeNBitUnsignedInteger(stream, 8, 34);
- if(errn == 0) {
- errn = encode_iso1ContractSignatureEncryptedPrivateKeyType(stream, &exiFrag->ContractSignatureEncryptedPrivateKey );
- }
- } else if ( exiFrag->Cost_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Cost) */
- errn = encodeNBitUnsignedInteger(stream, 8, 35);
- if(errn == 0) {
- errn = encode_iso1CostType(stream, &exiFrag->Cost );
- }
- } else if ( exiFrag->CurrentDemandReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 36);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandReqType(stream, &exiFrag->CurrentDemandReq );
- }
- } else if ( exiFrag->CurrentDemandRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}CurrentDemandRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 37);
- if(errn == 0) {
- errn = encode_iso1CurrentDemandResType(stream, &exiFrag->CurrentDemandRes );
- }
- } else if ( exiFrag->DC_EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 38);
- if(errn == 0) {
- errn = encode_iso1DC_EVChargeParameterType(stream, &exiFrag->DC_EVChargeParameter );
- }
- } else if ( exiFrag->DC_EVPowerDeliveryParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVPowerDeliveryParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 39);
- if(errn == 0) {
- errn = encode_iso1DC_EVPowerDeliveryParameterType(stream, &exiFrag->DC_EVPowerDeliveryParameter );
- }
- } else if ( exiFrag->DC_EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 40);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEChargeParameterType(stream, &exiFrag->DC_EVSEChargeParameter );
- }
- } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 41);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
- }
- } else if ( exiFrag->DC_EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 42);
- if(errn == 0) {
- errn = encode_iso1DC_EVSEStatusType(stream, &exiFrag->DC_EVSEStatus );
- }
- } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DC_EVStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 43);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus );
- }
- } else if ( exiFrag->DC_EVStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DC_EVStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 44);
- if(errn == 0) {
- errn = encode_iso1DC_EVStatusType(stream, &exiFrag->DC_EVStatus );
- }
- } else if ( exiFrag->DHpublickey_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}DHpublickey) */
- errn = encodeNBitUnsignedInteger(stream, 8, 45);
- if(errn == 0) {
- errn = encode_iso1DiffieHellmanPublickeyType(stream, &exiFrag->DHpublickey );
- }
- } else if ( exiFrag->DSAKeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 46);
- if(errn == 0) {
- errn = encode_iso1DSAKeyValueType(stream, &exiFrag->DSAKeyValue );
- }
- } else if ( exiFrag->DepartureTime_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}DepartureTime) */
- errn = encodeNBitUnsignedInteger(stream, 8, 47);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, exiFrag->DepartureTime);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->DigestMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod) */
- errn = encodeNBitUnsignedInteger(stream, 8, 48);
- if(errn == 0) {
- errn = encode_iso1DigestMethodType(stream, &exiFrag->DigestMethod );
- }
- } else if ( exiFrag->DigestValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 49);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->DigestValue.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->DigestValue.bytes, exiFrag->DigestValue.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EAmount_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EAmount) */
- errn = encodeNBitUnsignedInteger(stream, 8, 50);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EAmount );
- }
- } else if ( exiFrag->EPriceLevel_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EPriceLevel) */
- errn = encodeNBitUnsignedInteger(stream, 8, 51);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->EPriceLevel - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVCCID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVCCID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 52);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVCCID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->EVCCID.bytes, exiFrag->EVCCID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 53);
- if(errn == 0) {
- errn = encode_iso1EVChargeParameterType(stream, &exiFrag->EVChargeParameter );
- }
- } else if ( exiFrag->EVEnergyCapacity_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyCapacity) */
- errn = encodeNBitUnsignedInteger(stream, 8, 54);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyCapacity );
- }
- } else if ( exiFrag->EVEnergyRequest_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVEnergyRequest) */
- errn = encodeNBitUnsignedInteger(stream, 8, 55);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVEnergyRequest );
- }
- } else if ( exiFrag->EVErrorCode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVErrorCode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 56);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVErrorCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVMaxCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 57);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaxCurrent );
- }
- } else if ( exiFrag->EVMaxVoltage_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaxVoltage) */
- errn = encodeNBitUnsignedInteger(stream, 8, 58);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaxVoltage );
- }
- } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumCurrentLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 59);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
- }
- } else if ( exiFrag->EVMaximumCurrentLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumCurrentLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 60);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumCurrentLimit );
- }
- } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumPowerLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 61);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
- }
- } else if ( exiFrag->EVMaximumPowerLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumPowerLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 62);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumPowerLimit );
- }
- } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVMaximumVoltageLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 63);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
- }
- } else if ( exiFrag->EVMaximumVoltageLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMaximumVoltageLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 64);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMaximumVoltageLimit );
- }
- } else if ( exiFrag->EVMinCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVMinCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 65);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVMinCurrent );
- }
- } else if ( exiFrag->EVPowerDeliveryParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVPowerDeliveryParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 66);
- if(errn == 0) {
- errn = encode_iso1EVPowerDeliveryParameterType(stream, &exiFrag->EVPowerDeliveryParameter );
- }
- } else if ( exiFrag->EVRESSSOC_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVRESSSOC) */
- errn = encodeNBitUnsignedInteger(stream, 8, 67);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->EVRESSSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVReady_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVReady) */
- errn = encodeNBitUnsignedInteger(stream, 8, 68);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->EVReady);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEChargeParameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEChargeParameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 69);
- if(errn == 0) {
- errn = encode_iso1EVSEChargeParameterType(stream, &exiFrag->EVSEChargeParameter );
- }
- } else if ( exiFrag->EVSECurrentLimitAchieved_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSECurrentLimitAchieved) */
- errn = encodeNBitUnsignedInteger(stream, 8, 70);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->EVSECurrentLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSECurrentRegulationTolerance_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSECurrentRegulationTolerance) */
- errn = encodeNBitUnsignedInteger(stream, 8, 71);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSECurrentRegulationTolerance );
- }
- } else if ( exiFrag->EVSEEnergyToBeDelivered_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEEnergyToBeDelivered) */
- errn = encodeNBitUnsignedInteger(stream, 8, 72);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEEnergyToBeDelivered );
- }
- } else if ( exiFrag->EVSEID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 73);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->EVSEID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->EVSEID.characters, exiFrag->EVSEID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEIsolationStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEIsolationStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 74);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->EVSEIsolationStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaxCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 75);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
- }
- } else if ( exiFrag->EVSEMaxCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaxCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 76);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaxCurrent );
- }
- } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumCurrentLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 77);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
- }
- } else if ( exiFrag->EVSEMaximumCurrentLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumCurrentLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 78);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumCurrentLimit );
- }
- } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumPowerLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 79);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
- }
- } else if ( exiFrag->EVSEMaximumPowerLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumPowerLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 80);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumPowerLimit );
- }
- } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEMaximumVoltageLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 81);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
- }
- } else if ( exiFrag->EVSEMaximumVoltageLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMaximumVoltageLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 82);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMaximumVoltageLimit );
- }
- } else if ( exiFrag->EVSEMinimumCurrentLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumCurrentLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 83);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumCurrentLimit );
- }
- } else if ( exiFrag->EVSEMinimumVoltageLimit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEMinimumVoltageLimit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 84);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEMinimumVoltageLimit );
- }
- } else if ( exiFrag->EVSENominalVoltage_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENominalVoltage) */
- errn = encodeNBitUnsignedInteger(stream, 8, 85);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSENominalVoltage );
- }
- } else if ( exiFrag->EVSENotification_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSENotification) */
- errn = encodeNBitUnsignedInteger(stream, 8, 86);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSENotification);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEPeakCurrentRipple_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEPeakCurrentRipple) */
- errn = encodeNBitUnsignedInteger(stream, 8, 87);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPeakCurrentRipple );
- }
- } else if ( exiFrag->EVSEPowerLimitAchieved_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPowerLimitAchieved) */
- errn = encodeNBitUnsignedInteger(stream, 8, 88);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->EVSEPowerLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEPresentCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 89);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentCurrent );
- }
- } else if ( exiFrag->EVSEPresentVoltage_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEPresentVoltage) */
- errn = encodeNBitUnsignedInteger(stream, 8, 90);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVSEPresentVoltage );
- }
- } else if ( exiFrag->EVSEProcessing_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEProcessing) */
- errn = encodeNBitUnsignedInteger(stream, 8, 91);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->EVSEProcessing);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 92);
- if(errn == 0) {
- errn = encode_iso1EVSEStatusType(stream, &exiFrag->EVSEStatus );
- }
- } else if ( exiFrag->EVSEStatusCode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVSEStatusCode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 93);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 4, exiFrag->EVSEStatusCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSETimeStamp_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSETimeStamp) */
- errn = encodeNBitUnsignedInteger(stream, 8, 94);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, exiFrag->EVSETimeStamp);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVSEVoltageLimitAchieved_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVSEVoltageLimitAchieved) */
- errn = encodeNBitUnsignedInteger(stream, 8, 95);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->EVSEVoltageLimitAchieved);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->EVStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EVStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 96);
- if(errn == 0) {
- errn = encode_iso1EVStatusType(stream, &exiFrag->EVStatus );
- }
- } else if ( exiFrag->EVTargetCurrent_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetCurrent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 97);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetCurrent );
- }
- } else if ( exiFrag->EVTargetVoltage_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}EVTargetVoltage) */
- errn = encodeNBitUnsignedInteger(stream, 8, 98);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->EVTargetVoltage );
- }
- } else if ( exiFrag->EnergyTransferMode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}EnergyTransferMode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 99);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->EnergyTransferMode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Entry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Entry) */
- errn = encodeNBitUnsignedInteger(stream, 8, 100);
- if(errn == 0) {
- errn = encode_iso1EntryType(stream, &exiFrag->Entry );
- }
- } else if ( exiFrag->Exponent_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent) */
- errn = encodeNBitUnsignedInteger(stream, 8, 101);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Exponent.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Exponent.bytes, exiFrag->Exponent.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->FaultCode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultCode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 102);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->FaultCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->FaultMsg_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FaultMsg) */
- errn = encodeNBitUnsignedInteger(stream, 8, 103);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->FaultMsg.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->FaultMsg.characters, exiFrag->FaultMsg.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->FreeService_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FreeService) */
- errn = encodeNBitUnsignedInteger(stream, 8, 104);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->FreeService);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->FullSOC_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}FullSOC) */
- errn = encodeNBitUnsignedInteger(stream, 8, 105);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 7, (uint32_t)(exiFrag->FullSOC - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->G_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G) */
- errn = encodeNBitUnsignedInteger(stream, 8, 106);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->G.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->G.bytes, exiFrag->G.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->GenChallenge_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}GenChallenge) */
- errn = encodeNBitUnsignedInteger(stream, 8, 107);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->GenChallenge.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->GenChallenge.bytes, exiFrag->GenChallenge.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->HMACOutputLength_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength) */
- errn = encodeNBitUnsignedInteger(stream, 8, 108);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, exiFrag->HMACOutputLength);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Header_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}Header) */
- errn = encodeNBitUnsignedInteger(stream, 8, 109);
- if(errn == 0) {
- errn = encode_iso1MessageHeaderType(stream, &exiFrag->Header );
- }
- } else if ( exiFrag->J_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J) */
- errn = encodeNBitUnsignedInteger(stream, 8, 110);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->J.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->J.bytes, exiFrag->J.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->KeyInfo_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo) */
- errn = encodeNBitUnsignedInteger(stream, 8, 111);
- if(errn == 0) {
- errn = encode_iso1KeyInfoType(stream, &exiFrag->KeyInfo );
- }
- } else if ( exiFrag->KeyName_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName) */
- errn = encodeNBitUnsignedInteger(stream, 8, 112);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->KeyName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->KeyName.characters, exiFrag->KeyName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->KeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 113);
- if(errn == 0) {
- errn = encode_iso1KeyValueType(stream, &exiFrag->KeyValue );
- }
- } else if ( exiFrag->ListOfRootCertificateIDs_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ListOfRootCertificateIDs) */
- errn = encodeNBitUnsignedInteger(stream, 8, 114);
- if(errn == 0) {
- errn = encode_iso1ListOfRootCertificateIDsType(stream, &exiFrag->ListOfRootCertificateIDs );
- }
- } else if ( exiFrag->Manifest_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest) */
- errn = encodeNBitUnsignedInteger(stream, 8, 115);
- if(errn == 0) {
- errn = encode_iso1ManifestType(stream, &exiFrag->Manifest );
- }
- } else if ( exiFrag->MaxEntriesSAScheduleTuple_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MaxEntriesSAScheduleTuple) */
- errn = encodeNBitUnsignedInteger(stream, 8, 116);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, exiFrag->MaxEntriesSAScheduleTuple);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->MeterID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 117);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MeterID.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->MeterID.characters, exiFrag->MeterID.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->MeterInfo_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeterInfo) */
- errn = encodeNBitUnsignedInteger(stream, 8, 118);
- if(errn == 0) {
- errn = encode_iso1MeterInfoType(stream, &exiFrag->MeterInfo );
- }
- } else if ( exiFrag->MeterReading_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterReading) */
- errn = encodeNBitUnsignedInteger(stream, 8, 119);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger64(stream, exiFrag->MeterReading);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->MeterStatus_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}MeterStatus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 120);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, exiFrag->MeterStatus);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->MeteringReceiptReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 121);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptReqType(stream, &exiFrag->MeteringReceiptReq );
- }
- } else if ( exiFrag->MeteringReceiptRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}MeteringReceiptRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 122);
- if(errn == 0) {
- errn = encode_iso1MeteringReceiptResType(stream, &exiFrag->MeteringReceiptRes );
- }
- } else if ( exiFrag->MgmtData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData) */
- errn = encodeNBitUnsignedInteger(stream, 8, 123);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->MgmtData.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->MgmtData.characters, exiFrag->MgmtData.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Modulus_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus) */
- errn = encodeNBitUnsignedInteger(stream, 8, 124);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Modulus.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Modulus.bytes, exiFrag->Modulus.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Multiplier_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Multiplier) */
- errn = encodeNBitUnsignedInteger(stream, 8, 125);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->Multiplier + 3));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Notification_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}Notification) */
- errn = encodeNBitUnsignedInteger(stream, 8, 126);
- if(errn == 0) {
- errn = encode_iso1NotificationType(stream, &exiFrag->Notification );
- }
- } else if ( exiFrag->NotificationMaxDelay_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NotificationMaxDelay) */
- errn = encodeNBitUnsignedInteger(stream, 8, 127);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, exiFrag->NotificationMaxDelay);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->NumEPriceLevels_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}NumEPriceLevels) */
- errn = encodeNBitUnsignedInteger(stream, 8, 128);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->NumEPriceLevels - 0));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->OEMProvisioningCert_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}OEMProvisioningCert) */
- errn = encodeNBitUnsignedInteger(stream, 8, 129);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->OEMProvisioningCert.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->OEMProvisioningCert.bytes, exiFrag->OEMProvisioningCert.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Object_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object) */
- errn = encodeNBitUnsignedInteger(stream, 8, 130);
- if(errn == 0) {
- errn = encode_iso1ObjectType(stream, &exiFrag->Object );
- }
- } else if ( exiFrag->P_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P) */
- errn = encodeNBitUnsignedInteger(stream, 8, 131);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->P.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->P.bytes, exiFrag->P.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PGPData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData) */
- errn = encodeNBitUnsignedInteger(stream, 8, 132);
- if(errn == 0) {
- errn = encode_iso1PGPDataType(stream, &exiFrag->PGPData );
- }
- } else if ( exiFrag->PGPKeyID_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 133);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->PGPKeyID.bytes, exiFrag->PGPKeyID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PGPKeyPacket_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket) */
- errn = encodeNBitUnsignedInteger(stream, 8, 134);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PGPKeyPacket.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->PGPKeyPacket.bytes, exiFrag->PGPKeyPacket.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PMax_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMax) */
- errn = encodeNBitUnsignedInteger(stream, 8, 135);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->PMax );
- }
- } else if ( exiFrag->PMaxSchedule_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxSchedule) */
- errn = encodeNBitUnsignedInteger(stream, 8, 136);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleType(stream, &exiFrag->PMaxSchedule );
- }
- } else if ( exiFrag->PMaxScheduleEntry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PMaxScheduleEntry) */
- errn = encodeNBitUnsignedInteger(stream, 8, 137);
- if(errn == 0) {
- errn = encode_iso1PMaxScheduleEntryType(stream, &exiFrag->PMaxScheduleEntry );
- }
- } else if ( exiFrag->Parameter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Parameter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 138);
- if(errn == 0) {
- errn = encode_iso1ParameterType(stream, &exiFrag->Parameter );
- }
- } else if ( exiFrag->ParameterSet_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSet) */
- errn = encodeNBitUnsignedInteger(stream, 8, 139);
- if(errn == 0) {
- errn = encode_iso1ParameterSetType(stream, &exiFrag->ParameterSet );
- }
- } else if ( exiFrag->ParameterSetID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ParameterSetID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 140);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, exiFrag->ParameterSetID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PaymentDetailsReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 141);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsReqType(stream, &exiFrag->PaymentDetailsReq );
- }
- } else if ( exiFrag->PaymentDetailsRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentDetailsRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 142);
- if(errn == 0) {
- errn = encode_iso1PaymentDetailsResType(stream, &exiFrag->PaymentDetailsRes );
- }
- } else if ( exiFrag->PaymentOption_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}PaymentOption) */
- errn = encodeNBitUnsignedInteger(stream, 8, 143);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->PaymentOption);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PaymentOptionList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentOptionList) */
- errn = encodeNBitUnsignedInteger(stream, 8, 144);
- if(errn == 0) {
- errn = encode_iso1PaymentOptionListType(stream, &exiFrag->PaymentOptionList );
- }
- } else if ( exiFrag->PaymentServiceSelectionReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 145);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionReqType(stream, &exiFrag->PaymentServiceSelectionReq );
- }
- } else if ( exiFrag->PaymentServiceSelectionRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PaymentServiceSelectionRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 146);
- if(errn == 0) {
- errn = encode_iso1PaymentServiceSelectionResType(stream, &exiFrag->PaymentServiceSelectionRes );
- }
- } else if ( exiFrag->PgenCounter_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 147);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->PgenCounter.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->PgenCounter.bytes, exiFrag->PgenCounter.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->PowerDeliveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 148);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryReqType(stream, &exiFrag->PowerDeliveryReq );
- }
- } else if ( exiFrag->PowerDeliveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PowerDeliveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 149);
- if(errn == 0) {
- errn = encode_iso1PowerDeliveryResType(stream, &exiFrag->PowerDeliveryRes );
- }
- } else if ( exiFrag->PreChargeReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 150);
- if(errn == 0) {
- errn = encode_iso1PreChargeReqType(stream, &exiFrag->PreChargeReq );
- }
- } else if ( exiFrag->PreChargeRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}PreChargeRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 151);
- if(errn == 0) {
- errn = encode_iso1PreChargeResType(stream, &exiFrag->PreChargeRes );
- }
- } else if ( exiFrag->ProfileEntry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ProfileEntry) */
- errn = encodeNBitUnsignedInteger(stream, 8, 152);
- if(errn == 0) {
- errn = encode_iso1ProfileEntryType(stream, &exiFrag->ProfileEntry );
- }
- } else if ( exiFrag->Q_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q) */
- errn = encodeNBitUnsignedInteger(stream, 8, 153);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Q.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Q.bytes, exiFrag->Q.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->RCD_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RCD) */
- errn = encodeNBitUnsignedInteger(stream, 8, 154);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->RCD);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->RSAKeyValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 155);
- if(errn == 0) {
- errn = encode_iso1RSAKeyValueType(stream, &exiFrag->RSAKeyValue );
- }
- } else if ( exiFrag->ReceiptRequired_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ReceiptRequired) */
- errn = encodeNBitUnsignedInteger(stream, 8, 156);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->ReceiptRequired);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Reference_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference) */
- errn = encodeNBitUnsignedInteger(stream, 8, 157);
- if(errn == 0) {
- errn = encode_iso1ReferenceType(stream, &exiFrag->Reference );
- }
- } else if ( exiFrag->RelativeTimeInterval_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RelativeTimeInterval) */
- errn = encodeNBitUnsignedInteger(stream, 8, 158);
- if(errn == 0) {
- errn = encode_iso1RelativeTimeIntervalType(stream, &exiFrag->RelativeTimeInterval );
- }
- } else if ( exiFrag->RemainingTimeToBulkSoC_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToBulkSoC) */
- errn = encodeNBitUnsignedInteger(stream, 8, 159);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToBulkSoC );
- }
- } else if ( exiFrag->RemainingTimeToFullSoC_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RemainingTimeToFullSoC) */
- errn = encodeNBitUnsignedInteger(stream, 8, 160);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->RemainingTimeToFullSoC );
- }
- } else if ( exiFrag->RequestedEnergyTransferMode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RequestedEnergyTransferMode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 161);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->RequestedEnergyTransferMode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ResponseCode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ResponseCode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 162);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 5, exiFrag->ResponseCode);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->RetrievalMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod) */
- errn = encodeNBitUnsignedInteger(stream, 8, 163);
- if(errn == 0) {
- errn = encode_iso1RetrievalMethodType(stream, &exiFrag->RetrievalMethod );
- }
- } else if ( exiFrag->RetryCounter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}RetryCounter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 164);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, exiFrag->RetryCounter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->RootCertificateID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}RootCertificateID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 165);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &exiFrag->RootCertificateID );
- }
- } else if ( exiFrag->SAProvisioningCertificateChain_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAProvisioningCertificateChain) */
- errn = encodeNBitUnsignedInteger(stream, 8, 166);
- if(errn == 0) {
- errn = encode_iso1CertificateChainType(stream, &exiFrag->SAProvisioningCertificateChain );
- }
- } else if ( exiFrag->SAScheduleList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleList) */
- errn = encodeNBitUnsignedInteger(stream, 8, 167);
- if(errn == 0) {
- errn = encode_iso1SAScheduleListType(stream, &exiFrag->SAScheduleList );
- }
- } else if ( exiFrag->SAScheduleTuple_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTuple) */
- errn = encodeNBitUnsignedInteger(stream, 8, 168);
- if(errn == 0) {
- errn = encode_iso1SAScheduleTupleType(stream, &exiFrag->SAScheduleTuple );
- }
- } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SAScheduleTupleID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 169);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SAScheduleTupleID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SAScheduleTupleID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 170);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SAScheduleTupleID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SASchedules_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SASchedules) */
- errn = encodeNBitUnsignedInteger(stream, 8, 171);
- if(errn == 0) {
- errn = encode_iso1SASchedulesType(stream, &exiFrag->SASchedules );
- }
- } else if ( exiFrag->SPKIData_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData) */
- errn = encodeNBitUnsignedInteger(stream, 8, 172);
- if(errn == 0) {
- errn = encode_iso1SPKIDataType(stream, &exiFrag->SPKIData );
- }
- } else if ( exiFrag->SPKISexp_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp) */
- errn = encodeNBitUnsignedInteger(stream, 8, 173);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SPKISexp.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->SPKISexp.bytes, exiFrag->SPKISexp.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SalesTariff_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariff) */
- errn = encodeNBitUnsignedInteger(stream, 8, 174);
- if(errn == 0) {
- errn = encode_iso1SalesTariffType(stream, &exiFrag->SalesTariff );
- }
- } else if ( exiFrag->SalesTariffDescription_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffDescription) */
- errn = encodeNBitUnsignedInteger(stream, 8, 175);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SalesTariffDescription.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->SalesTariffDescription.characters, exiFrag->SalesTariffDescription.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SalesTariffEntry_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffEntry) */
- errn = encodeNBitUnsignedInteger(stream, 8, 176);
- if(errn == 0) {
- errn = encode_iso1SalesTariffEntryType(stream, &exiFrag->SalesTariffEntry );
- }
- } else if ( exiFrag->SalesTariffID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SalesTariffID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 177);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->SalesTariffID - 1));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Seed_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed) */
- errn = encodeNBitUnsignedInteger(stream, 8, 178);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Seed.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Seed.bytes, exiFrag->Seed.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SelectedPaymentOption_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedPaymentOption) */
- errn = encodeNBitUnsignedInteger(stream, 8, 179);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 1, exiFrag->SelectedPaymentOption);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SelectedService_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SelectedService) */
- errn = encodeNBitUnsignedInteger(stream, 8, 180);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceType(stream, &exiFrag->SelectedService );
- }
- } else if ( exiFrag->SelectedServiceList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SelectedServiceList) */
- errn = encodeNBitUnsignedInteger(stream, 8, 181);
- if(errn == 0) {
- errn = encode_iso1SelectedServiceListType(stream, &exiFrag->SelectedServiceList );
- }
- } else if ( exiFrag->Service_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Service) */
- errn = encodeNBitUnsignedInteger(stream, 8, 182);
- if(errn == 0) {
- errn = encode_iso1ServiceType(stream, &exiFrag->Service );
- }
- } else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceCategory) */
- errn = encodeNBitUnsignedInteger(stream, 8, 183);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceCategory_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceCategory) */
- errn = encodeNBitUnsignedInteger(stream, 8, 184);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->ServiceCategory);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceDetailReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 185);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailReqType(stream, &exiFrag->ServiceDetailReq );
- }
- } else if ( exiFrag->ServiceDetailRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDetailRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 186);
- if(errn == 0) {
- errn = encode_iso1ServiceDetailResType(stream, &exiFrag->ServiceDetailRes );
- }
- } else if ( exiFrag->ServiceDiscoveryReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 187);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryReqType(stream, &exiFrag->ServiceDiscoveryReq );
- }
- } else if ( exiFrag->ServiceDiscoveryRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceDiscoveryRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 188);
- if(errn == 0) {
- errn = encode_iso1ServiceDiscoveryResType(stream, &exiFrag->ServiceDiscoveryRes );
- }
- } else if ( exiFrag->ServiceID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 189);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 190);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, exiFrag->ServiceID);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceList) */
- errn = encodeNBitUnsignedInteger(stream, 8, 191);
- if(errn == 0) {
- errn = encode_iso1ServiceListType(stream, &exiFrag->ServiceList );
- }
- } else if ( exiFrag->ServiceName_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceName) */
- errn = encodeNBitUnsignedInteger(stream, 8, 192);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->ServiceName.characters, exiFrag->ServiceName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceParameterList_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceParameterList) */
- errn = encodeNBitUnsignedInteger(stream, 8, 193);
- if(errn == 0) {
- errn = encode_iso1ServiceParameterListType(stream, &exiFrag->ServiceParameterList );
- }
- } else if ( exiFrag->ServiceScope_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}ServiceScope) */
- errn = encodeNBitUnsignedInteger(stream, 8, 194);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->ServiceScope_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}ServiceScope) */
- errn = encodeNBitUnsignedInteger(stream, 8, 195);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->ServiceScope.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->ServiceScope.characters, exiFrag->ServiceScope.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SessionID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 196);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SessionID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgHeader}SessionID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 197);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_HEX]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SessionID.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->SessionID.bytes, exiFrag->SessionID.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->SessionSetupReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 198);
- if(errn == 0) {
- errn = encode_iso1SessionSetupReqType(stream, &exiFrag->SessionSetupReq );
- }
- } else if ( exiFrag->SessionSetupRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionSetupRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 199);
- if(errn == 0) {
- errn = encode_iso1SessionSetupResType(stream, &exiFrag->SessionSetupRes );
- }
- } else if ( exiFrag->SessionStopReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 200);
- if(errn == 0) {
- errn = encode_iso1SessionStopReqType(stream, &exiFrag->SessionStopReq );
- }
- } else if ( exiFrag->SessionStopRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}SessionStopRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 201);
- if(errn == 0) {
- errn = encode_iso1SessionStopResType(stream, &exiFrag->SessionStopRes );
- }
- } else if ( exiFrag->SigMeterReading_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SigMeterReading) */
- errn = encodeNBitUnsignedInteger(stream, 8, 202);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->SigMeterReading.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->SigMeterReading.bytes, exiFrag->SigMeterReading.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Signature_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature) */
- errn = encodeNBitUnsignedInteger(stream, 8, 203);
- if(errn == 0) {
- errn = encode_iso1SignatureType(stream, &exiFrag->Signature );
- }
- } else if ( exiFrag->SignatureMethod_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod) */
- errn = encodeNBitUnsignedInteger(stream, 8, 204);
- if(errn == 0) {
- errn = encode_iso1SignatureMethodType(stream, &exiFrag->SignatureMethod );
- }
- } else if ( exiFrag->SignatureProperties_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties) */
- errn = encodeNBitUnsignedInteger(stream, 8, 205);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertiesType(stream, &exiFrag->SignatureProperties );
- }
- } else if ( exiFrag->SignatureProperty_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty) */
- errn = encodeNBitUnsignedInteger(stream, 8, 206);
- if(errn == 0) {
- errn = encode_iso1SignaturePropertyType(stream, &exiFrag->SignatureProperty );
- }
- } else if ( exiFrag->SignatureValue_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 207);
- if(errn == 0) {
- errn = encode_iso1SignatureValueType(stream, &exiFrag->SignatureValue );
- }
- } else if ( exiFrag->SignedInfo_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo) */
- errn = encodeNBitUnsignedInteger(stream, 8, 208);
- if(errn == 0) {
- errn = encode_iso1SignedInfoType(stream, &exiFrag->SignedInfo );
- }
- } else if ( exiFrag->SubCertificates_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SubCertificates) */
- errn = encodeNBitUnsignedInteger(stream, 8, 209);
- if(errn == 0) {
- errn = encode_iso1SubCertificatesType(stream, &exiFrag->SubCertificates );
- }
- } else if ( exiFrag->SupportedEnergyTransferMode_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}SupportedEnergyTransferMode) */
- errn = encodeNBitUnsignedInteger(stream, 8, 210);
- if(errn == 0) {
- errn = encode_iso1SupportedEnergyTransferModeType(stream, &exiFrag->SupportedEnergyTransferMode );
- }
- } else if ( exiFrag->TMeter_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TMeter) */
- errn = encodeNBitUnsignedInteger(stream, 8, 211);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, exiFrag->TMeter);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->TimeInterval_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}TimeInterval) */
- errn = encodeNBitUnsignedInteger(stream, 8, 212);
- if(errn == 0) {
- errn = encode_iso1IntervalType(stream, &exiFrag->TimeInterval );
- }
- } else if ( exiFrag->Transform_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform) */
- errn = encodeNBitUnsignedInteger(stream, 8, 213);
- if(errn == 0) {
- errn = encode_iso1TransformType(stream, &exiFrag->Transform );
- }
- } else if ( exiFrag->Transforms_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms) */
- errn = encodeNBitUnsignedInteger(stream, 8, 214);
- if(errn == 0) {
- errn = encode_iso1TransformsType(stream, &exiFrag->Transforms );
- }
- } else if ( exiFrag->Unit_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Unit) */
- errn = encodeNBitUnsignedInteger(stream, 8, 215);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, exiFrag->Unit);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->V2G_Message_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDef}V2G_Message) */
- errn = encodeNBitUnsignedInteger(stream, 8, 216);
- if(errn == 0) {
- errn = encode_iso1AnonType_V2G_Message(stream, &exiFrag->V2G_Message );
- }
- } else if ( exiFrag->Value_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}Value) */
- errn = encodeNBitUnsignedInteger(stream, 8, 217);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, exiFrag->Value);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->WeldingDetectionReq_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionReq) */
- errn = encodeNBitUnsignedInteger(stream, 8, 218);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionReqType(stream, &exiFrag->WeldingDetectionReq );
- }
- } else if ( exiFrag->WeldingDetectionRes_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}WeldingDetectionRes) */
- errn = encodeNBitUnsignedInteger(stream, 8, 219);
- if(errn == 0) {
- errn = encode_iso1WeldingDetectionResType(stream, &exiFrag->WeldingDetectionRes );
- }
- } else if ( exiFrag->X509CRL_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL) */
- errn = encodeNBitUnsignedInteger(stream, 8, 220);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509CRL.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->X509CRL.bytes, exiFrag->X509CRL.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->X509Certificate_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate) */
- errn = encodeNBitUnsignedInteger(stream, 8, 221);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509Certificate.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->X509Certificate.bytes, exiFrag->X509Certificate.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->X509Data_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data) */
- errn = encodeNBitUnsignedInteger(stream, 8, 222);
- if(errn == 0) {
- errn = encode_iso1X509DataType(stream, &exiFrag->X509Data );
- }
- } else if ( exiFrag->X509IssuerName_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName) */
- errn = encodeNBitUnsignedInteger(stream, 8, 223);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509IssuerName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->X509IssuerName.characters, exiFrag->X509IssuerName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->X509IssuerSerial_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial) */
- errn = encodeNBitUnsignedInteger(stream, 8, 224);
- if(errn == 0) {
- errn = encode_iso1X509IssuerSerialType(stream, &exiFrag->X509IssuerSerial );
- }
- } else if ( exiFrag->X509SKI_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI) */
- errn = encodeNBitUnsignedInteger(stream, 8, 225);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SKI.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->X509SKI.bytes, exiFrag->X509SKI.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->X509SerialNumber_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber) */
- errn = encodeNBitUnsignedInteger(stream, 8, 226);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger64(stream, exiFrag->X509SerialNumber);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->X509SubjectName_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName) */
- errn = encodeNBitUnsignedInteger(stream, 8, 227);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->X509SubjectName.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->X509SubjectName.characters, exiFrag->X509SubjectName.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->XPath_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath) */
- errn = encodeNBitUnsignedInteger(stream, 8, 228);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->XPath.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->XPath.characters, exiFrag->XPath.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->Y_isUsed == 1u ) {
- /* START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y) */
- errn = encodeNBitUnsignedInteger(stream, 8, 229);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->Y.bytesLen));
- if (errn == 0) {
- errn = encodeBytes(stream, exiFrag->Y.bytes, exiFrag->Y.bytesLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->amount_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amount) */
- errn = encodeNBitUnsignedInteger(stream, 8, 230);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, exiFrag->amount);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->amountMultiplier_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}amountMultiplier) */
- errn = encodeNBitUnsignedInteger(stream, 8, 231);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 3, (uint32_t)(exiFrag->amountMultiplier + 3));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->boolValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}boolValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 232);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[BOOLEAN]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeBoolean(stream, exiFrag->boolValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->byteValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}byteValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 233);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 8, (uint32_t)(exiFrag->byteValue + 128));
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->costKind_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}costKind) */
- errn = encodeNBitUnsignedInteger(stream, 8, 234);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[ENUMERATION]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeNBitUnsignedInteger(stream, 2, exiFrag->costKind);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->duration_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}duration) */
- errn = encodeNBitUnsignedInteger(stream, 8, 235);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, exiFrag->duration);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->eMAID_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgBody}eMAID) */
- errn = encodeNBitUnsignedInteger(stream, 8, 236);
- if(errn == 0) {
- errn = encode_iso1EXISchemaInformedElementFragmentGrammar(stream, &exiFrag->eMAID);
- }
- } else if ( exiFrag->intValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}intValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 237);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger32(stream, exiFrag->intValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->physicalValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}physicalValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 238);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->physicalValue );
- }
- } else if ( exiFrag->shortValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}shortValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 239);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeInteger16(stream, exiFrag->shortValue);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->start_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}start) */
- errn = encodeNBitUnsignedInteger(stream, 8, 240);
- if(errn == 0) {
- /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- errn = encodeUnsignedInteger32(stream, exiFrag->start);
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else if ( exiFrag->startValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}startValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 241);
- if(errn == 0) {
- errn = encode_iso1PhysicalValueType(stream, &exiFrag->startValue );
- }
- } else if ( exiFrag->stringValue_isUsed == 1u ) {
- /* START_ELEMENT({urn:iso:15118:2:2013:MsgDataTypes}stringValue) */
- errn = encodeNBitUnsignedInteger(stream, 8, 242);
- if(errn == 0) {
- /* First(xsi:type)StartTag[CHARACTERS[STRING]] */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- if(errn == 0) {
- /* encode string as string table miss (+2 len)*/
- errn = encodeUnsignedInteger16(stream, (uint16_t)(exiFrag->stringValue.charactersLen + 2));
- if (errn == 0) {
- errn = encodeCharacters(stream, exiFrag->stringValue.characters, exiFrag->stringValue.charactersLen);
- }
- /* valid EE */
- errn = encodeNBitUnsignedInteger(stream, 1, 0);
- }
- }
- } else {
- errn = EXI_ERROR_UNKOWN_EVENT;
- }
- }
- if(errn == 0) {
- /* EndDocument */
- errn = encodeNBitUnsignedInteger(stream, 8, 244);
- }
- if(errn == 0) {
- /* flush any pending bits */
- errn = encodeFinish(stream);
- }
- return errn;
- }
- #endif /* DEPLOY_ISO1_CODEC_FRAGMENT */
- #endif /* DEPLOY_ISO1_CODEC */
- #endif
|