Newer
Older
-- Draft CDD ASN.1 module Release 2 (Version 3)
-- Based on the official version available at @https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2
-- prepared by Jasja Tijink for ETSI TC ITS WG1 (date 13.01.2022)
-- Note: some descriptions of the data type still need to be harmonized and cleaned up.
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version3 (3)
------------------------------------------
-- Specification of CDD Data Elements:
------------------------------------------
* The following values are specified:
* - `accelerate` if the acceleration is positive.
* - `decelerate` if the acceleration is negative.
* @category Kinematics information
*/
AccelerationChange::= ENUMERATED { accelerate, decelerate } -- tbd add values and/or extension?
* This DE reprents the absolute accuracy of a reported vehicle acceleration value with a confidence level of 95%.
* The value shall be set to:
* - `1` if the acceleration accuracy is equal to or less than 0,1 m/s2.
* - `n (n > 1 and n < 100)` if the acceleration accuracy is equal to or less than n × 0,1 m/s2.
* - `100` if the acceleration accuracy is equal to or less than 10 m/s2.
* - `101` if the acceleration accuracy is out of range i.e. greater than 10 m/s2.
* - `102` if the data is unavailable.
* @note: The fact that an acceleration value is received with confidence set to 'unavailable(102)' can be caused by several reasons, such as:
* - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
* - the sensor cannot calculate the accuracy due to lack of variables, or
* - there has been a vehicle bus (e.g. CAN bus) error.
* In all 3 cases above, the reported acceleration value may be valid and used by the application.
*
* If an acceleration value is received and its confidence is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application.
* @unit 0,1 m/s2
* @category Kinematics information
AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102)
* This DE indicates the current controlling mechanism for longitudinal movement of the vehicle.
* The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle
* acceleration control system is engaged or not. Currently, this DE includes the information of the
* vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise
* control system, cruise control system and speed limiter system.
* The corresponding bit shall be set to 1 under the following conditions:
* - 0 `brakePedalEngaged` : Driver is stepping on the brake pedal,
* - 1 `gasPedalEngaged` : Driver is stepping on the gas pedal,
* - 2 `emergencyBrakeEngaged` : emergency brake system is engaged,
* - 3 `collisionWarningEngaged`: collision warning system is engaged,
* - 4 `accEngaged` : ACC is engaged,
* - 5 `cruiseControlEngaged` : cruise control is engaged,
* - 6 `speedLimiterEngaged` : speed limiter is engaged.
* - 7 : reserved for future use
* Otherwise (for example when the corresponding system is not available due to non equipped system
* or information is unavailable), the corresponding bit shall be set to _0_.
* @note: The system engagement condition is OEM specific and therefore out of scope of the present document.
* @category: Kinematics information
*/
AccelerationControl ::= BIT STRING {
brakePedalEngaged (0),
gasPedalEngaged (1),
emergencyBrakeEngaged (2),
collisionWarningEngaged (3),
accEngaged (4),
cruiseControlEngaged (5),
speedLimiterEngaged (6)
} (SIZE(7))
/**
* This DE represents the value of an acceleration component in a defined coordinate system.
* The DE shall be set to `161` if the information is not available.
* @unit 0,1 m/s2
* @category: Kinematics information
*/
AccelerationValue ::= INTEGER {
pointOneMeterPerSecSquared (1),
minusPointOneMeterPerSecSquared (-1),
unavailable (161)
} (-160 .. 161)
/**
* This DE indicates an access technology.
*
* The following values are specified:
* - `0`: any access technology class (see clause 7 of TS 103 724).
* - `1`: ITS-G5 access technology class.
* - `2`: LTE-V2X access technology class.
* - `3`: NR-V2X access technology class.
*
* @category: Communication information
AccessTechnologyClass ::= ENUMERATED {
any(0),
itsg5Class(1),
ltev2xClass(2),
nrv2xClass(3),
...
* This DE represents the value of the sub cause code of the @ref CauseCode `accident`.
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
* The following values are specified:
* - 0 `unavailable` : in case the information on the sub cause of the accident is unavailable,
* - 1 `multiVehicleAccident` : in case more than two vehicles are involved in accident,
* - 2 `heavyAccident` : in case the airbag of the vehicle involved in the accident is triggered,
* the accident requires important rescue and/or recovery work,
* - 3 `accidentInvolvingLorry` : in case the accident involves a lorry,
* - 4 `accidentInvolvingBus` : in case the accident involves a bus,
* - 5 `accidentInvolvingHazardousMaterials`: in case the accident involves hazardous material,
* - 6 `accidentOnOppositeLane` : in case the accident happens on opposite lanes,
* - 7 `unsecuredAccident` : in case the accident is not secured,
* - 8 `assistanceRequested` : in case rescue and assistance are requested,
* - 9-255 reserved for future usage.
* @category: Traffic information
*/
AccidentSubCauseCode ::= INTEGER {
unavailable(0),
multiVehicleAccident(1),
heavyAccident(2),
accidentInvolvingLorry(3),
accidentInvolvingBus(4),
accidentInvolvingHazardousMaterials(5),
accidentOnOppositeLane(6),
unsecuredAccident(7),
assistanceRequested(8)
} (0..255)
/**
* This DE represents the value of the sub cause code of the @ref CauseCode `adverseWeatherCondition-Adhesion`.
*
* The sub causes are described as following:
* - 0 `unavailable` : in case information on the cause of the low road adhesion is unavailable
* - 1 `heavyFrostOnRoad`: in case the low road adhesion is due to heavy frost on the road
* - 2 `fuelOnRoad` : in case the low road adhesion is due to fuel on the road
* - 3 `mudOnRoad` : in case the low road adhesion is due to mud on the road
* - 4 `snowOnRoad` : in case the low road adhesion is due to snow on the road
* - 5 `iceOnRoad` : in case the low road adhesion is due to ice on the road
* - 6 `blackIceOnRoad` : in case the low road adhesion is due to black ice on the road
* - 7 `oilOnRoad` : in case the low road adhesion is due to oil on the road
* - 8 `looseChippings` : in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard
* - 9 `instantBlackIce` : in case the low road adhesion is due to instant black ice on the road surface
* - 10 `roadsSalted` : when the low road adhesion is due to salted road
* - 11-255 reserved for future usage
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
unavailable(0),
heavyFrostOnRoad(1),
fuelOnRoad(2),
mudOnRoad(3),
snowOnRoad(4),
iceOnRoad(5),
blackIceOnRoad(6),
oilOnRoad(7),
looseChippings(8),
instantBlackIce(9),
roadsSalted(10)
} (0..255)
* This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`.
* The sub causes are described as following:
* - 0 `unavailable` : in case information on the type of extreme weather condition is unavailable
* - 1 `strongWinds` : in case the type of extreme weather condition is strong wind
* - 2 `damagingHail`: in case the type of extreme weather condition is damaging hail
* - 3 `hurricane` : in case the type of extreme weather condition is hurricane
* - 4 `thunderstorm`: in case the type of extreme weather condition is thunderstorm
* - 5 `tornado` : in case the type of extreme weather condition is tornado
* - 6 `blizzard` : in case the type of extreme weather condition is blizzard
* - 7-255 reserved for future usage
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
unavailable(0),
strongWinds(1),
damagingHail(2),
hurricane(3),
thunderstorm(4),
tornado(5),
blizzard(6)
} (0..255)
* This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`.
* The sub causes are described as following:
* - 0 `unavailable`: in case information on the type of precipitation is unavailable
* - 1 `heavyRain`: in case the type of precipitation is heavy rain
* - 2 `heavySnowfall`: in case the type of precipitation is heavy snow fall
* - 3 `softHail`: in case the type of precipitation is soft hail
* - 4-255 reserved for future usage
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
unavailable(0),
heavyRain(1),
heavySnowfall(2),
softHail(3)
} (0..255)
* This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`.
* The sub causes are described as following:
* - 0 `unavailable` : in case information on the cause of low visibility is unavailable
* - 1 `fog` : in case the cause of low visibility is fog
* - 2 `smoke` : in case the cause of low visibility is smoke
* - 3 `heavySnowfall` : in case the cause of low visibility is heavy snow fall
* - 4 `heavyRain` : in case the cause of low visibility is heavy rain
* - 5 `heavyHail` : in case the cause of low visibility is heavy hail
* - 6 `lowSunGlare` : in case the cause of low visibility is sun glare
* - 7 `sandstorms` : in case the cause of low visibility is sand storm
* - 8 `swarmsOfInsects`: in case the cause of low visibility is swarm of insects
* - 9-255 reserved for future usage
*
* @category: Traffic information
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
unavailable(0),
fog(1),
smoke(2),
heavySnowfall(3),
heavyRain(4),
heavyHail(5),
lowSunGlare(6),
sandstorms(7),
swarmsOfInsects(8)
} (0..255)
* This DE represents the absolute accuracy of an altitude value of a geographical point for a confidence level of 95%.
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
*
* @note: The fact that an altitude value is received with confidence set to `unavailable(15)` can be caused
* by several reasons, such as:
* - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
* - the sensor cannot calculate the accuracy due to lack of variables, or
* - there has been a vehicle bus (e.g. CAN bus) error.
* In all 3 cases above, the reported altitude value may be valid and used by the application.
*
* @note: If an altitude value is received and its confidence is set to `outOfRange(14)`, it means that the reported
* altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application.
*
* The value shall be set to:
* - 0 `alt-000-01` if the altitude accuracy is equal to or less than 0,01 metre
* - 1 `alt-000-02` if the altitude accuracy is equal to or less than 0,02 metre
* - 2 `alt-000-05` if the altitude accuracy is equal to or less than 0,05 metre
* - 3 `alt-000-10` if the altitude accuracy is equal to or less than 0,1 metre
* - 4 `alt-000-20` if the altitude accuracy is equal to or less than 0,2 metre
* - 5 `alt-000-50` if the altitude accuracy is equal to or less than 0,5 metre
* - 6 `alt-001-00` if the altitude accuracy is equal to or less than 1 metre
* - 7 `alt-002-00` if the altitude accuracy is equal to or less than 2 metres
* - 8 `alt-005-00` if the altitude accuracy is equal to or less than 5 metres
* - 9 `alt-010-00` if the altitude accuracy is equal to or less than 10 metres
* - 10 `alt-020-00` if the altitude accuracy is equal to or less than 20 metres
* - 11 `alt-050-00` if the altitude accuracy is equal to or less than 50 metres
* - 12 `alt-100-00` if the altitude accuracy is equal to or less than 100 metres
* - 13 `alt-200-00` if the altitude accuracy is equal to or less than 200 metres
* - 14 `outOfRange` if the altitude accuracy is out of range, i.e. greater than 200 metres
* - 15 `unavailable` if the altitude accuracy information is unavailable
*
* @category: GeoReference information
*/
alt-000-01 (0),
alt-000-02 (1),
alt-000-05 (2),
alt-000-10 (3),
alt-000-20 (4),
alt-000-50 (5),
alt-001-00 (6),
alt-002-00 (7),
alt-005-00 (8),
alt-010-00 (9),
alt-020-00 (10),
alt-050-00 (11),
alt-100-00 (12),
alt-200-00 (13),
outOfRange (14),
unavailable (15)
* This DE represents the altitude value in a WGS84 co-ordinate system.
* The following values are specified:
* - When the information is not available, the DE shall be set to _800 001_.
* - For altitude equal or greater than _8 000 m_, the DE shall be set to _800 000_.
* - For altitude equal or less than _-1 000_ m, the DE shall be set to _100 000_.
AltitudeValue ::= INTEGER {
referenceEllipsoidSurface(0),
oneCentimeter(1),
unavailable(800001)
} (-100000..800001)
/** @brief Angle Confidence
* The absolute accuracy of an angle value for a predefined confidence level of 95 %.
* The value shall be set to:
* zeroPointOneDegree (1),
* oneDegree (10),
* outOfRange (126), --< if the accuracy is out of range, i.e. greater than
* --< 12,5 degrees. A corresponding reported angle value shall be
* --< considered invalid and cannot be trusted.
* unavailable (127) --< if the accuracy information is not available
* @unit 0,1 degrees
* @category: Kinematics information
*/
AngleConfidence ::= INTEGER {
zeroPointOneDegree (1),
oneDegree (10),
outOfRange (126),
unavailable (127)
} (1..127)
/**
* This DE represents the absolute accuracy of a reported angular speed value for a confidence level of 95%.
* For correlation computation, maximum interval levels shall be assumed.
* The following values are specified:
* degSec-000-01 (0), --< if the accuracy is equal to or less than 0,01 degree/second
* degSec-000-05 (1), --< 1 if the accuracy is equal to or less than 0,05 degrees/second
* degSec-000-10 (2), --< if the accuracy is equal to or less than 0,1 degree/second
* degSec-001-00 (3), --< 3 if the accuracy is equal to or less than 1 degree/second
* degSec-005-00 (4), --< if the accuracy is equal to or less than 5 degrees/second
* degSec-010-00 (5), --< if the accuracy is equal to or less than 10 degrees/second
* degSec-100-00 (6), --< if the accuracy is equal to or less than 100 degrees/second
* outOfRange (7), --< if the accuracy is out of range, i.e. greater than 100 degrees/second
* unavailable (8) --< if the accuracy information is unavailable
*
* @category: Kinematics information
*/
AngularSpeedConfidence ::= ENUMERATED {
degSec-000-01 (0),
degSec-000-05 (1),
degSec-000-10 (2),
degSec-001-00 (3),
degSec-005-00 (4),
degSec-010-00 (5),
degSec-100-00 (6),
outOfRange (7),
unavailable (8)
/**
* Tis DE represents the absolute accuracy of a reported angular acceleration value for a confidence level of 95%.
* For correlation computation, maximum interval levels shall be assumed.
* The following values are specified:
* degSecSquared-000-01 (0), --< if the accuracy is equal to or less than 0,01 degree/second^2
* degSecSquared-000-05 (1), --< 1 if the accuracy is equal to or less than 0,05 degrees/second^2
* degSecSquared-000-10 (2), --< if the accuracy is equal to or less than 0,1 degree/second^2
* degSecSquared-001-00 (3), --< 3 if the accuracy is equal to or less than 1 degree/second^2
* degSecSquared-005-00 (4), --< if the accuracy is equal to or less than 5 degrees/second^2
* degSecSquared-010-00 (5), --< if the accuracy is equal to or less than 10 degrees/second^2
* degSecSquared-100-00 (6), --< if the accuracy is equal to or less than 100 degrees/second^2
* outOfRange (7), --< if the accuracy is out of range, i.e. greater than 100 degrees/second^2
* unavailable (8) --< if the accuracy information is unavailable
* @category: Kinematics information
*/
AngularAccelerationConfidence ::= ENUMERATED {
degSecSquared-000-01 (0),
degSecSquared-000-05 (1),
degSecSquared-000-10 (2),
degSecSquared-001-00 (3),
degSecSquared-005-00 (4),
degSecSquared-010-00 (5),
degSecSquared-100-00 (6),
outOfRange (7),
unavailable (8)
/**
* This DE represenst an angle value described in a local Cartesian coordinate system, counted positive in
* a right-hand local coordinate system from the abscissa.
* @unit 0,1 degrees
* @category: Kinematics information
*/
CartesianAngleValue ::= INTEGER {
zeroPointOneDegree (1),
oneDegree (10),
unavailable (3601)
} (0..3601)
/**
* This DE represents an angular speed value described in a local Cartesian coordinate system, counted positive in
* a right-hand local coordinate system from the abscissa.
* @unit 0,01 degrees/s
* @category: Kinematics information
*/
CartesianAngularSpeedValue ::= INTEGER {
noSpeed (0),
oneDegreePerSecondAntiClockwise (100),
oneDegreePerSecondClockwise (-100)
} (-32766..32767)
/**
* This DE represents an angular acceleration value described in a local Cartesian coordinate system, counted positive in
* a right-hand local coordinate system from the abscissa.
* @unit 0,01 degrees/s^2 (degrees per second squared)
* @category: Kinematics information
*/
CartesianAngularAccelerationValue ::= INTEGER {
noAcceleration (0),
oneDegreePerSecondSquaredAntiClockwise (100),
oneDegreePerSecondSquaredClockwise (-100)
} (-32766..32767)
*The DE represents the value of the cause code of an event.
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
* - 0 reserved for future use,
* - 1 `trafficCondition` : the type of event is an abnormal traffic condition,
* - 2 `accident` : the type of event is a road accident,
* - 3 `roadworks` : the type of event is roadwork,
* - 4 reserved for future usage,
* - 5 `impassability` : the type of event is unmanaged road blocking, referring to any
* blocking of a road, partial or total, which has not been adequately
* secured and signposted,
* - 6 `adverseWeatherCondition-Adhesion` : the type of event is low adhesion,
* - 7 `aquaplaning` : danger of aquaplaning on the road,
* - 8 reserved for future usage,
* - 9 `hazardousLocation-SurfaceCondition` : the type of event is abnormal road surface condition,
* - 10 `hazardousLocation-ObstacleOnTheRoad`: the type of event is obstacle on the road,
* - 11 `hazardousLocation-AnimalOnTheRoad` : the type of event is animal on the road,
* - 12 `humanPresenceOnTheRoad` : the type of event is human presence on the road,
* - 13 reserved for future usage,
* - 14 `wrongWayDriving` : the type of the event is vehicle driving in wrong way,
* - 15 `rescueAndRecoveryWorkInProgress` : the type of event is rescue and recovery work for accident or for a road hazard in progress,
* - 16 reserved for future usage,
* - 17 `adverseWeatherCondition-ExtremeWeatherCondition`: the type of event is extreme weather condition,
* - 18 `adverseWeatherCondition-Visibility` : the type of event is low visibility,
* - 19 `adverseWeatherCondition-Precipitation` : the type of event is precipitation,
* - 20-25 reserved for future usage,
* - 26 `slowVehicle` : the type of event is slow vehicle driving on the road,
* - 27 `dangerousEndOfQueue` : the type of event is dangerous end of vehicle queue,
* - 28-90 are reserved for future usage,
* - 91 `vehicleBreakdown` : the type of event is break down vehicle on the road,
* - 92 `postCrash` : the type of event is a detected crash,
* - 93 `humanProblem` : the type of event is human health problem in vehicles involved in traffic,
* - 94 `stationaryVehicle` : the type of event is stationary vehicle,
* - 95 `emergencyVehicleApproaching` : the type of event is approaching vehicle operating emergency mission,
* - 96 `hazardousLocation-DangerousCurve` : the type of event is dangerous curve,
* - 97 `collisionRisk` : the type of event is a collision risk,
* - 98 `signalViolation` : the type of event is signal violation,
* - 99 `dangerousSituation` : the type of event is dangerous situation in which autonomous safety system in vehicle is activated,
* - 100-255 are reserved for future usage.
*
* @category: Traffic information
*/
reserved (0),
trafficCondition (1),
accident (2),
roadworks (3),
hazardousLocation-SurfaceCondition (9),
hazardousLocation-ObstacleOnTheRoad (10),
hazardousLocation-AnimalOnTheRoad (11),
humanPresenceOnTheRoad (12),
wrongWayDriving (14),
rescueAndRecoveryWorkInProgress (15),
adverseWeatherCondition-ExtremeWeatherCondition (17),
adverseWeatherCondition-Visibility (18),
adverseWeatherCondition-Precipitation (19),
slowVehicle (26),
dangerousEndOfQueue (27),
vehicleBreakdown (91),
postCrash (92),
humanProblem (93),
stationaryVehicle (94),
emergencyVehicleApproaching (95),
hazardousLocation-DangerousCurve (96),
collisionRisk (97),
signalViolation (98),
dangerousSituation (99)
* This DF represents the value of a cartesian coordinate.
*
* @unit 0,01 m
*/
CartesianCoordinate::= INTEGER (-32768..32767)
-- a range of +- 327.68 meters. 1cm unit
/**
* This DE represents the ID of a CEN DSRC tolling zone.
* @category: Infrastructure information, Communication information
*/
CenDsrcTollingZoneID ::= ProtectedZoneID -- tbd to be deleted?
/**
* This DE represents the size of a cluster in terms of number of contained entities: known members in the cluster + 1
* @category: tbd
*/
ClusterCardinalitySize ::= INTEGER {unavailable(0), onlyLeader(1)} (0..255) --tbd make more generic?
/**
* Identifier of a cluster.
* This DE represents the value of the sub cause codes of the @ref CauseCode `collisionRisk`.
* The following values are specified:
* - 0 `unavailable` : in case information on the type of collision risk is unavailable,
* - 1 `longitudinalCollisionRisk`: in case the type of detected collision risk is longitudinal collision risk,
* e.g. forward collision or face to face collision,
* - 2 `crossingCollisionRisk` : in case the type of detected collision risk is crossing collision risk,
* - 3 `lateralCollisionRisk` : in case the type of detected collision risk is lateral collision risk,
* - 4 `vulnerableRoadUser` : in case the type of detected collision risk involves vulnerable road users
* e.g. pedestrians or bicycles,
* - 5-255 reserved for future usage.
* This DE indicates the reason why a cluster leader intends to break up the cluster.
*
* The following values are specified:
* - notProvided (0),
* - clusteringPurposeCompleted (1),
* - leaderMovedOutOfClusterBoundingBox (2),
* - joiningAnotherCluster (3),
* - enteringLowRiskAreaBasedOnMaps (4),
* - receptionOfCpmContainingCluster (5),
* - max(15)
ClusterBreakupReason ::= ENUMERATED {
notProvided (0),
clusteringPurposeCompleted (1),
leaderMovedOutOfClusterBoundingBox (2),
joiningAnotherCluster (3),
enteringLowRiskAreaBasedOnMaps (4),
receptionOfCpmContainingCluster (5),
max(15)
}
* This DE indicates the reason why a cluster participant is leaving the cluster.
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
* The following values are specified:
* - notProvided (0),
* - clusterLeaderLost (1),
* - clusterDisbandedByLeader (2),
* - outOfClusterBoundingBox (3),
* - outOfClusterSpeedRange (4),
* - joiningAnotherCluster (5),
* - cancelledJoin (6),
* - failedJoin (7),
* - safetyCondition (8),
* - max (15): The value 15 is set to "max" in order to bound the size of the encoded field
*
*/
ClusterLeaveReason ::= ENUMERATED {
notProvided (0),
clusterLeaderLost (1),
clusterDisbandedByLeader (2),
outOfClusterBoundingBox (3),
outOfClusterSpeedRange (4),
joiningAnotherCluster (5),
cancelledJoin (6),
failedJoin (7),
safetyCondition (8),
max(15)
}
ClusterOpTimestamp::= INTEGER (1..255) --tbd what this is!
/**
* This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`.
*
* The following values are specified:
* - 0 `unavailable` : in case information on the type of collision risk is unavailable,
* - 1 `longitudinalCollisionRisk`: in case the type of detected collision risk is longitudinal collision risk,
* e.g. forward collision or face to face collision,
* - 2 `crossingCollisionRisk` : in case the type of detected collision risk is crossing collision risk,
* - 3 `lateralCollisionRisk` : in case the type of detected collision risk is lateral collision risk,
* - 4 `vulnerableRoadUser` : in case the type of detected collision risk involves vulnerable road users
* e.g. pedestrians or bicycles,
* - 5-255 reserved for future usage.
*
* @category: Traffic information
*/
CollisionRiskSubCauseCode ::= INTEGER {
unavailable(0),
longitudinalCollisionRisk(1),
crossingCollisionRisk(2),
lateralCollisionRisk(3),
vulnerableRoadUser(4)
}(0..255)
/**
* This DE represnents the absolute accuracy of measurement to a confidence level of 95%.
* @unit 0,01 m
*/
CoordinateConfidence ::= INTEGER {
zeroPointZeroOneMeter (1),
oneMeter (100),
outOfRange (4094), -- shall be set if the accuracy is out of range
unavailable (4095) -- shall be set if the accuracy data is unavailable
} (0..4095)
/**
* This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix.
* The values is scaled by 100.
*
* The following exemplary values are specified.
* full-negative-correlation (-100), --< Full negative correlation
* no-correlation (0), --< If not correlated or unavailable
* point-one (10),
* full-positive-correlation (100) --< Full positive correlation
*
* @category: Kinematics information
*/
CorrelationRowValue ::= INTEGER {
full-negative-correlation (-100),
no-correlation (0),
point-one (10),
full-positive-correlation (100)
} (-100..100)
/**
* The DE describes whether the yaw rate is used to calculate the curvature for a reported curvature value.
*
*
* The following values are specified:
* - yawRateUsed: when the yaw rate is used
* - yawRateNotUsed: when the yaw rate is not ued
* - unavailable: when the information of curvature calculation mode is unknown.
*
* @category: Vehicle information
*/
CurvatureCalculationMode ::= ENUMERATED {yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ...}
/**
* This DE describes the absolute accuracy range of a reported curvature value for a confidence level of 95%.
* *
* The following values are specified:
* - 0 if the accuracy is less than or equal to 0,00002 m-1
* - 1 if the accuracy is less than or equal to 0,0001 m-1
* - 2 if the accuracy is less than or equal to 0,0005 m-1
* - 3 if the accuracy is less than or equal to 0,002 m-1
* - 4 if the accuracy is less than or equal to 0,01 m-1
* - 5 if the accuracy is less than or equal to 0,1 m-1
* - 6 if the accuracy is out of range, i.e. greater than 0,1 m-1
* - 7 if the information is not available
*
* @note: The fact that a curvature value is received with confidence set to `unavailable(7)` can be caused by
* several reasons, such as:
* - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
* - the sensor cannot calculate the accuracy due to lack of variables, or
* - there has been a vehicle bus (e.g. CAN bus) error.
* In all 3 cases above, the reported curvature value may be valid and used by the application.
* If a curvature value is received and its confidence is set to 'outOfRange(6)', it means that the reported curvature value is not valid and therefore cannot be trusted. Such value is not useful for the application.
*/
CurvatureConfidence ::= ENUMERATED {
onePerMeter-0-00002 (0),
onePerMeter-0-0001 (1),
onePerMeter-0-0005 (2),
onePerMeter-0-002 (3),
onePerMeter-0-01 (4),
onePerMeter-0-1 (5),
outOfRange (6),
unavailable (7)
}
/**
* This DE describes vehicle turning curve with the following information:
*
* Value = 1 / Radius * 10000
*
* wherein radius is the vehicle turning curve radius.
*
* Positive values indicate a turning curve to the left hand side of the driver.
* It corresponds to the vehicle coordinate system as defined in ISO 8855 [2].
*
* The following exemplary values are explicitly defined:
* - The value shall be set to `0` when the vehicle is moving straight.
* - The value shall be set to `1023`, if the information is not available.
* - For calculated values smaller than `-1023`, the DE shall be set to `-1023`.
* - For calculated values bigger than `1022`, the DE shall be set to `1022`.
*
*
* @note: The present DE is limited to vehicle types as defined in ISO 8855 [2].
*
* @unit 1 over 10 000 metres
* @category: Vehicle information
*/
CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023)
/**
* This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`.
*
* The following value are specified:
* - 0 `unavailable` : in case information on the type of dangerous queue is unavailable,
* - 1 `suddenEndOfQueue`: in case a sudden end of queue is detected, e.g. due to accident or obstacle,
* - 2 `queueOverHill` : in case the dangerous end of queue is detected on the road hill,
* - 3 `queueAroundBend` : in case the dangerous end of queue is detected around the road bend,
* - 4 `queueInTunnel` : in case queue is detected in tunnel,
* - 5-255 reserved for future usage.
*
* @category: Traffic information
*/
DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255)
/**
* This DE indicates the type of the dangerous goods being carried by a heavy vehicle.
* The value is assigned according to "_class_" and "_division_" definitions of dangerous goods as specified in part II,
* chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [i.4].
*
*
* @category Vehicle information
*/
DangerousGoodsBasic::= ENUMERATED {
explosives1(0),
explosives2(1),
explosives3(2),
explosives4(3),
explosives5(4),
explosives6(5),
flammableGases(6),
nonFlammableGases(7),
toxicGases(8),
flammableLiquids(9),
flammableSolids(10),
substancesLiableToSpontaneousCombustion(11),
substancesEmittingFlammableGasesUponContactWithWater(12),
oxidizingSubstances(13),
organicPeroxides(14),
toxicSubstances(15),
infectiousSubstances(16),
radioactiveMaterial(17),
corrosiveSubstances(18),
miscellaneousDangerousSubstances(19)
}
/**
* This DE represents the value of the sub cause codes of the @ ref CauseCode `dangerousSituation`
*
* The following values are specified:
* - 0 `unavailable`: in case information on the type of dangerous situation is unavailable,
* - 1 `emergencyElectronicBrakeEngaged`: in case emergency electronic brake is engaged,
* - 2 `preCrashSystemEngaged`: in case pre-crash system is engaged,
* - 3 `espEngaged`: in case Electronic Stability Program (ESP) system is engaged,
* - 4 `absEngaged`: in case Anti-lock braking system (ABS) is engaged,
* - 5 `aebEngaged`: in case Autonomous Emergency Braking (AEB) system is engaged,
* - 6 `brakeWarningEngaged`: in case brake warning is engaged,
* - 7 `collisionRiskWarningEngaged`: in case collision risk warning is engaged,
* - 8-255: reserved for future usage.
*
* @category: Traffic information
*/
DangerousSituationSubCauseCode ::= INTEGER {
unavailable(0),
emergencyElectronicBrakeEngaged(1),
preCrashSystemEngaged(2),
espEngaged(3),
absEngaged(4),
ebEngaged(5),
brakeWarningEngaged(6),
collisionRiskWarningEngaged(7)
} (0..255)
/**
* This DE represents an offset altitude with regards to a defined altitude value.
* It may be used to describe a geographical point with regards to a specific reference geographical position.
*
* The followig values are specified:
* - Positive values are used for providing altitude offset above the reference position.
* - For values equal or greater than _127,99 metres_, the value shall be _12 799_.
* - Negative values are used for providing altitude offset below the reference position.
* - When the information is unavailable, the value shall be set to _12 800_.
*
* @unit: 0.1 metre
* @category: GeoReference information
*/
DeltaAltitude ::= INTEGER {
oneCentimeterUp (1),
oneCentimeterDown (-1),
unavailable (12800)
} (-12700..12800)
/**
* This DE represents an offset latitude with regards to a defined latitude value.
* It may be used to describe a geographical point with regards to a specific reference geographical position.
*
* The followig values are specified:
* - Positive values are used for providing offset towards the north from the reference position.
* - Negative values are used for providing offset towards the south from the reference position.
* - When the information is unavailable, the value shall be set to _131072_.
*
* @unit: 0.1 microdegree
* @category: GeoReference information
*/
DeltaLatitude ::= INTEGER {
oneMicrodegreeNorth (10),
oneMicrodegreeSouth (-10) ,
unavailable (131072)
} (-131071..131072)
/**
* This DE represents an offset longitude with regards to a defined longitude value.
* It may be used to describe a geographical point with regards to a specific reference geographical position.
*
* The followig values are specified:
* - Positive values are used for providing offset towards the east from the reference position.
* - Negative values are used for providing offset towards the west from the reference position.
* - When the information is unavailable, the value shall be set to _131072_.
*
* @unit: 0.1 microdegree
* @category: GeoReference information
*/
DeltaLongitude ::= INTEGER {
oneMicrodegreeEast (10),
oneMicrodegreeWest (-10),
unavailable (131072)
} (-131071..131072)
/**
* This DE represents a difference in time with respect to a reference time.
*
* @unit 1 ms
*/
DeltaTimeMilliSecond ::= INTEGER {
oneMilliSecond (1)
} (-1500..1500)
/**
* This DE represents a difference in time with respect to a reference time.
*
* @unit 0,01 s
*/
DeltaTimeHundredthOfSecond::= INTEGER {tenMilliSeconds(1)} (1..65535, ...)
/**
* This DE represents a difference in time with respect to a reference time.
*
* @unit 0,1 s
*/
DeltaTimeTenthOfSecond::= INTEGER {zero(0), hundredMs(1), twoHundredMs(2), unavailable (127) } (0..127) -- tbd which range?
/**
* This DE represents a difference in time with respect to a reference time.
*
* @unit 1 s
*/
DeltaTimeSecond ::= INTEGER { -- tbd
timeOfDetection(0),
oneSecondAfterDetection(1)
} (0..86400)
/**
* This DE indicates in which direction something is moving.
*
* The following values are specified:
* - forward: it is moving forward
* - backwards: it is moving backwards
* - unavailable : the information is unavailable
*
* @category: Kinematics information
*/
DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}
/**
* This DE indicates whether a driving lane is open to traffic.
*
* A lane is counted from inside border of the road excluding the hardshoulder. The size of the bit string shall
* correspond to the total number of the driving lanes in the carriageway.
*
* The numbering is matched to @ref LanePosition.
* The bit 0 is used to indicate the innermostLane, bit 1 is used to indicate the second lane from inside border.
*
* If a lane is closed to traffic, the corresponding bit shall be set to 1. Otherwise, it shall be set to 0.
*
* @note: Hard shoulder status is not provided by this DE but in @ref HardShoulderStatus as defined in clause A.29.
*
* @category: Traffic information
*/
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
/**
* This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process.
* If it is the case, the value shall be set to TRUE, otherwise to FALSE
*
* @category: Vehicle information
*/
EmbarkationStatus ::= BOOLEAN
/**
* This DE indicates the right of priority requested by an operating emergency vehicle.
* The right-of-priority bit shall be set to 1 if the corresponding right is requested.
*
* @category: Traffic information
*/
EmergencyPriority ::= BIT STRING {
requestForRightOfWay(0),
requestForFreeCrossingAtATrafficLight(1)
} (SIZE(2))
/**
* This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching".
*
* The sub causes are described as following:
* - 0 `unavailable` : in case further detailed information on the emergency vehicle approaching event
* is unavailable,
* - 1 `emergencyVehicleApproaching` : in case an operating emergency vehicle is approaching,
* - 2 `prioritizedVehicleApproaching`: in case a prioritized vehicle (e.g. bus) is approaching,
* - value 3-255 reserved for future usage.
*
* @category: Traffic information
*/
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {
unavailable(0),
emergencyVehicleApproaching(1),
prioritizedVehicleApproaching(2)
} (0..255)
/**
* This DE indicated the type of energy being used and stored in vehicle.
* - If a storage type is used by the vehicle, the corresponding bit shall be set to `1`.
* - Otherwise, the corresponding bit shall be set to `0`.
*
* @category: Vehicle information
*/
EnergyStorageType ::= BIT STRING {
hydrogenStorage(0),
electricEnergyStorage(1),
liquidPropaneGas(2),
compressedNaturalGas(3),
diesel(4),
gasoline(5),
ammonia(6)}
(SIZE(7))
/**
* This DE describes the status of the exterior light switches of a vehicle.
*
* The value of each bit indicates the state of the switch, which commands the corresponding light.
* The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on,
* either manually by the driver or automatically by a vehicle system. The bit value does not indicate
* if the corresponding lamps are alight or not.
*
* If a vehicle is not equipped with a certain light or if the light switch status information is not available,
* the corresponding bit shall be set to `0`.
*
* The `fogLightOn` only indicates the status of the tail fog lamp switch.
*
* As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not
* alternate with the blinking interval.
*
* For hazard indicator, the `leftTurnSignalOn` (2) and `rightTurnSignalOn` (3) shall be both set to 1.
*