ETSI-ITS-CDD.asn 321 KB
Newer Older
tijinkj's avatar
tijinkj committed
    animal       (3)
} (SIZE(4))

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the possible usage conditions of the VRU device.
tijinkj's avatar
tijinkj committed

 * - The value shall be set to:
 * - 0 `unavailable`      - to indicate that the usage conditions are unavailable,
 * - 1 `other`            - to indicate that the VRU device is in a state not defined below,
 * - 2 `idle`             - to indicate that the human is currently not interacting with the device,
 * - 3 `listeningToAudio` - to indicate that any audio source other than calling is in use,
 * - 4 `typing`           - to indicate that the human is texting or performaing any other manual input activity,
 * - 5 `calling`          - to indicate that the VRU device is currently receiving a call,
 * - 6 `playingGames`     - to indicate that the human is playing games,
 * - 7 `reading`          - to indicate that the human is reading on the VRU device,
 * - 8 `viewing`          - to indicate that the human is watching dynamic content, including following navigation prompts, viewing videos or other visual contents that are not static.
tijinkj's avatar
tijinkj committed
 * - value 9 to 15        - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruDeviceUsage ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable      (0), 
    other            (1), 
    idle             (2), 
    listeningToAudio (3), 
    typing           (4), 
    calling          (5), 
    playingGames     (6), 
    reading          (7), 
tijinkj's avatar
tijinkj committed
    viewing          (8) 
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 * This DE represents the possible VRU environment conditions.
 *
 * - The value shall be set to:
 * - 0 `unavailable`            - to indicate that the information on the type of environment is unavailable,
 * - 1 `intersectionCrossing`   - to indicate that the VRU is on an intersection or crossing,
 * - 2 `zebraCrossing`          - to indicate that the VRU is on a  zebra crossing (crosswalk),
 * - 3 `sidewalk`               - to indicate that the VRU is on a sidewalk,
 * - 4 `onVehicleRoad`          - to indicate that the VRU is on a traffic lane,
 * - 5 `protectedGeographicArea`- to indicate that the VRU is in a protected area.
tijinkj's avatar
tijinkj committed
 * - value 6 to 15              - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruEnvironment ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable             (0), 
    intersectionCrossing    (1), 
    zebraCrossing           (2), 
    sidewalk                (3), 
    onVehicleRoad           (4), 
tijinkj's avatar
tijinkj committed
    protectedGeographicArea (5)
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 *  This DE indicates the status of the possible human control over a VRU vehicle.
 *
 * The value shall be set to:
 * - 0 `unavailable`                 - to indicate that the information is unavailable,
 * - 1 `braking`                     - to indicate that the VRU is braking,
 * - 2 `hardBraking`                 - to indicate that the VRU is braking hard,
 * - 3 `stopPedaling`                - to indicate that the VRU stopped pedaling,
 * - 4 `brakingAndStopPedaling`      - to indicate that the VRU stopped pedaling an is braking,
 * - 5 `hardBrakingAndStopPedaling`  - to indicate that the VRU stopped pedaling an is braking hard,
 * - 6 `noReaction`                  - to indicate that the VRU is not changing its behavior.
tijinkj's avatar
tijinkj committed
 * - 7 to 15                         - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1 and range changed from 0..255 to 0..15
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruMovementControl ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable                (0), 
    braking                    (1), 
    hardBraking                (2), 
    stopPedaling               (3), 
    brakingAndStopPedaling     (4), 
    hardBrakingAndStopPedaling (5), 
tijinkj's avatar
tijinkj committed
    noReaction                 (6) 
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the profile of a pedestrian.
 * 
 * The value shall be set to:
 * - 0 `unavailable`             - to indicate that the information on is unavailable,
 * - 1 `ordinary-pedestrian`     - to indicate a pedestrian to which no more-specific profile applies,
 * - 2 `road-worker`             - to indicate a pedestrian with the role of a road worker,
 * - 3 `first-responder`         - to indicate a pedestrian with the role of a first responder.
tijinkj's avatar
tijinkj committed
 * - value 4 to 15               - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruSubProfilePedestrian ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable         (0), 
    ordinary-pedestrian (1),
    road-worker         (2), 
tijinkj's avatar
tijinkj committed
    first-responder     (3)
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the profile of a VRU and its light VRU vehicle / mounted animal. 
 *
 * The value shall be set to:
 * - 0 `unavailable`           - to indicate that the information  is unavailable,
tijinkj's avatar
tijinkj committed
 * - 1 `bicyclist `            - to indicate a cycle and bicyclist to which no more-specific profile applies, 
 * - 2 `wheelchair-user`       - to indicate a wheelchair and its user,
 * - 3 `horse-and-rider`       - to indicate a horse and rider,
tijinkj's avatar
tijinkj committed
 * - 4 `rollerskater`          - to indicate a roller-skater and skater,
 * - 5 `e-scooter`             - to indicate an e-scooter and rider,
 * - 6 `personal-transporter`  - to indicate a personal-transporter and rider,
tijinkj's avatar
tijinkj committed
 * - 7 `pedelec`               - to indicate a pedelec and rider to which no more-specific profile applies,
 * - 8 `speed-pedelec`         - to indicate a speed-pedelec and rider.
tijinkj's avatar
tijinkj committed
 * - 9 `roadbike`              - to indicate a road bicycle (or road pedelec) and rider,
 * - 10 `childrensbike`        - to indicate a children’s bicycle (or children’s pedelec) and rider,
 * - 11 to 15                  - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, values 9 and 10 assigned in V2.2.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruSubProfileBicyclist ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable          (0), 
    bicyclist            (1), 
    wheelchair-user      (2), 
    horse-and-rider      (3), 
    rollerskater         (4), 
    e-scooter            (5), 
    personal-transporter (6),
    pedelec              (7), 
tijinkj's avatar
tijinkj committed
    speed-pedelec        (8),
    roadbike             (9),
    childrensbike        (10)
tijinkj's avatar
tijinkj committed
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the profile of a motorcyclist and corresponding vehicle.
 * 
 * The value shall be set to:
 * - 0 `unavailable `                  - to indicate that the information  is unavailable,
 * - 1 `moped`                         - to indicate a moped and rider,
 * - 2 `motorcycle`                    - to indicate a motorcycle and rider,
 * - 3 `motorcycle-and-sidecar-right`  - to indicate a motorcycle with sidecar on the right and rider,
 * - 4 `motorcycle-and-sidecar-left`   - to indicate  a motorcycle with sidecar on the left and rider.
tijinkj's avatar
tijinkj committed
 * - 5 to 15                           - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruSubProfileMotorcyclist ::= INTEGER { 
tijinkj's avatar
tijinkj committed
    unavailable                  (0), 
    moped                        (1), 
    motorcycle                   (2), 
    motorcycle-and-sidecar-right (3), 
tijinkj's avatar
tijinkj committed
    motorcycle-and-sidecar-left  (4)
}(0..15)
tijinkj's avatar
tijinkj committed

/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the profile of an animal
tijinkj's avatar
tijinkj committed
 * 
 * The value shall be set to:
 * - 0 `unavailable`     - to indicate that the information  is unavailable,
 * - 1 `wild-animal`     - to indicate a animal living in the wildness, 
 * - 2 `farm-animal`     - to indicate an animal beloning to a farm,
 * - 3 `service-animal`  - to indicate an animal that supports a human being.
tijinkj's avatar
tijinkj committed
 * - 4 to 15             - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruSubProfileAnimal ::= INTEGER {
tijinkj's avatar
tijinkj committed
    unavailable    (0), 
    wild-animal    (1), 
    farm-animal    (2), 
tijinkj's avatar
tijinkj committed
    service-animal (3)
}(0..15)
tijinkj's avatar
tijinkj committed

/**
 * This DE indicates the approximate size of a VRU including the VRU vehicle used.
 * 
 * The value shall be set to:
 * - 0 `unavailable`    - to indicate that there is no matched size class or due to privacy reasons in profile 1, 
 * - 1 `low`            - to indicate that the VRU size class is low depending on the VRU profile,
 * - 2 `medium`         - to indicate that the VRU size class is medium depending on the VRU profile,
 * - 3 `high`           - to indicate that the VRU size class is high depending on the VRU profile.
tijinkj's avatar
tijinkj committed
 * - 4 to 15            - are reserved for future usage. 
tijinkj's avatar
tijinkj committed
 *
 * @category: VRU information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, type changed from ENUMERATED to INTEGER in V2.2.1
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
VruSizeClass ::= INTEGER { 
tijinkj's avatar
tijinkj committed
    unavailable (0), 
    low         (1), 
    medium      (2), 
tijinkj's avatar
tijinkj committed
    high        (3)
}(0..15)
tijinkj's avatar
tijinkj committed

/**
tijinkj's avatar
tijinkj committed
 * This DE describes the status of the exterior light switches of a VRU.
tijinkj's avatar
tijinkj committed
 *
 * The value of each bit indicates the state of the switch, which commands the corresponding light. 
tijinkj's avatar
tijinkj committed
 * The bit corresponding to a specific light shall be set to 1, when the corresponding switch is turned on, either manually by the driver or VRU 
tijinkj's avatar
tijinkj committed
 * or automatically by a vehicle or VRU system: 
 * - 0 `unavailable`     - indicates no information available, 
 * - 1 `backFlashLight ` - indicates the status of the back flash light,
 * - 2 `helmetLight`     - indicates the status of the helmet light,
 * - 3 `armLight`        - indicates the status of the arm light,
 * - 4 `legLight`        - indicates the status of the leg light,
 * - 5 `wheelLight`      - indicates the status of the wheel light. 
tijinkj's avatar
tijinkj committed
 * - Bits 6 to 8         - are reserved for future use. 
tijinkj's avatar
tijinkj committed
 * The bit values do not indicate if the corresponding lamps are alight or not.
 * If  VRU 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.
 *
 * @category: VRU information
 * @revision: Created in V2.1.1
 */ 
VruSpecificExteriorLights ::= BIT STRING {
    unavailable    (0),
    backFlashLight (1),
    helmetLight    (2),
    armLight       (3),
    legLight       (4),
    wheelLight     (5)
} (SIZE(8))

/**
tijinkj's avatar
tijinkj committed
 * This DE indicates the perpendicular distance between front and rear axle of the wheel base of vehicle.
tijinkj's avatar
tijinkj committed
 *
 * The value shall be set to:
 * - `n` (`n >= 1` and `n < 126`) if the value is equal to or less than n x 0,1 metre  and more than (n-1) x 0,1 metre,
 * - `126` indicates that the wheel base distance is equal to or greater than 12,5 metres,
 * - `127` indicates that the information is unavailable.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @unit 0,1 metre
tijinkj's avatar
tijinkj committed
 * @category: Vehicle information
 * @revision: Created in V2.1.1
 */
WheelBaseVehicle ::= INTEGER {
    outOfRange  (126),
    unavailable (127)
} (1..127)

/** 
tijinkj's avatar
tijinkj committed
 * This DE indicates the angle confidence value which represents the estimated accuracy of an angle value with a default confidence level of 95 %.
 * If required, the confidence level can be defined by the corresponding standards applying this DE.
tijinkj's avatar
tijinkj committed
 * 
 * The value shall be set to:
 * - `n` (`n >= 1` and `n < 126`) if the confidence value is equal to or less than n x 0,1 degrees and more than (n-1) x 0,1 degrees,
 * - `126` if the confidence value is out of range, i.e. greater than 12,5 degrees,
 * - `127` if the confidence value is not available.
tijinkj's avatar
tijinkj committed
 *
 *
 * @unit 0,1 degrees
 * @category: GeoReference Information
 * @revision: Created in V2.1.1
*/
Wgs84AngleConfidence ::= INTEGER {
    outOfRange  (126), 
    unavailable (127)  
} (1..127)


/** 
 * This DE represents an angle value in degrees described in the WGS84 reference system with respect to the WGS84 north.
tijinkj's avatar
tijinkj committed
 * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
tijinkj's avatar
tijinkj committed
 * When the information is not available, the DE shall be set to 3 601. The value 3600 shall not be used.
 *
 * @unit 0,1 degrees
 * @category: GeoReference Information
 * @revision: Created in V2.1.1
*/
Wgs84AngleValue ::= INTEGER { 
    wgs84North  (0),
    wgs84East   (900),
    wgs84South  (1800),
    wgs84West   (2700),
    doNotUse    (3600),
    unavailable (3601)
} (0..3601)

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the World Manufacturer Identifier (WMI). The values are assigned according to ISO 3779 [6].
tijinkj's avatar
tijinkj committed
 * 
 *
 * @category: Vehicle information
 * @revision: V1.3.1
 */
WMInumber ::= IA5String (SIZE(1..3))

/**
 * This DE represents the sub cause codes of the @ref CauseCode `wrongWayDriving` .
tijinkj's avatar
tijinkj committed
 * 
 * The value shall be set to:
 * - 0 `unavailable`    - in case further detailed information on wrong way driving event is unavailable,
 * - 1 `wrongLane`      - in case vehicle is driving on a lane for which it has no authorization to use,
 * - 2 `wrongDirection` - in case vehicle is driving in a direction that it is not allowed,
tijinkj's avatar
tijinkj committed
 * - 3-255              - reserved for future usage.
tijinkj's avatar
tijinkj committed
 * 
 * @category: Traffic information
 * @revision: V1.3.1
 */
WrongWayDrivingSubCauseCode ::= INTEGER {
    unavailable    (0), 
    wrongLane      (1), 
    wrongDirection (2)
} (0..255)

/**
ASN.1 Documenter's avatar
ASN.1 Documenter committed
 * This DE indicates the yaw rate confidence value which represents the estimated accuracy for a yaw rate value with a default confidence level of 95 %.
tijinkj's avatar
tijinkj committed
 * If required, the confidence level can be defined by the corresponding standards applying this DE.
tijinkj's avatar
tijinkj committed
 * 
 * The value shall be set to:
 * - `0` if the confidence value is equal to or less than 0,01 degree/second,
 * - `1` if the confidence value is equal to or less than 0,05 degrees/second or greater than 0,01 degree/second,
 * - `2` if the confidence value is equal to or less than 0,1 degree/second or greater than 0,05 degree/second,
 * - `3` if the confidence value is equal to or less than 1 degree/second or greater than 0,1 degree/second,
 * - `4` if the confidence value is equal to or less than 5 degrees/second or greater than 1 degrees/second,
 * - `5` if the confidence value is equal to or less than 10 degrees/second or greater than 5 degrees/second,
 * - `6` if the confidence value is equal to or less than 100 degrees/second or greater than 10 degrees/second,
 * - `7` if the confidence value is out of range, i.e. greater than 100 degrees/second,
 * - `8` if the confidence value is unavailable.
 * 
 * NOTE: The fact that a yaw rate value is received with confidence value set to `unavailable(8)` can be caused by
tijinkj's avatar
tijinkj committed
 * 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.
tijinkj's avatar
tijinkj committed
 * In all 3 cases above, the yaw rate value may be valid and used by the application.
tijinkj's avatar
tijinkj committed
 * 
 * If a yaw rate value is received and its confidence value is set to `outOfRange(7)`, it means that the 
tijinkj's avatar
tijinkj committed
 * yaw rate value is not valid and therefore cannot be trusted. Such value is not useful the application.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Vehicle information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
 */
YawRateConfidence ::= ENUMERATED {
    degSec-000-01 (0),
    degSec-000-05 (1),
    degSec-000-10 (2),
tijinkj's avatar
tijinkj committed
    degSec-001-00 (3), 
tijinkj's avatar
tijinkj committed
    degSec-005-00 (4),
    degSec-010-00 (5),
    degSec-100-00 (6),
    outOfRange    (7),
    unavailable   (8)
}

/**
tijinkj's avatar
tijinkj committed
 * This DE represents the vehicle rotation around z-axis of the coordinate system centred on the centre of mass of the empty-loaded
 * vehicle. The leading sign denotes the direction of rotation.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * The value shall be provided in the vehicle coordinate system as defined in ISO 8855 [21], clause 2.11.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * The value shall be set to:
 * - `-32 766` to indicate that the yaw rate is equal to or greater than 327,66 degrees/second to the right,
 * - `n` (`n > -32 766` and `n <= 0`) to indicate that the rotation is clockwise (i.e. to the right) and is equal to or less than n x 0,01 degrees/s, 
tijinkj's avatar
tijinkj committed
      and greater than (n-1) x 0,01 degrees/s,
 * - `n` (`n > 0` and `n < 32 766`) to indicate that the rotation is anti-clockwise (i.e. to the left) and is equal to or less than n x 0,01 degrees/s, 
tijinkj's avatar
tijinkj committed
      and greater than (n-1) x 0,01 degrees/s,
 * - `32 766` to indicate that the yaw rate is greater than 327.65 degrees/second to the left,
 * - `32 767` to indicate that the information is not available.
tijinkj's avatar
tijinkj committed
 * 
 * The yaw rate value shall be a raw data value, i.e. not filtered, smoothed or otherwise modified.
 * The reading instant should be the same as for the vehicle acceleration.
 * 
tijinkj's avatar
tijinkj committed
 * @note: The empty load vehicle is defined in ISO 1176 [8], clause 4.6.
tijinkj's avatar
tijinkj committed
 * 
 * @unit: 0,01 degree per second. 
 * @category: Vehicle Information
 * @revision: Desription revised in V2.1.1 (the meaning of 32766 has changed slightly). 
*/
YawRateValue ::= INTEGER {
    negativeOutOfRange (-32766), 
    positiveOutOfRange (32766), 
    unavailable        (32767)
} (-32766..32767)

----------------------------------------
-- Specification of CDD Data Frames:
----------------------------------------

tijinkj's avatar
tijinkj committed
/**
 * This DF represents an acceleration vector with associated confidence value.
 *
 * It shall include the following components: 
 * 
tijinkj's avatar
tijinkj committed
 * @field polarAcceleration: the representation of the acceleration vector in a polar or cylindrical coordinate system. 
tijinkj's avatar
tijinkj committed
 * 
 * @field cartesianAcceleration: the representation of the acceleration vector in a cartesian coordinate system.
 * 
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
Acceleration3dWithConfidence::= CHOICE {
    polarAcceleration                    AccelerationPolarWithZ,
    cartesianAcceleration                AccelerationCartesian 
}

/**
tijinkj's avatar
tijinkj committed
 * This DF represents an acceleration vector in a polar or cylindrical coordinate system.
tijinkj's avatar
tijinkj committed
 
 * It shall include the following components: 
 * 
tijinkj's avatar
tijinkj committed
 * @field accelerationMagnitude: magnitude of the acceleration vector projected onto the reference plane, with the associated confidence value.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field accelerationDirection: polar angle of the acceleration vector projected onto the reference plane, with the associated confidence value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field zAcceleration: the optional z component of the acceleration vector along the reference axis of the cylindrical coordinate system, with the associated confidence value.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
AccelerationPolarWithZ::= SEQUENCE{
tijinkj's avatar
tijinkj committed
    accelerationMagnitude                             AccelerationMagnitude,
tijinkj's avatar
tijinkj committed
    accelerationDirection                             CartesianAngle,
    zAcceleration                                     AccelerationComponent OPTIONAL
}

/**
tijinkj's avatar
tijinkj committed
 * This DF represents a acceleration vector in a cartesian coordinate system.
tijinkj's avatar
tijinkj committed
 
 * It shall include the following components: 
 * 
tijinkj's avatar
tijinkj committed
 * @field xAcceleration: the x component of the acceleration vector with the associated confidence value.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field yAcceleration: the y component of the acceleration vector with the associated confidence value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field zAcceleration: the optional z component of the acceleration vector with the associated confidence value.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
AccelerationCartesian::= SEQUENCE{
    xAcceleration      AccelerationComponent,
    yAcceleration      AccelerationComponent,
    zAcceleration      AccelerationComponent OPTIONAL
}            

tijinkj's avatar
tijinkj committed
/** 
tijinkj's avatar
tijinkj committed
 * This DF represents an acceleration component along with a confidence value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field value: the value of the acceleration component which can be estimated as the mean of the current distribution.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field confidence: the confidence value associated to the provided value.
tijinkj's avatar
tijinkj committed
 *
 * @category: Kinematic Information
 * @revision: Created in V2.1.1
 */
tijinkj's avatar
tijinkj committed
AccelerationComponent ::= SEQUENCE {
tijinkj's avatar
tijinkj committed
    value         AccelerationValue,
tijinkj's avatar
tijinkj committed
    confidence    AccelerationConfidence
}

/** 
 * This DF represents information associated to changes in acceleration. 
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
 * @field accelOrDecel: the indication of an acceleration change.
 *
tijinkj's avatar
tijinkj committed
 * @field actionDeltaTime: the period over which the acceleration change action is performed.
tijinkj's avatar
tijinkj committed
 *
 * @category: Kinematic Information
 * @revision: Created in V2.1.1
 */
AccelerationChangeIndication ::= SEQUENCE {
    accelOrDecel       AccelerationChange,
    actionDeltaTime    DeltaTimeTenthOfSecond,
    ...
}

tijinkj's avatar
tijinkj committed
/**
 * This DF represents the magnitude of the acceleration vector and associated confidence value.
 *
 * It shall include the following components: 
 * 
 * @field accelerationMagnitudeValue: the magnitude of the acceleration vector.
 * 
 * @field accelerationConfidence: the confidence value of the magnitude value.
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
AccelerationMagnitude::= SEQUENCE {
    accelerationMagnitudeValue   AccelerationMagnitudeValue,
    accelerationConfidence       AccelerationConfidence
}

tijinkj's avatar
tijinkj committed
/**
 * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
 * 
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field originatingStationId: Id of the ITS-S that takes the action. 
tijinkj's avatar
tijinkj committed
 * 
 * @field sequenceNumber: a sequence number. 
 * 
 * @category: Communication information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 based on @ref ActionID.
tijinkj's avatar
tijinkj committed
 */
tijinkj's avatar
tijinkj committed
ActionId ::= SEQUENCE {
    originatingStationId    StationId,
tijinkj's avatar
tijinkj committed
    sequenceNumber          SequenceNumber
}

tijinkj's avatar
tijinkj committed
/**
 * This DF represents an identifier used to describe a protocol action taken by an ITS-S.
 * 
 * It shall include the following components: 
 *
 * @field originatingStationId: Id of the ITS-S that takes the action. 
 * 
 * @field sequenceNumber: a sequence number. 
 * 
 * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref ActionId instead. 
 * @category: Communication information
 * @revision: V1.3.1
 */
ActionID ::= SEQUENCE {
    originatingStationId    StationID,
    sequenceNumber          SequenceNumber
}

tijinkj's avatar
tijinkj committed
/**
tijinkj's avatar
tijinkj committed
 * This DF shall contain a list of @ref ActionId. 
tijinkj's avatar
tijinkj committed

 * @category: Communication Information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 based on ReferenceDenms from DENM Release 1
tijinkj's avatar
tijinkj committed
*/
tijinkj's avatar
tijinkj committed
ActionIdList::= SEQUENCE (SIZE(1..8, ...)) OF ActionId
tijinkj's avatar
tijinkj committed

/**
tijinkj's avatar
tijinkj committed
 * This DF provides the altitude and confidence level of an altitude information in a WGS84 coordinate system.
 * The specific WGS84 coordinate system is specified by the corresponding standards applying this DE.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
 * @field altitudeValue: altitude of a geographical point.
 *
tijinkj's avatar
tijinkj committed
 * @field altitudeConfidence: confidence level of the altitudeValue.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref AltitudeWithConfidence instead. 
tijinkj's avatar
tijinkj committed
 * @category: GeoReference information
tijinkj's avatar
tijinkj committed
 * @revision: Description revised in V2.1.1
tijinkj's avatar
tijinkj committed
 */
Altitude ::= SEQUENCE {
    altitudeValue         AltitudeValue,
    altitudeConfidence    AltitudeConfidence
}

/** 
 * This DE represents a general container for usage in various types of messages.
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field stationType: the type of technical context in which the ITS-S that has generated the message is integrated in.
tijinkj's avatar
tijinkj committed
 *
 * @field referencePosition: the reference position of the station that has generated the message that contains the basic container.
 *
 * @category: Basic information
 * @revision: Created in V2.1.1
*/
BasicContainer ::= SEQUENCE {
tijinkj's avatar
tijinkj committed
	stationType          TrafficParticipantType,
tijinkj's avatar
tijinkj committed
	referencePosition    ReferencePositionWithConfidence,
tijinkj's avatar
tijinkj committed
	...
}

tijinkj's avatar
tijinkj committed
/** 
 * This DF provides information about the configuration of a road section in terms of lanes using a list of @ref LanePositionAndType .
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/
tijinkj's avatar
tijinkj committed
BasicLaneConfiguration::= SEQUENCE(SIZE(1..16,...)) OF BasicLaneInformation 

/** 
 * This DF provides basic information about a single lane of a road segment.
 * It includes the following components: 
 * 
 * @field laneNumber: the number associated to the lane that provides a transversal identification. 
 * 
 * @field direction: the direction of traffic flow allowed on the lane. 
 * 
 * @field laneWidth: the optional width of the lane.
 *
 * @field connectingLane: the number of the connecting lane in the next road section, i.e. the number of the lane which the vehicle will use when travelling from one section to the next,
 * if it does not actively change lanes. If this component is absent, the lane name number remains the same in the next section.
 *
 * @field connectingRoadSection: the identifier of the next road section in direction of traffic, that is connecting to the current road section. 
 * If this component is absent, the connecting road section is the one following the instance where this DF is placed in the @ref RoadConfigurationSectionList.
 *
 * @category: Road topology information
 * @revision: Created in V2.2.1
*/

BasicLaneInformation::= SEQUENCE{
  laneNumber	         LanePosition,
  direction		         Direction,
  laneWidth		         LaneWidth OPTIONAL,
  connectingLane         LanePosition OPTIONAL,
  connectingRoadSection  RoadSectionId OPTIONAL,
  ...
}
((WITH COMPONENTS {..., connectingLane PRESENT}) |
 (WITH COMPONENTS {..., connectingLane ABSENT, connectingRoadSection ABSENT}))
tijinkj's avatar
tijinkj committed

tijinkj's avatar
tijinkj committed
/** 
tijinkj's avatar
tijinkj committed
 * This DF represents a general Data Frame to describe an angle component along with a confidence value in a cartesian coordinate system.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
 * @field value: The angle value which can be estimated as the mean of the current distribution.
 *
tijinkj's avatar
tijinkj committed
 * @field confidence: The confidence value associated to the provided value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Basic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
CartesianAngle ::= SEQUENCE {
    value         CartesianAngleValue,
    confidence    AngleConfidence
}

/** 
tijinkj's avatar
tijinkj committed
 * This DF represents an angular velocity component along with a confidence value in a cartesian coordinate system.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field value: The angular velocity component.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field confidence: The confidence value associated to the provided value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1
 */
tijinkj's avatar
tijinkj committed
CartesianAngularVelocityComponent ::= SEQUENCE {
    value         CartesianAngularVelocityComponentValue,
tijinkj's avatar
tijinkj committed
    confidence    AngularSpeedConfidence
}

/** 
tijinkj's avatar
tijinkj committed
 * This DF represents a general Data Frame to describe an angular acceleration component along with a confidence value in a cartesian coordinate system.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field value: The angular acceleration component value.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field confidence: The confidence value associated to the provided value.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @category: Kinematic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1 
 */
tijinkj's avatar
tijinkj committed
CartesianAngularAccelerationComponent ::= SEQUENCE {
    value         CartesianAngularAccelerationComponentValue,
tijinkj's avatar
tijinkj committed
    confidence    AngularAccelerationConfidence
}

/**
tijinkj's avatar
tijinkj committed
 * This DF represents a coordinate along with a confidence value in a cartesian reference system.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field value: the coordinate value, which can be estimated as the mean of the current distribution.
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field confidence: the coordinate confidence value associated to the provided value.
tijinkj's avatar
tijinkj committed
 *
 * @category: GeoReference information
 * @revision: Created in V2.1.1
*/
CartesianCoordinateWithConfidence ::= SEQUENCE {
tijinkj's avatar
tijinkj committed
    value         CartesianCoordinateLarge,
tijinkj's avatar
tijinkj committed
    confidence    CoordinateConfidence
}

/** 
 * This DF represents a  position in a two- or three-dimensional cartesian coordinate system.
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
 * @field xCoordinate: the X coordinate value.
 *
 * @field yCoordinate: the Y coordinate value.
 *
 * @field zCoordinate: the optional Z coordinate value.
 * 
 * @category: GeoReference information
 * @revision: Created in V2.1.1
*/
CartesianPosition3d::=SEQUENCE{
    xCoordinate    CartesianCoordinate,
    yCoordinate    CartesianCoordinate,
    zCoordinate    CartesianCoordinate OPTIONAL
}

tijinkj's avatar
tijinkj committed
/** 
tijinkj's avatar
tijinkj committed
 * This DF represents a  position in a two- or three-dimensional cartesian coordinate system with an associated confidence level for each coordinate.
tijinkj's avatar
tijinkj committed
 *
 * It shall include the following components: 
 *
 * @field xCoordinate: the X coordinate value with the associated confidence level.
 *
 * @field yCoordinate: the Y coordinate value with the associated confidence level.
 *
 * @field zCoordinate: the optional Z coordinate value with the associated confidence level.
 * 
 * @category: GeoReference information
 * @revision: Created in V2.1.1
*/
CartesianPosition3dWithConfidence::= SEQUENCE{    
    xCoordinate    CartesianCoordinateWithConfidence, 
    yCoordinate    CartesianCoordinateWithConfidence, 
    zCoordinate    CartesianCoordinateWithConfidence OPTIONAL
}

tijinkj's avatar
tijinkj committed
/**
 * This DF is a representation of the cause code value of a traffic event. 
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
 * @field causeCode: the main cause of a detected event. 
 *
 * @field subCauseCode: the subordinate cause of a detected event. 
 *
 * The semantics of the entire DF are completely defined by the component causeCode. The interpretation of the subCauseCode may 
 * provide additional information that is not strictly necessary to understand the causeCode itself, and is therefore optional.
 *
tijinkj's avatar
tijinkj committed
 * @note: this DF is kept for backwards compatibility reasons only. It is recommended to use the @ref CauseCodeV2 instead. 
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
 * @revision: Editorial update in V2.1.1
 */
CauseCode ::= SEQUENCE {
    causeCode       CauseCodeType,
    subCauseCode    SubCauseCodeType,
    ...
}

/**
 * This DF is a representation of the cause code value and associated sub cause code value of a traffic event. 
 *
tijinkj's avatar
tijinkj committed
 * The following options are available:
 * - 0                                                        - reserved for future use,
 * - 1  - `trafficCondition1`                                 - in case the type of event is an abnormal traffic condition,
 * - 2  - `accident2`                                         - in case the type of event is a road accident,
 * - 3  - `roadworks3`                                        - in case the type of event is roadwork,
 * - 4                                                        - reserved for future usage,
 * - 5  - `impassability5`                                    - in case the  type of event is unmanaged road blocking, referring to any
 *                                                              blocking of a road, partial or total, which has not been adequately secured and signposted,
 * - 6  - `adverseWeatherCondition-Adhesion6`                 - in case the  type of event is low adhesion,
 * - 7  - `aquaplaning7`                                      - danger of aquaplaning on the road,
 * - 8                                                        - reserved for future usage,
 * - 9  - `hazardousLocation-SurfaceCondition9`               - in case the type of event is abnormal road surface condition,
 * - 10 - `hazardousLocation-ObstacleOnTheRoad10`             - in case the type of event is obstacle on the road,
 * - 11 - `hazardousLocation-AnimalOnTheRoad11`               - in case the type of event is animal on the road,
tijinkj's avatar
tijinkj committed
 * - 12 - `humanPresenceOnTheRoad`                            - in case the type of event is presence of human vulnerable road user on the road,
tijinkj's avatar
tijinkj committed
 * - 13                                                       - reserved for future usage,
 * - 14 - `wrongWayDriving14`                                 - in case the type of the event is vehicle driving in wrong way,
 * - 15 - `rescueAndRecoveryWorkInProgress15`                 - in case the type of event is rescue and recovery work for accident or for a road hazard in progress,
 * - 16                                                       - reserved for future usage,
 * - 17 - `adverseWeatherCondition-ExtremeWeatherCondition17` - in case the type of event is extreme weather condition,
 * - 18 - `adverseWeatherCondition-Visibility18`              - in case the type of event is low visibility,
 * - 19 - `adverseWeatherCondition-Precipitation19`           - in case the type of event is precipitation,
 * - 20 - `violence20`                                        - in case the the type of event is human violence on or near the road,
 * - 21-25                                                    - reserved for future usage,
 * - 26 - `slowVehicle26`                                     - in case the type of event is slow vehicle driving on the road,
 * - 27 - `dangerousEndOfQueue27`                             - in case the type of event is dangerous end of vehicle queue,
tijinkj's avatar
tijinkj committed
 * - 28 - `publicTransportVehicleApproaching                  - in case the type of event is a public transport vehicle approaching, with a priority defined by applicable traffic regulations,
 * - 29-90                                                    - are reserved for future usage,
tijinkj's avatar
tijinkj committed
 * - 91 - `vehicleBreakdown91`                                - in case the type of event is break down vehicle on the road,
 * - 92 - `postCrash92`                                       - in case the type of event is a detected crash,
 * - 93 - `humanProblem93`                                    - in case the type of event is human health problem in vehicles involved in traffic,
 * - 94 - `stationaryVehicle94`                               - in case the type of event is stationary vehicle,
tijinkj's avatar
tijinkj committed
 * - 95 - `emergencyVehicleApproaching95`                     - in case the type of event is an approaching vehicle operating on a mission for which the 
                                                                applicable traffic regulations provide it with defined priority rights in traffic. 
tijinkj's avatar
tijinkj committed
 * - 96 - `hazardousLocation-DangerousCurve96`                - in case the type of event is dangerous curve,
 * - 97 - `collisionRisk97`                                   - in case the type of event is a collision risk,
 * - 98 - `signalViolation98`                                 - in case the type of event is signal violation,
 * - 99 - `dangerousSituation99`                              - in case the type of event is dangerous situation in which autonomous safety system in vehicle 
 *                                                              is activated,
 * - 100 - `railwayLevelCrossing100`                          - in case the type of event is a railway level crossing. 
 * - 101-255                                                  - are reserved for future usage.
 *
tijinkj's avatar
tijinkj committed
 * @note: this DF is defined for use as part of CauseCodeV2. It is recommended to use CauseCodeV2.
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, the type of impassability5 changed to ImpassabilitySubCauseCode in V2.2.1, value 28 added in V2.2.1, definition of value 12 and 95 changed in V2.2.1
tijinkj's avatar
tijinkj committed
 */
CauseCodeChoice::= CHOICE {
tijinkj's avatar
tijinkj committed
    reserved0                                          SubCauseCodeType,
    trafficCondition1                                  TrafficConditionSubCauseCode,
    accident2                                          AccidentSubCauseCode,
    roadworks3                                         RoadworksSubCauseCode,
    reserved4                                          SubCauseCodeType,
tijinkj's avatar
tijinkj committed
    impassability5                                     ImpassabilitySubCauseCode,
tijinkj's avatar
tijinkj committed
    adverseWeatherCondition-Adhesion6                  AdverseWeatherCondition-AdhesionSubCauseCode,
    aquaplaning7                                       SubCauseCodeType,
    reserved8                                          SubCauseCodeType,
    hazardousLocation-SurfaceCondition9                HazardousLocation-SurfaceConditionSubCauseCode,
    hazardousLocation-ObstacleOnTheRoad10              HazardousLocation-ObstacleOnTheRoadSubCauseCode,
    hazardousLocation-AnimalOnTheRoad11                HazardousLocation-AnimalOnTheRoadSubCauseCode,
    humanPresenceOnTheRoad12                           HumanPresenceOnTheRoadSubCauseCode,
    reserved13                                         SubCauseCodeType,
    wrongWayDriving14                                  WrongWayDrivingSubCauseCode,
    rescueAndRecoveryWorkInProgress15                  RescueAndRecoveryWorkInProgressSubCauseCode,
    reserved16                                         SubCauseCodeType,
    adverseWeatherCondition-ExtremeWeatherCondition17  AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode,
    adverseWeatherCondition-Visibility18               AdverseWeatherCondition-VisibilitySubCauseCode,
    adverseWeatherCondition-Precipitation19            AdverseWeatherCondition-PrecipitationSubCauseCode,
    violence20                                         SubCauseCodeType,
    reserved21                                         SubCauseCodeType,
    reserved22                                         SubCauseCodeType,
    reserved23                                         SubCauseCodeType,
    reserved24                                         SubCauseCodeType,
    reserved25                                         SubCauseCodeType,
    slowVehicle26                                      SlowVehicleSubCauseCode,
    dangerousEndOfQueue27                              DangerousEndOfQueueSubCauseCode,
tijinkj's avatar
tijinkj committed
    publicTransportVehicleApproaching28                SubCauseCodeType,
tijinkj's avatar
tijinkj committed
    reserved29                                         SubCauseCodeType,
    reserved30                                         SubCauseCodeType,
    reserved31                                         SubCauseCodeType,
    reserved32                                         SubCauseCodeType,
    reserved33                                         SubCauseCodeType,
    reserved34                                         SubCauseCodeType,
    reserved35                                         SubCauseCodeType,
    reserved36                                         SubCauseCodeType,
    reserved37                                         SubCauseCodeType,
    reserved38                                         SubCauseCodeType,
    reserved39                                         SubCauseCodeType,
    reserved40                                         SubCauseCodeType,
    reserved41                                         SubCauseCodeType,
    reserved42                                         SubCauseCodeType,
    reserved43                                         SubCauseCodeType,
    reserved44                                         SubCauseCodeType,
    reserved45                                         SubCauseCodeType,
    reserved46                                         SubCauseCodeType,
    reserved47                                         SubCauseCodeType,
    reserved48                                         SubCauseCodeType,
    reserved49                                         SubCauseCodeType,
    reserved50                                         SubCauseCodeType,
    reserved51                                         SubCauseCodeType,
    reserved52                                         SubCauseCodeType,
    reserved53                                         SubCauseCodeType,
    reserved54                                         SubCauseCodeType,
    reserved55                                         SubCauseCodeType,
    reserved56                                         SubCauseCodeType,
    reserved57                                         SubCauseCodeType,
    reserved58                                         SubCauseCodeType,   
    reserved59                                         SubCauseCodeType, 
    reserved60                                         SubCauseCodeType,
    reserved61                                         SubCauseCodeType,
    reserved62                                         SubCauseCodeType,
    reserved63                                         SubCauseCodeType,
    reserved64                                         SubCauseCodeType,
    reserved65                                         SubCauseCodeType,
    reserved66                                         SubCauseCodeType,    
    reserved67                                         SubCauseCodeType,
    reserved68                                         SubCauseCodeType,
    reserved69                                         SubCauseCodeType,
    reserved70                                         SubCauseCodeType,
    reserved71                                         SubCauseCodeType,
    reserved72                                         SubCauseCodeType,
    reserved73                                         SubCauseCodeType,
    reserved74                                         SubCauseCodeType,
    reserved75                                         SubCauseCodeType,
    reserved76                                         SubCauseCodeType,
    reserved77                                         SubCauseCodeType,
    reserved78                                         SubCauseCodeType,
    reserved79                                         SubCauseCodeType,
    reserved80                                         SubCauseCodeType,
    reserved81                                         SubCauseCodeType,
    reserved82                                         SubCauseCodeType,
    reserved83                                         SubCauseCodeType,
    reserved84                                         SubCauseCodeType,
    reserved85                                         SubCauseCodeType,
    reserved86                                         SubCauseCodeType,
    reserved87                                         SubCauseCodeType,
    reserved88                                         SubCauseCodeType,
    reserved89                                         SubCauseCodeType,
    reserved90                                         SubCauseCodeType,
    vehicleBreakdown91                                 VehicleBreakdownSubCauseCode,
    postCrash92                                        PostCrashSubCauseCode,
    humanProblem93                                     HumanProblemSubCauseCode,
    stationaryVehicle94                                StationaryVehicleSubCauseCode,
    emergencyVehicleApproaching95                      EmergencyVehicleApproachingSubCauseCode,
    hazardousLocation-DangerousCurve96                 HazardousLocation-DangerousCurveSubCauseCode,
    collisionRisk97                                    CollisionRiskSubCauseCode,
    signalViolation98                                  SignalViolationSubCauseCode,
    dangerousSituation99                               DangerousSituationSubCauseCode,
    railwayLevelCrossing100                            RailwayLevelCrossingSubCauseCode,
    reserved101                                        SubCauseCodeType,
    reserved102                                        SubCauseCodeType,
    reserved103                                        SubCauseCodeType,
    reserved104                                        SubCauseCodeType,
    reserved105                                        SubCauseCodeType,
    reserved106                                        SubCauseCodeType,
    reserved107                                        SubCauseCodeType,
    reserved108                                        SubCauseCodeType,
    reserved109                                        SubCauseCodeType,
    reserved110                                        SubCauseCodeType,
    reserved111                                        SubCauseCodeType,
    reserved112                                        SubCauseCodeType,
    reserved113                                        SubCauseCodeType,
    reserved114                                        SubCauseCodeType,
    reserved115                                        SubCauseCodeType,
    reserved116                                        SubCauseCodeType,
    reserved117                                        SubCauseCodeType,
    reserved118                                        SubCauseCodeType,
    reserved119                                        SubCauseCodeType,
    reserved120                                        SubCauseCodeType,
    reserved121                                        SubCauseCodeType,
    reserved122                                        SubCauseCodeType,
    reserved123                                        SubCauseCodeType,
    reserved124                                        SubCauseCodeType,
    reserved125                                        SubCauseCodeType,
    reserved126                                        SubCauseCodeType,
    reserved127                                        SubCauseCodeType,
    reserved128                                        SubCauseCodeType
tijinkj's avatar
tijinkj committed
  }

/**
 * This DF is an alternative representation of the cause code value of a traffic event. 
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * @field ccAndScc: the main cause of a detected event. Each entry is of a different type and represents the sub cause code.
tijinkj's avatar
tijinkj committed

 * The semantics of the entire DF are completely defined by the choice value which represents the cause code value. 
 * The interpretation of the sub cause code value may provide additional information that is not strictly necessary to understand 
 * the cause code itself, and is therefore optional.
tijinkj's avatar
tijinkj committed
 *
 * @category: Traffic information
tijinkj's avatar
tijinkj committed
 * @revision: Created in V2.1.1, description amended in V2.2.1
tijinkj's avatar
tijinkj committed
 */
CauseCodeV2 ::= SEQUENCE {
    ccAndScc    CauseCodeChoice,
tijinkj's avatar
tijinkj committed
    ...
tijinkj's avatar
tijinkj committed
}

/**
 * The DF describes the position of a CEN DSRC road side equipment.
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 * 
 * @field protectedZoneLatitude: the latitude of the CEN DSRC road side equipment.
 * 
 * @field protectedZoneLongitude: the latitude of the CEN DSRC road side equipment. 
 * 
 * @field cenDsrcTollingZoneID: the optional ID of the CEN DSRC road side equipment.
 * 
 * @category: Infrastructure information, Communication information
tijinkj's avatar
tijinkj committed
 * @revision: revised in V2.1.1 (cenDsrcTollingZoneId is directly of type ProtectedZoneId)
tijinkj's avatar
tijinkj committed
 */
CenDsrcTollingZone ::= SEQUENCE {
    protectedZoneLatitude     Latitude,
    protectedZoneLongitude    Longitude,
tijinkj's avatar
tijinkj committed
    cenDsrcTollingZoneId      ProtectedZoneId OPTIONAL,
    ...
 * This DF represents the shape of a circular area or a right cylinder that is centred on the shape's reference point. 
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field shapeReferencePoint: optional reference point that represents the centre of the circle, relative to an externally specified reference position. 
 * If this component is absent, the externally specified reference position represents the shape's reference point. 
tijinkj's avatar
tijinkj committed
 *
 * @field radius: the radius of the circular area.
 *
 * @field height: the optional height, present if the shape is a right cylinder extending in the positive z-axis. 
 *
 * 
 * @category: GeoReference information
 * @revision: Created in V2.1.1
 */
CircularShape ::= SEQUENCE {
tijinkj's avatar
tijinkj committed
    shapeReferencePoint    CartesianPosition3d OPTIONAL,
    radius                 StandardLength12b,
    height                 StandardLength12b OPTIONAL
tijinkj's avatar
tijinkj committed
}

/**
tijinkj's avatar
tijinkj committed
 * This DF indicates the opening/closure status of the lanes of a carriageway.
tijinkj's avatar
tijinkj committed
 *
tijinkj's avatar
tijinkj committed
 * It shall include the following components: 
tijinkj's avatar
tijinkj committed
 * 
tijinkj's avatar
tijinkj committed
 * @field innerhardShoulderStatus: this information is optional and shall be included if an inner hard shoulder is present and the information is known.
tijinkj's avatar
tijinkj committed
 * It indicates the open/closing status of inner hard shoulder lanes. 
 * 
tijinkj's avatar
tijinkj committed
 * @field outerhardShoulderStatus: this information is optional and shall be included if an outer hard shoulder is present and the information is known.
tijinkj's avatar
tijinkj committed
 * It indicates the open/closing status of outer hard shoulder lanes. 
 * 
 * @field drivingLaneStatus: this information is optional and shall be included if the information is known.
 * It indicates the open/closing status of driving lanes. 
tijinkj's avatar
tijinkj committed
 * For carriageways with more than 13 driving lanes, the drivingLaneStatus component shall not be present.