ITS-Container.asn 235 KB
Newer Older
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.
tijinkj's avatar
tijinkj committed
 * -  `3` unavailable         : indicates that the information is unavailable. 
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
ObjectDynamicStatus ::= INTEGER {
tijinkj's avatar
tijinkj committed
    dynamic             (0),
    hasBeenDynamic      (1),
tijinkj's avatar
tijinkj committed
    static              (2),
    unavailable			(3)    
} (0..3)
tijinkj's avatar
tijinkj committed

/** 
 * This DE indicate the approximate position of the reference point of measurement for the object dimensions. 
 * The point is included in the plane perpendicular to the direction of the object´s @ref yawAngleValue.
 *
 * @category: Sensing information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1 
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
ObjectRefPoint ::= INTEGER {
tijinkj's avatar
tijinkj committed
    mid             (0),
    bottomLeft      (1),
    midLeft         (2),
    topLeft         (3),
    bottomMid       (4),
    topMid          (5),
    bottomRight     (6),
    midRight        (7),
    topRight        (8)
} (0..8)

tijinkj's avatar
tijinkj committed
/**
 * This DE indicates an object’s section. 
tijinkj's avatar
tijinkj committed
 * The object is assumed to have a length that is greater than its width, with the sides of the object being divided into: 
 * front, rear, sideLeftFront, sideLeftBack, sideRightFront, sideRightBack.
tijinkj's avatar
tijinkj committed
 *
 * 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
 */
ObjectSection ::= ENUMERATED { 
    unavailable(0), 
    rear(1), 
    front(2), 
    sideLeftFront(3), 
    sideLeftBack(4), 
    sideRightFront(5), 
    sideRightBack(6) 
} 

tijinkj's avatar
tijinkj committed
/** 
 * This DE represents positions with lane-level accuracy which are not on regular traffic lanes. 
 * 
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 * - value 4-15      : reserved for future usage. Value 15 set to "max" in order to bound the size of the encoded field.
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
*/
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.
tijinkj's avatar
tijinkj committed
 * (for example local commerce).
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Time information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
OpeningDaysHours ::= UTF8String 

/** 
 * This DE indicates the subclass of a detected object for object class "otherSubclass".
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `0` unknown       : if the subclass is unknown.
 * - `1` roadSideUnit  : if the object is a roadside unit.
tijinkj's avatar
tijinkj committed
 *
 * @category: Sensing information
 * Revision: Created in V2.1.1
 */
OtherSubclass ::= INTEGER {
    unknown         (0),
    roadSideUnit    (1)
} (0..255)

/**
 * This DE represents the recorded or estimated travel time between a position and a predefined reference position. 
 *
 * @unit 0.01 second
 * @category GeoReference information
tijinkj's avatar
tijinkj committed
 * Revision: same type as in V1.3.1 but now based on a basic type
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
PathDeltaTime ::= DeltaTimeHundredthOfSecond
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 *  The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `0` if  the performance class is unknown.
 * - `1` for performance class A as defined in ETSI TS 101 539-1 [i.6]
 * - `2` for performance class B as defined in ETSI TS 101 539-1 [i.6]
 * -  Values in the range `3 to 7` are reserved for future use.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
PerformanceClass ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable(0), 
    performanceClassA(1), 
tijinkj's avatar
tijinkj committed
    performanceClassB(2)
} (0..7)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents a telephone number
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
PhoneNumber ::= NumericString (SIZE(1..16))

/**
 * 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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `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`.
tijinkj's avatar
tijinkj committed
 * - `63`  if the information is unavailable.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * @note:	The empty load vehicle is defined in ISO 1176 [i.9], clause 4.6.
 *
 * @unit 0,1 metre 
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
PosCentMass ::= INTEGER {
    tenCentimeters(1), 
    unavailable(63)
} (1..63)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the positioning technology being used to estimate a geographical position.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 *
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
PositioningSolutionType ::= ENUMERATED {
    noPositioningSolution(0), 
tijinkj's avatar
tijinkj committed
    sGNSS(1), 
    dGNSS(2), 
tijinkj's avatar
tijinkj committed
    sGNSSplusDR(3), 
    dGNSSplusDR(4), 
    dR(5), ...}

/**
 * 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
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `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.
tijinkj's avatar
tijinkj committed
 *
 * @category: Vehicle information
 * @unit 0.1 metre
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
PosFrontAx ::= INTEGER {
    tenCentimeters(1), 
    unavailable(20)
} (1..20)
tijinkj's avatar
tijinkj committed

/**
 * 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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `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`.
tijinkj's avatar
tijinkj committed
 * - `127` if the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @unit 0,01 metre 
 * @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
PosLonCarr ::= INTEGER {
    oneCentimeter(1), 
    unavailable(127)} (1..127)
tijinkj's avatar
tijinkj committed

/**
 * 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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `n (n > 0 and n < 29)` for any aplicable value between `0,1 meter` and `2,9 meters`. 
tijinkj's avatar
tijinkj committed
 * - `29` for values equal to or greater than `2.9 metres`.
tijinkj's avatar
tijinkj committed
 * - `30` if the information is unavailable.
tijinkj's avatar
tijinkj committed
 * 
 * @unit 0,1 metre 
 * @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
PosPillar ::= INTEGER {
    tenCentimeters(1), 
    unavailable(30)
} (1..30)
tijinkj's avatar
tijinkj committed

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `postCrash` .
 * 
tijinkj's avatar
tijinkj committed
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
PostCrashSubCauseCode ::= INTEGER {
    unavailable(0), 
    accidentWithoutECallTriggered (1), 
    accidentWithECallManuallyTriggered (2), 
    accidentWithECallAutomaticallyTriggered (3), 
    accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represenst the indentifier of a protected communication zone.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * 
 * @category: Infrastructure information, Communication information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
ProtectedZoneID ::= INTEGER (0.. 134217727)

/**
 * This DE represenst the radius of a protected communication zone. 
 * 
 * 
 * @unit: metre
 * @category: Infrastructure information, Communication information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
ProtectedZoneRadius ::= INTEGER {
    oneMeter(1)
} (1..255,...)
tijinkj's avatar
tijinkj committed

/**
 * 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).
 * 
 * The protected zone type is defined in ETSI TS 102 792 [i.16].
 * 
 * 
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
ProtectedZoneType::= ENUMERATED {
    permanentCenDsrcTolling (0), 
    ..., 
    temporaryCenDsrcTolling (1) 
}

/**
 * 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.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Vehicle information
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
PtActivationData ::= OCTET STRING (SIZE(1..20))

/**
 * This DE indicates a certain coding type of the PtActivationData data.
 *
 * The folowing value are specified:
tijinkj's avatar
tijinkj committed
 * - `0` undefinedCodingType  : undefined coding type,
 * - `1` r09-16CodingType     : coding of PtActivationData conform to VDV recommendation 420 [i.8],
 * - `2` vdv-50149CodingType  : coding of PtActivationData based on VDV recommendation 420 [i.8].
tijinkj's avatar
tijinkj committed
 * - values 3 to 255          : reserved for alternative and future use.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Vehicle information 
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
PtActivationType ::= INTEGER {
    undefinedCodingType(0), 
    r09-16CodingType(1), 
    vdv-50149CodingType(2)} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * 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), 
    nominal(3), 
    unguarded(4)
} (0..255)

tijinkj's avatar
tijinkj committed
/** 
 * This DE represents a reference point counter for a trailer.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Vehicle information 
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
RefPointId ::= INTEGER (0..255)

/**
 * This DE describes a distance of relevance for information indicated in a message.
 *
tijinkj's avatar
tijinkj committed
 * 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. 
 *
tijinkj's avatar
tijinkj committed
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
 */ 
tijinkj's avatar
tijinkj committed
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.
 * 
tijinkj's avatar
tijinkj committed
 * 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. 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * 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.
 *
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
RelevanceTrafficDirection ::= ENUMERATED {
    allTrafficDirections(0), 
    upstreamTraffic(1), 
    downstreamTraffic(2), 
tijinkj's avatar
tijinkj committed
    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.
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - 0 `request`  : for a request message. 
 * - 1 `response` : for a response message.  
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category Communication information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
RequestResponseIndication ::= ENUMERATED {
    request(0), 
    response(1)
}

/**
 * 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.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {
   unavailable(0), 
   emergencyVehicles(1), 
   rescueHelicopterLanding(2), 
   policeActivityOngoing(3), 
   medicalEmergencyOngoing(4), 
   childAbductionInProgress(5)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents a unique identifier assigned to an entity.
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
 */
RoadRegulatorId ::= INTEGER (0..65535)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents an identifier assigned to a section of roadway.
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
 */
RoadSegmentID ::= INTEGER (0..65535)

/**
 * This DE indicates the type of a road segment.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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.
 *
tijinkj's avatar
tijinkj committed
 * @category: Road Topology Information
tijinkj's avatar
tijinkj committed
 * Revision: Editorial update in V2.1.1
tijinkj's avatar
tijinkj committed
 */
RoadType ::= ENUMERATED {
    urban-NoStructuralSeparationToOppositeLanes(0),
    urban-WithStructuralSeparationToOppositeLanes(1),
    nonUrban-NoStructuralSeparationToOppositeLanes(2),
    nonUrban-WithStructuralSeparationToOppositeLanes(3)}

/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode `roadworks`.
 * 
tijinkj's avatar
tijinkj committed
The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - 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.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
RoadworksSubCauseCode ::= INTEGER {
    unavailable(0), 
    majorRoadworks(1),
    roadMarkingWork(2), 
    slowMovingRoadMaintenance(3), 
    shortTermStationaryRoadworks(4), 
   streetCleaning(5), 
   winterService(6)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
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. 
tijinkj's avatar
tijinkj committed
 * Otherwise  stationSafeDistanceIndication is set to TRUE. 
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @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)
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information, Kinematics information
tijinkj's avatar
tijinkj committed
 * 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 093)` if the accuracy is equal to or less than n cm,
 * - `4 093` if the accuracy is equal to or less than 4 093 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.
tijinkj's avatar
tijinkj committed
 * @unit 0,01 meter 
tijinkj's avatar
tijinkj committed
 * @category: GeoReference Information
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095)

/** 
 * This DE indicates the type of sensor.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `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 pmd.
 * - `8` fusion           : in case the information provided by a sensor data fusion system
 * - `9` inductionloop    : in case the sensor is an induction loop.
tijinkj's avatar
tijinkj committed
 * - `10` sphericalCamera : in case the sensor is a spherical camera.
 * - `11` itssaggregation : in case the information is gathered from other received ITS messages
tijinkj's avatar
tijinkj committed
 * - `12` uwb             : in case the sensor is ultra wide band.
tijinkj's avatar
tijinkj committed
 *
 * @category: Sensing Information
 * Revision: created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
SensorType ::= INTEGER {
    undefined       (0),
    radar           (1),
    lidar           (2),
    monovideo       (3),
    stereovision    (4),
    nightvision     (5),
    ultrasonic      (6),
    pmd             (7),
    fusion          (8), 
    inductionloop   (9),
    sphericalCamera (10),
tijinkj's avatar
tijinkj committed
    itssaggregation (11), 
	uwb             (12)
tijinkj's avatar
tijinkj committed
} (0..15)

/**
 * This DE represents a sequence number.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Basic information
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
SequenceNumber ::=  INTEGER (0..65535)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the value of the sub cause codes of the @ref CauseCode `signalViolation`.
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 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,
tijinkj's avatar
tijinkj committed
 * - 4-255                         : reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
SignalViolationSubCauseCode ::= INTEGER {
    unavailable(0), 
    stopSignViolation(1), 
    trafficLightViolation(2), 
    turningRegulationViolation(3)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * This DE represents the sub cause codes of the @ref CauseCode "slowVehicle".
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
Denis Filatov's avatar
Denis Filatov committed
 * - 0 `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,
tijinkj's avatar
tijinkj committed
 * - 9-255                              : reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 * 
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
SlowVehicleSubCauseCode ::= INTEGER {
    unavailable(0), 
    maintenanceVehicle(1), 
    vehiclesSlowingToLookAtAccident(2), 
    abnormalLoad(3), 
    abnormalWideLoad(4), 
    convoy(5), 
    snowplough(6), 
    deicing(7), 
    saltingVehicles(8)
} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * Otherwise, the corresponding bit shall be set to 0.
tijinkj's avatar
tijinkj committed
 * @category Vehicle information
tijinkj's avatar
tijinkj committed
 * Revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
 */
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.
 * The required confidence level is defined by the station applying this DE.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `1` if the speed accuracy is equal to or less than `1 cm/s`.
 * - `n (n > 1 and n < 125)` if the speed accuracy is equal to or less than `n cm/s`.
 * - `125` if the speed accuracy is equal to or less than `125 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.
 * 
tijinkj's avatar
tijinkj committed
 * @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.
tijinkj's avatar
tijinkj committed
 *
 * @unit cm/s
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
SpeedConfidence ::= INTEGER {
    equalOrWithinOneCentimeterPerSec(1), 
    equalOrWithinOneMeterPerSec(100), 
    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
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
tijinkj's avatar
tijinkj committed
 */
SpeedLimit ::= INTEGER {
    oneKmPerHour(1)
} (1..255)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents a speed value, i.e. the magnitude of the horizontal velocity-vector. 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `0` in a standstill situation.
tijinkj's avatar
tijinkj committed
 * - `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.
tijinkj's avatar
tijinkj committed
 * - `16383` if the speed accuracy information is not available.
tijinkj's avatar
tijinkj committed
 * 
 * @unit: 0,01 m/s
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * Revision: Description revised in V2.1.1 (the meaning of 16382 has changed slightly) 
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
SpeedValue ::= INTEGER {
    standstill(0), 
    oneCentimeterPerSec(1), 
    unavailable(16383)
} (0..16383)
tijinkj's avatar
tijinkj committed

/** 
 * This DE represents a speed value with extended range. 
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `-16383` if the speed is equal to or smaller than -163,83 m/s
tijinkj's avatar
tijinkj committed
 * - `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`.
tijinkj's avatar
tijinkj committed
 * - `16382` for speed values equal to or greater than 163,81 m/s.
tijinkj's avatar
tijinkj committed
 * - `16383` if the speed accuracy information is not available.
 * 
 * @unit: 0,01 m/s
 * @category: Kinematics information
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
*/
SpeedValueExtended ::= INTEGER {
    negativeSpeedMaximum   (-16383),
    standstill             (0),
    oneCentimeterPerSec    (1),
    speedMaximum           (16382),
    unavailable            (16383)  
} (-16383..16383)


/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the estimated probability of a stability level and converesely also the probability of a stability loss.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * 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. 
tijinkj's avatar
tijinkj committed
 * - `63`: this value indicates that the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
 * @unit: 2%
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
StabilityLossProbability ::= INTEGER {
    stable                  (0), 
    totalLossofStability   (50), 
    unavailable            (63) 
tijinkj's avatar
tijinkj committed
} (0..63) 

/**
tijinkj's avatar
tijinkj committed
 * The DE represents length as a measure of distance between points or objects used in the definition of various other types. 
tijinkj's avatar
tijinkj committed
 *
 * @unit: 0.1 meter
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
StandardLength::= INTEGER (0..4095) --tbd check range
tijinkj's avatar
tijinkj committed
 * This DE represents length as a measure of distance between points or objects used in the definition of various other types. 
tijinkj's avatar
tijinkj committed
 *
 * @unit: 0.1 meter
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
StandardLengthSmall::= INTEGER (0..255)

/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the duration in minutes since which something is stationary.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematics information
tijinkj's avatar
tijinkj committed
 * Revision: Created in V2.1.1
tijinkj's avatar
tijinkj committed
 */
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". 
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
Denis Filatov's avatar
Denis Filatov committed
 * - 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,
tijinkj's avatar
tijinkj committed
 * - 6 `vehicleOnFire`         : in case of vehicle on fire.
 * - 7-255 reserved for future usage.
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
StationaryVehicleSubCauseCode ::= INTEGER {
    unavailable(0), 
    humanProblem(1), 
    vehicleBreakdown(2), 
    postCrash(3), 
    publicTransportStop(4), 
    carryingDangerousGoods(5), 
    vehicleOnFire (6)} 
(0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
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.
Denis Filatov's avatar
Denis Filatov committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * Revision: V1.3.1
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
StationID ::= INTEGER(0..4294967295)
Denis Filatov's avatar
Denis Filatov committed
/**
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.
Denis Filatov's avatar
Denis Filatov committed
 * 
tijinkj's avatar
tijinkj committed
 * 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.18] 
        class L1, L2 (VRU Profile 3)
 * - 4 `motorcycles`: ITS-S mounted on motor vehicles with less than four wheels as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.18] 
        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.18] class M1,
 * - 6 `bus`: ITS-S mounted on large passenger vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.18] class M2, M3,
 * - 7 `lightTruck`: ITS-S mounted on light Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.18] class N1,
 * - 8 `heavyTruck`: ITS-S mounted on Heavy Goods Vehicles as defined in UNECE/TRANS/WP.29/78/Rev.4 [i.18] 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 
        UNECE/TRANS/WP.29/78/Rev.4 [i.18] class O,
tijinkj's avatar
tijinkj committed
 * - 10 `specialVehicles`: ITS-S mounted on vehicles which have special purposes other than the above (e.g. moving road works vehicle),
 * - 11 `tram`: ITS-S mounted on a vehicle which runs on tracks along public streets,
 * - 12 `lightVruVehicle`: ITS-S carried by a human being traveling on light vehicle , incl. possible use of roller skates or skateboards (VRU profile 2).
 * - 13 `animal`: ITS-S carried by an animal presenting a safety risk to other road users e.g. domesticated dog in a city or horse (VRU Profile 4)
tijinkj's avatar
tijinkj committed
 * - 15 `roadSideUnit`: ITS-S mounted on an infrastructure typically positioned outside of the drivable roadway (e.g. on a gantry, on a pole, 
        on a stationary road works trailer); the infrastructure is static during the entire operation period of the ITS-S (e.g. no stop and go activity),
tijinkj's avatar
tijinkj committed
 * - 16 16-255: reserved for future usage.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Communication information.
tijinkj's avatar
tijinkj committed
 * Revision: revised in V2.1.1 (note to value 9 deleted)
tijinkj's avatar
tijinkj committed
 */
StationType ::= INTEGER {
    unknown(0), 
    pedestrian(1), 
    cyclist(2), 
    moped(3), 
    motorcycle(4), 
    passengerCar(5), 
    bus(6), 
    lightTruck(7), 
    heavyTruck(8), 
    trailer(9), 
    specialVehicles(10), 
    tram(11), 
    lightVruVehicle(12), 
    animal (13), 
    roadSideUnit(15)
} (0..255)

/**
 * This DE represents the absolute accuracy for a reported steering wheel angle value for a confidence level of 95 %.
 * The required confidence level is defined by the station applying this DE.
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `1` if the steering wheel angle accuracy is equal to or less than 1,5 degrees,
tijinkj's avatar
tijinkj committed
 * - `n (n > 1 and n < 126)` if the steering wheel angle accuracy is equal to or less than n x 1,5 degrees,
tijinkj's avatar
tijinkj committed
 * - `126` if the accuracy is out of range, i.e. greater than 187,5 degrees,
 * - `127` if the accuracy information is not available.
 * 
 * @note 1: The fact that a steering wheel angle 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 steering wheel angle value may be valid and used by the application.
 * 
 * If a steering wheel angle value is received and its confidence is set to 'outOfRange(126)',
 * it means that the reported steering wheel angle value is not valid and therefore cannot be trusted.
 * Such value is not useful for the application.
 * 
 * @unit: 1.5 degree
 * @category: Vehicle Information
tijinkj's avatar
tijinkj committed
 * Revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
*/
SteeringWheelAngleConfidence ::= INTEGER {
    equalOrWithinOnePointFiveDegree (1), 
    outOfRange(126), 
    unavailable(127)
} (1..127)

/**
 * This DE represents the steering wheel angle of the vehicle at certain point in time.
 * 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
 * - `-511` if the steering wheel angle is equal to or greater than 511 x 1,5 degrees = 766,5 degrees to the right.
tijinkj's avatar
tijinkj committed
 * - `n (n > -511 and n <= 0)` if  the steering wheel angle is equal to or less than `n x 1,5 degrees`, and greater than `(n-1) x 1,5 degrees`, 
      turning clockwise (i.e. to the right).
 * - `n (n > 1 and n < 511)` if the steering wheel angle is equal to or less than `n x 0,1 degrees`, and greater than `(n-1) x 0,1 degrees`, 
      turning counter-clockwise (i.e. to the left).
tijinkj's avatar
tijinkj committed
 * - `511` if the steering wheel angle is greater than 510 x 1,5 degrees = 765 degrees to the left.
tijinkj's avatar
tijinkj committed
 * - `512` if information is not available.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit: 1.5 degree
tijinkj's avatar
tijinkj committed
 * Revision: Description revised in V2.1.1 (meaning of value 511 has changed slightly).
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
SteeringWheelAngleValue ::= INTEGER { 
tijinkj's avatar
tijinkj committed
    straight(0), 
    onePointFiveDegreesToRight(-1), 
    onePointFiveDegreesToLeft(1), 
    unavailable(512)
} (-511..512)

/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the generic sub cause of a detected event.
tijinkj's avatar
tijinkj committed
 * 
 * @note 1: The sub cause code value assignment varies based on value of @ref CauseCode
Denis Filatov's avatar
Denis Filatov committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * Revision: Description revised in V2.1.1 (this is  the generic sub cause type)
Denis Filatov's avatar
Denis Filatov committed
 */
tijinkj's avatar
tijinkj committed
SubCauseCodeType ::= INTEGER (0..255)

/**
 * This DE indicates a temperature value.
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
tijinkj's avatar
tijinkj committed
 * - `-60` for temperature equal to or less than -60 °C.
 * - `n (n > -60 and n < 67)` for the actual temperature n in °C.
 * - `67` for temperature equal to or greater than 67 °C.
tijinkj's avatar
tijinkj committed
 * 
 * @unit: °C
 * @category: Basic information