intercode.c 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. #include <stdlib.h>
  2. #include "intercode.h"
  3. CalypsoApp* get_intercode_structure_contract() {
  4. CalypsoApp* IntercodeContractStructure = malloc(sizeof(CalypsoApp));
  5. if(!IntercodeContractStructure) {
  6. return NULL;
  7. }
  8. int app_elements_count = 1;
  9. IntercodeContractStructure->type = CALYPSO_APP_CONTRACT;
  10. IntercodeContractStructure->container = malloc(sizeof(CalypsoContainerElement));
  11. IntercodeContractStructure->container->elements =
  12. malloc(app_elements_count * sizeof(CalypsoElement));
  13. IntercodeContractStructure->container->size = app_elements_count;
  14. IntercodeContractStructure->container->elements[0] = make_calypso_bitmap_element(
  15. "Contract",
  16. 20,
  17. (CalypsoElement[]){
  18. make_calypso_final_element(
  19. "ContractNetworkId", 24, "Identification du réseau", CALYPSO_FINAL_TYPE_UNKNOWN),
  20. make_calypso_final_element(
  21. "ContractProvider",
  22. 8,
  23. "Identification de l’exploitant",
  24. CALYPSO_FINAL_TYPE_UNKNOWN),
  25. make_calypso_final_element(
  26. "ContractTariff", 16, "Code tarif", CALYPSO_FINAL_TYPE_TARIFF),
  27. make_calypso_final_element(
  28. "ContractSerialNumber", 32, "Numéro TCN", CALYPSO_FINAL_TYPE_UNKNOWN),
  29. make_calypso_bitmap_element(
  30. "ContractCustomerInfoBitmap",
  31. 2,
  32. (CalypsoElement[]){
  33. make_calypso_final_element(
  34. "ContractCustomerProfile",
  35. 6,
  36. "Statut du titulaire ou Taux de réduction applicable",
  37. CALYPSO_FINAL_TYPE_UNKNOWN),
  38. make_calypso_final_element(
  39. "ContractCustomerNumber",
  40. 32,
  41. "Numéro de client",
  42. CALYPSO_FINAL_TYPE_UNKNOWN),
  43. }),
  44. make_calypso_bitmap_element(
  45. "ContractPassengerInfoBitmap",
  46. 2,
  47. (CalypsoElement[]){
  48. make_calypso_final_element(
  49. "ContractPassengerClass",
  50. 8,
  51. "Classe de service des voyageurs",
  52. CALYPSO_FINAL_TYPE_UNKNOWN),
  53. make_calypso_final_element(
  54. "ContractPassengerTotal",
  55. 8,
  56. "Nombre total de voyageurs",
  57. CALYPSO_FINAL_TYPE_UNKNOWN),
  58. }),
  59. make_calypso_final_element(
  60. "ContractVehicleClassAllowed",
  61. 6,
  62. "Classes de véhicule autorisé",
  63. CALYPSO_FINAL_TYPE_UNKNOWN),
  64. make_calypso_final_element(
  65. "ContractPaymentPointer",
  66. 32,
  67. "Pointeurs sur les événements de paiement",
  68. CALYPSO_FINAL_TYPE_UNKNOWN),
  69. make_calypso_final_element(
  70. "ContractPayMethod", 11, "Code mode de paiement", CALYPSO_FINAL_TYPE_PAY_METHOD),
  71. make_calypso_final_element(
  72. "ContractServices", 16, "Services autorisés", CALYPSO_FINAL_TYPE_UNKNOWN),
  73. make_calypso_final_element(
  74. "ContractPriceAmount", 16, "Montant total", CALYPSO_FINAL_TYPE_AMOUNT),
  75. make_calypso_final_element(
  76. "ContractPriceUnit", 16, "Code de monnaie", CALYPSO_FINAL_TYPE_UNKNOWN),
  77. make_calypso_bitmap_element(
  78. "ContractRestrictionBitmap",
  79. 7,
  80. (CalypsoElement[]){
  81. make_calypso_final_element(
  82. "ContractRestrictStart", 11, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  83. make_calypso_final_element(
  84. "ContractRestrictEnd", 11, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  85. make_calypso_final_element(
  86. "ContractRestrictDay", 8, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  87. make_calypso_final_element(
  88. "ContractRestrictTimeCode", 8, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  89. make_calypso_final_element(
  90. "ContractRestrictCode",
  91. 8,
  92. "Code de restriction",
  93. CALYPSO_FINAL_TYPE_UNKNOWN),
  94. make_calypso_final_element(
  95. "ContractRestrictProduct",
  96. 16,
  97. "Produit de restriction",
  98. CALYPSO_FINAL_TYPE_UNKNOWN),
  99. make_calypso_final_element(
  100. "ContractRestrictLocation",
  101. 16,
  102. "Référence du lieu de restriction",
  103. CALYPSO_FINAL_TYPE_UNKNOWN),
  104. }),
  105. make_calypso_bitmap_element(
  106. "ContractValidityInfoBitmap",
  107. 9,
  108. (CalypsoElement[]){
  109. make_calypso_final_element(
  110. "ContractValidityStartDate",
  111. 14,
  112. "Date de début de validité",
  113. CALYPSO_FINAL_TYPE_DATE),
  114. make_calypso_final_element(
  115. "ContractValidityStartTime",
  116. 11,
  117. "Heure de début de validité",
  118. CALYPSO_FINAL_TYPE_TIME),
  119. make_calypso_final_element(
  120. "ContractValidityEndDate",
  121. 14,
  122. "Date de fin de validité",
  123. CALYPSO_FINAL_TYPE_DATE),
  124. make_calypso_final_element(
  125. "ContractValidityEndTime",
  126. 11,
  127. "Heure de fin de validité",
  128. CALYPSO_FINAL_TYPE_TIME),
  129. make_calypso_final_element(
  130. "ContractValidityDuration",
  131. 8,
  132. "Durée de validité",
  133. CALYPSO_FINAL_TYPE_UNKNOWN),
  134. make_calypso_final_element(
  135. "ContractValidityLimiteDate",
  136. 14,
  137. "Date limite de première utilisation",
  138. CALYPSO_FINAL_TYPE_DATE),
  139. make_calypso_final_element(
  140. "ContractValidityZones",
  141. 8,
  142. "Numéros des zones autorisées",
  143. CALYPSO_FINAL_TYPE_ZONES),
  144. make_calypso_final_element(
  145. "ContractValidityJourneys",
  146. 16,
  147. "Nombre de voyages autorisés",
  148. CALYPSO_FINAL_TYPE_UNKNOWN),
  149. make_calypso_final_element(
  150. "ContractPeriodJourneys",
  151. 16,
  152. "Nombre de voyages autorisés par période",
  153. CALYPSO_FINAL_TYPE_UNKNOWN),
  154. }),
  155. make_calypso_bitmap_element(
  156. "ContractJourneyData",
  157. 8,
  158. (CalypsoElement[]){
  159. make_calypso_final_element(
  160. "ContractJourneyOrigin",
  161. 16,
  162. "Code lieu d’origine",
  163. CALYPSO_FINAL_TYPE_UNKNOWN),
  164. make_calypso_final_element(
  165. "ContractJourneyDestination",
  166. 16,
  167. "Code lieu de destination",
  168. CALYPSO_FINAL_TYPE_UNKNOWN),
  169. make_calypso_final_element(
  170. "ContractJourneyRouteNumbers",
  171. 16,
  172. "Numéros des lignes autorisées",
  173. CALYPSO_FINAL_TYPE_UNKNOWN),
  174. make_calypso_final_element(
  175. "ContractJourneyRouteVariants",
  176. 8,
  177. "Variantes aux numéros des lignes autorisées",
  178. CALYPSO_FINAL_TYPE_UNKNOWN),
  179. make_calypso_final_element(
  180. "ContractJourneyRun", 16, "Référence du voyage", CALYPSO_FINAL_TYPE_UNKNOWN),
  181. make_calypso_final_element(
  182. "ContractJourneyVia", 16, "Code lieu du via", CALYPSO_FINAL_TYPE_UNKNOWN),
  183. make_calypso_final_element(
  184. "ContractJourneyDistance", 16, "Distance", CALYPSO_FINAL_TYPE_UNKNOWN),
  185. make_calypso_final_element(
  186. "ContractJourneyInterchanges",
  187. 8,
  188. "Nombre de correspondances autorisées",
  189. CALYPSO_FINAL_TYPE_UNKNOWN),
  190. }),
  191. make_calypso_bitmap_element(
  192. "ContractSaleData",
  193. 4,
  194. (CalypsoElement[]){
  195. make_calypso_final_element(
  196. "ContractValiditySaleDate", 14, "Date de vente", CALYPSO_FINAL_TYPE_DATE),
  197. make_calypso_final_element(
  198. "ContractValiditySaleTime", 11, "Heure de vente", CALYPSO_FINAL_TYPE_TIME),
  199. make_calypso_final_element(
  200. "ContractValiditySaleAgent",
  201. 8,
  202. "Identification de l’exploitant de vente",
  203. CALYPSO_FINAL_TYPE_SERVICE_PROVIDER),
  204. make_calypso_final_element(
  205. "ContractValiditySaleDevice",
  206. 16,
  207. "Identification du terminal de vente",
  208. CALYPSO_FINAL_TYPE_UNKNOWN),
  209. }),
  210. make_calypso_final_element(
  211. "ContractStatus", 8, "État du contrat", CALYPSO_FINAL_TYPE_UNKNOWN),
  212. make_calypso_final_element(
  213. "ContractLoyaltyPoints",
  214. 16,
  215. "Nombre de points de fidélité",
  216. CALYPSO_FINAL_TYPE_NUMBER),
  217. make_calypso_final_element(
  218. "ContractAuthenticator",
  219. 16,
  220. "Code de contrôle de l’intégrité des données",
  221. CALYPSO_FINAL_TYPE_UNKNOWN),
  222. make_calypso_final_element(
  223. "ContractData(0..255)", 0, "Données complémentaires", CALYPSO_FINAL_TYPE_UNKNOWN),
  224. });
  225. return IntercodeContractStructure;
  226. }
  227. CalypsoApp* get_intercode_structure_event() {
  228. CalypsoApp* IntercodeEventStructure = malloc(sizeof(CalypsoApp));
  229. if(!IntercodeEventStructure) {
  230. return NULL;
  231. }
  232. int app_elements_count = 3;
  233. IntercodeEventStructure->type = CALYPSO_APP_EVENT;
  234. IntercodeEventStructure->container = malloc(sizeof(CalypsoContainerElement));
  235. IntercodeEventStructure->container->elements =
  236. malloc(app_elements_count * sizeof(CalypsoElement));
  237. IntercodeEventStructure->container->size = app_elements_count;
  238. IntercodeEventStructure->container->elements[0] = make_calypso_final_element(
  239. "EventDateStamp", 14, "Date de l’événement", CALYPSO_FINAL_TYPE_DATE);
  240. IntercodeEventStructure->container->elements[1] = make_calypso_final_element(
  241. "EventTimeStamp", 11, "Heure de l’événement", CALYPSO_FINAL_TYPE_TIME);
  242. IntercodeEventStructure->container->elements[2] = make_calypso_bitmap_element(
  243. "EventBitmap",
  244. 28,
  245. (CalypsoElement[]){
  246. make_calypso_final_element(
  247. "EventDisplayData", 8, "Données pour l’affichage", CALYPSO_FINAL_TYPE_UNKNOWN),
  248. make_calypso_final_element("EventNetworkId", 24, "Réseau", CALYPSO_FINAL_TYPE_NUMBER),
  249. make_calypso_final_element(
  250. "EventCode", 8, "Nature de l’événement", CALYPSO_FINAL_TYPE_UNKNOWN),
  251. make_calypso_final_element(
  252. "EventResult", 8, "Code Résultat", CALYPSO_FINAL_TYPE_UNKNOWN),
  253. make_calypso_final_element(
  254. "EventServiceProvider",
  255. 8,
  256. "Identité de l’exploitant",
  257. CALYPSO_FINAL_TYPE_SERVICE_PROVIDER),
  258. make_calypso_final_element(
  259. "EventNotokCounter", 8, "Compteur événements anormaux", CALYPSO_FINAL_TYPE_UNKNOWN),
  260. make_calypso_final_element(
  261. "EventSerialNumber",
  262. 24,
  263. "Numéro de série de l’événement",
  264. CALYPSO_FINAL_TYPE_UNKNOWN),
  265. make_calypso_final_element(
  266. "EventDestination", 16, "Destination de l’usager", CALYPSO_FINAL_TYPE_UNKNOWN),
  267. make_calypso_final_element(
  268. "EventLocationId", 16, "Lieu de l’événement", CALYPSO_FINAL_TYPE_UNKNOWN),
  269. make_calypso_final_element(
  270. "EventLocationGate", 8, "Identification du passage", CALYPSO_FINAL_TYPE_UNKNOWN),
  271. make_calypso_final_element(
  272. "EventDevice", 16, "Identificateur de l’équipement", CALYPSO_FINAL_TYPE_UNKNOWN),
  273. make_calypso_final_element(
  274. "EventRouteNumber", 16, "Référence de la ligne", CALYPSO_FINAL_TYPE_UNKNOWN),
  275. make_calypso_final_element(
  276. "EventRouteVariant",
  277. 8,
  278. "Référence d’une variante de la ligne",
  279. CALYPSO_FINAL_TYPE_UNKNOWN),
  280. make_calypso_final_element(
  281. "EventJourneyRun", 16, "Référence de la mission", CALYPSO_FINAL_TYPE_NUMBER),
  282. make_calypso_final_element(
  283. "EventVehicleId", 16, "Identificateur du véhicule", CALYPSO_FINAL_TYPE_NUMBER),
  284. make_calypso_final_element(
  285. "EventVehicleClass", 8, "Type de véhicule utilisé", CALYPSO_FINAL_TYPE_UNKNOWN),
  286. make_calypso_final_element(
  287. "EventLocationType",
  288. 5,
  289. "Type d’endroit (gare, arrêt de bus), ",
  290. CALYPSO_FINAL_TYPE_UNKNOWN),
  291. make_calypso_final_element(
  292. "EventEmployee", 240, "Code de l’employé impliqué", CALYPSO_FINAL_TYPE_UNKNOWN),
  293. make_calypso_final_element(
  294. "EventLocationReference",
  295. 16,
  296. "Référence du lieu de l’événement",
  297. CALYPSO_FINAL_TYPE_UNKNOWN),
  298. make_calypso_final_element(
  299. "EventJourneyInterchanges",
  300. 8,
  301. "Nombre de correspondances",
  302. CALYPSO_FINAL_TYPE_UNKNOWN),
  303. make_calypso_final_element(
  304. "EventPeriodJourneys", 16, "Nombre de voyage effectué", CALYPSO_FINAL_TYPE_UNKNOWN),
  305. make_calypso_final_element(
  306. "EventTotalJourneys",
  307. 16,
  308. "Nombre total de voyage autorisé",
  309. CALYPSO_FINAL_TYPE_UNKNOWN),
  310. make_calypso_final_element(
  311. "EventJourneyDistance", 16, "Distance parcourue", CALYPSO_FINAL_TYPE_UNKNOWN),
  312. make_calypso_final_element(
  313. "EventPriceAmount",
  314. 16,
  315. "Montant en jeu lors de l’événement",
  316. CALYPSO_FINAL_TYPE_UNKNOWN),
  317. make_calypso_final_element(
  318. "EventPriceUnit", 16, "Unité de montant en jeu", CALYPSO_FINAL_TYPE_UNKNOWN),
  319. make_calypso_final_element(
  320. "EventContractPointer",
  321. 5,
  322. "Référence du contrat concerné",
  323. CALYPSO_FINAL_TYPE_NUMBER),
  324. make_calypso_final_element(
  325. "EventAuthenticator", 16, "Code de sécurité", CALYPSO_FINAL_TYPE_UNKNOWN),
  326. make_calypso_bitmap_element(
  327. "EventData",
  328. 5,
  329. (CalypsoElement[]){
  330. make_calypso_final_element(
  331. "EventDataDateFirstStamp",
  332. 14,
  333. "Date de la première montée",
  334. CALYPSO_FINAL_TYPE_DATE),
  335. make_calypso_final_element(
  336. "EventDataTimeFirstStamp",
  337. 11,
  338. "Heure de la première montée",
  339. CALYPSO_FINAL_TYPE_TIME),
  340. make_calypso_final_element(
  341. "EventDataSimulation",
  342. 1,
  343. "Dernière validation (0=normal, 1=dégradé), ",
  344. CALYPSO_FINAL_TYPE_UNKNOWN),
  345. make_calypso_final_element(
  346. "EventDataTrip", 2, "Tronçon", CALYPSO_FINAL_TYPE_UNKNOWN),
  347. make_calypso_final_element(
  348. "EventDataRouteDirection", 2, "Sens", CALYPSO_FINAL_TYPE_UNKNOWN),
  349. }),
  350. });
  351. return IntercodeEventStructure;
  352. }
  353. CalypsoApp* get_intercode_structure_env_holder() {
  354. CalypsoApp* IntercodeEnvHolderStructure = malloc(sizeof(CalypsoApp));
  355. if(!IntercodeEnvHolderStructure) {
  356. return NULL;
  357. }
  358. int app_elements_count = 3;
  359. IntercodeEnvHolderStructure->type = CALYPSO_APP_ENV_HOLDER;
  360. IntercodeEnvHolderStructure->container = malloc(sizeof(CalypsoContainerElement));
  361. IntercodeEnvHolderStructure->container->elements =
  362. malloc(app_elements_count * sizeof(CalypsoElement));
  363. IntercodeEnvHolderStructure->container->size = app_elements_count;
  364. IntercodeEnvHolderStructure->container->elements[0] = make_calypso_final_element(
  365. "EnvApplicationVersionNumber",
  366. 6,
  367. "Numéro de version de l’application Billettique",
  368. CALYPSO_FINAL_TYPE_NUMBER);
  369. IntercodeEnvHolderStructure->container->elements[1] = make_calypso_bitmap_element(
  370. "Env",
  371. 7,
  372. (CalypsoElement[]){
  373. make_calypso_final_element(
  374. "EnvNetworkId", 24, "Identification du réseau", CALYPSO_FINAL_TYPE_NUMBER),
  375. make_calypso_final_element(
  376. "EnvApplicationIssuerId",
  377. 8,
  378. "Identification de l’émetteur de l’application",
  379. CALYPSO_FINAL_TYPE_UNKNOWN),
  380. make_calypso_final_element(
  381. "EnvApplicationValidityEndDate",
  382. 14,
  383. "Date de fin de validité de l’application",
  384. CALYPSO_FINAL_TYPE_DATE),
  385. make_calypso_final_element(
  386. "EnvPayMethod", 11, "Code mode de paiement", CALYPSO_FINAL_TYPE_PAY_METHOD),
  387. make_calypso_final_element(
  388. "EnvAuthenticator",
  389. 16,
  390. "Code de contrôle de l’intégrité des données",
  391. CALYPSO_FINAL_TYPE_UNKNOWN),
  392. make_calypso_final_element(
  393. "EnvSelectList",
  394. 32,
  395. "Bitmap de tableau de paramètre multiple",
  396. CALYPSO_FINAL_TYPE_UNKNOWN),
  397. make_calypso_container_element(
  398. "EnvData",
  399. 2,
  400. (CalypsoElement[]){
  401. make_calypso_final_element(
  402. "EnvDataCardStatus", 1, "Statut de la carte", CALYPSO_FINAL_TYPE_UNKNOWN),
  403. make_calypso_final_element(
  404. "EnvData2", 0, "Données complémentaires", CALYPSO_FINAL_TYPE_UNKNOWN),
  405. }),
  406. });
  407. IntercodeEnvHolderStructure->container->elements[2] = make_calypso_bitmap_element(
  408. "Holder",
  409. 8,
  410. (CalypsoElement[]){
  411. make_calypso_bitmap_element(
  412. "HolderName",
  413. 2,
  414. (CalypsoElement[]){
  415. make_calypso_final_element(
  416. "HolderSurname", 85, "Nom du porteur", CALYPSO_FINAL_TYPE_STRING),
  417. make_calypso_final_element(
  418. "HolderForename",
  419. 85,
  420. "Prénom de naissance du porteur",
  421. CALYPSO_FINAL_TYPE_STRING),
  422. }),
  423. make_calypso_bitmap_element(
  424. "HolderBirth",
  425. 2,
  426. (CalypsoElement[]){
  427. make_calypso_final_element(
  428. "HolderBirthDate", 32, "Date de naissance", CALYPSO_FINAL_TYPE_DATE),
  429. make_calypso_final_element(
  430. "HolderBirthPlace",
  431. 115,
  432. "Lieu de naissance (23 caractères)",
  433. CALYPSO_FINAL_TYPE_STRING),
  434. }),
  435. make_calypso_final_element(
  436. "HolderBirthName",
  437. 85,
  438. "Nom de naissance du porteur (17 caractères)",
  439. CALYPSO_FINAL_TYPE_STRING),
  440. make_calypso_final_element(
  441. "HolderIdNumber", 32, "Identifiant Porteur", CALYPSO_FINAL_TYPE_NUMBER),
  442. make_calypso_final_element(
  443. "HolderCountryAlpha", 24, "Pays du titulaire", CALYPSO_FINAL_TYPE_UNKNOWN),
  444. make_calypso_final_element(
  445. "HolderCompany", 32, "Société du titulaire", CALYPSO_FINAL_TYPE_UNKNOWN),
  446. make_calypso_bitmap_element(
  447. "HolderProfiles",
  448. 4,
  449. (CalypsoElement[]){
  450. make_calypso_bitmap_element(
  451. "HolderProfileBitmap",
  452. 3,
  453. (CalypsoElement[]){
  454. make_calypso_final_element(
  455. "HolderNetworkId", 24, "Réseau", CALYPSO_FINAL_TYPE_UNKNOWN),
  456. make_calypso_final_element(
  457. "HolderProfileNumber",
  458. 8,
  459. "Numéro du statut",
  460. CALYPSO_FINAL_TYPE_NUMBER),
  461. make_calypso_final_element(
  462. "HolderProfileDate",
  463. 14,
  464. "Date de fin de validité du statut",
  465. CALYPSO_FINAL_TYPE_DATE),
  466. }),
  467. }),
  468. make_calypso_bitmap_element(
  469. "HolderData",
  470. 12,
  471. (CalypsoElement[]){
  472. make_calypso_final_element(
  473. "HolderDataCardStatus", 4, "Type de carte", CALYPSO_FINAL_TYPE_UNKNOWN),
  474. make_calypso_final_element(
  475. "HolderDataTeleReglement", 4, "Télérèglement", CALYPSO_FINAL_TYPE_UNKNOWN),
  476. make_calypso_final_element(
  477. "HolderDataResidence", 17, "Ville du domicile", CALYPSO_FINAL_TYPE_UNKNOWN),
  478. make_calypso_final_element(
  479. "HolderDataCommercialID", 6, "Produit carte", CALYPSO_FINAL_TYPE_NUMBER),
  480. make_calypso_final_element(
  481. "HolderDataWorkPlace", 17, "Lieu de travail", CALYPSO_FINAL_TYPE_UNKNOWN),
  482. make_calypso_final_element(
  483. "HolderDataStudyPlace", 17, "Lieu d'étude", CALYPSO_FINAL_TYPE_UNKNOWN),
  484. make_calypso_final_element(
  485. "HolderDataSaleDevice",
  486. 16,
  487. "Numéro logique de SAM",
  488. CALYPSO_FINAL_TYPE_NUMBER),
  489. make_calypso_final_element(
  490. "HolderDataAuthenticator", 16, "Signature", CALYPSO_FINAL_TYPE_UNKNOWN),
  491. make_calypso_final_element(
  492. "HolderDataProfileStartDate1",
  493. 14,
  494. "Date de début de validité du statut",
  495. CALYPSO_FINAL_TYPE_DATE),
  496. make_calypso_final_element(
  497. "HolderDataProfileStartDate2",
  498. 14,
  499. "Date de début de validité du statut",
  500. CALYPSO_FINAL_TYPE_DATE),
  501. make_calypso_final_element(
  502. "HolderDataProfileStartDate3",
  503. 14,
  504. "Date de début de validité du statut",
  505. CALYPSO_FINAL_TYPE_DATE),
  506. make_calypso_final_element(
  507. "HolderDataProfileStartDate4",
  508. 14,
  509. "Date de début de validité du statut",
  510. CALYPSO_FINAL_TYPE_DATE),
  511. }),
  512. });
  513. return IntercodeEnvHolderStructure;
  514. }
  515. const char* get_intercode_string_transition_type(int transition) {
  516. switch(transition) {
  517. case 0x1:
  518. return "Entry (First validation)";
  519. case 0x2:
  520. return "Exit";
  521. case 0x4:
  522. return "Inspection";
  523. case 0x5:
  524. return "Test validation";
  525. case 0x6:
  526. return "Entry (Interchange)";
  527. case 0x7:
  528. return "Exit (Interchange)";
  529. case 0x9:
  530. return "Validation cancelled";
  531. case 0xA:
  532. return "Entry (Public road)";
  533. case 0xB:
  534. return "Exit (Public road)";
  535. case 0xD:
  536. return "Distribution";
  537. case 0xF:
  538. return "Invalidation";
  539. default: {
  540. char* transition_str = malloc(6 * sizeof(char));
  541. snprintf(transition_str, 6, "%d", transition);
  542. return transition_str;
  543. }
  544. }
  545. }