ITS-Container.asn 252 KB
Newer Older
tijinkj's avatar
tijinkj committed
 * 
 * @unit n/a
 * @category: Sensing information
 * @revision: Created in V2.1.1 
*/
ObjectConfidence ::= INTEGER {
    noConfidence        (0), 
    fullConfidence      (15) 
} (0..15)

/** 
 * This DE represents a single dimension of an object.
 *
 * @unit 0,1 m
 * @category: Sensing information
 * @revision: Created in V2.1.1 
*/
ObjectDimensionValue ::= INTEGER (0..1023)

/** 
 * This DE represents the accuracy of the provided object dimension value with a confidence level of 95%.
 *
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `n (n > 0 and n < 14)` if the dimension accuracy is equal to or less than n x 0,1 meter, and more than (n-1) x 0,1 meter .
 * - `11` if the dimension accuracy is out of range i.e. greater than 1 m.
 * - `12` if the data is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,1 m
tijinkj's avatar
tijinkj committed
 * @category: Sensing information
 * @revision: Created in V2.1.1 
*/
ObjectDimensionConfidence ::= INTEGER { 
tijinkj's avatar
tijinkj committed
    outOfRange              (14),
    unavailable             (15)
} (0..15)
tijinkj's avatar
tijinkj committed

/**
 * 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.
 *
 * The value shall be set to:
 * -  `0` - dynamic             - if the object is moving.
 * -  `1` - hasBeenDynamic      - if the object has been dynamic before, e.g., a car stopping at a traffic light.
 * -  `2` - static              - if the object has been detected to be not moving throughout any previous observation.
 * -  `3` - unavailable         - if the information is unavailable. 
 *
 * @category: Sensing information
 * @revision: Created in V2.1.1 
*/
ObjectDynamicStatus ::= INTEGER {
    dynamic             (0),
    hasBeenDynamic      (1),
    static              (2),
    unavailable			(3)    
} (0..3)

/** 
 * This DE indicates the approximate position of the reference point of measurement for the object dimensions using a 9 cell grid. 
 *
 * @category: Basic information
 * @revision: Created in V2.1.1 
*/
ObjectRefPoint ::= INTEGER {
    bottomLeft      (0),
    midLeft         (1),
    topLeft         (2),
    bottomMid       (3),
    midMid          (4),
    topMid          (5),
    bottomRight     (6),
    midRight        (7),
    topRight        (8)
} (0..8)

/**
 * This DE indicates the face or part of a face of a solid object.
 *
 * The object is modelled  as a rectangular prism that has a length that is greater than its width, with the faces of the object being defined as:
 * - front: the face defined by the prism´s width and height, and which is the first face in direction of longitudinal movement of the object. 
 * - back: the face defined by the prism´s width and height, and which is the last face in direction of longitudinal movement of the object. 
 * - side: the faces defined by the prism´s length and height with "left" and "right" defined by looking at the front face and "front" and "back" defined w.r.t to the front and back faces. 
 *
 * Note: It is permissible to derive the required object dimensions and orientation from models to provide a best guess.
 * 
 * @category: Basic information
 * @revision: V2.1.1
*/
ObjectFace ::= ENUMERATED {
    front          (0), 
    sideLeftFront  (1), 
    sideLeftBack   (2), 
    sideRightFront (3), 
    sideRightBack  (4),
    back           (5)   
}
tijinkj's avatar
tijinkj committed
/** 
 * This DE represent a lateral position with lane-level resolution on the road reservation, which is not on regular traffic lanes. 
 * 
 * The value shall be set to:
 * - 0 - `unavailable` - if information on the lane position is unavailable.
 * - 1 - `sidewalk`    - if the position is on the side-walk.
 * - 2 - `parkingLane` - if the position is on an area at the side of the road not intended for travel but for vehicular parking.
 * - 3 - `bikeLane`    - if the position is on an area reserved for bicycles.
 * - 4-15              - reserved for future usage. Value 15 set to "max" in order to bound the size of the encoded field.
 *
 * @category: Road topology information
 * @revision: Created in V2.1.1 
*/
OffRoadLanePosition ::= ENUMERATED {
   unavailable (0), 
   sidewalk    (1), 
   parkingLane (2), 
   bikeLane    (3), 
   max         (15)
}
tijinkj's avatar
tijinkj committed
/**
 * This DE represents a time period to describe the opening days and hours of a Point of Interest.
 * (for example local commerce).
 *
 * @category: Time information
 * @revision: V1.3.1
 */
OpeningDaysHours ::= UTF8String 
tijinkj's avatar
tijinkj committed
/**
 * The DE represents an ordinal number that indicates the position of an element in a set. 
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
tijinkj's avatar
tijinkj committed
OrdinalNumber1B ::= INTEGER(0..255) 


/**
 * The DE represents an ordinal number that indicates the position of an element in a set. 
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
OrdinalNumber4b ::= INTEGER(0..15) 
tijinkj's avatar
tijinkj committed

/** 
 * This DE indicates the subclass of a detected object for object class "otherSubclass".
 *
 * The value shall be set to:
 * - `0` - unknown       - if the subclass is unknown.
 * - `1` - roadSideUnit  - if the object is a roadside unit.
 *
 * @category: Sensing information
 * @revision: Created in V2.1.1
 */
OtherSubClass ::= INTEGER {
    unknown      (0),
    roadSideUnit (1)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the recorded or estimated travel time between a position and a predefined reference position. 
 *
 * @unit 0.01 second
 * @category GeoReference information
 * @revision: same type as in V1.3.1 but now based on a basic type
 */
PathDeltaTime ::= DeltaTimeHundredthOfSecond

/**
 * This DE denotes the ability of an ITS-S to provide up-to-date information.
 * A performance class value is used to describe age of data. The exact values are out of scope of the present document.
 * 
 *  The value shall be set to:
 * - `0` if  the performance class is unknown.
tijinkj's avatar
tijinkj committed
 * - `1` for performance class A as defined in ETSI TS 101 539-1 [i.5]
 * - `2` for performance class B as defined in ETSI TS 101 539-1 [i.5]
tijinkj's avatar
tijinkj committed
 * -  Values in the range `3 to 7` are reserved for future use.
 *
 * @category: Vehicle information
 * @revision: Editorial update in V2.1.1
 */
PerformanceClass ::= INTEGER {
    unavailable       (0), 
    performanceClassA (1), 
    performanceClassB (2)
} (0..7)

/**
 * This DE represents a telephone number
 * 
 * @category: Basic information
 * @revision: V1.3.1
 */
PhoneNumber ::= NumericString (SIZE(1..16))
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates the perpendicular distance from the centre of mass of an empty load vehicle to the front line of
 * the vehicle bounding box of the empty load vehicle.
 *
 * The value shall be set to:
 * - `n (n > 0 and n < 62)` for any aplicable value n between 0,1 meter and 6,2 meters. 
 * - `62` for values equal to or higher than `6.2 metres`.
 * - `63`  if the information is unavailable.
 * 
tijinkj's avatar
tijinkj committed
 * @note:	The empty load vehicle is defined in ISO 1176 [i.8], clause 4.6.
tijinkj's avatar
tijinkj committed
 *
 * @unit 0,1 metre 
 * @category Vehicle information
 * @revision: Editorial update in V2.1.1
 */
PosCentMass ::= INTEGER {
    tenCentimeters (1), 
    outOfRange     (62),
    unavailable    (63)
} (1..63)

/**
 * This DE indicates the positioning technology being used to estimate a geographical position.
 *
 * The value shall be set to:
 * - 0 `noPositioningSolution`  : no positioning solution used,
 * - 1 `sGNSS`                  : Global Navigation Satellite System used,
 * - 2 `dGNSS`                  : Differential GNSS used,
 * - 3 `sGNSSplusDR`            : GNSS and dead reckoning used,
 * - 4 `dGNSSplusDR`            : Differential GNSS and dead reckoning used,
 * - 5 `dR`                     : dead reckoning used.
 *
 * @category: GeoReference information
 * @revision: V1.3.1
 */
PositioningSolutionType ::= ENUMERATED {
    noPositioningSolution (0), 
    sGNSS                 (1), 
    dGNSS                 (2), 
    sGNSSplusDR           (3), 
    dGNSSplusDR           (4), 
    dR                    (5), 
    ...
}
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates whether a passenger seat is occupied or whether the occupation status is detectable or not.
 * 
 * The number of row in vehicle seats layout is counted in rows from the driver row backwards from front to the rear
 * of the vehicle.
 * The left side seat of a row refers to the left hand side seen from vehicle rear to front.
 * Additionally, a bit is reserved for each seat row, to indicate if the seat occupation of a row is detectable or not,
 * i.e. `row1NotDetectable (3)`, `row2NotDetectable(8)`, `row3NotDetectable(13)` and `row4NotDetectable(18)`.
 * Finally, a bit is reserved for each row seat to indicate if the seat row is present or not in the vehicle,
 * i.e. row1NotPresent `(4)`, row2NotPresent `(9)`, `row3NotPresent(14)`, `row4NotPresent(19)`.
 * 
 * When a seat is detected to be occupied, the corresponding seat occupation bit shall be set to `1`.
 * For example, when the row 1 left seat is occupied, `row1LeftOccupied(0)` bit shall be set to 1.
 * When a seat is detected to be not occupied, the corresponding seat occupation bit shall be set to `0`.
 * Otherwise, the value of seat occupation bit shall be set according to the following conditions:
 * - If the seat occupation of a seat row is not detectable, the corresponding bit shall be set to `1`.
 *   When any seat row not detectable bit is set to `1`, all corresponding seat occupation bits of the same row
 *   shall be set to `1`.
 * - If the seat row is not present, the corresponding not present bit of the same row shall be set to `1`.
 *   When any of the seat row not present bit is set to `1`, the corresponding not detectable bit for that row
 *   shall be set to `1`, and all the corresponding seat occupation bits in that row shall be set to `0`.
 * 
 * @category: Vehicle information
 * @revision: V1.3.1
 */
PositionOfOccupants ::= BIT STRING {
    row1LeftOccupied  (0),
    row1RightOccupied (1),
    row1MidOccupied   (2),
    row1NotDetectable (3),
    row1NotPresent    (4),
    row2LeftOccupied  (5),
    row2RightOccupied (6),
    row2MidOccupied   (7),
    row2NotDetectable (8),
    row2NotPresent    (9),
    row3LeftOccupied  (10),
    row3RightOccupied (11),
    row3MidOccupied   (12),
    row3NotDetectable (13),
    row3NotPresent    (14),
    row4LeftOccupied  (15),
    row4RightOccupied (16),
    row4MidOccupied   (17),
    row4NotDetectable (18),
    row4NotPresent    (19)
} (SIZE(20))

/**
 * This DE indicates the perpendicular distance between the vehicle front line of the bounding box and the front wheel axle in 10 centimetres.
 *
 * The value shall be set to:
 * - `n (n > 0 and n < 19) for any aplicable value between 0,1 meter and 1,9 meters. 
 * - `19` for values equal to or higher than 1.9 metres.
 * - `20` if the information is unavailable.
 *
 * @category: Vehicle information
 * @unit 0.1 metre
 * @revision: Editorial update in V2.1.1
 */
PosFrontAx ::= INTEGER {
    outOfRange (19), 
    unavailable(20)
} (1..20)

/**
 * This DE represents the distance from the centre of vehicle front bumper to the right or left longitudinal carrier of vehicle.
 * The left/right carrier refers to the left/right as seen from a passenger sitting in the vehicle.
 *
 * The value shall be set to:
 * - `n (n > 0 and n < 126)` for any aplicable value between 0,01 meter and 1,26 meters. 
 * - `126` for values equal to or higher than 1.26 metres.
 * - `127` if the information is unavailable.
 *
 * @unit 0,01 metre 
 * @category Vehicle information
 * @revision: Editorial update in V2.1.1
 */
PosLonCarr ::= INTEGER {
    outOfRange  (126),
    unavailable (127)
} (1..127)

/**
 * This DE represents the perpendicular inter-distance of neighbouring pillar axis of vehicle starting from the
 * middle point of the front line of the vehicle bounding box.
 *
 * The value shall be set to:
 * - `n (n > 0 and n < 29)` for any aplicable value between 0,1 meter and 2,9 meters. 
 * - `29` for values equal to or greater than 2.9 metres.
 * - `30` if the information is unavailable.
 * 
 * @unit 0,1 metre 
 * @category Vehicle information
 * @revision: Editorial update in V2.1.1
 */
PosPillar ::= INTEGER {
    outOfRange  (29),
    unavailable (30)
} (1..30)

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` .
 * 
 * The value shall be set to:
 * - 0 `unavailable`                                               : in case further detailed information on post crash event is unavailable,
 * - 1 `accidentWithoutECallTriggered`                             : in case no eCall has been triggered for an accident,
 * - 2 `accidentWithECallManuallyTriggered`                        : in case eCall has been manually triggered and transmitted to eCall back end,
 * - 3 `accidentWithECallAutomaticallyTriggered`                   : in case eCall has been automatically triggered and transmitted to eCall back end,
 * - 4 `accidentWithECallTriggeredWithoutAccessToCellularNetwork`  : in case eCall has been triggered but cellular network is not accessible from triggering vehicle,
 * - 5-255                                                         : reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
PostCrashSubCauseCode ::= INTEGER {
    unavailable                                              (0), 
    accidentWithoutECallTriggered                            (1), 
    accidentWithECallManuallyTriggered                       (2), 
    accidentWithECallAutomaticallyTriggered                  (3), 
    accidentWithECallTriggeredWithoutAccessToCellularNetwork (4)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
* This DE represent the total amount of rain falling during one hour. It is measured in mm per hour at an area of 1 square meter.  
* 
* The following values are specified:
* - `n (n > 0 and n < 2000)` if the amount of rain falling is equal to or less than n x 0.1 mm/h and greater than (n-1) x 0.1 mm/h.
* - `2000` if the amount of rain falling is greater than 199.9 mm/h 
* - `2001` if the information is not available
*
* @unit: 0.1 mm/h 
* @category: Basic Information
* @revision: created in V2.1.1
*/
PrecipitationIntensity ::= INTEGER {
	outOfRange								(2000), 
	unavailable								(2001) 
} (1..2001)

/**
 * This DE represenst the indentifier of a protected communication zone.
 * 
 * 
 * @category: Infrastructure information, Communication information
tijinkj's avatar
tijinkj committed
 * @revision: Revision in V2.1.1 (changed name from ProtectedZoneID to ProtectedZoneId)
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
ProtectedZoneId ::= INTEGER (0.. 134217727)
tijinkj's avatar
tijinkj committed
/**
 * This DE represenst the radius of a protected communication zone. 
 * 
 * 
 * @unit: metre
 * @category: Infrastructure information, Communication information
 * @revision: V1.3.1
 */
ProtectedZoneRadius ::= INTEGER (1..255,...)

/**
 * This DE indicates the type of a protected communication zone, so that an ITS-S is aware of 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 protected zone type is defined in ETSI TS 102 792 [i.14].
tijinkj's avatar
tijinkj committed
 * 
 * 
 * @category: Communication information
 * @revision: V1.3.1
 */
ProtectedZoneType::= ENUMERATED {
    permanentCenDsrcTolling (0), 
    ..., 
    temporaryCenDsrcTolling (1) 
tijinkj's avatar
tijinkj committed
/**
 * This DE is used for various tasks in the public transportation environment, especially for controlling traffic
 * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_").
 * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation
 * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the
 * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to
 * traffic congestion. Other usage of the DE is the provision of information like the public transport line number
 * or the schedule delay of a public transport vehicle.
 * 
 * @category: Vehicle information
 * @revision: V1.3.1
 */
PtActivationData ::= OCTET STRING (SIZE(1..20))
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates a certain coding type of the PtActivationData data.
 *
 * The folowing value are specified:
 * - `0` undefinedCodingType  : undefined coding type,
tijinkj's avatar
tijinkj committed
 * - `1` r09-16CodingType     : coding of PtActivationData conform to VDV recommendation 420 [i.7],
 * - `2` vdv-50149CodingType  : coding of PtActivationData based on VDV recommendation 420 [i.7].
tijinkj's avatar
tijinkj committed
 * - values 3 to 255          : reserved for alternative and future use.
 * 
 * @category: Vehicle information 
 * @revision: V1.3.1
 */
PtActivationType ::= INTEGER {
    undefinedCodingType (0), 
    r09-16CodingType    (1), 
    vdv-50149CodingType (2)
} (0..255)

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `railwayLevelCrossing` .
 * 
 * The value shall be set to:
 * - 0 `unavailable`                   : in case no further detailed information on the railway level crossing status is available,
 * - 1 `doNotCrossAbnormalSituation`   : in case when something wrong is detected by equation or sensors of the railway level crossing, 
                                         including level crossing is closed for too long (e.g. more than 10 minutes long ; default value),
 * - 2 `closed`                        : in case the crossing is closed (barriers down),
 * - 3 `unguarded`                     : in case the level crossing is unguarded (i.e a Saint Andrew cross level crossing without detection of train),
 * - 4 `nominal`                       : in case the barriers are up and lights are off.
 * - 5-255: reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
RailwayLevelCrossingSubCauseCode ::= INTEGER {
    unavailable                 (0), 
    doNotCrossAbnormalSituation (1), 
    closed                      (2), 
    unguarded                   (3), 
    nominal                     (4)
} (0..255)

tijinkj's avatar
tijinkj committed
/**
 * This DE describes a distance of relevance for information indicated in a message.
 *
 * The value shall be set to:
 * - 0 `lessThan50m`   : for distances below 50 m. 
 * - 1 `lessThan100m`  : for distances below 100 m. 
 * - 2 `lessThan200m`  : for distances below 200 m. 
 * - 3 `lessThan500m`  : for distances below 300 m. 
 * - 4 `lessThan1000m` : for distances below 1000 m. 
 * - 5 `lessThan5km`   : for distances below 5000 m. 
 * - 6 `lessThan10km`  : for distances below 10000 m. 
 * - 7 `over10km`      : for distances over 10000 m. 
 * 
 * @note: this DF is kept for backwards compatibility reasons only. It is reccomended to use the @ref StandardLength3b instead. 
 *
 * @category: GeoReference information
 * @revision: Editorial update in V2.1.1
 */ 
RelevanceDistance ::= ENUMERATED {
    lessThan50m(0), 
    lessThan100m(1), 
    lessThan200m(2), 
    lessThan500m(3), 
    lessThan1000m(4), 
    lessThan5km(5), 
    lessThan10km(6), 
    over10km(7)
}

/**
 * This DE indicates a traffic direction that is relevant to information indicated in a message.
 * 
 * The value shall be set to:
 * - 0 `allTrafficDirections` : for all traffic directions. 
 * - 1 `upstreamTraffic`      : for upstream traffic. 
 * - 2 `downstreamTraffic`    : for downstream traffic. 
 * - 3 `oppositeTraffic`      : for traffic in the opposite direction. 
 *
 * The terms `upstream`, `downstream` and `oppositeTraffic` are relative to the event position.
 *
 * @note: Upstream traffic corresponds to the incoming traffic towards the event position,
 * and downstream traffic to the departing traffic away from the event position.
 *
 * @note: this DF is kept for backwards compatibility reasons only. It is reccomended to use the @ref TrafficDirection instead. 
 *
 * @category: GeoReference information
 * @revision: Editorial update in V2.1.1
 */
RelevanceTrafficDirection ::= ENUMERATED {
    allTrafficDirections(0), 
    upstreamTraffic(1), 
    downstreamTraffic(2), 
    oppositeTraffic(3)
}

tijinkj's avatar
tijinkj committed
/**
 * This DE indicates whether an ITS message is transmitted as request from ITS-S or a response transmitted from
 * ITS-S after receiving request from other ITS-Ss.
 *
 * The value shall be set to:
 * - 0 `request`  : for a request message. 
 * - 1 `response` : for a response message.  
 *
 * @category Communication information
 * @revision: Editorial update in V2.1.1
 */
RequestResponseIndication ::= ENUMERATED {
    request  (0), 
    response (1)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `rescueAndRecoveryWorkInProgress` 
 * 
 * The following value are specified:
 * - 0 `unavailable`             : in case further detailed information on rescue and recovery work is unavailable,
 * - 1 `emergencyVehicles`       : in case rescue work is ongoing by emergency vehicles,
 * - 2 `rescueHelicopterLanding` : in case rescue helicopter is landing,
 * - 3 `policeActivityOngoing`   : in case police activity is ongoing,
 * - 4 `medicalEmergencyOngoing` : in case medical emergency recovery is ongoing,
 * - 5 `childAbductionInProgress`: in case a child kidnapping alarm is activated and rescue work is ongoing,
 * - 6-255: reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {
   unavailable              (0), 
   emergencyVehicles        (1), 
   rescueHelicopterLanding  (2), 
   policeActivityOngoing    (3), 
   medicalEmergencyOngoing  (4), 
   childAbductionInProgress (5)
} (0..255)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the type of a road segment.
 * 
 * The value shall be set to:
 * - 0 `urban-NoStructuralSeparationToOppositeLanes`       : for an urban road with no structural separation between lanes carrying traffic in opposite directions.
 * - 1 `urban-WithStructuralSeparationToOppositeLanes`     : for an urban road with structural separation between lanes carrying traffic in opposite directions.
 * - 2 `nonUrban-NoStructuralSeparationToOppositeLanes`    : for an non urban road with no structural separation between lanes carrying traffic in opposite directions.
 * - 3 `nonUrban-WithStructuralSeparationToOppositeLanes`  : for an non urban road with structural separation between lanes carrying traffic in opposite directions.
 *
 * @category: Road Topology Information
 * @revision: Editorial update in V2.1.1
 */
RoadType ::= ENUMERATED {
    urban-NoStructuralSeparationToOppositeLanes      (0),
    urban-WithStructuralSeparationToOppositeLanes    (1),
    nonUrban-NoStructuralSeparationToOppositeLanes   (2),
    nonUrban-WithStructuralSeparationToOppositeLanes (3)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`.
 * 
The value shall be set to:
 * - 0 `unavailable`                 : in case further detailed information on roadworks is unavailable,
 * - 1 `majorRoadworks`              : in case a major roadworks is ongoing,
 * - 2 `roadMarkingWork`             : in case a road marking work is ongoing,
 * - 3 `slowMovingRoadMaintenance`   : in case slow moving road maintenance work is ongoing,
 * - 4 `shortTermStationaryRoadworks`: in case a short term stationary roadwork is ongoing,
 * - 5 `streetCleaning`              : in case a vehicle street cleaning work is ongoing,
 * - 6 `winterService`               : in case winter service work is ongoing,
 * - 7-255 reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
RoadworksSubCauseCode ::= INTEGER {
    unavailable                  (0), 
    majorRoadworks               (1),
    roadMarkingWork              (2), 
    slowMovingRoadMaintenance    (3), 
    shortTermStationaryRoadworks (4), 
   streetCleaning                (5), 
   winterService                 (6)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates if a distance is safe 
 * This DE is FALSE  if  the triple  {LaD,  LoD, VD} < {MSLaD, MSLoD, MSVD} simultaneously  satisfied with confidence of  90 % or  more. 
 * Otherwise  stationSafeDistanceIndication is set to TRUE. 
 *
 * @Note: the ebbreviations used are Lateral Distance (LaD),  Longitudinal Distance (LoD) and Vertical Distance (VD) 
 * and their respective  thresholds, Minimum  Safe  Lateral  Distance (MSLaD), Minimum  Safe  Longitudinal Distance  (MSLoD),  and  Minimum  Safe Vertical Distance (MSVD)
 *
 * @category: Traffic information, Kinematics information
 * @revision: created in V2.1.1
*/
SafeDistanceIndicator::= BOOLEAN

/**
 * This DE represenst the absolute position accuracy in one of the axis direction as defined in a shape of ellipse with a 
 * confidence level of 95 %. 
 * 
 * The value shall be set to:
 * - `1` if the accuracy is equal to or less than 1 cm,
 * - `n (n > 1 and n < 4 094)` if the accuracy is equal to or less than n cm,
 * - `4 094` if the accuracy is out of range, i.e. greater than 4 093 cm,
 * - `4 095` if the accuracy information is unavailable.
 * 
 * @note:	The fact that a position coordinate value is received with confidence set to 'unavailable(4095)'
 * 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 position coordinate value may be valid and used by the application.
 * If a position coordinate value is received and its confidence is set to 'outOfRange(4094)', it means that
 * the reported position coordinate value is not valid and therefore cannot be trusted. Such value is not useful
 * for the application.

 * @unit 0,01 meter 
 * @category: GeoReference Information
 * @revision: Editorial update in V2.1.1
 */
SemiAxisLength ::= INTEGER{
    outOfRange  (4094), 
    unavailable (4095)
} (0..4095)

/** 
 * This DE indicates the type of sensor.
 * 
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `0` undefined          : in case the sensor type is undefined. 
 * - `1` radar              : in case the sensor is a radar.
 * - `2` lidar              : in case the sensor is a lidar.
 * - `3` monovideo          : in case the sensor is mono video.
 * - `4` stereovision       : in case the sensor is stereo vision.
 * - `5` nightvision        : in case the sensor is night vision.
 * - `6` ultrasonic         : in case the sensor is ultrasonic.
 * - `7` pmd                : in case the sensor is photonic mixing device.
 * - `8` inductionLoop      : in case the sensor is an induction loop.
 * - `9` sphericalCamera    : in case the sensor is a spherical camera.
 * - `10` uwb               : in case the sensor is ultra wide band.
 * - `11` acoustic          : in case the sensor is acoustic.
 * - `12` localAggregation  : in case the information is provided by a system that aggregates information from different local sensors. Aggregation may include fusion.
 * - `13` itsAggregation    : in case the information is provided by a system that aggregates information from other received ITS messages.
 * - 14-15 reserved for future usage.
tijinkj's avatar
tijinkj committed
 *
 * @category: Sensing Information
 * @revision: created in V2.1.1
*/
SensorType ::= INTEGER {
tijinkj's avatar
tijinkj committed
    undefined         (0),
    radar             (1),
    lidar             (2),
    monovideo         (3),
    stereovision      (4),
    nightvision       (5),
    ultrasonic        (6),
    pmd               (7),
    inductionLoop     (8),
    sphericalCamera   (9),
    uwb               (10),
    acoustic          (11),
    localAggregation  (12),
    itsAggregation    (13)
tijinkj's avatar
tijinkj committed
} (0..15)

/**
 * This DE represents a sequence number.
 * 
 * @category: Basic information
 * @revision: V1.3.1
 */
SequenceNumber ::=  INTEGER (0..65535)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`.
 * 
 * The value shall be set to:
 * - 0 `unavailable`               : in case further detailed information on signal violation event is unavailable,
 * - 1 `stopSignViolation`         : in case a stop sign violation is detected,
 * - 2 `trafficLightViolation`     : in case a traffic light violation is detected,
 * - 3 `turningRegulationViolation`: in case a turning regulation violation is detected,
 * - 4-255                         : reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
SignalViolationSubCauseCode ::= INTEGER {
    unavailable                (0), 
    stopSignViolation          (1), 
    trafficLightViolation      (2), 
    turningRegulationViolation (3)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle".
 * 
 * The value shall be set to:
 * - 0 `unavailable`                    : in case further detailed information on slow vehicle driving event is
 *                                        unavailable,
 * - 1 `maintenanceVehicle`             : in case of a slow driving maintenance vehicle on the road,
 * - 2 `vehiclesSlowingToLookAtAccident`: in case vehicle is temporally slowing down to look at accident, spot, etc.,
 * - 3 `abnormalLoad`                   : in case an abnormal loaded vehicle is driving slowly on the road,
 * - 4 `abnormalWideLoad`               : in case an abnormal wide load vehicle is driving slowly on the road,
 * - 5 `convoy`                         : in case of slow driving convoy on the road,
 * - 6 `snowplough`                     : in case of slow driving snow plough on the road,
 * - 7 `deicing`                        : in case of slow driving de-icing vehicle on the road,
 * - 8 `saltingVehicles`                : in case of slow driving salting vehicle on the road,
 * - 9-255                              : reserved for future usage.
 * 
 * @category: Traffic information
 * @revision: V1.3.1
 */
SlowVehicleSubCauseCode ::= INTEGER {
    unavailable                     (0), 
    maintenanceVehicle              (1), 
    vehiclesSlowingToLookAtAccident (2), 
    abnormalLoad                    (3), 
    abnormalWideLoad                (4), 
    convoy                          (5), 
    snowplough                      (6), 
    deicing                         (7), 
    saltingVehicles                 (8)
} (0..255)

/**
 * The DE indicates if a vehicle is carrying goods in the special transport conditions.

 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 `heavyLoad`        : the vehicle is carrying goods with heavy load.
 * - 1 `excessWidth`      : the vehicle is carrying goods in excess of width.
 * - 2 `excessLength`     : the vehicle is carrying goods in excess of length.
 * - 3 `excessHeight`     : the vehicle is carrying goods in excess of height.
 *
 * Otherwise, the corresponding bit shall be set to 0.
 * @category Vehicle information
 * @revision: Description revised in V2.1.1
 */
SpecialTransportType ::= BIT STRING {
    heavyLoad    (0),
    excessWidth  (1), 
    excessLength (2), 
    excessHeight (3)
} (SIZE(4))

/**
 * This DE represents the absolute accuracy of a speed value information for a predefined confidence level of 95%.
 * 
 * The value shall be set to:
 * - `n (n > 0 and n < 126)` if the speed accuracy is equal to or less than n cm/s.
 * - `126` if the speed accuracy is out of range, i.e. greater than 125 cm/s.
 * - `127` if the speed accuracy information is not available.
 *  
 * @note:	The fact that a speed 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 speed value may be valid and used by the application.
 * 
 * @note: If a speed value is received and its confidence is set to `outOfRange(126)`, it means that the reported speed value is not valid 
 * and therefore cannot be trusted. Such is not useful for the application.
 *
 * @unit cm/s
 * @category: Vehicle information
 * @revision: Description revised in V2.1.1 
 */
SpeedConfidence ::= INTEGER {
    outOfRange  (126), 
    unavailable (127)
} (1..127)

/**
 * This DE represents a speed limitation applied to a geographical position, a road section or a geographical region.
 * 
 * @unit: km/h
 * @category: Infrastructure information, Traffic information
 * @revision: V1.3.1
 */
SpeedLimit ::= INTEGER (1..255)

/**
 * This DE represents a speed value, i.e. the magnitude of the horizontal velocity-vector. 
 *
 * The value shall be set to:
 * - `0` in a standstill situation.
 * - `n (n > 0 and n < 16382)` if the applicable value is equal to or less than n x 0,01 m/s, and greater than (n-1) x 0,01 m/s.
 * - `16382` for speed values greater than 163,81 m/s.
 * - `16383` if the speed accuracy information is not available.
 * 
 * @unit: 0,01 m/s
 * @category: Kinematics information
 * @revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) 
*/
SpeedValue ::= INTEGER {
    standstill  (0), 
    outOfRange  (16382), 
    unavailable (16383)
} (0..16383)

/** 
 * This DE represents the value of a velocity component in a defined coordinate system.
 *
 * The value shall be set to:
 * - `-16383` if the speed is equal to or smaller than -163,83 m/s
 * - `n (n > -16383 and n < 16382)` if the applicable value is equal to or less than n x 0,01 m/s, and greater than `(n-1) x 0,01 m/s.
 * - `16382` for speed values equal to or greater than 163,81 m/s.
 * - `16383` if the speed accuracy information is not available.
 * 
 * @unit: 0,01 m/s
 * @category: Kinematics information
 * @revision: Created in V2.1.1
*/
SpeedValueExtended ::= INTEGER {
    negativeOutOfRange (-16383),
    psotiveOutOfRange  (16382),
    unavailable        (16383)
} (-16383..16383)


/**
 * This DE indicates the estimated probability of a stability level and conversely also the probability of a stability loss.
 *
 * The value shall be set to:
 * - `0` to indicate an estimated probability of a loss of stability of 0%, i.e.  "stable". 
 * - `n (n > 0 and n < 50)` to indicate the actual stability level.
 * - `50` to indicate a estimated probability of a loss of stability of 100%, i.e. "total loss of stability".
 * - the values between 51 and 62 are reserved for future use. 
 * - `63`: this value indicates that the information is unavailable.
 *
 * @unit: 2%
 * @category: Kinematics information
 * @revision: Created in V2.1.1
 */
StabilityLossProbability ::= INTEGER {
    stable                  (0), 
    totalLossOfStability   (50), 
    unavailable            (63) 
} (0..63) 

/**
 * The DE represents length as a measure of distance between points or as a dimension of an object. 
 *
 * @unit: 0.1 meter
 * @category: Basic information
 * @revision: Created in V2.1.1
 */
StandardLength12b::= INTEGER (0..4095)

/**
 * The DE represents length as a measure of distance between points or as a dimension of an object. 
 *
 * The value shall be set to:
 * - 0 `lessThan50m`   : for distances below 50 m. 
 * - 1 `lessThan100m`  : for distances below 100 m. 
 * - 2 `lessThan200m`  : for distances below 200 m. 
 * - 3 `lessThan500m`  : for distances below 300 m. 
 * - 4 `lessThan1000m` : for distances below 1000 m. 
 * - 5 `lessThan5km`   : for distances below 5000 m. 
 * - 6 `lessThan10km`  : for distances below 10000 m. 
 * - 7 `over10km`      : for distances over 10000 m. 
 *
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 from RelevanceDistance
tijinkj's avatar
tijinkj committed
 */ 
StandardLength3b ::= ENUMERATED {
    lessThan50m   (0), 
    lessThan100m  (1), 
    lessThan200m  (2), 
    lessThan500m  (3), 
    lessThan1000m (4), 
    lessThan5km   (5), 
    lessThan10km  (6), 
    over10km      (7)
tijinkj's avatar
tijinkj committed
/**
 * The DE represents length as a measure of distance between points or as a dimension of an object. 
 *
 * @unit: 0.1 meter
 * @category: Basic information
 * @revision: Created in V2.1.1
 */
StandardLength9b::= INTEGER (0..511)

/**
 * The DE represents length as a measure of distance between points or as a dimension of an object. 
 *
 * @unit: 0.1 meter
 * @category: Basic information
 * @revision: Created in V2.1.1
 */
StandardLength1B::= INTEGER (0..255)

/**
 * The DE represents length as a measure of distance between points or as a dimension of an object.  
 *
 * @unit: 0.1 meter
 * @category: Basic information
 * @revision: Created in V2.1.1
 */
StandardLength2B::= INTEGER (0..65535)

/**
 * This DE indicates the duration in minutes since which something is stationary.
 * 
 * The value shall be set to:
 * - 0 `lessThan1Minute`         : for being stationary since less than 1 minute. 
 * - 1 `lessThan2Minutes`        : for being stationary since less than 2 minute and for equal to or more 1 minute. 
 * - 2 `lessThan15Minutes`       : for being stationary since less than 15 minutes and for equal to or more than 1 minute. 
 * - 3 `equalOrGreater15Minutes` : for being stationary since equal to or more than 15 minutes.
 *
 * @category: Kinematics information
 * @revision: Created in V2.1.1
 */
StationarySince ::= ENUMERATED {
    lessThan1Minute         (0), 
    lessThan2Minutes        (1), 
    lessThan15Minutes       (2), 
    equalOrGreater15Minutes (3)
}
tijinkj's avatar
tijinkj committed
/**
 * This DE provides the value of the sub cause codes of the @ref CauseCode "stationaryVehicle". 
 * 
 * The value shall be set to:
 * - 0 `unavailable`           : in case further detailed information on stationary vehicle is unavailable,
 * - 1 `humanProblem`          : in case stationary vehicle is due to health problem of driver or passenger,
 * - 2 `vehicleBreakdown`      : in case stationary vehicle is due to vehicle break down,
 * - 3 `postCrash`             : in case stationary vehicle is caused by collision,
 * - 4 `publicTransportStop`   : in case public transport vehicle is stationary at bus stop,
 * - 5 `carryingDangerousGoods`: in case the stationary vehicle is carrying dangerous goods,
 * - 6 `vehicleOnFire`         : in case of vehicle on fire.
 * - 7-255 reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
StationaryVehicleSubCauseCode ::= INTEGER {
    unavailable            (0), 
    humanProblem           (1), 
    vehicleBreakdown       (2), 
    postCrash              (3), 
    publicTransportStop    (4), 
    carryingDangerousGoods (5), 
    vehicleOnFire          (6)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the identifier of an ITS-S.
 * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
 *
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Update in V2.1.1 : changed name from StationID to StationId
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
StationId ::= INTEGER(0..4294967295)
tijinkj's avatar
tijinkj committed
/**
 * This DE represenst the type of technical context the ITS-S is integrated in.
 * The station type depends on the integration environment of ITS-S into vehicle, mobile devices or at infrastructure.
 * 
 * The value shall be set to:
 * - 0 `unknown`: information about the ITS-S context is not provided,
 * - 1 pedestrian`: ITS-S carried by human being not using a mechanical device for their trip (VRU profile 1).
 * - 2 `cyclist`: ITS-S mounted on non-motorized unicycles, bicycles , tricycles, quadracycles,
tijinkj's avatar
tijinkj committed
 * - 3 `moped`: ITS-S mounted on light motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] 
tijinkj's avatar
tijinkj committed
        class L1, L2 (VRU Profile 3)
tijinkj's avatar
tijinkj committed
 * - 4 `motorcycles`: ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] 
tijinkj's avatar
tijinkj committed
        class L3, L4, L5, L6, L7 (VRU Profile 3)
tijinkj's avatar
tijinkj committed
 * - 5 `passengerCar`: ITS-S mounted on small passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] class M1,
 * - 6 `bus`: ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] class M2, M3,
 * - 7 `lightTruck`: ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] class N1,
 * - 8 `heavyTruck`: ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.16] class N2 and N3,
tijinkj's avatar
tijinkj committed
 * - 9 `trailer`: ITS-S mounted on an unpowered vehicle that is intended to be towed by a powered vehicle as defined in