ITS-Container.asn 238 KB
Newer Older
tijinkj's avatar
tijinkj committed
-- Draft CDD  ASN.1 module Release 2 (Version 3)

Denis Filatov's avatar
Denis Filatov committed
ITS-Container {
tijinkj's avatar
tijinkj committed
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version3 (3) -- Note: the final OID is still to be agreed.
Denis Filatov's avatar
Denis Filatov committed
}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN
tijinkj's avatar
tijinkj committed
------------------------------------------
-- Specification of CDD Data Elements: 
------------------------------------------
tijinkj's avatar
tijinkj committed
/** 
 * This DE indicates a change of acceleration.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `accelerate` - if the acceleration is positive.
 * - 1 - `decelerate` - if the acceleration is negative.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
AccelerationChange::= ENUMERATED { 
    accelerate (0), 
    decelerate (1) 
}
Denis Filatov's avatar
Denis Filatov committed

Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the absolute accuracy of a reported vehicle acceleration value with a  confidence level of 95%. 
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `1` if the acceleration accuracy is equal to or less than 0,1 m/s<sup>2</sup>.
 * - `n (n > 1 and n < 101)` if the acceleration accuracy is equal to or less than n x 0,1 m/s<sup>2</sup>, and greater than (n-1) x 0,1 m/s<sup>2</sup>.
 * - `101` if the acceleration accuracy is out of range i.e. greater than 10 m/s<sup>2</sup>.
tijinkj's avatar
tijinkj committed
 * - `102` if the data is unavailable.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @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.
 * 
tijinkj's avatar
tijinkj committed
 * @note: 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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,1 m/s<sup>2</sup>
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AccelerationConfidence ::= INTEGER {
    pointOneMeterPerSecSquared(1), 
    outOfRange(101), 
tijinkj's avatar
tijinkj committed
    unavailable(102)
} (0 .. 102)
Denis Filatov's avatar
Denis Filatov committed

Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The corresponding bit shall be set to 1 under the following conditions:
tijinkj's avatar
tijinkj committed
 * - 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
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * 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_.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @note: The system engagement condition is OEM specific and therefore out of scope of the present document.
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `-160` for values equal to or less than -16 m/s<sup>2</sup>.
 * - `n (n > -160 and n <= 0)` to indicate negative acceleration equal to or less than `n x 0,1 m/s<sup>2</sup>`, and greater than `(n-1) x 0,1 m/s<sup>2</sup>`.
 * - `n (n > 0 and n < 160)` to indicate positive acceleration is equal to or less than `n x 0,1 m/s<sup>2</sup>`, and greater than `(n-1) x 0,1 m/s<sup>2</sup>`.
 * - `160` for acceleration or greater than 15,9 m/s<sup>2</sup>.
tijinkj's avatar
tijinkj committed
 * - `161` when the data is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @note: zero acceleration is indicated using n=0.
 * @unit 0,1 m/s<sup>2</sup>
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
AccelerationValue ::= INTEGER {
    pointOneMeterPerSecSquared       (1),
    minusPointOneMeterPerSecSquared  (-1),
    unavailable                      (161)  
} (-160 .. 161)


/**
 * This DE indicates an access technology.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `0`: in case of any access technology class (see clause 7 of TS 103 724).
 * - `1`: in case of ITS-G5 access technology class.
 * - `2`: in case of LTE-V2X access technology class.
 * - `3`: in case of NR-V2X access technology class.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AccessTechnologyClass ::= ENUMERATED {
   any(0), 
   itsg5Class(1), 
   ltev2xClass(2), 
   nrv2xClass(3),
   ...
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause code of the @ref CauseCode `accident`.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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. 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
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`. 
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`     - in case information on the cause of the low road adhesion is unavailabl.
 * - 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                - are reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
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)
Denis Filatov's avatar
Denis Filatov committed

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-ExtremeWeatherCondition`.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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             - are reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
    unavailable(0),
    strongWinds(1),
    damagingHail(2),
    hurricane(3),
    thunderstorm(4),
    tornado(5),
    blizzard(6)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Precipitation`. 
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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               : are reserved for future usage
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
    unavailable(0),
    heavyRain(1),
    heavySnowfall(2),
    softHail(3)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause codes of the @ref CauseCode `adverseWeatherCondition-Visibility`.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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                - are reserved for future usage
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
    unavailable(0),
    fog(1),
    smoke(2),
    heavySnowfall(3),
    heavyRain(4),
    heavyHail(5),
    lowSunGlare(6),
    sandstorms(7),
    swarmsOfInsects(8)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the absolute accuracy of an altitude value of a geographical point for a confidence level of 95%.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 *   - 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       
tijinkj's avatar
tijinkj committed
 *
Denis Filatov's avatar
Denis Filatov committed
 * @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 
tijinkj's avatar
tijinkj committed
 * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application.             
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
Denis Filatov's avatar
Denis Filatov committed
AltitudeConfidence ::= ENUMERATED {
Denis Filatov's avatar
Denis Filatov committed
    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)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the altitude value in a WGS84 co-ordinate system.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 * - `-100 000` if the altitude is equal to or less than `-1 000 m`.
tijinkj's avatar
tijinkj committed
 * - `n (n > -100 000 and n < 800 000)` if the altitude is equal to or less than `n  x 0.01 meters` and greater than `(n-1) x 0,01` meters.
 * - `800 000` if the altitude  greater than `7 999 m`.
 * - `800 001` if the information is not available.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: 0.01 meter
Denis Filatov's avatar
Denis Filatov committed
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1 (definition of 800 000 has slightly changed) 
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
AltitudeValue ::= INTEGER {
    referenceEllipsoidSurface(0),
    oneCentimeter(1),
    unavailable(800001)
} (-100000..800001)
tijinkj's avatar
tijinkj committed
/** 
 * This DE represents the absolute accuracy of an angle value for a predefined confidence level of 95 %.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 * - `1` if the  accuracy is equal to or less than 0,1 degrees.
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 126)`  if the accuracy is equal to or less than `n * 0,1 degrees` and greater than `(n-1) x * 0,1 degrees`.
tijinkj's avatar
tijinkj committed
 * - `126` if the  accuracy is out of range, i.e. greater than 12,5 degrees. 
tijinkj's avatar
tijinkj committed
 * - `127` if the accuracy information is not available.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,1 degrees
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
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%.
tijinkj's avatar
tijinkj committed
 * For correlation computation, maximum interval levels can be assumed.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `degSec-000-01` if the accuracy is equal to or less than 0,01 degree/second
 * - 1 - `degSec-000-05` if the accuracy is equal to or less than 0,05 degrees/second
 * - 2 - `degSec-000-10` if the accuracy is equal to or less than 0,1 degree/second
 * - 3 - `degSec-001-00` if the accuracy is equal to or less than 1 degree/second
 * - 4 - `degSec-005-00` if the accuracy is equal to or less than 5 degrees/second
 * - 5 - `degSec-010-00` if the accuracy is equal to or less than 10 degrees/second
 * - 6 - `degSec-100-00` if the accuracy is equal to or less than 100 degrees/second
 * - 7 - `outOfRange`    if the accuracy is out of range, i.e. greater than 100 degrees/second
 * - 8 - `unavailable`   if the accuracy information is unavailable
tijinkj's avatar
tijinkj committed
 * 
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
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)   
tijinkj's avatar
tijinkj committed
/** 
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `degSecSquared-000-01` if the accuracy is equal to or less than 0,01 degree/second<sup>2</sup>
 * - 1 - `degSecSquared-000-05` if the accuracy is equal to or less than 0,05 degrees/second<sup>2</sup>
 * - 2 - `degSecSquared-000-10` if the accuracy is equal to or less than 0,1 degree/second<sup>2</sup>
 * - 3 - `degSecSquared-001-00` if the accuracy is equal to or less than 1 degree/second<sup>2</sup>
 * - 4 - `degSecSquared-005-00` if the accuracy is equal to or less than 5 degrees/second<sup>2</sup>
 * - 5 - `degSecSquared-010-00` if the accuracy is equal to or less than 10 degrees/second<sup>2</sup>
 * - 6 - `degSecSquared-100-00` if the accuracy is equal to or less than 100 degrees/second<sup>2</sup>
 * - 7 - `outOfRange`           if the accuracy is out of range, i.e. greater than 100 degrees/second<sup>2</sup>
 * - 8 - `unavailable`          if the accuracy information is unavailable
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
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)   
tijinkj's avatar
tijinkj committed
/** 
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 * - `1` if the  angle is equal to or less than 0,1 degrees.
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 3601)` if the angle is equal to or less than `n x 0,1 degrees`, and greater than `(n-1) x 0,1 degrees`.
tijinkj's avatar
tijinkj committed
 * - `36001` if the accuracy information is not available
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @unit 0,1 degrees
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
CartesianAngleValue ::= INTEGER { -- tbd define the value 0 vs 3600
tijinkj's avatar
tijinkj committed
    zeroPointOneDegree  (1),
    oneDegree           (10),
    unavailable         (3601)
} (0..3601)

tijinkj's avatar
tijinkj committed
/**
tijinkj's avatar
tijinkj committed
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 * - `-32766` if the speed is equal to or less than `327,66` degrees/s
 * - `n` (`n > -32766` and `n < 32766`) if the speed is equal to or less than `n` x 0,01 degrees/s, and greater than `(n-1)` x 0,01 degrees/s.
 * - `32766` if the speed is greater than `327,65 degrees/s`
 * - `32767` if the information is unavailable
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 degrees/s
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
CartesianAngularSpeedValue ::= INTEGER {
    negativeOutofRange                  (-32766),
    positiveOutOfRange					(32766),
	unavailable	                        (32767)
tijinkj's avatar
tijinkj committed
} (-32766..32767)

tijinkj's avatar
tijinkj committed
/**
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 *
  * The value shall be set to: 
tijinkj's avatar
tijinkj committed
 * - `-32766` if the acceleration is equal to or less than `327,66` degrees/s<sup>2</sup>
 * - `n` (`n > -32766` and `n < 32766`) if the acceleration is equal to or less than `n` x 0,01 degrees/s<sup>2</sup>,
      and greater than `(n-1)` x 0,01 degrees/s<sup>2</sup>.
 * - `32766` if the acceleration is greater than `327,65` degrees/s<sup>2</sup>
 * - `32767` if the information is unavailable
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 degrees/s<sup>2</sup> (degrees per second squared)
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
CartesianAngularAccelerationValue ::= INTEGER {
    negativeOutofRange                  (-32766),
    noSpeed                             (0),
    positiveOutOfRange					(32766),
	unavailable	                        (32767)
tijinkj's avatar
tijinkj committed
} (-32766..32767)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 *The DE represents the value of the cause code of an event. 
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0  -                                                  - reserved for future use,
 * - 1  - `trafficCondition`                               - in case the type of event is an abnormal traffic condition,
 * - 2  - `accident`                                       - in case the type of event is a road accident,
 * - 3  - `roadworks`                                      - in case the type of event is roadwork,
 * - 4                                                     - reserved for future usage,
 * - 5  - `impassability`                                  - in case 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`               - in case the  type of event is low adhesion,
 * - 7  - `aquaplaning`                                    - danger of aquaplaning on the road,
 * - 8                                                     - reserved for future usage,
 * - 9  - `hazardousLocation-SurfaceCondition`             - in case the type of event is abnormal road surface condition,
 * - 10 - `hazardousLocation-ObstacleOnTheRoad`            - in case the type of event is obstacle on the road,
 * - 11 - `hazardousLocation-AnimalOnTheRoad`              - in case the type of event is animal on the road,
 * - 12 - `humanPresenceOnTheRoad`                         - in case the type of event is human presence on the road,
 * - 13                                                    - reserved for future usage,
 * - 14 - `wrongWayDriving`                                - in case the type of the event is vehicle driving in wrong way,
 * - 15 - `rescueAndRecoveryWorkInProgress`                - in case 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`- in case the type of event is extreme weather condition,
 * - 18 - `adverseWeatherCondition-Visibility`             - in case the type of event is low visibility,
 * - 19 - `adverseWeatherCondition-Precipitation`          - in case the type of event is precipitation,
 * - 20 - `violence`                                       - in case the the type of event is human violence on or near the road,
 * - 21-25                                                 - reserved for future usage,
 * - 26 - `slowVehicle`                                    - in case the type of event is slow vehicle driving on the road,
 * - 27 - `dangerousEndOfQueue`                            - in case the type of event is dangerous end of vehicle queue,
 * - 28-90                                                 - are reserved for future usage,
 * - 91 - `vehicleBreakdown`                               - in case the type of event is break down vehicle on the road,
 * - 92 - `postCrash`                                      - in case the type of event is a detected crash,
 * - 93 - `humanProblem`                                   - in case the type of event is human health problem in vehicles involved in traffic,
 * - 94 - `stationaryVehicle`                              - in case the type of event is stationary vehicle,
 * - 95 - `emergencyVehicleApproaching`                    - in case the type of event is approaching vehicle operating emergency mission,
 * - 96 - `hazardousLocation-DangerousCurve`               - in case the type of event is dangerous curve,
 * - 97 - `collisionRisk`                                  - in case the type of event is a collision risk,
 * - 98 - `signalViolation`                                - in case the type of event is signal violation,
 * - 99 - `dangerousSituation`                             - in case the type of event is dangerous situation in which autonomous safety system in vehicle 
 *                                                             is activated,
 * - 100 - `railwayLevelCrossing`                          - in case the type of event is a railway level crossing. 
 * - 101-255                                               - are reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
Denis Filatov's avatar
Denis Filatov committed
CauseCodeType ::= INTEGER {
Denis Filatov's avatar
Denis Filatov committed
    reserved (0),
    trafficCondition (1),
    accident (2),
    roadworks (3),
Denis Filatov's avatar
Denis Filatov committed
    impassability (5),
Denis Filatov's avatar
Denis Filatov committed
    adverseWeatherCondition-Adhesion (6),
Denis Filatov's avatar
Denis Filatov committed
    aquaplannning (7),
Denis Filatov's avatar
Denis Filatov committed
    hazardousLocation-SurfaceCondition (9),
    hazardousLocation-ObstacleOnTheRoad (10),
    hazardousLocation-AnimalOnTheRoad (11),
    humanPresenceOnTheRoad (12),
    wrongWayDriving (14),
    rescueAndRecoveryWorkInProgress (15),
    adverseWeatherCondition-ExtremeWeatherCondition (17),
    adverseWeatherCondition-Visibility (18),
    adverseWeatherCondition-Precipitation (19),
tijinkj's avatar
tijinkj committed
    violence (20),
Denis Filatov's avatar
Denis Filatov committed
    slowVehicle (26),
    dangerousEndOfQueue (27),
    vehicleBreakdown (91),
    postCrash (92),
    humanProblem (93),
    stationaryVehicle (94),
    emergencyVehicleApproaching (95),
    hazardousLocation-DangerousCurve (96),
    collisionRisk (97),
    signalViolation (98),
tijinkj's avatar
tijinkj committed
    dangerousSituation (99),
    railwayLevelCrossing (100) 
Denis Filatov's avatar
Denis Filatov committed
} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DF represents the value of a cartesian coordinate with a range of `-30,94` meters to `+10` meters.
tijinkj's avatar
tijinkj committed
 *
 * @unit 0,01 m
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CartesianCoordinateSmall::= INTEGER {
    negativeZeroPointZeroOneMeter   (-1),
    negativeOneMeter                (-100),
    negativeOutOfRange              (-3094),
    positiveOneMeter                (100),
    positiveOutOfRange              (1001)
} (-3094..1001)

/**
tijinkj's avatar
tijinkj committed
 * This DF represents the value of a cartesian coordinate with a range of `+-327,68` meters.
tijinkj's avatar
tijinkj committed
 *
 * @unit 0,01 m
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CartesianCoordinate::= INTEGER (-32768..32767)

tijinkj's avatar
tijinkj committed
/**
tijinkj's avatar
tijinkj committed
 * This DF represents the value of a cartesian coordinate with a range of `+-1 327,68` meters.
tijinkj's avatar
tijinkj committed
 *
 * @unit 0,01 m
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CartesianCoordinateExtended::= INTEGER (-132768..132767)

tijinkj's avatar
tijinkj committed
/**
 * This DE represents the ID of a CEN DSRC tolling zone. 
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
CenDsrcTollingZoneID::= ProtectedZoneID
tijinkj's avatar
tijinkj committed
 * This DE represents the size of a cluster in terms of number of contained entities: known members in the cluster + 1 .
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to `0` if the information is unavailable 
 *
tijinkj's avatar
tijinkj committed
 * @category: Cluster information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
ClusterCardinalitySize::= INTEGER {
    unavailable(0), 
    onlyLeader(1)
} (0..255)
tijinkj's avatar
tijinkj committed
 * This DE represents the identifier of a  cluster.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Cluster information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
ClusterId ::= INTEGER(0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the reason why a cluster leader intends to break up the cluster.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `notProvided`                          - if the information is not provided.
 * - 1 - `clusteringPurposeCompleted`           - if the cluster purposes has been completed.
 * - 2 - `leaderMovedOutOfClusterBoundingBox`   - if the leader moved out of the cluster's bounding box. 
 * - 3 - `joiningAnotherCluster`                - if the cluster leader is about to join another cluster.
 * - 4 - `enteringLowRiskAreaBasedOnMaps`       - if the cluster is entering an area idenrified as low risk based on the use of maps. 
 * - 5 - `receptionOfCpmContainingCluster`      - if the leader received a Collective Perception Message containing information about the same cluster. 
 * - 6 to 15                                    - reserved for future use                                    
tijinkj's avatar
tijinkj committed
 *
 * @category: Cluster information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
ClusterBreakupReason ::= ENUMERATED {
    notProvided                        (0),
    clusteringPurposeCompleted         (1),
    leaderMovedOutOfClusterBoundingBox (2),    
    joiningAnotherCluster              (3),
    enteringLowRiskAreaBasedOnMaps     (4),
    receptionOfCpmContainingCluster    (5),
    max(15)                                                                 
}
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the reason why a cluster participant is leaving the cluster.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `notProvided `                 - if the information is not provided.
 * - 1 - `clusterLeaderLost`            - if the cluster leader cannot be found anymore.    
 * - 2 - `clusterDisbandedByLeader`     - if the cluster has been disbounded by the leader.
 * - 3 - `outOfClusterBoundingBox`      - if the participants moved out of the cluster's bounding box. 
 * - 4 - `outOfClusterSpeedRange`       - if the cluster speed moved out of adefined range.  
 * - 5 - `joiningAnotherCluster`        - if the participant is joining another cluster.
 * - 6 - `cancelledJoin`                - if the participant is cancelling a joining procedure.
 * - 7 - `failedJoin`                   - if the participant failed to join the cluster.
 * - 8 - `safetyCondition`              - if a safety condition applies.
 * - 9 to 15                            - reserved for future use                             
tijinkj's avatar
tijinkj committed
 *
 * @category: Cluster information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
ClusterLeaveReason ::= ENUMERATED {
tijinkj's avatar
tijinkj committed
    notProvided                   (0), 
tijinkj's avatar
tijinkj committed
    clusterLeaderLost             (1),    
    clusterDisbandedByLeader      (2),    
    outOfClusterBoundingBox       (3),    
    outOfClusterSpeedRange        (4),
    joiningAnotherCluster         (5),
    cancelledJoin                 (6),
    failedJoin                    (7),
    safetyCondition               (8),
    max(15)            
}

/**
 * This DE represents the sub cause codes of the @ref CauseCode `collisionRisk`.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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                          - are reserved for future usage.
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
CollisionRiskSubCauseCode ::= INTEGER {
    unavailable(0), 
    longitudinalCollisionRisk(1), 
    crossingCollisionRisk(2), 
    lateralCollisionRisk(3), 
    vulnerableRoadUser(4)
}(0..255)

/** 
tijinkj's avatar
tijinkj committed
 * This DE represents the absolute accuracy of measurement to a confidence level of 95%.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to: 
 * - `1` if the  accuracy is equal to or less than `0,01 meter`.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 1` and `n < 4094`) if the accuracy is is equal to or less than `n` x 0,01 meter, and greater than `(n-1)` x 0,1 meter.
 * - `4094` if the accuracy information is greater than `40,93` meter. 
tijinkj's avatar
tijinkj committed
 * - `4095` if the accuracy information is not available.
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 m
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CoordinateConfidence ::= INTEGER {
    zeroPointZeroOneMeter   (1),
tijinkj's avatar
tijinkj committed
    outOfRange              (4094),
    unavailable             (4095) 
tijinkj's avatar
tijinkj committed
} (0..4095)

/** 
 * This DE represents the Bravais-Pearson correlation value for each cell of a lower triangular correlation matrix.
 *
tijinkj's avatar
tijinkj committed
 * The following  values are specified. 
tijinkj's avatar
tijinkj committed
 * - `-100` indicates full negative correlation
tijinkj's avatar
tijinkj committed
 * - `n` (`n > -100` and `n < 0`) if the correlation is negative and equal to `n*100`.
tijinkj's avatar
tijinkj committed
 * - `0` indicates not correlated or unavailable
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 0` and `n < 100`) if the correlation is positive and equal to `n*100`.
tijinkj's avatar
tijinkj committed
 * - `100` indicates full positive correlation
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: the value is scaled by 100
 * @category: Sensing information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
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.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `yawRateUsed`    - if the yaw rate is used.
 * - 1 - `yawRateNotUsed` - if the yaw rate is not used.
 * - 2 - `unavailable`    - if the information of curvature calculation mode is unknown.
tijinkj's avatar
tijinkj committed
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
CurvatureCalculationMode ::= ENUMERATED {
    yawRateUsed(0), 
    yawRateNotUsed(1), 
    unavailable(2), 
    ...
}
tijinkj's avatar
tijinkj committed

/**
 * This DE describes the absolute accuracy range of a reported curvature value for a confidence level of 95%.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `onePerMeter-0-00002` if the accuracy is less than or equal to 0,00002 m-1.
 * - 1 - `onePerMeter-0-0001`  if the accuracy is less than or equal to 0,0001 m-1.
 * - 2 - `onePerMeter-0-0005`  if the accuracy is less than or equal to 0,0005 m-1.
 * - 3 - `onePerMeter-0-002`   if the accuracy is less than or equal to 0,002 m-1.
 * - 4 - `nePerMeter-0-01`     if the accuracy is less than or equal to 0,01 m-1.
 * - 5 - `nePerMeter-0-1`      if the accuracy is less than or equal to 0,1 m-1.
 * - 6 - `outOfRange`          if the accuracy is out of range, i.e. greater than 0,1 m-1.
 * - 7 - `unavailable`         if the information is not available.
tijinkj's avatar
tijinkj committed
 * 
 * @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.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @note: 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.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: description revised in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
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:
tijinkj's avatar
tijinkj committed
 * ```
tijinkj's avatar
tijinkj committed
 *     Value = 1 / Radius * 10000
tijinkj's avatar
tijinkj committed
 * ```
tijinkj's avatar
tijinkj committed
 * wherein radius is the vehicle turning curve radius in meters. 
tijinkj's avatar
tijinkj committed
 * 
 * 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].
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `-1023` for  values smaller than `-1023`.
 * - `n` (`n > -1023` and `n < 0) for negative values equal to or less than `n`, and greater than `(n-1)`.
tijinkj's avatar
tijinkj committed
 * - `0` when the vehicle is moving straight.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 0` and `n < 1022) for positive values equal to or less than `n`, and greater than `(n-1)`.
 * - `1022`, for values  greater than `1021`.
tijinkj's avatar
tijinkj committed
 * - `1023`, if the information is not available.
tijinkj's avatar
tijinkj committed
 * 
 * @note: The present DE is limited to vehicle types as defined in ISO 8855 [2].
 * 
tijinkj's avatar
tijinkj committed
 * @unit: 1 over 10 000 metres
tijinkj's avatar
tijinkj committed
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: description revised in V2.1.1 (the definition of value 1022 has changed slightly)
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
CurvatureValue ::= INTEGER {
    outOfRangeNegative (-1023),
    straight(0),
    outOfRangePositive (1022), 
    unavailable(1023)
} (-1023..1023)
tijinkj's avatar
tijinkj committed

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `dangerousEndOfQueue`. 
 * 
 * The following value are specified:
tijinkj's avatar
tijinkj committed
 * - 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.
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
DangerousEndOfQueueSubCauseCode ::= INTEGER {
    unavailable(0), 
    suddenEndOfQueue(1), 
    queueOverHill(2), 
    queueAroundBend(3), 
    queueInTunnel(4)
} (0..255)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the type of the dangerous goods being carried by a heavy vehicle.
tijinkj's avatar
tijinkj committed
 * The value is assigned according to `_class_` and `_division_` definitions of dangerous goods as specified in part II,
tijinkj's avatar
tijinkj committed
 * chapter 2.1.1.1 of European Agreement concerning the International Carriage of Dangerous Goods by Road [i.4].
 * 
 * 
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
DangerousGoodsBasic::= ENUMERATED {
tijinkj's avatar
tijinkj committed
    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` 
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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.
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `-12700` for values equal to or lower than `-127 metres`.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > -12700` and `n <= 0) for altitude offset `n x 0,01` meter below the reference position.
tijinkj's avatar
tijinkj committed
 * - `0` for no altitudinal offset.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 0` and `n < 12799`) for altitude offset `n x 0,01` meter above the reference position.
 * - `12799` for values equal to or greater than `127,99` metres.
tijinkj's avatar
tijinkj committed
 * - `12800` when the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: 0.01 metre
tijinkj's avatar
tijinkj committed
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
DeltaAltitude ::= INTEGER {
tijinkj's avatar
tijinkj committed
    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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `n` (`n >= -131071` and `n < 0`) for offset `n x 0,1` microdegrees towards the south from the reference position.
tijinkj's avatar
tijinkj committed
 * - `0` for no latitudinal offset.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 0` and `n < 131072`) for offset `n x 0,1` microdegrees towards the north from the reference position. 
tijinkj's avatar
tijinkj committed
 * - `131072` when the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @unit: 0.1 microdegree
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
  */
tijinkj's avatar
tijinkj committed
DeltaLatitude ::= INTEGER {
tijinkj's avatar
tijinkj committed
    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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `n` (`n >= -131071` and `n < 0`) for offset `n x 0,1` microdegrees towards the west from the reference position.
tijinkj's avatar
tijinkj committed
 * - `0` for no longitudinal offset.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 0` and `n < 131072`) for offset `n x 0,1` microdegrees towards the east from the reference position. 
tijinkj's avatar
tijinkj committed
 * - `131072` when the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @unit: 0.1 microdegree
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
DeltaLongitude ::= INTEGER {
    oneMicrodegreeEast (10),
    oneMicrodegreeWest (-10),
    unavailable (131072)
} (-131071..131072)

tijinkj's avatar
tijinkj committed
/** 
 * This DE represents a difference in time with respect to a reference time.
 *
 * @unit: 0,01 s
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
DeltaTimeHundredthOfSecond::= INTEGER {
     tenMilliSeconds(1)
} (1..65535, ...) 

tijinkj's avatar
tijinkj committed
/**
 * This DE represents a difference in time with respect to a reference time.

 * Example: a time interval between two consecutive message transmissions.
 * 
 * @unit: 1 ms
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 from the DE TransmissionInterval
tijinkj's avatar
tijinkj committed
 */
DeltaTimeMilliSecondPos ::= INTEGER {
    oneMilliSecond(1), 
    tenSeconds(10000)