navigo.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. #include <stdlib.h>
  2. #include "navigo.h"
  3. CalypsoApp* get_navigo_contract_structure() {
  4. CalypsoApp* NavigoContractStructure = malloc(sizeof(CalypsoApp));
  5. if(!NavigoContractStructure) {
  6. return NULL;
  7. }
  8. int app_elements_count = 1;
  9. NavigoContractStructure->type = CALYPSO_APP_CONTRACT;
  10. NavigoContractStructure->elements = malloc(app_elements_count * sizeof(CalypsoElement));
  11. NavigoContractStructure->elements_size = app_elements_count;
  12. NavigoContractStructure->elements[0] = make_calypso_bitmap_element(
  13. "Contract",
  14. 20,
  15. (CalypsoElement[]){
  16. make_calypso_final_element(
  17. "ContractNetworkId", 24, "Identification du réseau", CALYPSO_FINAL_TYPE_UNKNOWN),
  18. make_calypso_final_element(
  19. "ContractProvider",
  20. 8,
  21. "Identification de l’exploitant",
  22. CALYPSO_FINAL_TYPE_UNKNOWN),
  23. make_calypso_final_element(
  24. "ContractTariff", 16, "Code tarif", CALYPSO_FINAL_TYPE_TARIFF),
  25. make_calypso_final_element(
  26. "ContractSerialNumber", 32, "Numéro TCN", CALYPSO_FINAL_TYPE_UNKNOWN),
  27. make_calypso_bitmap_element(
  28. "ContractCustomerInfoBitmap",
  29. 2,
  30. (CalypsoElement[]){
  31. make_calypso_final_element(
  32. "ContractCustomerProfile",
  33. 6,
  34. "Statut du titulaire ou Taux de réduction applicable",
  35. CALYPSO_FINAL_TYPE_UNKNOWN),
  36. make_calypso_final_element(
  37. "ContractCustomerNumber",
  38. 32,
  39. "Numéro de client",
  40. CALYPSO_FINAL_TYPE_UNKNOWN),
  41. }),
  42. make_calypso_bitmap_element(
  43. "ContractPassengerInfoBitmap",
  44. 2,
  45. (CalypsoElement[]){
  46. make_calypso_final_element(
  47. "ContractPassengerClass",
  48. 8,
  49. "Classe de service des voyageurs",
  50. CALYPSO_FINAL_TYPE_UNKNOWN),
  51. make_calypso_final_element(
  52. "ContractPassengerTotal",
  53. 8,
  54. "Nombre total de voyageurs",
  55. CALYPSO_FINAL_TYPE_UNKNOWN),
  56. }),
  57. make_calypso_final_element(
  58. "ContractVehicleClassAllowed",
  59. 6,
  60. "Classes de véhicule autorisé",
  61. CALYPSO_FINAL_TYPE_UNKNOWN),
  62. make_calypso_final_element(
  63. "ContractPaymentPointer",
  64. 32,
  65. "Pointeurs sur les événements de paiement",
  66. CALYPSO_FINAL_TYPE_UNKNOWN),
  67. make_calypso_final_element(
  68. "ContractPayMethod", 11, "Code mode de paiement", CALYPSO_FINAL_TYPE_PAY_METHOD),
  69. make_calypso_final_element(
  70. "ContractServices", 16, "Services autorisés", CALYPSO_FINAL_TYPE_UNKNOWN),
  71. make_calypso_final_element(
  72. "ContractPriceAmount", 16, "Montant total", CALYPSO_FINAL_TYPE_AMOUNT),
  73. make_calypso_final_element(
  74. "ContractPriceUnit", 16, "Code de monnaie", CALYPSO_FINAL_TYPE_UNKNOWN),
  75. make_calypso_bitmap_element(
  76. "ContractRestrictionBitmap",
  77. 7,
  78. (CalypsoElement[]){
  79. make_calypso_final_element(
  80. "ContractRestrictStart", 11, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  81. make_calypso_final_element(
  82. "ContractRestrictEnd", 11, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  83. make_calypso_final_element(
  84. "ContractRestrictDay", 8, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  85. make_calypso_final_element(
  86. "ContractRestrictTimeCode", 8, "", CALYPSO_FINAL_TYPE_UNKNOWN),
  87. make_calypso_final_element(
  88. "ContractRestrictCode",
  89. 8,
  90. "Code de restriction",
  91. CALYPSO_FINAL_TYPE_UNKNOWN),
  92. make_calypso_final_element(
  93. "ContractRestrictProduct",
  94. 16,
  95. "Produit de restriction",
  96. CALYPSO_FINAL_TYPE_UNKNOWN),
  97. make_calypso_final_element(
  98. "ContractRestrictLocation",
  99. 16,
  100. "Référence du lieu de restriction",
  101. CALYPSO_FINAL_TYPE_UNKNOWN),
  102. }),
  103. make_calypso_bitmap_element(
  104. "ContractValidityInfoBitmap",
  105. 9,
  106. (CalypsoElement[]){
  107. make_calypso_final_element(
  108. "ContractValidityStartDate",
  109. 14,
  110. "Date de début de validité",
  111. CALYPSO_FINAL_TYPE_DATE),
  112. make_calypso_final_element(
  113. "ContractValidityStartTime",
  114. 11,
  115. "Heure de début de validité",
  116. CALYPSO_FINAL_TYPE_TIME),
  117. make_calypso_final_element(
  118. "ContractValidityEndDate",
  119. 14,
  120. "Date de fin de validité",
  121. CALYPSO_FINAL_TYPE_DATE),
  122. make_calypso_final_element(
  123. "ContractValidityEndTime",
  124. 11,
  125. "Heure de fin de validité",
  126. CALYPSO_FINAL_TYPE_TIME),
  127. make_calypso_final_element(
  128. "ContractValidityDuration",
  129. 8,
  130. "Durée de validité",
  131. CALYPSO_FINAL_TYPE_UNKNOWN),
  132. make_calypso_final_element(
  133. "ContractValidityLimiteDate",
  134. 14,
  135. "Date limite de première utilisation",
  136. CALYPSO_FINAL_TYPE_DATE),
  137. make_calypso_final_element(
  138. "ContractValidityZones",
  139. 8,
  140. "Numéros des zones autorisées",
  141. CALYPSO_FINAL_TYPE_ZONES),
  142. make_calypso_final_element(
  143. "ContractValidityJourneys",
  144. 16,
  145. "Nombre de voyages autorisés",
  146. CALYPSO_FINAL_TYPE_UNKNOWN),
  147. make_calypso_final_element(
  148. "ContractPeriodJourneys",
  149. 16,
  150. "Nombre de voyages autorisés par période",
  151. CALYPSO_FINAL_TYPE_UNKNOWN),
  152. }),
  153. make_calypso_bitmap_element(
  154. "ContractJourneyData",
  155. 8,
  156. (CalypsoElement[]){
  157. make_calypso_final_element(
  158. "ContractJourneyOrigin",
  159. 16,
  160. "Code lieu d’origine",
  161. CALYPSO_FINAL_TYPE_UNKNOWN),
  162. make_calypso_final_element(
  163. "ContractJourneyDestination",
  164. 16,
  165. "Code lieu de destination",
  166. CALYPSO_FINAL_TYPE_UNKNOWN),
  167. make_calypso_final_element(
  168. "ContractJourneyRouteNumbers",
  169. 16,
  170. "Numéros des lignes autorisées",
  171. CALYPSO_FINAL_TYPE_UNKNOWN),
  172. make_calypso_final_element(
  173. "ContractJourneyRouteVariants",
  174. 8,
  175. "Variantes aux numéros des lignes autorisées",
  176. CALYPSO_FINAL_TYPE_UNKNOWN),
  177. make_calypso_final_element(
  178. "ContractJourneyRun", 16, "Référence du voyage", CALYPSO_FINAL_TYPE_UNKNOWN),
  179. make_calypso_final_element(
  180. "ContractJourneyVia", 16, "Code lieu du via", CALYPSO_FINAL_TYPE_UNKNOWN),
  181. make_calypso_final_element(
  182. "ContractJourneyDistance", 16, "Distance", CALYPSO_FINAL_TYPE_UNKNOWN),
  183. make_calypso_final_element(
  184. "ContractJourneyInterchanges",
  185. 8,
  186. "Nombre de correspondances autorisées",
  187. CALYPSO_FINAL_TYPE_UNKNOWN),
  188. }),
  189. make_calypso_bitmap_element(
  190. "ContractSaleData",
  191. 4,
  192. (CalypsoElement[]){
  193. make_calypso_final_element(
  194. "ContractValiditySaleDate", 14, "Date de vente", CALYPSO_FINAL_TYPE_DATE),
  195. make_calypso_final_element(
  196. "ContractValiditySaleTime", 11, "Heure de vente", CALYPSO_FINAL_TYPE_TIME),
  197. make_calypso_final_element(
  198. "ContractValiditySaleAgent",
  199. 8,
  200. "Identification de l’exploitant de vente",
  201. CALYPSO_FINAL_TYPE_SERVICE_PROVIDER),
  202. make_calypso_final_element(
  203. "ContractValiditySaleDevice",
  204. 16,
  205. "Identification du terminal de vente",
  206. CALYPSO_FINAL_TYPE_UNKNOWN),
  207. }),
  208. make_calypso_final_element(
  209. "ContractStatus", 8, "État du contrat", CALYPSO_FINAL_TYPE_UNKNOWN),
  210. make_calypso_final_element(
  211. "ContractLoyaltyPoints",
  212. 16,
  213. "Nombre de points de fidélité",
  214. CALYPSO_FINAL_TYPE_NUMBER),
  215. make_calypso_final_element(
  216. "ContractAuthenticator",
  217. 16,
  218. "Code de contrôle de l’intégrité des données",
  219. CALYPSO_FINAL_TYPE_UNKNOWN),
  220. make_calypso_final_element(
  221. "ContractData(0..255)", 0, "Données complémentaires", CALYPSO_FINAL_TYPE_UNKNOWN),
  222. });
  223. return NavigoContractStructure;
  224. }
  225. CalypsoApp* get_navigo_event_structure() {
  226. CalypsoApp* NavigoEventStructure = malloc(sizeof(CalypsoApp));
  227. if(!NavigoEventStructure) {
  228. return NULL;
  229. }
  230. int app_elements_count = 3;
  231. NavigoEventStructure->type = CALYPSO_APP_CONTRACT;
  232. NavigoEventStructure->elements = malloc(app_elements_count * sizeof(CalypsoElement));
  233. NavigoEventStructure->elements_size = app_elements_count;
  234. NavigoEventStructure->elements[0] = make_calypso_final_element(
  235. "EventDateStamp", 14, "Date de l’événement", CALYPSO_FINAL_TYPE_DATE);
  236. NavigoEventStructure->elements[1] = make_calypso_final_element(
  237. "EventTimeStamp", 11, "Heure de l’événement", CALYPSO_FINAL_TYPE_TIME);
  238. NavigoEventStructure->elements[2] = make_calypso_bitmap_element(
  239. "EventBitmap",
  240. 28,
  241. (CalypsoElement[]){
  242. make_calypso_final_element(
  243. "EventDisplayData", 8, "Données pour l’affichage", CALYPSO_FINAL_TYPE_UNKNOWN),
  244. make_calypso_final_element("EventNetworkId", 24, "Réseau", CALYPSO_FINAL_TYPE_NUMBER),
  245. make_calypso_final_element(
  246. "EventCode", 8, "Nature de l’événement", CALYPSO_FINAL_TYPE_UNKNOWN),
  247. make_calypso_final_element(
  248. "EventResult", 8, "Code Résultat", CALYPSO_FINAL_TYPE_UNKNOWN),
  249. make_calypso_final_element(
  250. "EventServiceProvider",
  251. 8,
  252. "Identité de l’exploitant",
  253. CALYPSO_FINAL_TYPE_SERVICE_PROVIDER),
  254. make_calypso_final_element(
  255. "EventNotokCounter", 8, "Compteur événements anormaux", CALYPSO_FINAL_TYPE_UNKNOWN),
  256. make_calypso_final_element(
  257. "EventSerialNumber",
  258. 24,
  259. "Numéro de série de l’événement",
  260. CALYPSO_FINAL_TYPE_UNKNOWN),
  261. make_calypso_final_element(
  262. "EventDestination", 16, "Destination de l’usager", CALYPSO_FINAL_TYPE_UNKNOWN),
  263. make_calypso_final_element(
  264. "EventLocationId", 16, "Lieu de l’événement", CALYPSO_FINAL_TYPE_UNKNOWN),
  265. make_calypso_final_element(
  266. "EventLocationGate", 8, "Identification du passage", CALYPSO_FINAL_TYPE_UNKNOWN),
  267. make_calypso_final_element(
  268. "EventDevice", 16, "Identificateur de l’équipement", CALYPSO_FINAL_TYPE_UNKNOWN),
  269. make_calypso_final_element(
  270. "EventRouteNumber", 16, "Référence de la ligne", CALYPSO_FINAL_TYPE_UNKNOWN),
  271. make_calypso_final_element(
  272. "EventRouteVariant",
  273. 8,
  274. "Référence d’une variante de la ligne",
  275. CALYPSO_FINAL_TYPE_UNKNOWN),
  276. make_calypso_final_element(
  277. "EventJourneyRun", 16, "Référence de la mission", CALYPSO_FINAL_TYPE_NUMBER),
  278. make_calypso_final_element(
  279. "EventVehicleId", 16, "Identificateur du véhicule", CALYPSO_FINAL_TYPE_NUMBER),
  280. make_calypso_final_element(
  281. "EventVehicleClass", 8, "Type de véhicule utilisé", CALYPSO_FINAL_TYPE_UNKNOWN),
  282. make_calypso_final_element(
  283. "EventLocationType",
  284. 5,
  285. "Type d’endroit (gare, arrêt de bus), ",
  286. CALYPSO_FINAL_TYPE_UNKNOWN),
  287. make_calypso_final_element(
  288. "EventEmployee", 240, "Code de l’employé impliqué", CALYPSO_FINAL_TYPE_UNKNOWN),
  289. make_calypso_final_element(
  290. "EventLocationReference",
  291. 16,
  292. "Référence du lieu de l’événement",
  293. CALYPSO_FINAL_TYPE_UNKNOWN),
  294. make_calypso_final_element(
  295. "EventJourneyInterchanges",
  296. 8,
  297. "Nombre de correspondances",
  298. CALYPSO_FINAL_TYPE_UNKNOWN),
  299. make_calypso_final_element(
  300. "EventPeriodJourneys", 16, "Nombre de voyage effectué", CALYPSO_FINAL_TYPE_UNKNOWN),
  301. make_calypso_final_element(
  302. "EventTotalJourneys",
  303. 16,
  304. "Nombre total de voyage autorisé",
  305. CALYPSO_FINAL_TYPE_UNKNOWN),
  306. make_calypso_final_element(
  307. "EventJourneyDistance", 16, "Distance parcourue", CALYPSO_FINAL_TYPE_UNKNOWN),
  308. make_calypso_final_element(
  309. "EventPriceAmount",
  310. 16,
  311. "Montant en jeu lors de l’événement",
  312. CALYPSO_FINAL_TYPE_UNKNOWN),
  313. make_calypso_final_element(
  314. "EventPriceUnit", 16, "Unité de montant en jeu", CALYPSO_FINAL_TYPE_UNKNOWN),
  315. make_calypso_final_element(
  316. "EventContractPointer",
  317. 5,
  318. "Référence du contrat concerné",
  319. CALYPSO_FINAL_TYPE_NUMBER),
  320. make_calypso_final_element(
  321. "EventAuthenticator", 16, "Code de sécurité", CALYPSO_FINAL_TYPE_UNKNOWN),
  322. make_calypso_bitmap_element(
  323. "EventData",
  324. 5,
  325. (CalypsoElement[]){
  326. make_calypso_final_element(
  327. "EventDataDateFirstStamp",
  328. 14,
  329. "Date de la première montée",
  330. CALYPSO_FINAL_TYPE_DATE),
  331. make_calypso_final_element(
  332. "EventDataTimeFirstStamp",
  333. 11,
  334. "Heure de la première montée",
  335. CALYPSO_FINAL_TYPE_TIME),
  336. make_calypso_final_element(
  337. "EventDataSimulation",
  338. 1,
  339. "Dernière validation (0=normal, 1=dégradé), ",
  340. CALYPSO_FINAL_TYPE_UNKNOWN),
  341. make_calypso_final_element(
  342. "EventDataTrip", 2, "Tronçon", CALYPSO_FINAL_TYPE_UNKNOWN),
  343. make_calypso_final_element(
  344. "EventDataRouteDirection", 2, "Sens", CALYPSO_FINAL_TYPE_UNKNOWN),
  345. }),
  346. });
  347. return NavigoEventStructure;
  348. }