ITS-Container.asn 237 KB
Newer Older
tijinkj's avatar
tijinkj committed
} (1..10000)

tijinkj's avatar
tijinkj committed
/** 
tijinkj's avatar
tijinkj committed
 * This DE represents a difference in time with respect to a reference time.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: 1 ms
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
DeltaTimeMilliSecondPosNeg ::= INTEGER {
tijinkj's avatar
tijinkj committed
    oneMilliSecond  (1)
} (-1500..1500)

/** 
tijinkj's avatar
tijinkj committed
 * This DE represents a difference in time with respect to a reference time.
tijinkj's avatar
tijinkj committed
 * It can be interpreted as the first 8 bytes of a GenerationDeltaTime. To convert it to a @ref GenerationDeltaTime, 
tijinkj's avatar
tijinkj committed
 * multiply by 256 (i.e. append a `00` byte)
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: 256 milliseconds 
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
DeltaTimeQuarterSecond::= INTEGER (1..255) 
tijinkj's avatar
tijinkj committed

/** 
 * This DE represents a  difference in time with respect to a reference time.
 *
tijinkj's avatar
tijinkj committed
 * @unit: 0,1 s
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
DeltaTimeTenthOfSecond::= INTEGER {
    zero(0), 
    hundredMs(1), 
    twoHundredMs(2), 
    unavailable (127)  
} (0..127) -- tbd which range?
tijinkj's avatar
tijinkj committed

/** 
 * This DE represents a  difference in time with respect to a reference time.
 *
tijinkj's avatar
tijinkj committed
 * @unit: 1 s
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
DeltaTimeSecond ::= INTEGER { -- tbd
    timeOfDetection(0), 
    oneSecondAfterDetection(1)
} (0..86400)

tijinkj's avatar
tijinkj committed
/**
 * This DE indicates a direction with respect to a defined reference direction.
 * Example: a reference direction may be implicitly defined by the definition of a geographical zone.
 *
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `sameDirection`     - to indicate the same direction as the reference direction.
 * - 1 - `oppositeDirection` - to indicateopposite direction as the reference direction.
 * - 2 - `bothDirections`    - to indicate both directions, i.e. the same and the opposite direction.
 * - 3 - `unavailable`       - to indicate that the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
Direction::= INTEGER{
    sameDirection(0),
    oppositeDirection(1),
    bothDirections(2),
    unavailable(3)
 } (0..3)

tijinkj's avatar
tijinkj committed
/**
 * This DE indicates in which direction something is moving.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `forward`     - to indicate it is moving forward.
 * - 1 - `backwards`   - to indicate it is moving backwards.
 * - 2 - `unavailable` - to indicate that the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * @revision: editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
DriveDirection ::= ENUMERATED {
    forward (0), 
    backward (1), 
    unavailable (2)}
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates whether a driving lane is open to traffic.
 * 
 * A lane is counted from inside border of the road excluding the hardshoulder. The size of the bit string shall
 * correspond to the total number of the driving lanes in the carriageway.
 * 
 * The numbering is matched to @ref LanePosition.
tijinkj's avatar
tijinkj committed
 * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @note:Hard shoulder status is not provided by this DE but in @ref HardShoulderStatus.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))

/**
 * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process.
tijinkj's avatar
tijinkj committed
 * If that is the case, the value is *TRUE*, otherwise *FALSE*.
tijinkj's avatar
tijinkj committed
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
EmbarkationStatus ::= BOOLEAN

/**
 * This DE indicates the right of priority requested by an operating emergency vehicle.
tijinkj's avatar
tijinkj committed
 * The right-of-priority bit shall be set to `1` if the corresponding right is requested.
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
EmergencyPriority ::= BIT STRING {--tbd values
tijinkj's avatar
tijinkj committed
    requestForRightOfWay(0), 
    requestForFreeCrossingAtATrafficLight(1)
} (SIZE(2))

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". 
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`                  - in case further detailed information on the emergency vehicle approaching event 
 *                                        is unavailable,
 * - 1 - `emergencyVehicleApproaching`  - in case an operating emergency vehicle is approaching,
 * - 2 -`prioritizedVehicleApproaching` - in case a prioritized vehicle (e.g. bus) is approaching,
 * - 3-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
 */
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {
    unavailable(0), 
    emergencyVehicleApproaching(1), 
    prioritizedVehicleApproaching(2)
} (0..255)

/**
 * This DE indicated the type of energy being used and stored in vehicle.
 * - If a storage type is used by the vehicle, the corresponding bit shall be set to `1`.
 * - Otherwise, the corresponding bit shall be set to `0`.
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
EnergyStorageType ::= BIT STRING {-- tbd values
tijinkj's avatar
tijinkj committed
    hydrogenStorage(0), 
    electricEnergyStorage(1), 
    liquidPropaneGas(2), 
    compressedNaturalGas(3), 
    diesel(4), 
    gasoline(5), 
    ammonia(6)} 
(SIZE(7))

tijinkj's avatar
tijinkj committed
/**
 * This DE represents one of the specific categories in the L category: L1, L2, L3, L4, L5, L6, or L7 according to UNECE/TRANS/WP.29/78/Rev.4 [i.18].
 *
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V2.1.1
tijinkj's avatar
tijinkj committed
 */
EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 }

/**
 * This DE represents one of the specific categories in the M category: M1, M2, or M3 according to UNECE/TRANS/WP.29/78/Rev.4 [i.18].
 *
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V2.1.1
tijinkj's avatar
tijinkj committed
 */
EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3}

/**
 * This DE represents one of the specific categories in the N category: N1, N2, or N3 according to UNECE/TRANS/WP.29/78/Rev.4 [i.18].
 *
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V2.1.1
tijinkj's avatar
tijinkj committed
 */
EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3}

/**
 * This DE represents one of the specific categories in the O category: O1, O2, O3 or O4 according to UNECE/TRANS/WP.29/78/Rev.4 [i.18].
 *
 *
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V2.1.1
tijinkj's avatar
tijinkj committed
 */
EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4}

tijinkj's avatar
tijinkj committed
/**
 * This DE describes the status of the exterior light switches of a vehicle.
 * 
 * The value of each bit indicates the state of the switch, which commands the corresponding light.
 * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on,
 * either manually by the driver or automatically by a vehicle system. The bit value does not indicate
 * if the corresponding lamps are alight or not.
 * 
 * If a vehicle is not equipped with a certain light or if the light switch status information is not available,
 * the corresponding bit shall be set to `0`.
 * 
 * The `fogLightOn` only indicates the status of the tail fog lamp switch.
 * 
 * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not
 * alternate with the blinking interval.
 * 
 * For hazard indicator, the `leftTurnSignalOn` (2) and `rightTurnSignalOn` (3) shall be both set to 1.
 * 
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
ExteriorLights ::= BIT STRING { -- tbd values
tijinkj's avatar
tijinkj committed
    lowBeamHeadlightsOn      (0),
    highBeamHeadlightsOn     (1),
    leftTurnSignalOn         (2),
    rightTurnSignalOn        (3),
    daytimeRunningLightsOn   (4),
    reverseLightOn           (5),
    fogLightOn               (6),
    parkingLightsOn          (7)
} (SIZE(8))

/**
 * This DE represents the confidence of the information indicating that an area is not occupied by a traffic participant or obstacle.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `0` if the free space confidence is unknown for the described area.
tijinkj's avatar
tijinkj committed
 * - `n` (`n > 1` and `n < 100`) for confidence values of n%. 
tijinkj's avatar
tijinkj committed
 * - `100` to indicate a 100% certainty.  
tijinkj's avatar
tijinkj committed
 * - `101` if the confidence could not be computed and does not apply.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category Sensing Information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
FreeSpaceConfidence ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unknown             (0),   
tijinkj's avatar
tijinkj committed
    oneHundredPercent   (100),
tijinkj's avatar
tijinkj committed
    unavailable         (101)  
tijinkj's avatar
tijinkj committed
} (0..101)

/**
 * This DE represents a timestamp based on TimestampIts modulo 65 536.
 * This means that generationDeltaTime = TimestampIts mod 65 536.
 *
 * @category Time information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 based on EN 302 637-2
tijinkj's avatar
tijinkj committed
*/
GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)

/**
 * This DE indicates the current status of a hard shoulder: whether it is available for special usage
 * (e.g. for stopping or for driving) or closed for all vehicles.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `availableForStopping` - if the hard shoulder is available for stopping in e.g. emergency situations. 
 * - 1 - `closed`               - if the hard shoulder is closed and cannot be occupied in any case.
 * - 2 - `availableForDriving`  - if the hard shoulder is available for regular driving.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
HardShoulderStatus ::= ENUMERATED {
    availableForStopping(0), 
    closed(1), 
    availableForDriving(2)}

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`  - in case further detailed information on the animal on the road event is unavailable,
 * - 1 - `wildAnimals`  - in case wild animals are detected on the road,
 * - 2 - `herdOfAnimals`- in case herd of animals are detected on the road,
 * - 3 - `smallAnimals` - in case small size animal is detected on the road,
 * - 4 - `largeAnimals` - in case large size animal is detected on the road,
 * - 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
 */
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {
    unavailable(0), 
    wildAnimals(1), 
    herdOfAnimals(2), 
    smallAnimals(3), 
tijinkj's avatar
tijinkj committed
    largeAnimals(4)
} (0..255)
tijinkj's avatar
tijinkj committed
 * This DE represents the sub cause code of the @ref CauseCode  `hazardousLocation-DangerousCurve`.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`                                        - in case further detailed information on the dangerous curve is unavailable,
 * - 1 - `dangerousLeftTurnCurve`                             - in case the dangerous curve is a left turn curve,
 * - 2 - `dangerousRightTurnCurve`                            - in case the dangerous curve is a right turn curve,
 * - 3 - `multipleCurvesStartingWithUnknownTurningDirection`  - in case of multiple curves for which the starting curve turning direction is not known,
 * - 4 - `multipleCurvesStartingWithLeftTurn`                 - in case of multiple curves starting with a left turn curve,
 * - 5 - `multipleCurvesStartingWithRightTurn`                - in case of multiple curves stating with a right turn curve,
 * - 6-255                                                    - are reserved for future usage.
tijinkj's avatar
tijinkj committed
 * 
 * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass
 * and vehicle speed driving on the curve. This definition is out of scope of the present document.
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {
    unavailable(0), 
    dangerousLeftTurnCurve(1), 
    dangerousRightTurnCurve(2), 
    multipleCurvesStartingWithUnknownTurningDirection(3), 
    multipleCurvesStartingWithLeftTurn(4), 
    multipleCurvesStartingWithRightTurn(5)
} (0..255)

/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. 
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`    - in case further detailed information on the detected obstacle is unavailable,
 * - 1 - `shedLoad`       - in case detected obstacle is large amount of obstacles (shedload),
 * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles,
 * - 3 - `partsOfTyres`   - in case the detected obstacles are parts of tyres,
 * - 4 - `bigObjects`     - in case the detected obstacles are big objects,
 * - 5 - `fallenTrees`    - in case the detected obstacles are fallen trees,
 * - 6 - `hubCaps`        - in case the detected obstacles are hub caps,
 * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles,
 * - 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
 */
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {
    unavailable(0), 
    shedLoad(1), 
    partsOfVehicles(2), 
    partsOfTyres(3), 
    bigObjects(4), 
    fallenTrees(5), 
    hubCaps(6), 
    waitingVehicles(7)
} (0..255)

/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. 
 * 
tijinkj's avatar
tijinkj committed
The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0  - `unavailable`     - in case further detailed information on the road surface condition is unavailable,
 * - 1  - `rockfalls`       - in case rock falls are detected on the road surface,
 * - 2  - `earthquakeDamage`- in case the road surface is damaged by earthquake,
 * - 3  - `sewerCollapse`   - in case of sewer collapse on the road surface,
 * - 4  - `subsidence`      - in case road surface is damaged by subsidence,
 * - 5  - `snowDrifts`      - in case road surface is damaged due to snow drift,
 * - 6  - `stormDamage`     - in case road surface is damaged by strong storm,
 * - 7  - `burstPipe`       - in case road surface is damaged due to pipe burst,
 * - 8  - `volcanoEruption` - in case road surface is damaged due to volcano eruption,
 * - 9  - `fallingIce`      - in case road surface damage is due to falling ice,
 * - 10 - `fire`            - in case there is fire on or near to the road surface,
 * - 11-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
 */
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {
    unavailable(0), 
    rockfalls(1), 
    earthquakeDamage(2), 
    sewerCollapse(3), 
    subsidence(4), 
    snowDrifts(5), 
    stormDamage(6), 
    burstPipe(7), 
    volcanoEruption(8), 
    fallingIce(9), 
    fire(10)
} (0..255)

tijinkj's avatar
tijinkj committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the absolute accuracy of a reported heading 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
 * - `1` if the heading accuracy is equal to or less than 0,1 degree,
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 125)` if the heading accuracy is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree,
tijinkj's avatar
tijinkj committed
 * - `125` if the heading accuracy is equal to or less than 12,5 degrees,
 * - `126` if the heading accuracy is out of range, i.e. greater than 12,5 degrees,
 * - `127` if the heading accuracy information is not available.
 * 
 * @note:	The fact that a value is received with confidence set to `unavailable(127)` 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 heading value may be valid and used by the application.
 *
 * @note: If a heading value is received and its confidence is set to `outOfRange(126)`, it means that the reported
 * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application.
tijinkj's avatar
tijinkj committed
 * @note: this DE is kept for backwards compatibility reasons only. It is reccomended to use the @ref Wgs84AngleConfidence instead. 
tijinkj's avatar
tijinkj committed
 * 
 * @unit: 0,1 degree
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
HeadingConfidence ::= INTEGER {
tijinkj's avatar
tijinkj committed
    equalOrWithinZeroPointOneDegree (1), 
    equalOrWithinOneDegree (10), 
    outOfRange(126), 
    unavailable(127)
} (1..127)
tijinkj's avatar
tijinkj committed

/**
HeadingValue
 * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north.
 * When the information is not available, the DE shall be set to 3 601.
 *
tijinkj's avatar
tijinkj committed
 * @note: this DE is kept for backwards compatibility reasons only. It is reccomended to use the @ref Wgs84AngleValue instead. 
tijinkj's avatar
tijinkj committed
 *
 * Unit: 0,1 degree
 * Categories: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
HeadingValue ::= INTEGER { --tbd define the use of value 360. 
tijinkj's avatar
tijinkj committed
    wgs84North(0), 
    wgs84East(900), 
    wgs84South(1800), 
    wgs84West(2700), 
    unavailable(3601)
} (0..3601)


tijinkj's avatar
tijinkj committed
/**
 * This DE represents the height of the left or right longitude carrier of vehicle from base to top (left or right carrier seen from vehicle
tijinkj's avatar
tijinkj committed
 * rear to front). 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `n (n >= 1 and n < 99)` if the height information is equal to or less than n x 0,01 meter and more than (n-1) x 0,01 meter.
 * - `99` if the height is out of range, i.e. equal to or greater than 98 cm.
tijinkj's avatar
tijinkj committed
 * - `100` if the height information is not available.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 meter
tijinkj's avatar
tijinkj committed
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1 (the definition of 99 has changed slightly) 
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
HeightLonCarr ::= INTEGER {
tijinkj's avatar
tijinkj committed
    oneCentimeter(1), 
    unavailable(100)
} (1..100)

/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`          - in case further detailed information on human presence on the road is unavailable,
 * - 1 - `childrenOnRoadway`    - in case children are detected on the road event,
 * - 2 - `cyclistOnRoadway`     - in case cyclist presence is detected on the road,
 * - 3 - `motorcyclistOnRoadway`- in case motorcyclist presence is detected on the road,
 * - 4-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
 */
tijinkj's avatar
tijinkj committed
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {
    unavailable(0), 
    childrenOnRoadway(1), 
    cyclistOnRoadway(2), 
    motorcyclistOnRoadway(3)
} (0..255)
tijinkj's avatar
tijinkj committed

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem".
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `unavailable`    - in case further detailed information on human health problem is unavailable,
 * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem,
 * - 2 - `heartProblem`   - in case human problem is due to heart problem,
 * - 3-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
 */
HumanProblemSubCauseCode ::= INTEGER {
    unavailable(0), 
    glycemiaProblem(1), 
    heartProblem(2)
} (0..255)

/** 
 * This DE is a general identifier.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
Identifier ::= INTEGER (0..255)

/**
 * This DE represents the quality level of provided information.
 * 
tijinkj's avatar
tijinkj committed
 * @note: Definition of quality level is out of scope of the present document.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
InformationQuality ::= INTEGER {
    unavailable(0), 
    lowest(1), 
    highest(7)
} (0..7)

/** 
 * This DE defines the type of an interference management zone, so that an ITS-S can 
 * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0 - `permanentCenDsrcTolling` - as specified in ETSI TS 102 792 [i.23]
 * - 1 - `temporaryCenDsrcTolling` - as specified in ETSI TS 102 792 [i.23]
 * - 2 - `unavailable`             - default value. Set to 2 for backwards compatibility with DSRC tolling
 * - 3 - `urbanRail(3)`            - as specified in ETSI TS 103 724 [i.24], clause 7
 * - 4 - `satelliteStation`        - as specified in ETSI TS 103 724 [i.24], clause 7
 * - 5 - `fixedLinks(5)`           - as specified in ETSI TS 103 724 [i.24], clause 7
tijinkj's avatar
tijinkj committed
 *
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
InterferenceManagementZoneType ::= ENUMERATED {
tijinkj's avatar
tijinkj committed
    permanentCenDsrcTolling(0),
    temporaryCenDsrcTolling(1),
    unavailable(2), 
    urbanRail(3),      
    satelliteStation(4),
    fixedLinks(5), 
tijinkj's avatar
tijinkj committed
    ...
}

/**
 * This DE represents the identifier of an intersection
 * 
tijinkj's avatar
tijinkj committed
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
IntersectionID ::= INTEGER (0..65535)

tijinkj's avatar
tijinkj committed
/**
 * This DE represents the vehicle type according to ISO 3833 [4].
tijinkj's avatar
tijinkj committed
 * A "term No" refers to the number of the corresponding term and its definition in ISO 3833.
tijinkj's avatar
tijinkj committed
 *
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0	- `passengerCar`              - term No 3.1.1
 * - 1	- `saloon`                    - term No 3.1.1.1 (sedan)
 * - 2	- `convertibleSaloon`         - term No 3.1.1.2
 * - 3	- `pullmanSaloon`             - term No 3.1.1.3
 * - 4	- `stationWagon`              - term No 3.1.1.4
 * - 5	- `truckStationWagon`         - term No 3.1.1.4.1
 * - 6	- `coupe`                     - term No 3.1.1.5 (coupe)
 * - 7	- `convertible`               - term No 3.1.1.6 (open tourer, roadstar, spider)
 * - 8	- `multipurposePassengerCar`  - term No 3.1.1.7
 * - 9	- `forwardControlPassengerCar`- term No 3.1.1.8
 * - 10	- `specialPassengerCar`       - term No 3.1.1.9
 * - 11	- `bus	(11)`                 - term No 3.1.2
 * - 12	- `minibus`                   - term No 3.1.2.1
 * - 13	- `urbanBus`                  - term No 3.1.2.2
 * - 14	- `interurbanCoach`           - term No 3.1.2.3
 * - 15	- `longDistanceCoach`         - term No 3.1.2.4
 * - 16	- `articulatedBus`            - term No 3.1.2.5
 * - 17	- `trolleyBus	`             - term No 3.1.2.6
 * - 18	- `specialBus`                - term No 3.1.2.7
 * - 19	- `commercialVehicle	`     - term No 3.1.3
 * - 20	- `specialCommercialVehicle`  - term No 3.1.3.1
 * - 21	- `specialVehicle	`         - term No 3.1.4
 * - 22	- `trailingTowingVehicle	` - term No 3.1.5 (draw-bar tractor)
 * - 23	- `semiTrailerTowingVehicle`  - term No 3.1.6 (fifth wheel tractor)
 * - 24	- `trailer`                   - term No 3.2.1
 * - 25	- `busTrailer`                - term No 3.2.1.1
 * - 26	- `generalPurposeTrailer`     - term No 3.2.1.2
 * - 27	- `caravan`                   - term No 3.2.1.3
 * - 28	- `specialTrailer`            - term No 3.2.1.4
 * - 29	- `semiTrailer`               - term No 3.2.2
 * - 30	- `busSemiTrailer	`         - term No 3.2.2.1
 * - 31	- `generalPurposeSemiTrailer` - term No 3.2.2.2
 * - 32	- `specialSemiTrailer`        - term No 3.2.2.3
 * - 33	- `roadTrain`                 - term No 3.3.1
 * - 34	- `passengerRoadTrain	`     - term No 3.3.2
 * - 35	- `articulatedRoadTrain`      - term No 3.3.3
 * - 36	- `doubleRoadTrain`           - term No 3.3.4
 * - 37	- `compositeRoadTrain`        - term No 3.3.5
 * - 38	- `specialRoadTrain`          - term No 3.3.6
 * - 39	- `moped`                     - term No 3.4
 * - 40	- `motorCycle`                - term No 3.5
 * - 41-255                           - reserved for future use
tijinkj's avatar
tijinkj committed
 * 
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */

Iso3833VehicleType ::= INTEGER {
	passengerCar	             (0),
	saloon	                     (1),	
tijinkj's avatar
tijinkj committed
	convertibleSaloon            (2),	
tijinkj's avatar
tijinkj committed
	pullmanSaloon                (3),	
	stationWagon	             (4),	
tijinkj's avatar
tijinkj committed
	truckStationWagon            (5),	
tijinkj's avatar
tijinkj committed
	coupe	                     (6),
	convertible	                 (7),	
tijinkj's avatar
tijinkj committed
	multipurposePassengerCar     (8),	
	forwardControlPassengerCar   (9),	
tijinkj's avatar
tijinkj committed
	specialPassengerCar	         (10),
	bus	                         (11),
	minibus	                     (12),	
	urbanBus	                 (13),	
	interurbanCoach	             (14),	
	longDistanceCoach	         (15),	
	articulatedBus	             (16),	
	trolleyBus	                 (17),
	specialBus	                 (18),	
	commercialVehicle	         (19),	
	specialCommercialVehicle	 (20),
	specialVehicle	             (21),	
	trailingTowingVehicle	     (22),	
	semiTrailerTowingVehicle	 (23),	
	trailer	                     (24),	
	busTrailer	                 (25),
	generalPurposeTrailer	     (26),
	caravan	                     (27),	
	specialTrailer	             (28),	
	semiTrailer	                 (29),	
	busSemiTrailer	             (30),	
	generalPurposeSemiTrailer	 (31),
	specialSemiTrailer	         (32),	
	roadTrain	                 (33),	
	passengerRoadTrain	         (34),	
	articulatedRoadTrain	     (35),	
	doubleRoadTrain	             (36),
	compositeRoadTrain	         (37),	
	specialRoadTrain	         (38),	
	moped	                     (39),	
	motorCycle	                 (40)	
	} (0..255)

tijinkj's avatar
tijinkj committed
/**
 * This DE indicates the transversal position information on the road in resolution of lanes, counted from
 * the inside border of the road for a given traffic direction. For example, the innermostDrivingLane corresponds
 * to the left most lane of the carriageway in a country with right-land traffic, and to the right most lane of the
 * carriageway in a left-land traffic (e.g. in UK). The value -1 denotes that the referenced position is outside the road.
 * 
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: V1.3.1
tijinkj's avatar
tijinkj committed
*/
LanePosition ::= INTEGER {
    offTheRoad(-1), 
    innerHardShoulder(0), 
    innermostDrivingLane(1),  
    secondLaneFromInside(2), 
    outerHardShoulder(14) 
} (-1..14)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the identifier of a lane.
tijinkj's avatar
tijinkj committed
 *
 * @note: the context of the identification (e.g. the intersection geometry of a MAPEM) is defined outside the DE
 *  
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
LaneId ::= INTEGER (0..255)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the type of a lane. 
 * 
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 0	- `traffic`            - Lane dedicated to the movement of vehicles.
 * - 1	- `through`            - Lane dedicated to the movement of vehicles travelling ahead and not turning.
 * - 2	- `reversible`         - Lane where the direction of traffic can be changed to match the peak flow.
 * - 3	- `acceleration`	   - Lane that allows vehicles entering a road to accelerate to the speed of through traffic before merging with it.
 * - 4	- `deceleration`       - Lane that allows vehicles exiting a road to decelerate before leaving it.
 * - 5	- `leftHandTurning`    - Lane reserved for slowing down and making a left turn, so as not to disrupt traffic.
 * - 6	- `rightHandTurning`   - Lane reserved for slowing down and making a right turn so as not to disrupt traffic.
 * - 7	- `dedicatedVehicle`   - Lane dedicated to movement of motor vehicles with specific characteristics, such as heavy goods vehicles, etc. 
 * - 8	- `bus`                - Lane dedicated to movement of buses providing public transportation.
 * - 9	- `taxi`               - Lane dedicated to movement of taxis.
 * - 10	- `hov`                - Carpooling lane or high occupancy vehicle lane.
 * - 11	- `hot`                - High occupancy vehicle lanes that is allowed to be used without meeting the occupancy criteria by paying a toll.
 * - 12	- `pedestrian`         - Lanes dedicated to pedestrians such as pedestrian sidewalk paths.
 * - 13	- `bikeLane`	       - Lane dedicated to exclusive or preferred use by bicycles.
 * - 14	- `median`             - Lane not dedicated to movement of vehicles but representing medians and channelization such as the central median 
                                 separating the two directional carriageways of the highway.
 * - 15	- `striping`	       - Lane not dedicated to movement of vehicles but covered with roadway markings.
 * - 16	- `trackedVehicle`     - Lane dedicated to movement of trains and trolleys.
 * - 17	- `parking`            - Lanes dedicated to vehicles parking, stopping and loading lanes.
 * - 18	- `emergency`          - Lane dedicated to vehicles in breakdown or to emergency vehicles also called hard shoulder.
 * - 19	- `verge`              - Lane representing the verge, i.e. a narrow strip of grass or plants and sometimes also trees located between 
                                 the road surface edge and the boundary of a road.
 * - 20	`minimumRiskManoeuvre` - Lane dedicated to automated vehicles making a minimum risk manoeuvre.
 * - values 21 to 30             reserved for future use 
tijinkj's avatar
tijinkj committed
 *
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: V2.1.1
tijinkj's avatar
tijinkj committed
*/
LaneType::= INTEGER{
tijinkj's avatar
tijinkj committed
	traffic 			 (0),
	through				 (1),
	reversible			 (2),
	acceleration         (3),
	deceleration         (4),
	leftHandTurning      (5),
	rightHandTurning     (6),
	dedicatedVehicle     (7),
	bus                  (8),
	taxi                 (9),
	hov	                 (10),
	hot	                 (11),
	pedestrian           (12),
	bikeLane             (13),
	median               (14),   
	striping             (15),
	trackedVehicle       (16),
	parking	             (17),
	emergency            (18),
	verge                (19),
	minimumRiskManoeuvre (20),
	unknown              (31)
tijinkj's avatar
tijinkj committed
}(0..31)

/**
 * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or
 * in south hemisphere.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `n (n >= -900000000 and n < 0)`, i.e. negative values for latitude in south of the Equator.
 * - `0` is used for the latitude of the equator.
 * - `n (n > 0 and n < 900000001)`, i.e. positive values for latitude in north of the Equator.
tijinkj's avatar
tijinkj committed
 * - `900 000 001` 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
 */
Latitude ::= INTEGER {
    oneMicrodegreeNorth (10),
    oneMicrodegreeSouth (-10),
    unavailable(900000001)
} (-900000000..900000001)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle.
tijinkj's avatar
tijinkj committed
 * It corresponds to the vehicle coordinate system as specified in ISO 8855 [2].
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>.
tijinkj's avatar
tijinkj committed
 * - `n (n > -160 and n <= 0)` to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation 
tijinkj's avatar
tijinkj committed
 *                            with 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>.
tijinkj's avatar
tijinkj committed
 * - `n (n > 0 and n < 160)` to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation 
tijinkj's avatar
tijinkj committed
						     with 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>.
tijinkj's avatar
tijinkj committed
 * - `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
 *
 * @note: the empty load vehicle is defined in ISO 1176 [i.9], clause 4.6.
 * @note: this DF is kept forbackwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead
tijinkj's avatar
tijinkj committed
 *  
 * @unit: 0.1 m/s<sup>2</sup>
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). This type is now based on the more generic type AccelerationValue.
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
LateralAccelerationValue ::= AccelerationValue
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the status of light bar and any sort of audible alarm system besides the horn.
 * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts.
 *
tijinkj's avatar
tijinkj committed
 * The corresponding bit shall be set to 1 under the following conditions:
tijinkj's avatar
tijinkj committed
 * - 0 - `lightBarActivated`      - when the light bar is activated.
 * - 1 - `sirenActivated`         - when the siren is activated.
tijinkj's avatar
tijinkj committed
 *
 * Otherwise, it shall be set to 0.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
LightBarSirenInUse ::= BIT STRING {
    lightBarActivated (0),
    sirenActivated (1)
} (SIZE(2))

/**
 * This DE represents the absolute geographical longitude in a WGS84 co-ordinate system, providing a range of 180 degrees
 * to the east or to the west of the prime meridian.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `n (n > -1800000000 and n < 0)`, i.e. negative values for longitudes to the west.
 * - `0` to indicate the prime meridian. 
 * - `n (n > 0 and n < 1800000001)`, i.e. positive values for longitudes to the east.
tijinkj's avatar
tijinkj committed
 * - `1 800 000 001` when the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * The value -1800000000 shall not be used. 
 * 
tijinkj's avatar
tijinkj committed
 * @unit: 0.1 microdegree
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
 */
Longitude ::= INTEGER {
    oneMicrodegreeEast (10),
    oneMicrodegreeWest (-10),
    unavailable(1800000001)
} (-1800000000..1800000001)

 /**
 * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle.
 * It corresponds to the vehicle coordinate system as specified in ISO 8855 [2].
 *
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>.
tijinkj's avatar
tijinkj committed
 * - `n (n > -160 and n <= 0)` to indicate that the vehicle is braking with 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 that the vehicle is accelerating with 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>.
tijinkj's avatar
tijinkj committed
 * - `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
 * 
 * This acceleration is along the tangent plane of the road surface and does not include gravity components.
tijinkj's avatar
tijinkj committed
 * @note: this DF is kept forbackwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead
tijinkj's avatar
tijinkj committed
 * 
 * @note: The empty load vehicle is defined in ISO 1176 [i.9], clause 4.6.
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). This type is now based on  the generic type AccelerationValue.
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
LongitudinalAccelerationValue::= AccelerationValue
tijinkj's avatar
tijinkj committed

/** 
 * This DE represents the longitudinal offset of the map-matched position of a particular object along the
tijinkj's avatar
tijinkj committed
 * matched lane, beginning from the lane's starting point as defined in CEN ISO/TS 19091.
tijinkj's avatar
tijinkj committed
 * 
 * @unit 0,1 m
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
LongitudinalLanePositionValue ::= INTEGER {
    zeroPointOneMeter   (1)
} (0..32767)

/** 
 * This DE represents the absolute accuracy of longitudinal lane position measurement to a 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,01 m
 * - `n (n > 1 and n < 101)` if the  accuracy is equal to or less than n x 0,01 m, and more than (n-1) x 0,01 m.
 * - `101` if the acceleration accuracy is out of range i.e. greater than 1 m.
 * - `102` if the data is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 meter
tijinkj's avatar
tijinkj committed
 * @category: Road topology information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
LongitudinalLanePositionConfidence ::= INTEGER {
    zeroPointZeroOneMeter   (1),
    oneMeter                (100),
    outOfRange              (101),
    unavailable             (102)  
} (0..102)

/** 
 * This DE represents the type of facility layer message.
 *
tijinkj's avatar
tijinkj committed
 *  The value shall be set to:
tijinkj's avatar
tijinkj committed
 *	- 1  - `denm`              - for Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [i.3],
 *  - 2  - `cam`               - for Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [i.2],
 *  - 3  - `poi`               - for Point of Interest message as specified in ETSI TS 101 556-1 [i.11],
 *  - 4  - `spatem`            - for Signal Phase And Timing Extended Message (SPATEM) as specified in ETSI TS 103 301 [i.17],
 *  - 5  - `mapem`             - for MAP Extended Message (MAPEM) as specified in ETSI TS 103 301 [i.17],
 *  - 6  - `ivim`              - for in Vehicle Information Message (IVIM) as specified in ETSI TS 103 301 [i.17],
 *  - 7  - `ev-rsr`            - for Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [i.14],
 *  - 8  - `tistpgtransaction` - for messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 [i.15],
 *  - 9  - `srem`              - for Signal Request Extended Message as specified in ETSI TS 103 301 [i.17],
 *  - 10 - `ssem`              - for Signal request Status Extended Message as specified in ETSI TS 103 301 [i.17],
 *  - 11 - `evcsn`             - for Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [i.11],
 *  - 12 - `saem`              - for Services Announcement Extended Message as specified in ETSI EN 302 890-1 [i.19],
 *  - 13 - `rtcmem`            - for Radio Technical Commission for Maritime Services Extended Message (RTCMEM) as specified in ETSI TS 103 301 [i.17],
 *  - 14 - `cpm`               - for Collective Perception Message (CPM) as specified in ETSI TS 103 324 [i.20],
 *  - 15 - `imzm`              - for Interference Management Zone Message (IMZM) as specified in ETSI TS 103 724 [i.13],
 *  - 16 - `vam`               - for Vulnerable Road User Awareness Message as specified in ETSI TS 130 300-3 [i.12], 
 *  - 17 - `dsm`               - for Diagnosis, logging and Status Message (DSM) as specified in ETSI TS 103 693 [i.21].
 *  - 18-255                   - reserved for future usage,
tijinkj's avatar
tijinkj committed
 *
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 from @ref ItsPduHeader.
tijinkj's avatar
tijinkj committed
 */
MessageId::= INTEGER { 
    denm(1),  
    cam(2), 
    poi(3), 
    spatem(4), 
    mapem(5), 
    ivim(6), 
    ev-rsr(7), 
    tistpgtransaction(8), 
    srem(9), 
    ssem(10), 
    evcsn(11), 
    saem(12), 
    rtcmem(13), 
    vam(14) 
} (0..255)

/**
 * This DE represents the number of occupants in a vehicle.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 126)` for the number n of occupants.
 * - `126` for values equal to or higher than 126.
 * - `127` if information is not available.`.
tijinkj's avatar
tijinkj committed
 *
 * @unit: 1 person
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
NumberOfOccupants ::= INTEGER {
    oneOccupant (1), 
    unavailable(127)
} (0 .. 127)
tijinkj's avatar
tijinkj committed

/** 
 * This DE represents the confidence value for the type of a detected object.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * - `0`                     : in case the confidence value is unknown but the reported classification is still valid.
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 101)` : for the confidence value in %. 
tijinkj's avatar
tijinkj committed
 * - `101`                   : in case the confidence value computation is not available for the object. Indicates that the class assignment is invalid.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit Percent 
 * @category: Sensing information 
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 
tijinkj's avatar
tijinkj committed
*/
ObjectClassConfidence ::= INTEGER {
    unknown             (0),   
    onePercent          (1),
    oneHundredPercent   (100),
    unavailable         (101)  
} (0..101)

/** 
 * This DE represents a single-value indication about the overall information quality of a perceived object on the computation.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 *  
tijinkj's avatar
tijinkj committed
 * -`0`                     : if there is no confidence in detected object, e.g. for "ghost"-objects or if confidence could not be computed.
tijinkj's avatar
tijinkj committed
 * - `n (n > 0 and n < 15)` : for the applicable confidence value.
 * -`15`                    : if there is full confidence in the detected ObjectDescriptor.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @unit n/a
 * @category: Sensing information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 
tijinkj's avatar
tijinkj committed
*/
ObjectConfidence ::= INTEGER {
    noConfidence        (0), 
    fullConfidence      (15) 
} (0..15)

/** 
 * This DE represents a single dimension of an object.
 *
 * @unit 0,1 m
 * @category: Sensing information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 
tijinkj's avatar
tijinkj committed
*/
ObjectDimensionValue ::= INTEGER {
    zeroPointOneMeter   (1),
    oneMeter            (10)
} (0..1023)

/** 
tijinkj's avatar
tijinkj committed
 * This DE represents the accuracy of the provided object dimension value with 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
 * - `1` if the dimension accuracy is equal to or less than 0,01 m.
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 101)` if the dimension accuracy is equal to or less than n x 0,01 meter, and more than (n-1) x 0,01 meter .
tijinkj's avatar
tijinkj committed
 * - `101` if the dimension accuracy is out of range i.e. greater than 1 m.
 * - `102` if the data is unavailable.
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,01 m
 * @category: Sensing information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 
tijinkj's avatar
tijinkj committed
*/
ObjectDimensionConfidence ::= INTEGER {
    zeroPointZeroOneMeter   (1),
    oneMeter                (100),
    outOfRange              (101),
    unavailable             (102)
} (0..102)

/**
 * The DE indicates whether the detected object is classified as a dynamic (i.e. moving) object.
 * This value indicates whether an object has the general capability to move, i.e. change its
 * position.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * -  `0` - dynamic             - indicates that the object is moving.
 * -  `1` - hasBeenDynamic      - indicates whether an object has been dynamic before, e.g., a car stopping at a traffic light.
 * -  `2` - static              - indicates that an object has been detected to be not moving throughout any previous observation.