ITS-Container.asn 248 KB
Newer Older
tijinkj's avatar
tijinkj committed
 */
DangerousSituationSubCauseCode ::= INTEGER {
    unavailable                     (0), 
    emergencyElectronicBrakeEngaged (1), 
    preCrashSystemEngaged           (2), 
    espEngaged                      (3), 
    absEngaged                      (4), 
    ebEngaged                       (5), 
    brakeWarningEngaged             (6), 
    collisionRiskWarningEngaged     (7)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)

tijinkj's avatar
tijinkj committed
/**
 * This DE represents an offset altitude with regards to a defined altitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * The value shall be set to:
 * - `-12700` for values equal to or lower than -127 metres.
 * - `n` (`n > -12700` and `n <= 0) for altitude offset n x 0,01 meter below the reference position.
 * - `0` for no altitudinal offset.
 * - `n` (`n > 0` and `n < 12799`) for altitude offset n x 0,01 meter above the reference position.
 * - `12799` for values equal to or greater than 127,99 metres.
 * - `12800` when the information is unavailable.
 *
 * @unit: 0.01 metre
 * @category: GeoReference information
 * @revision: editorial update in V2.1.1
 */
DeltaAltitude ::= INTEGER {
    negativeOutOfRange (-12700),
    positiveOutOfRange (12799),
    unavailable        (12800)
} (-12700..12800)

/**
 * This DE represents an offset latitude with regards to a defined latitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * The value shall be set to:
 * - `n` (`n >= -131071` and `n < 0`) for offset n x 0,1 microdegrees towards the south from the reference position.
 * - `0` for no latitudinal offset.
 * - `n` (`n > 0` and `n < 131072`) for offset n x 0,1 microdegrees towards the north from the reference position. 
 * - `131072` when the information is unavailable.
 *
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 * @revision: editorial update in V2.1.1
  */
DeltaLatitude ::= INTEGER {
    unavailable (131072)
} (-131071..131072)

/**
 * This DE represents an offset longitude with regards to a defined longitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * The value shall be set to:
 * - `n` (`n >= -131071` and `n < 0`) for offset n x 0,1 microdegrees towards the west from the reference position.
 * - `0` for no longitudinal offset.
 * - `n` (`n > 0` and `n < 131072`) for offset n x 0,1 microdegrees towards the east from the reference position. 
 * - `131072` when the information is unavailable.
 *
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 * @revision: editorial update in V2.1.1
 */
DeltaLongitude ::= INTEGER {
    unavailable (131072)
} (-131071..131072)

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

/**
 * This DE represents a difference in time with respect to a reference time.

 * Example: a time interval between two consecutive message transmissions.
 * 
 * @unit: 1 ms
 * @category: Basic information
 * @revision: Created in V2.1.1 from the DE TransmissionInterval
 */
DeltaTimeMilliSecondPos ::= INTEGER (1..10000)

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

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

/** 
 * This DE represents a  difference in time with respect to a reference time.
 *
 * @unit: 0,1 s
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
DeltaTimeTenthOfSecond::= INTEGER {
    unavailable (127)  
} (0..127) 

/** 
 * This DE represents a  difference in time with respect to a reference time.
 *
 * @unit: 1 s
 * @category: Basic information
 * @revision: Created in V2.1.1 from ValidityDuration
*/
DeltaTimeSecond ::= INTEGER  (0..86400)


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

/**
 * This DE indicates in which direction something is moving.
 *
 * The value shall be set to:
 * - 0 - `forward`     - to indicate it is moving forward.
 * - 1 - `backwards`   - to indicate it is moving backwards.
 * - 2 - `unavailable` - to indicate that the information is unavailable.
 *
 * @category: Kinematics information
 * @revision: editorial update in V2.1.1
 */
DriveDirection ::= ENUMERATED {
    forward     (0), 
    backward    (1), 
    unavailable (2)
}
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates whether a driving lane is open to traffic.
 * 
 * A lane is counted from inside border of the road excluding the hardshoulder. The size of the bit string shall
 * correspond to the total number of the driving lanes in the carriageway.
 * 
 * The numbering is matched to @ref LanePosition.
 * The bit `0` is used to indicate the innermost lane, bit `1` is used to indicate the second lane from inside border.
 * 
 * If a lane is closed to traffic, the corresponding bit shall be set to `1`. Otherwise, it shall be set to `0`.
 * 
 * @note:Hard shoulder status is not provided by this DE but in @ref HardShoulderStatus.
 * 
 * @category: Traffic information
 * @revision: V1.3.1
 */
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates whether a vehicle (e.g. public transport vehicle, truck) is under the embarkation process.
 * If that is the case, the value is *TRUE*, otherwise *FALSE*.
 *
 * @category: Vehicle information
 * @revision: editorial update in V2.1.1
 */
EmbarkationStatus ::= BOOLEAN
tijinkj's avatar
tijinkj committed
/**
 * This DE indicates the right of priority requested or assumed by an operating emergency vehicle.
 * The right-of-priority bit shall be set to `1` if the corresponding right is requested.
 * 
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 - `requestForRightOfWay`                  - when the vehicle is requesting/assuming the right of way.
 * - 1 - `requestForFreeCrossingAtATrafficLight` - when the vehicle is requesting/assuming the right to pass at a (red) traffic light.
 *
 * @category: Traffic information
 * @revision: description revised in V2.1.1
 */
EmergencyPriority ::= BIT STRING {
    requestForRightOfWay                  (0), 
    requestForFreeCrossingAtATrafficLight (1)
} (SIZE(2))
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode "emergencyVehicleApproaching". 
 * 
 * The value shall be set to:
 * - 0 - `unavailable`                  - in case further detailed information on the emergency vehicle approaching event 
 *                                        is unavailable,
 * - 1 - `emergencyVehicleApproaching`  - in case an operating emergency vehicle is approaching,
 * - 2 -`prioritizedVehicleApproaching` - in case a prioritized vehicle (e.g. bus) is approaching,
 * - 3-255                              - reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {
    unavailable                   (0), 
    emergencyVehicleApproaching   (1), 
    prioritizedVehicleApproaching (2)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE indicated the type of energy being used and stored in vehicle.
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 - `hydrogenStorage`       - when hydrogen is being used and stored in vehicle.
 * - 1 - `electricEnergyStorage` - when electric energy is being used and stored in vehicle.
 * - 2 - `liquidPropaneGas`      - when liquid Propane Gas (LPG) is being used and stored in vehicle.   
 * - 3 - `compressedNaturalGas ` - when compressedNaturalGas (CNG) is being used and stored in vehicle.
 * - 4 - `diesel`                - when diesel is being used and stored in vehicle.
 * - 5 - `gasoline`              - when gasoline is being used and stored in vehicle.
 * - 6 - `ammonia`               - when ammonia is being used and stored in vehicle.
 *
 * - Otherwise, the corresponding bit shall be set to `0`.
 *
 * @category: Vehicle information
 * @revision: editorial revision in V2.1.1 
 */
EnergyStorageType ::= BIT STRING {
    hydrogenStorage       (0), 
    electricEnergyStorage (1), 
    liquidPropaneGas      (2), 
    compressedNaturalGas  (3), 
    diesel                (4), 
    gasoline              (5), 
    ammonia               (6)
}(SIZE(7))

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

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

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

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

/**
 * This DE describes the status of the exterior light switches of a vehicle.
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 - `lowBeamHeadlightsOn`    - when the low beam head light switch is on.
 * - 1 - `highBeamHeadlightsOn`   - when the high beam head light switch is on.
 * - 2 - `leftTurnSignalOn`       - when the left turnSignal switch is on.
 * - 3 - `rightTurnSignalOn`      - when the right turn signal switch is on.
 * - 4 - `daytimeRunningLightsOn` - when the daytime running light switch is on.
 * - 5 - `reverseLightOn`         - when the reverse light switch is on.
 * - 6 - `fogLightOn`             - when the tail fog light switch is on.
 * - 7 - `parkingLightsOn`        - when the parking light switch is on.
 * 
 * @note: The value of each bit indicates the state of the switch, which commands the corresponding light.
 * The bit corresponding to a specific light is set to `1`, when the corresponding switch is turned on,
 * either manually by the driver or automatically by a vehicle system. The bit value does not indicate
 * if the corresponding lamps are alight or not.
 * 
 * If a vehicle is not equipped with a certain light or if the light switch status information is not available,
 * the corresponding bit shall be set to `0`.
 * 
 * As the bit value indicates only the state of the switch, the turn signal and hazard signal bit values shall not
 * alternate with the blinking interval.
 * 
 * For hazard indicator, the `leftTurnSignalOn` (2) and `rightTurnSignalOn` (3) shall be both set to 1.
 * 
 * @category Vehicle information
 * @revision: Description revised in V2.1.1
 */
ExteriorLights ::= BIT STRING {
    lowBeamHeadlightsOn      (0),
    highBeamHeadlightsOn     (1),
    leftTurnSignalOn         (2),
    rightTurnSignalOn        (3),
    daytimeRunningLightsOn   (4),
    reverseLightOn           (5),
    fogLightOn               (6),
    parkingLightsOn          (7)
} (SIZE(8))
tijinkj's avatar
tijinkj committed
/**
 * This DE represents a timestamp based on TimestampIts modulo 65 536.
 * This means that generationDeltaTime = TimestampIts mod 65 536.
 *
 * @category Time information
 * @revision: Created in V2.1.1 based on EN 302 637-2
*/
GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)

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

/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-AnimalOnTheRoad`.
 * 
 * The value shall be set to:
 * - 0 - `unavailable`  - in case further detailed information on the animal on the road event is unavailable,
 * - 1 - `wildAnimals`  - in case wild animals are detected on the road,
 * - 2 - `herdOfAnimals`- in case herd of animals are detected on the road,
 * - 3 - `smallAnimals` - in case small size animal is detected on the road,
 * - 4 - `largeAnimals` - in case large size animal is detected on the road,
 * - 5-255              - reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {
    unavailable   (0), 
    wildAnimals   (1), 
    herdOfAnimals (2), 
    smallAnimals  (3), 
    largeAnimals  (4)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the sub cause code of the @ref CauseCode  `hazardousLocation-DangerousCurve`.
 * 
 * The value shall be set to:
 * - 0 - `unavailable`                                        - in case further detailed information on the dangerous curve is unavailable,
 * - 1 - `dangerousLeftTurnCurve`                             - in case the dangerous curve is a left turn curve,
 * - 2 - `dangerousRightTurnCurve`                            - in case the dangerous curve is a right turn curve,
 * - 3 - `multipleCurvesStartingWithUnknownTurningDirection`  - in case of multiple curves for which the starting curve turning direction is not known,
 * - 4 - `multipleCurvesStartingWithLeftTurn`                 - in case of multiple curves starting with a left turn curve,
 * - 5 - `multipleCurvesStartingWithRightTurn`                - in case of multiple curves stating with a right turn curve,
 * - 6-255                                                    - are reserved for future usage.
 * 
 * The definition of whether a curve is dangerous may vary according to region and according to vehicle types/mass
 * and vehicle speed driving on the curve. This definition is out of scope of the present document.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {
    unavailable                                       (0), 
    dangerousLeftTurnCurve                            (1), 
    dangerousRightTurnCurve                           (2), 
    multipleCurvesStartingWithUnknownTurningDirection (3), 
    multipleCurvesStartingWithLeftTurn                (4), 
    multipleCurvesStartingWithRightTurn               (5)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-ObstacleOnTheRoad`. 
 * 
 * The value shall be set to:
 * - 0 - `unavailable`    - in case further detailed information on the detected obstacle is unavailable,
 * - 1 - `shedLoad`       - in case detected obstacle is large amount of obstacles (shedload),
 * - 2 - `partsOfVehicles`- in case detected obstacles are parts of vehicles,
 * - 3 - `partsOfTyres`   - in case the detected obstacles are parts of tyres,
 * - 4 - `bigObjects`     - in case the detected obstacles are big objects,
 * - 5 - `fallenTrees`    - in case the detected obstacles are fallen trees,
 * - 6 - `hubCaps`        - in case the detected obstacles are hub caps,
 * - 7 - `waitingVehicles`- in case the detected obstacles are waiting vehicles,
 * - 8-255                - reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {
    unavailable     (0), 
    shedLoad        (1), 
    partsOfVehicles (2), 
    partsOfTyres    (3), 
    bigObjects      (4), 
    fallenTrees     (5), 
    hubCaps         (6), 
    waitingVehicles (7)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `hazardousLocation-SurfaceCondition`. 
 * 
The value shall be set to:
 * - 0  - `unavailable`     - in case further detailed information on the road surface condition is unavailable,
 * - 1  - `rockfalls`       - in case rock falls are detected on the road surface,
 * - 2  - `earthquakeDamage`- in case the road surface is damaged by earthquake,
 * - 3  - `sewerCollapse`   - in case of sewer collapse on the road surface,
 * - 4  - `subsidence`      - in case road surface is damaged by subsidence,
 * - 5  - `snowDrifts`      - in case road surface is damaged due to snow drift,
 * - 6  - `stormDamage`     - in case road surface is damaged by strong storm,
 * - 7  - `burstPipe`       - in case road surface is damaged due to pipe burst,
 * - 8  - `volcanoEruption` - in case road surface is damaged due to volcano eruption,
 * - 9  - `fallingIce`      - in case road surface damage is due to falling ice,
 * - 10 - `fire`            - in case there is fire on or near to the road surface,
 * - 11-255                 - reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {
    unavailable      (0), 
    rockfalls        (1), 
    earthquakeDamage (2), 
    sewerCollapse    (3), 
    subsidence       (4), 
    snowDrifts       (5), 
    stormDamage      (6), 
    burstPipe        (7), 
    volcanoEruption  (8), 
    fallingIce       (9), 
    fire             (10)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the absolute accuracy of a reported heading value for a confidence level of 95 %.
 * 
The value shall be set to:
 * - `1` if the heading accuracy is equal to or less than 0,1 degree,
 * - `n (n > 1 and n < 125)` if the heading accuracy is equal to or less than n x 0,1 degree and more than (n-1) x 0,1 degree,
 * - `125` if the heading accuracy is equal to or less than 12,5 degrees,
 * - `126` if the heading accuracy is out of range, i.e. greater than 12,5 degrees,
 * - `127` if the heading accuracy information is not available.
 * 
 * @note:	The fact that a value is received with confidence set to `unavailable(127)` can be caused by several reasons,
 * such as:
 * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
 * - the sensor cannot calculate the accuracy due to lack of variables, or
 * - there has been a vehicle bus (e.g. CAN bus) error.
 * In all 3 cases above, the reported heading value may be valid and used by the application.
 *
 * @note: If a heading value is received and its confidence is set to `outOfRange(126)`, it means that the reported
 * heading value is not valid and therefore cannot be trusted. Such value is not useful for the application.
 * @note: this DE is kept for backwards compatibility reasons only. It is reccomended to use the @ref Wgs84AngleConfidence instead. 
 * 
 * @unit: 0,1 degree
 * @category: GeoReference information
 * @revision: Description revised in V2.1.1
 */
HeadingConfidence ::= Wgs84AngleConfidence

/**
HeadingValue
 * This DE represents the orientation of the horizontal velocity vector with regards to the WGS84 north.
 * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
 *
 * @note: this DE is kept for backwards compatibility reasons only. It is reccomended to use the @ref Wgs84AngleValue instead. 
 *
 * Unit: 0,1 degree
 * Categories: GeoReference information
 * @revision: Description revised in V2.1.1 (usage of value 3600 specified) 
*/
HeadingValue ::= Wgs84AngleValue

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

/**
 * This DE represents the value of the sub cause code of the @ref CauseCode `humanPresenceOnTheRoad`.
 * 
 * The value shall be set to:
 * - 0 - `unavailable`          - in case further detailed information on human presence on the road is unavailable,
 * - 1 - `childrenOnRoadway`    - in case children are detected on the road event,
 * - 2 - `cyclistOnRoadway`     - in case cyclist presence is detected on the road,
 * - 3 - `motorcyclistOnRoadway`- in case motorcyclist presence is detected on the road,
 * - 4-255                      - are reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {
    unavailable           (0), 
    childrenOnRoadway     (1), 
    cyclistOnRoadway      (2), 
    motorcyclistOnRoadway (3)
} (0..255)
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the value of the sub cause codes of the @ref CauseCode "humanProblem".
 * 
 * The value shall be set to:
 * - 0 - `unavailable`    - in case further detailed information on human health problem is unavailable,
 * - 1 - `glycemiaProblem`- in case human problem is due to glycaemia problem,
 * - 2 - `heartProblem`   - in case human problem is due to heart problem,
 * - 3-255                - reserved for future usage.
 *
 * @category: Traffic information
 * @revision: V1.3.1
 */
HumanProblemSubCauseCode ::= INTEGER {
    unavailable     (0), 
    glycemiaProblem (1), 
    heartProblem    (2)
} (0..255)
tijinkj's avatar
tijinkj committed
/** 
 * This DE is a general identifier.
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
Identifier1B ::= INTEGER (0..255)

/** 
 * This DE is a general identifier.
 * 
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
Identifier2B ::= INTEGER (0..65535)

/**
 * This DE represents the quality level of provided information.
 * 
 * The value shall be set to:
 * - 0 - if the information is unavailable.
 * - 1 - if the quality level is lowest
 * - `n (n > 1 and n < 7)` if the quality level is n. 
 * - 7 - if the quality level is highest
 * @note: Definition of quality level is out of scope of the present document.
 *
 * @category: Basic information
 * @revision: Editorial update in V2.1.1
 */
InformationQuality ::= INTEGER (0..7)

/** 
 * This DE defines the type of an interference management zone, so that an ITS-S can 
 * assert the actions to do while passing by such zone (e.g. reduce the transmit power in case of a DSRC tolling station).
 * It is an extension of the type @ref ProtectedZoneType.

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

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

/**
 * This DE indicates a transversal position on the carriageway at a specific longitudinal position, in resolution of lanes of the carriageway. 
 *
 * For right-hand traffic roads, the value shall be set to:
 * - `-1` if the position is off, i.e. besides the road.
 * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the leftmost lane.
 * - `n (n >0 and n < 14)`, if the position is on the n-th driving lane counted from the leftmost lane to the rightmost lane of a specific traffic direction. 
 * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to rightmost lane (if present).
 *
 * For left-hand traffic roads, the value shall be set to:
 * - `-1` if the position is off, i.e. besides the road.
 * - `0` if the position is on the inner hard shoulder, i.e. the hard should adjacent to the rightmost lane.
 * - `n (n >0 and n < 14)`, if the position is on the n-th driving lane counted from the rightmost lane to the leftmost lane of a specific traffic direction. 
 * - `14` if the position is on the outer hard shoulder, i.e. the hard should adjacent to leftmost lane (if present).

 *  @note: in practice this means that the position is counted from "inside" to "outside" no matter which traffic practice is used.
 *
 * If the carriageway allows only traffic in one direction (e.g. in case of dual or multiple carriageway roads), the position is counted from the physical border of the carriageway. 
 * If the carriageway allows traffic in both directions and there is no physical delimitation between traffic directions (e.g. on a single carrriageway road), 
 * the position is counted from the legal (i.e. optical) separation between traffic directions (horizontal marking). 

 * @category: Road topology information
 * @revision: Description revised in V2.1.1
*/
LanePosition ::= INTEGER {
    offTheRoad           (-1), 
    innerHardShoulder    (0), 
    outerHardShoulder    (14) 
} (-1..14)

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

/**
 * This DE represents the width of a lane measured at a defined position.
 *
 * @unit: 0.01 meter
 * @category: GeoReference information
 * @revision: Created in V2.1.1
 */
LaneWidth::= INTEGER (0..1023)

/**
 * This DE represents the absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or
 * in south hemisphere.
 *
 * The value shall be set to:
 * - `n (n >= -900000000 and n < 0)`, i.e. negative values for latitudes south of the Equator.
 * - `0` is used for the latitude of the equator.
 * - `n (n > 0 and n < 900000001)`, i.e. positive values for latitudes north of the Equator.
 * - `900 000 001` when the information is unavailable.
 *
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 * @revision: Editorial update in V2.1.1
 */
Latitude ::= INTEGER {
    unavailable(900000001)
} (-900000000..900000001)

/**
 * This DE represents the vehicle acceleration at lateral direction in the centre of the mass of the empty vehicle.
 * It corresponds to the vehicle coordinate system as specified in ISO 8855 [2].

 * The value shall be set to:
 * - `-160` for values equal to or less than -16 m/s<sup>2</sup>.
 * - `n (n > -160 and n <= 0)` to indicate that the vehicle is accelerating towards the right side with regards to the vehicle orientation 
 *                            with acceleration equal to or less than n x 0,1 m/s<sup>2</sup>, and greater than (n-1) x 0,1 m/s<sup>2</sup>.
 * - `n (n > 0 and n < 160)` to indicate that the vehicle is accelerating towards the left hand side with regards to the vehicle orientation 
						     with acceleration equal to or less than n x 0,1 m/s<sup>2</sup>, and greater than (n-1) x 0,1 m/s<sup>2</sup>.
 * - `160` for acceleration or greater than 15,9 m/s<sup>2</sup>.
 * - `161` when the data is unavailable.
 *
 * @note: the empty load vehicle is defined in ISO 1176 [i.9], clause 4.6.
 * @note: this DF is kept forbackwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead
 *  
 * @unit: 0.1 m/s<sup>2</sup>
 * @category Vehicle information
 * @revision: Description updated in V2.1.1 (the meaning of 160 has changed slightly). This type is now based on the more generic type AccelerationValue.
 */
LateralAccelerationValue ::= AccelerationValue

/**
 * This DE indicates the status of light bar and any sort of audible alarm system besides the horn.
 * This includes various common sirens as well as backup up beepers and other slow speed manoeuvring alerts.
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 - `lightBarActivated`      - when the light bar is activated.
 * - 1 - `sirenActivated`         - when the siren is activated.
 *
 * Otherwise, it shall be set to 0.
 *
 * @category Vehicle information
 * @revision: Editorial update in V2.1.1
 */
LightBarSirenInUse ::= BIT STRING {
    lightBarActivated (0),
    sirenActivated    (1)
} (SIZE(2))
tijinkj's avatar
tijinkj committed
/**
 * This DE represents the absolute geographical longitude in a WGS84 co-ordinate system, providing a range of 180 degrees
 * to the east or to the west of the prime meridian.
 *
 * The value shall be set to:
 * - `n (n > -1800000000 and n < 0)`, i.e. negative values for longitudes to the west.
 * - `0` to indicate the prime meridian. 
 * - `n (n > 0 and n < 1800000001)`, i.e. positive values for longitudes to the east.
 * - `1 800 000 001` when the information is unavailable.
 *
 * The value -1800000000 shall not be used. 
 * 
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 * @revision: Description revised in V2.1.1
 */
Longitude ::= INTEGER {
    valueNotUsed (-1800000000),
    unavailable  (1800000001)
} (-1800000000..1800000001)

 /**
 * This DE represents the vehicle acceleration at longitudinal direction in the centre of the mass of the empty vehicle.
 * It corresponds to the vehicle coordinate system as specified in ISO 8855 [2].
 *
* The value shall be set to:
 * - `-160` for values equal to or less than -16 m/s<sup>2</sup>.
 * - `n (n > -160 and n <= 0)` to indicate that the vehicle is braking with acceleration equal to or less than n x 0,1 m/s<sup>2</sup>, and greater than (n-1) x 0,1 m/s<sup>2</sup>.
 * - `n (n > 0 and n < 160)` to indicate that the vehicle is accelerating with acceleration equal to or less than n x 0,1 m/s<sup>2</sup>, and greater than (n-1) x 0,1 m/s<sup>2</sup>.
 * - `160` for acceleration or greater than 15,9 m/s<sup>2</sup>.
 * - `161` when the data is unavailable. 
 * 
 * This acceleration is along the tangent plane of the road surface and does not include gravity components.
 * @note: this DF is kept forbackwards compatibility reasons only. It is recommended to use @ref AccelerationValue instead
 * 
 * @note: The empty load vehicle is defined in ISO 1176 [i.9], clause 4.6.
 * @category: Vehicle information
 * @revision: description revised in V2.1.1 (the meaning of 160 has changed slightly). This type is now based on  the generic type AccelerationValue.
 */
LongitudinalAccelerationValue::= AccelerationValue

/** 
 * This DE represents the longitudinal offset of the map-matched position of a particular object along the
 * matched lane, beginning from the lane's starting point.
 * 
 * @unit 0,1 m
 * @category: Road topology information
 * @revision: Created in V2.1.1
*/
LongitudinalLanePositionValue ::= INTEGER (0..32767)

/** 
 * This DE represents the absolute accuracy of longitudinal lane position measurement to a confidence level of 95%.
 *
 * The value shall be set to:
 * - `n (n > 0 and n < 101)` if the  accuracy is equal to or less than n x 0,01 m, and more than (n-1) x 0,01 m.
 * - `101` if the acceleration accuracy is out of range i.e. greater than 1 m.
 * - `102` if the data is unavailable.
 *
 * @unit 0,01 meter
 * @category: Road topology information
 * @revision: Created in V2.1.1
*/
LongitudinalLanePositionConfidence ::= INTEGER {
    outOfRange  (101),
    unavailable (102)  
} (0..102)

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