1# its.cnf
2# Intelligent Transport Systems (ITS)
3
4#.OPT
5PER
6UNALIGNED
7#.END
8
9#.EXPORTS
10
11#.OMIT_ASSIGNMENT
12# Get rid of unused code warnings
13TisTpgTransactionsPdu
14DENM
15DENMv1
16CAM
17CAMv1
18SSEM
19SREM
20IVIM
21MAPEM
22SPATEM
23EV-RSR
24RTCMEM
25CPM
26EvcsnPdu
27
28# Could be Language but size of Language bit string is 10 and DriverLanguage max is 15...
29DriverLanguage
30ChargingPower
31StatusResponseCode
32CurrentVehicleConfiguration
33TpgLocation
34CS5
35DSRCmsgID
36#.NO_EMIT
37Code-Units WITHOUT_VALS
38
39#.MODULE
40CAMv1-PDU-Descriptions					camv1
41CAM-PDU-Descriptions					cam
42DENMv1-PDU-Descriptions					denmv1
43DENM-PDU-Descriptions					denm
44EVCSN-PDU-Descriptions					evcsn
45EV-RechargingSpotReservation-PDU-Descriptions		evrsr
46IVIM-PDU-Descriptions					ivim
47TIS-TPG-Transactions-Descriptions			tistpg
48SPATEM-PDU-Descriptions					spatem
49MAPEM-PDU-Descriptions					mapem
50SREM-PDU-Descriptions					srem
51SSEM-PDU-Descriptions					ssem
52AVIAEINumberingAndDataStructures			anads
53ITS-Container						its
54ITS-ContainerV1						itsv1
55ElectronicRegistrationIdentificationVehicleDataModule	erivdm
56CITSapplMgmtIDs						csmid
57EfcDsrcApplication					dsrc_app
58IVI							ivi
59GDD							gdd
60DSRC						dsrc
61RTCMEM-PDU-Descriptions   rtcmem
62CPM-PDU-Descriptions        cpm
63#.END
64
65#.PDU
66CoopAwareness
67CoopAwarenessV1
68DecentralizedEnvironmentalNotificationMessage
69DecentralizedEnvironmentalNotificationMessageV1
70EVChargingSpotNotificationPOIMessage
71EV-RSR-MessageBody
72TisTpgTransaction
73IviStructure
74SPAT
75MapData
76SignalRequestMessage
77SignalStatusMessage
78RTCMcorrections
79CollectivePerceptionMessage
80ItsPduHeader
81# AddGrpC regional extension
82ConnectionManeuverAssist-addGrpC
83ConnectionTrajectory-addGrpC
84NodeAttributeSet-addGrpC
85IntersectionState-addGrpC
86MapData-addGrpC
87Position3D-addGrpC
88RestrictionUserType-addGrpC
89SignalStatusPackage-addGrpC
90LaneAttributes-addGrpC
91MovementEvent-addGrpC
92RequestorDescription-addGrpC
93
94#.TYPE_RENAME
95
96# GicPart
97GicPart/relevanceZoneIds          T_GicPartRelevanceZoneIds
98GicPart/detectionZoneIds          T_GicPartDetectionZoneIds
99GicPart/driverAwarenessZoneIds    T_GicPartDriverAwarenessZoneIds
100GicPart/extraText                 T_GicPartExtraText
101
102TcPart/relevanceZoneIds           T_TcPartRelevanceZoneIds
103TcPart/detectionZoneIds           T_TcPartDetectionZoneIds
104TcPart/driverAwarenessZoneIds     T_TcPartDriverAwarenessZoneIds
105TcPart/text                       T_TcPartText
106
107TractorCharacteristics/equalTo    T_TractorCharactEqualTo
108TractorCharacteristics/notEqualTo T_TractorCharactNotEqualTo
109
110TrailerCharacteristics/equalTo    T_TrailerCharactEqualTo
111TrailerCharacteristics/notEqualTo T_TrailerCharactNotEqualTo
112
113SPAT/regional                     T_SPATRegional
114SignalRequestMessage/regional     T_SRMRegional
115SignalStatusMessage/regional      T_SSMRegional
116MapData/regional                  T_MAPRegional
117AdvisorySpeed/regional            T_AdvisorySpeedRegional
118ComputedLane/regional             T_ComputedLaneRegional
119ConnectionManeuverAssist/regional T_ConnectionManeuverAssistRegional
120GenericLane/regional              T_GenericLaneRegional
121IntersectionGeometry/regional     T_IntersectionGeometryRegional
122IntersectionState/regional        T_IntersectionStateRegional
123LaneDataAttribute/regional        T_LaneDataAttributeRegional
124MovementEvent/regional            T_MovementEventRegional
125MovementState/regional            T_MovementStateRegional
126NodeAttributeSetXY/regional       T_NodeAttributeSetXYRegional
127Position3D/regional               T_Position3DRegional
128RequestorDescription/regional     T_RequestorDescriptionRegional
129RestrictionUserType/regional      T_RestrictionUserTypeRegional
130RoadSegment/regional              T_RoadSegmentRegional
131SignalRequestPackage/regional     T_SignalRequestPackageRegional
132SignalRequest/regional            T_SignalRequestRegional
133SignalStatusPackage/regional      T_SignalStatusPackageRegional
134SignalStatus/regional             T_SignalStatusRegional
135#.END
136
137#.FIELD_RENAME
138TisTpgDRM/location                drmLocation
139TisTpgTRM/location                trmLocation
140TisTpgTCM/location                tcmLocation
141
142TisTpgVDRM/management             vdrmManagement
143TisTpgDRM/management              drmManagement
144TisTpgEOFM/management             eofmManagement
145TisTpgTCM/management              tcmManagement
146TisTpgVDPM/management             vdpmManagement
147TisTpgTRM/management              trmManagement
148TisTpgSNM/management              snmManagement
149
150TisTpgDRM/situation               drmSituation
151TisTpgTRM/situation               trmSituation
152TisTpgTCM/situation               tcmSituation
153
154Distance/value                    dValue
155DistanceOrDuration/value          dodValue
156Weight/value                      wValue
157AnyCatalogue/value                acValue
158VcCode/value                      vcValue
159
160Ext1/content                      e1Content
161Ext2/content                      e2Content
162VarLengthNumber/content           vlnContent
163
164Ext2/extension                    e1Extension
165Ext1/extension                    e2Extension
166VarLengthNumber/extension         vlnExtension
167
168RSCode/layoutComponentId          rscLayoutComponentId
169Text/layoutComponentId            tLayoutComponentId
170LayoutComponent/layoutComponentId lcLayoutComponentId
171
172ISO14823Code/pictogramCode        icPictogramCode
173AnyCatalogue/pictogramCode        acPictogramCode
174
175VcCode/validity                   vcValidity
176LaneInformation/validity          liValidity
177
178RoadSegmentReferenceID/id         rsrId
179RoadSegment/id                    rsId
180RequestorDescription/id           rdId
181SignalRequesterInfo/id            sriId
182IntersectionGeometry/id           igId
183IntersectionState/id              isId
184SignalRequest/id                  srId
185SignalStatus/id                   ssId
186IntersectionReferenceID/id        irId
187RestrictionClassAssignment/id     scaId
188
189AdvisorySpeed/confidence          asConfidence
190TimeChangeDetails/confidence      tcdConfidence
191
192SPAT/intersections                spatIntersections
193MapData/intersections             mdIntersections
194
195RequestorPositionVector/position  rpvPosition
196RequestorDescription/position     rdPosition
197
198SPAT/regional                     spatRegional
199SignalRequestMessage/regional     srmRegional
200SignalStatusMessage/regional      ssmRegional
201MapData/regional                  mapRegional
202AdvisorySpeed/regional            asRegional
203ComputedLane/regional             clRegional
204ConnectionManeuverAssist/regional cmaRegional
205GenericLane/regional              glRegional
206IntersectionGeometry/regional     igRegional
207IntersectionState/regional        isRegional
208LaneDataAttribute/regional        ldaRegional
209MovementEvent/regional            meRegional
210MovementState/regional            msRegional
211NodeAttributeSetXY/regional       nasxyRegional
212Position3D/regional               p3dRegional
213RequestorDescription/regional     rdRegional
214RestrictionUserType/regional      rutRegional
215RoadSegment/regional              rsRegional
216SignalRequestPackage/regional     srpRegional
217SignalRequest/regional            srRegional
218SignalStatusPackage/regional      sspRegional
219SignalStatus/regional             ssRegional
220
221LaneAttributes/regional           laRegional
222NodeOffsetPointXY/regional        nopxyRegional
223RequestorType/regional            rtRegional
224
225SignalRequestPackage/request      srpRequest
226SignalRequesterInfo/request       sriRequest
227RequestorType/request             rtRequest
228
229RegulatorySpeedLimit/speed        rslSpeed
230TransmissionAndSpeed/speed        tasSpeed
231RequestorPositionVector/speed     rpvSpeed
232AdvisorySpeed/speed               asSpeed
233FullPositionVector/speed          fpvSpeed
234SpeedandHeadingandThrottleConfidence/speed shtcSpeed
235
236SignalRequestPackage/minute       srpMinute
237SignalStatusPackage/minute        sspMinute
238
239FullPositionVector/heading        fpvHeading
240RequestorPositionVector/heading   rpvHeading
241SpeedandHeadingandThrottleConfidence/heading   shtcheading
242
243FullPositionVector/elevation      fpvElevation
244PositionConfidenceSet/elevation   pcsElevation
245Position3D/elevation              p3dElevation
246
247IntersectionState/status          isStatus
248SignalStatusPackage/status        sspStatus
249SignalStatusMessage/status        ssmStatus
250
251SPAT/timeStamp                    spatTimeStamp
252SignalRequestMessage/timeStamp    srmTimeStamp
253SignalStatusMessage/timeStamp     ssmTimeStamp
254MapData/timeStamp                 mdTimeStamp
255IntersectionState/timeStamp       isTimeStamp
256
257AdvisorySpeed/type                asType
258RegulatorySpeedLimit/type         rslType
259RequestorDescription/type         rdType
260
261TcPart/detectionZoneIds           tpDetectionZoneIds
262TcPart/driverAwarenessZoneIds     tpDriverAwarenessZoneIds
263TcPart/relevanceZoneIds           tpRelevanceZoneIds
264
265GicPart/detectionZoneIds          gpDetectionZoneIds
266GicPart/driverAwarenessZoneIds    gpDriverAwarenessZoneIds
267GicPart/relevanceZoneIds          gpRelevanceZoneIds
268
269TractorCharacteristics/equalTo    toEqualTo
270TractorCharacteristics/notEqualTo toNotEqualTo
271
272TrailerCharacteristics/equalTo    teEqualTo
273TrailerCharacteristics/notEqualTo teNotEqualTo
274
275Node-XY-20b/x                     n20bX
276Node-XY-22b/x                     n22bX
277Node-XY-24b/x                     n24bX
278Node-XY-26b/x                     n26bX
279Node-XY-28b/x                     n28bX
280Node-XY-32b/x                     n32bX
281
282Node-XY-20b/y                     n20bY
283Node-XY-22b/y                     n22bY
284Node-XY-24b/y                     n24bY
285Node-XY-26b/y                     n26bY
286Node-XY-28b/y                     n28bY
287Node-XY-32b/y                     n32bY
288
289#.TYPE_ATTR
290Longitude          DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_longitude_fmt)
291Latitude           DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_latitude_fmt)
292AltitudeValue      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_altitude_fmt)
293DeltaLatitude      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_longitude_fmt)
294DeltaLongitude     DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_latitude_fmt)
295DeltaAltitude      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_altitude_fmt)
296PathDeltaTime      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_path_delta_time_fmt)
297SemiAxisLength     DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_sax_length_fmt)
298HeadingValue       DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_value_fmt)
299HeadingConfidence  DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_confidence_fmt)
300SpeedValue         DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_speed_value_fmt)
301SpeedConfidence    DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_speed_confidence_fmt)
302VehicleLengthValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_vehicle_length_value_fmt)
303VehicleWidth       DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_vehicle_width_fmt)
304LongitudinalAccelerationValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
305LateralAccelerationValue      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
306VerticalAccelerationValue     DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
307AccelerationConfidence        DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_confidence_fmt)
308CurvatureValue     DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_curvature_value_fmt)
309YawRateValue       DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_yaw_rate_value_fmt)
310SteeringWheelAngleValue      DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_swa_value_fmt)
311SteeringWheelAngleConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_swa_confidence_fmt)
312
313GenerationDeltaTime                STRINGS=NULL
314
315MinuteOfTheYear DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_moi_fmt)
316DSecond         DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_dsecond_fmt)
317TimeMark        DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_time_mark_fmt)
318TimeIntervalConfidence              STRINGS=VALS(dsrc_TimeIntervalConfidence_vals)
319Velocity        DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_velocity_fmt)
320Angle           DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
321HeadingDSRC     DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
322DeltaTime       DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_delta_time_fmt)
323
324TimeOfMeasurement          STRINGS=NULL
325ClassConfidence            DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
326FreeSpaceConfidence        DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
327ObjectConfidence           DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
328DistanceValue              DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_value_fmt)
329DistanceConfidence         DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_confidence_fmt)
330SpeedValueExtended         DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_speed_value_ext_fmt)
331CartesianAngleValue        DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_cartesian_angle_value_fmt)
332AngleConfidence            DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_angle_confidence_fmt)
333ObjectDimensionValue       DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_value_fmt)
334ObjectDimensionConfidence  DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_confidence_fmt)
335
336#.END
337
338#.FIELD_ATTR
339IntersectionState/status          ABBREV=intersectionState.status
340SignalStatusPackage/status        ABBREV=signalStatusPackage.status
341SignalStatusMessage/status        ABBREV=signalStatusMessage.status
342FullPositionVector/elevation      ABBREV=fullPositionVector.elevation
343PositionConfidenceSet/elevation   ABBREV=positionConfidenceSet.elevation
344Position3D/elevation              ABBREV=position3D.elevation
345
346#.END
347
348#.MAKE_DEFINES
349ItsPduHeader/messageID
350#.END
351
352#.MAKE_ENUM
353RegionId
354CauseCodeType
355
356#.FN_HDR CoopAwareness
357  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
358  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CAM");
359  col_set_str(actx->pinfo->cinfo, COL_INFO, "CAM");
360#.END
361
362#.FN_HDR CoopAwarenessV1
363  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
364  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CAMv1");
365  col_set_str(actx->pinfo->cinfo, COL_INFO, "CAMv1");
366#.END
367
368#.FN_HDR DecentralizedEnvironmentalNotificationMessage
369  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
370  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "DENM");
371  col_set_str(actx->pinfo->cinfo, COL_INFO, "DENM");
372#.END
373
374#.FN_HDR DecentralizedEnvironmentalNotificationMessageV1
375  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
376  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "DENMv1");
377  col_set_str(actx->pinfo->cinfo, COL_INFO, "DENMv1");
378#.END
379
380#.FN_HDR EVChargingSpotNotificationPOIMessage
381  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
382  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "EVCSN");
383  col_set_str(actx->pinfo->cinfo, COL_INFO, "EVCSN");
384#.END
385
386#.FN_HDR EV-RSR-MessageBody
387  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
388  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "EV-RSR");
389  col_set_str(actx->pinfo->cinfo, COL_INFO, "EV-RSR");
390#.END
391
392#.FN_HDR TisTpgTransaction
393  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
394  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "TISTPG");
395  col_set_str(actx->pinfo->cinfo, COL_INFO, "TISTPG");
396#.END
397
398#.FN_HDR IviStructure
399  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
400  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "IVIM");
401  col_set_str(actx->pinfo->cinfo, COL_INFO, "IVIM");
402#.END
403
404#.FN_HDR SignalStatusMessage
405  its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
406  actx->private_data = (void*)regext;
407  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SSEM");
408  col_set_str(actx->pinfo->cinfo, COL_INFO, "SSEM");
409  regext->type = Reg_SignalStatusMessage;
410#.END
411
412#.FN_HDR SignalRequestMessage
413  its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
414  actx->private_data = (void*)regext;
415  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SREM");
416  col_set_str(actx->pinfo->cinfo, COL_INFO, "SREM");
417  regext->type = Reg_SignalRequestMessage;
418#.END
419
420#.FN_HDR MapData
421  its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
422  actx->private_data = (void*)regext;
423  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "MAPEM");
424  col_set_str(actx->pinfo->cinfo, COL_INFO, "MAPEM");
425  regext->type = Reg_MapData;
426#.END
427
428#.FN_HDR SPAT
429  its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
430  actx->private_data = (void*)regext;
431  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SPATEM");
432  col_set_str(actx->pinfo->cinfo, COL_INFO, "SPATEM");
433  regext->type = Reg_SPAT;
434#.END
435
436
437#.FN_HDR RTCMcorrections
438  its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
439  actx->private_data = (void*)regext;
440  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "RTCMEM");
441  col_set_str(actx->pinfo->cinfo, COL_INFO, "RTCMEM");
442  regext->type = Reg_RTCMcorrections;
443#.END
444
445#.FN_HDR CollectivePerceptionMessage
446  actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
447  col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CPM");
448  col_set_str(actx->pinfo->cinfo, COL_INFO, "CPM");
449#.END
450
451
452#.FN_HDR ConnectionManeuverAssist-addGrpC
453  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
454#.END
455
456
457#.FN_HDR ConnectionTrajectory-addGrpC
458  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
459#.END
460
461
462#.FN_HDR NodeAttributeSet-addGrpC
463  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
464#.END
465
466
467#.FN_HDR IntersectionState-addGrpC
468  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
469#.END
470
471
472#.FN_HDR MapData-addGrpC
473  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
474#.END
475
476
477#.FN_HDR Position3D-addGrpC
478  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
479#.END
480
481
482#.FN_HDR RestrictionUserType-addGrpC
483  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
484#.END
485
486
487#.FN_HDR SignalStatusPackage-addGrpC
488  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
489#.END
490
491
492#.FN_HDR LaneAttributes-addGrpC
493  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
494#.END
495
496
497#.FN_HDR MovementEvent-addGrpC
498  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
499#.END
500
501
502#.FN_HDR RequestorDescription-addGrpC
503  actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
504#.END
505
506
507#.FN_HDR AdvisorySpeed
508  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
509  ((its_private_data_t*)actx->private_data)->type = Reg_AdvisorySpeed;
510#.END
511#.FN_FTR AdvisorySpeed
512  ((its_private_data_t*)actx->private_data)->type = save;
513#.END
514
515
516#.FN_HDR ComputedLane
517  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
518  ((its_private_data_t*)actx->private_data)->type = Reg_ComputedLane;
519#.END
520#.FN_FTR ComputedLane
521  ((its_private_data_t*)actx->private_data)->type = save;
522#.END
523
524
525#.FN_HDR ConnectionManeuverAssist
526  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
527  ((its_private_data_t*)actx->private_data)->type = Reg_ConnectionManeuverAssist;
528#.END
529#.FN_FTR ConnectionManeuverAssist
530  ((its_private_data_t*)actx->private_data)->type = save;
531#.END
532
533
534#.FN_HDR GenericLane
535  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
536  ((its_private_data_t*)actx->private_data)->type = Reg_GenericLane;
537#.END
538#.FN_FTR GenericLane
539  ((its_private_data_t*)actx->private_data)->type = save;
540#.END
541
542
543#.FN_HDR IntersectionGeometry
544  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
545  ((its_private_data_t*)actx->private_data)->type = Reg_IntersectionGeometry;
546#.END
547#.FN_FTR IntersectionGeometry
548  ((its_private_data_t*)actx->private_data)->type = save;
549#.END
550
551
552#.FN_HDR IntersectionState
553  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
554  ((its_private_data_t*)actx->private_data)->type = Reg_IntersectionState;
555#.END
556#.FN_FTR IntersectionState
557  ((its_private_data_t*)actx->private_data)->type = save;
558#.END
559
560
561#.FN_HDR LaneAttributes
562  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
563  ((its_private_data_t*)actx->private_data)->type = Reg_LaneAttributes;
564#.END
565#.FN_FTR LaneAttributes
566  ((its_private_data_t*)actx->private_data)->type = save;
567#.END
568
569
570#.FN_HDR LaneDataAttribute
571  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
572  ((its_private_data_t*)actx->private_data)->type = Reg_LaneDataAttribute;
573#.END
574#.FN_FTR LaneDataAttribute
575  ((its_private_data_t*)actx->private_data)->type = save;
576#.END
577
578
579#.FN_HDR MovementEvent
580  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
581  ((its_private_data_t*)actx->private_data)->type = Reg_MovementEvent;
582#.END
583#.FN_FTR MovementEvent
584  ((its_private_data_t*)actx->private_data)->type = save;
585#.END
586
587
588#.FN_HDR MovementState
589  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
590  ((its_private_data_t*)actx->private_data)->type = Reg_MovementState;
591#.END
592#.FN_FTR MovementState
593  ((its_private_data_t*)actx->private_data)->type = save;
594#.END
595
596
597#.FN_HDR NodeAttributeSetXY
598  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
599  ((its_private_data_t*)actx->private_data)->type = Reg_NodeAttributeSetXY;
600#.END
601#.FN_FTR NodeAttributeSetXY
602  ((its_private_data_t*)actx->private_data)->type = save;
603#.END
604
605
606#.FN_HDR NodeOffsetPointXY
607  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
608  ((its_private_data_t*)actx->private_data)->type = Reg_NodeOffsetPointXY;
609#.END
610#.FN_FTR NodeOffsetPointXY
611  ((its_private_data_t*)actx->private_data)->type = save;
612#.END
613
614
615#.FN_HDR Position3D
616  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
617  ((its_private_data_t*)actx->private_data)->type = Reg_Position3D;
618#.END
619#.FN_FTR Position3D
620  ((its_private_data_t*)actx->private_data)->type = save;
621#.END
622
623
624#.FN_HDR RequestorDescription
625  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
626  ((its_private_data_t*)actx->private_data)->type = Reg_RequestorDescription;
627#.END
628#.FN_FTR RequestorDescription
629  ((its_private_data_t*)actx->private_data)->type = save;
630#.END
631
632
633#.FN_HDR RequestorType
634  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
635  ((its_private_data_t*)actx->private_data)->type = Reg_RequestorType;
636#.END
637#.FN_FTR RequestorType
638  ((its_private_data_t*)actx->private_data)->type = save;
639#.END
640
641
642#.FN_HDR RestrictionUserType
643  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
644  ((its_private_data_t*)actx->private_data)->type = Reg_RestrictionUserType;
645#.END
646#.FN_FTR RestrictionUserType
647  ((its_private_data_t*)actx->private_data)->type = save;
648#.END
649
650
651#.FN_HDR RoadSegment
652  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
653  ((its_private_data_t*)actx->private_data)->type = Reg_RoadSegment;
654#.END
655#.FN_FTR RoadSegment
656  ((its_private_data_t*)actx->private_data)->type = save;
657#.END
658
659
660#.FN_HDR SignalRequestPackage
661  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
662  ((its_private_data_t*)actx->private_data)->type = Reg_SignalRequestPackage;
663#.END
664#.FN_FTR SignalRequestPackage
665  ((its_private_data_t*)actx->private_data)->type = save;
666#.END
667
668
669#.FN_HDR SignalRequest
670  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
671  ((its_private_data_t*)actx->private_data)->type = Reg_SignalRequest;
672#.END
673#.FN_FTR SignalRequest
674  ((its_private_data_t*)actx->private_data)->type = save;
675#.END
676
677
678#.FN_HDR SignalStatusPackage
679  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
680  ((its_private_data_t*)actx->private_data)->type = Reg_SignalStatusPackage;
681#.END
682#.FN_FTR SignalStatusPackage
683  ((its_private_data_t*)actx->private_data)->type = save;
684#.END
685
686
687#.FN_HDR SignalStatus
688  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
689  ((its_private_data_t*)actx->private_data)->type = Reg_SignalStatus;
690#.END
691#.FN_FTR SignalStatus
692  ((its_private_data_t*)actx->private_data)->type = save;
693#.END
694
695
696#.FN_HDR SignalControlZone
697  enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
698  ((its_private_data_t*)actx->private_data)->type = Reg_SignalControlZone;
699#.END
700#.FN_FTR SignalControlZone
701  ((its_private_data_t*)actx->private_data)->type = save;
702#.END
703
704#.FN_PARS RegionId VAL_PTR = &((its_private_data_t*)actx->private_data)->region_id
705
706#.FN_PARS ItsPduHeader/protocolVersion VAL_PTR = &((its_header_t*)actx->private_data)->version
707#.FN_PARS ItsPduHeader/messageID VAL_PTR = &((its_header_t*)actx->private_data)->msgId
708#.FN_PARS StationID VAL_PTR = actx->private_data?&((its_header_t*)actx->private_data)->stationId:NULL
709
710#.FN_BODY ItsPduHeader
711  guint8 version = tvb_get_guint8(tvb, 0);
712  int test_offset = offset;
713  if ((test_offset = dissector_try_uint(its_version_subdissector_table, version, tvb, actx->pinfo, tree))) {
714    return test_offset;
715  }
716  // Lets try it that way, regarless of version value...
717  its_header_t *hdr = wmem_new0(actx->pinfo->pool, its_header_t);
718  actx->private_data = (void*)hdr;
719%(DEFAULT_BODY)s
720  tap_queue_packet(its_tap, actx->pinfo, actx->private_data);
721  tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset >> 3, -1);
722  int data_offset = dissector_try_uint(its_msgid_subdissector_table, (hdr->version << 16)+hdr->msgId, next_tvb, actx->pinfo, tree);
723  if (!data_offset) {
724    proto_tree_add_expert(tree, actx->pinfo, &ei_its_no_sub_dis, next_tvb, 0,  - 1);
725    data_offset = call_data_dissector(next_tvb, actx->pinfo, tree);
726  }
727  offset += data_offset;
728#.END
729
730#.ASSIGN_VALUE_TO_TYPE  # ISO_TS_19091_DSRC ASN.1 does not have constants assigned to types
731
732#RegionId
733noRegion     RegionId
734addGrpA      RegionId
735addGrpB      RegionId
736addGrpC      RegionId
737
738#.END
739
740#.REGISTER
741# Not used due to "protocol" detection issue: we shall register for its subdissector not dsrc
742#.END
743
744#.FN_PARS RegionalExtension/regExtValue FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_regextval_pdu
745
746
747#.FN_BODY TypeOfReceptacle VAL_PTR=&parameter_tvb LEN_PTR=&len
748  tvbuff_t *parameter_tvb = NULL;
749  int len;
750%(DEFAULT_BODY)s
751  /* TODO Provide values?
752   * See ETSI TS 101 556-1 V1.1.1 Annex B Description for data elements
753   * Table B.2: Coding of the type of receptacle field
754   *
755   * Code  Charging     Standard plug /      Type of  Nb of   Maximum  Maximum
756   *       spot type    cable                current  phases  Voltage  Current
757   * -------------------------------------------------------------------------
758   * 0000  Socket       IEC 62196-2 type 1     AC     Single   240V     16A
759   * 0001  Socket       IEC 62196-2 type 1     AC     Single   240V     32A
760   * 0010  Socket       IEC 62196-2 type 1     AC     Single   240V     80A
761   * 0011  Socket       IEC 62196-2 type 1     AC     Single   120V     12A
762   * 0100  Socket       IEC 62196-2 type 1     AC     Single   120V     16A
763   * 0101  Socket       Standard Household     AC     Single   250V     16A
764   * 0110  Socket       Standard Household     AC     Single   480V     16A
765   * 0111  Socket       IEC 62196-2 type 2     AC     Single   230V     16A
766   * 1000  Socket       IEC 62196-2 type 2     AC     Single   250V     32A
767   * 1001  Socket       IEC 62196-2 type 2     AC     Single   480V     32A
768   * 1010  Socket       IEC 62196-2 type 2     AC     Single   400V     32/250A
769   * 1011  Socket       IEC 62196-2 type 3A    AC     Single   250V     32A
770   * 1100  Socket       IEC 62196-2 type 3B    AC     Single   480V     32A
771   * 1101  Socket       Reserved for Future    AC     Single  1000V     400A
772                        IEC 62196-3
773   * 1110  Cable for    Reserved
774           DC charging
775   * 1111  Cable for    Reserved
776           DC charging
777   */
778
779#.NO_EMIT WITH_VALS
780#.END
781
782#.NO_EMIT ONLY_VALS
783Latitude
784Longitude
785AltitudeValue
786DeltaLatitude
787DeltaLongitude
788DeltaAltitude
789PathDeltaTime
790SemiAxisLength
791$ITS-ContainerV1$HeadingValue
792HeadingConfidence
793SpeedValue
794SpeedConfidence
795VehicleLengthValue
796VehicleWidth
797LongitudinalAccelerationValue
798LateralAccelerationValue
799VerticalAccelerationValue
800AccelerationConfidence
801CurvatureValue
802YawRateValue
803SteeringWheelAngleValue
804SteeringWheelAngleConfidence
805GenerationDeltaTime
806TimeOfMeasurement
807ClassConfidence
808FreeSpaceConfidence
809ObjectConfidence
810DistanceValue
811DistanceConfidence
812SpeedValueExtended
813CartesianAngleValue
814AngleConfidence
815ObjectDimensionValue
816ObjectDimensionConfidence
817#.END
818
819#.NO_EMIT WITHOUT_VALS
820# Just keep the vals. hf are made manually and used in cause/subcause decoding
821PostCrashSubCauseCode
822VehicleBreakdownSubCauseCode
823DangerousSituationSubCauseCode
824DangerousEndOfQueueSubCauseCode
825RescueAndRecoveryWorkInProgressSubCauseCode
826SignalViolationSubCauseCode
827CollisionRiskSubCauseCode
828HazardousLocation-AnimalOnTheRoadSubCauseCode
829HazardousLocation-ObstacleOnTheRoadSubCauseCode
830HazardousLocation-SurfaceConditionSubCauseCode
831HazardousLocation-DangerousCurveSubCauseCode
832EmergencyVehicleApproachingSubCauseCode
833HumanProblemSubCauseCode
834StationaryVehicleSubCauseCode
835SlowVehicleSubCauseCode
836AdverseWeatherCondition-PrecipitationSubCauseCode
837AdverseWeatherCondition-VisibilitySubCauseCode
838AdverseWeatherCondition-AdhesionSubCauseCode
839AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode
840WrongWayDrivingSubCauseCode
841HumanPresenceOnTheRoadSubCauseCode
842AccidentSubCauseCode
843TrafficConditionSubCauseCode
844#.END
845
846#.FN_PARS CauseCodeType VAL_PTR = &((its_private_data_t*)actx->private_data)->cause_code
847
848#.FN_BODY SubCauseCodeType
849  // Overwrite hf_index
850  hf_index = *find_subcause_from_cause((CauseCodeType_enum) ((its_private_data_t*)actx->private_data)->cause_code);
851%(DEFAULT_BODY)s
852#.END
853
854#
855# RCUnit subtypes bodies implemented manually as asn2wrs is not able to handle subtype constraint
856#
857
858#.FN_BODY InternationalSign-speedLimits/unit
859  offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
860                                           0U, 1U, %(VAL_PTR)s, FALSE);
861#.END
862
863#.FN_BODY Weight/unit
864  offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
865                                           10U, 12U, %(VAL_PTR)s, FALSE);
866#.END
867
868#.FN_BODY DistOrDuration-Units
869  offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
870                                           2U, 9U, %(VAL_PTR)s, FALSE);
871#.END
872
873#.FN_BODY Distance/unit
874  offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
875                                           2U, 8U, %(VAL_PTR)s, FALSE);
876#.END
877
878#=== PtActivation =======================================================
879
880#.FN_HDR PtActivation
881  void *priv_data = actx->private_data;
882  its_pt_activation_data_t *pta;
883
884  pta = wmem_new0(actx->pinfo->pool, its_pt_activation_data_t);
885  actx->private_data = pta;
886#.FN_FTR
887  dissector_try_uint_new(cam_pt_activation_table, pta->type, pta->data, actx->pinfo, tree, TRUE, NULL);
888  actx->private_data = priv_data;
889#.END
890
891#.FN_PARS
892PtActivationType VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->type
893PtActivationData VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->data
894#.END
895