ITS-Container.asn 235 KB
Newer Older
tijinkj's avatar
tijinkj committed
-- 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
tijinkj's avatar
tijinkj committed
-- prepared by Jasja Tijink for ETSI TC ITS WG1 (date 04.03.2022)
tijinkj's avatar
tijinkj committed

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
 * - `accelerate` if the acceleration is positive.
 * - `decelerate` if the acceleration is negative.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
 * 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 reprents 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/s2.
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 101)` if the acceleration accuracy is equal to or less than n x 0,1 m/s2, and greater than (n-1) x 0,1 m/s2.
tijinkj's avatar
tijinkj committed
 * - `101` if the acceleration accuracy is out of range i.e. greater than 10 m/s2.
 * - `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/s2
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:
 * - 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:
 * - `-160` for values equal to or less than -16 m/s2.
tijinkj's avatar
tijinkj committed
 * - `n (n > -160 and n <= 0)` to indicate negative acceleration equal to or less than `n x 0,1 m/s2`, and greater than `(n-1) x 0,1 m/s2`.
tijinkj's avatar
tijinkj committed
 * - `n (n > 0 and n < 160)` to indicate positive acceleration is equal to or less than `n x 0,1 m/s2`, and greater than `(n-1) x 0,1 m/s2`.
 * - `160` for acceleration or greater than 15,9 m/s2.
tijinkj's avatar
tijinkj committed
 * - `161` when the data is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * * @unit 0,1 m/s2
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:
 * - 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:
 * - 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:
 * - 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:
 * - 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: 
 *   - 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       
 *
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: 
 * - `-100 000` if the altitude is equal to or less than "-1 000 m".
 * - `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` meters.
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^2
 * - 1 `degSecSquared-000-05` if the accuracy is equal to or less than 0,05 degrees/second^2
 * - 2 `degSecSquared-000-10` if the accuracy is equal to or less than 0,1 degree/second^2
 * - 3 `degSecSquared-001-00` if the accuracy is equal to or less than 1 degree/second^2
 * - 4 `degSecSquared-005-00` if the accuracy is equal to or less than 5 degrees/second^2
 * - 5 `degSecSquared-010-00` if the accuracy is equal to or less than 10 degrees/second^2
 * - 6 `degSecSquared-100-00` if the accuracy is equal to or less than 100 degrees/second^2
 * - 7 `outOfRange (7)` if the accuracy is out of range, i.e. greater than 100 degrees/second^2
 * - 8 unavailable (8)` 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
 * @unit 0,1 degrees
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CartesianAngleValue ::= INTEGER {
    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: 
 * - `-32766` if the speed is equal to or less than `327,66 degrees/s`
tijinkj's avatar
tijinkj committed
 * - `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`.
tijinkj's avatar
tijinkj committed
 * - 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: 
 * - `-32766` if the acceleration is equal to or less than `327,66 degrees/s^2`
tijinkj's avatar
tijinkj committed
 * - `n (n > -32766 and n < 32766)` if the acceleration is equal to or less than `n x 0,01 degrees/s^2`, and greater than `(n-1) x 0,01 degrees/s^2`.
tijinkj's avatar
tijinkj committed
 * - 32766` if the acceleration is greater than `327,65 degrees/s^2`
 * - 32767 if the information is unavailable
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 degrees/s^2 (degrees per second squared)
 * @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:
Denis Filatov's avatar
Denis Filatov committed
 * - 0  reserved for future use,
tijinkj's avatar
tijinkj committed
 * - 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,
Denis Filatov's avatar
Denis Filatov committed
 * - 4 reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 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,
Denis Filatov's avatar
Denis Filatov committed
 * - 8 reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 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,
Denis Filatov's avatar
Denis Filatov committed
 * - 13 reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 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,
Denis Filatov's avatar
Denis Filatov committed
 * - 16 reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 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,
Denis Filatov's avatar
Denis Filatov committed
 * - 28-90 are reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 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,
tijinkj's avatar
tijinkj committed
 * - 99 `dangerousSituation`                             : in case the type of event is dangerous situation in which autonomous safety system in vehicle 
                                                           is activated,
tijinkj's avatar
tijinkj committed
 * - 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.
 *
 * @unit 0,01 m
 * @category: Basic information
 * Revision: Created in V2.1.1
*/
CartesianCoordinateSmall::= INTEGER {
    negativeZeroPointZeroOneMeter   (-1),
    negativeOneMeter                (-100),
    negativeOutOfRange              (-3094),
    positiveOneMeter                (100),
    positiveOutOfRange              (1001)
} (-3094..1001)

/**
 * 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
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
CartesianCoordinate::= INTEGER (-32768..32767)

tijinkj's avatar
tijinkj committed
/**
 * This DF represents the value of a cartesian coordinate with a range of +- 1 327,68 meters.
 *
 * @unit 0,01 m
 * @category: Basic information
 * Revision: Created in V2.1.1
*/
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
 * 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
 * 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
 * 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:
 * - 0 `notProvided`                          : if the information is not provided.
 * - 1 `clusteringPurposeCompleted`           : if the cluster purposes has been completed.
 * - 2 `leaderMovedOutOfClusterBoundingBox`   : if the leader moved out o fthe cluster 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                                  : are reserved for future use                                    
tijinkj's avatar
tijinkj committed
 *
 * @category: Cluster information
 * Revision: Created in V2.1.1
*/
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:
 * - 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                          : are reserved for future use                             
tijinkj's avatar
tijinkj committed
 *
 * @category: Cluster information
 * 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,
tijinkj's avatar
tijinkj committed
 * - 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`.
 * - `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
 * 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
 * - `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
 * - `n (n > 0 and n < 100)` if the correlation is positive and equal to n*100.
 * - `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
 * 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:
 * - 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:
 * - 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:
 * 
 *     Value = 1 / Radius * 10000
 * 
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.
tijinkj's avatar
tijinkj committed
 * - `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)`.
tijinkj's avatar
tijinkj committed
 * - `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:
 * - 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
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.
 * 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
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:
 * - 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:                               : 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
 */
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:
 * - n (n >= -131071 and n < 0) for offset `n x 0,1 microdegrees` towards the south from the reference position.
 * - `0` for no latitudinal offset.
 * - 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:
 * - `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
 * Revision: Created in V2.1.1
*/
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
 * Revision: Created in V2.1.1 from the DE TransmissionInterval
 */
DeltaTimeMilliSecondPos ::= INTEGER {
    oneMilliSecond(1), 
    tenSeconds(10000)