ITS-Container.asn 113 KB
Newer Older
Denis Filatov's avatar
Denis Filatov committed
ITS-Container {
Denis Filatov's avatar
Denis Filatov committed
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) 
Denis Filatov's avatar
Denis Filatov committed
}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

Denis Filatov's avatar
Denis Filatov committed
/**
 * Common message header for application and facilities layer messages.
 * It is included at the beginning of an ITS message as the message header.
 * Test
 *
 * @param protocolVersion: version of the ITS message,
 *
 * @param messageID: Type of the ITS message.
 *  Following message type values are assigned in the present document:
 *	- 1 `denm`: Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [i.3],
 *  - 2 `cam`: Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [i.2],
 *  - 3 `poi`: Point of Interest message as specified in ETSI TS 101 556-1 [i.11],
 *  - 4 `spatem`: Signal Phase And Timing (SPAT) message as specified in SAE J2735 [i.12] and in ETSI TS 103 301 [i.17],
 *  - 5 `mapem`: MAP message as specified in SAE J2735 [i.12] and in ETSI TS 103 301 [i.17],
 *  - 6 `ivim`: In Vehicle Information (IVI) message as defined in ISO TS 19321 [i.13],
 *  - 7 `ev-rsr`: Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [i.14],
 *  - 8 `tistpgtransaction`: messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 i.15,
 *  - 9 `srem`: Traffic light Signal Request Message as specified in ETSI TS 103 301 [i.17],
 *  - 10 `ssem`: Traffic Light Signal Request Status Message as specified in ETSI TS 103 301 [i.17].
 *  - 11 `evcsn`: Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [i.11],
 *  - 12 `saem`: Services Announcement Extended Message as specified in ETSI TS 102 890-1 i.19,
 *  - 13 `rtcmem`: Radio Technical Commission for Maritime Services (RTCM) Message as specified in ETSI TS 103 301 [i.17],
 *  - 14-255: reserved for future usage,
 *
 * @param stationID: the identifier of the ITS-S that generates the ITS message in question. It shall be represented as specified in clause A.77 @ref StationID.
 * @category: Communication information
 */
Denis Filatov's avatar
Denis Filatov committed
ItsPduHeader ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    protocolVersion INTEGER (0..255),
Denis Filatov's avatar
Denis Filatov committed
    messageID INTEGER { denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255),  -- Mantis #7209, #7005
Denis Filatov's avatar
Denis Filatov committed
    stationID StationID
Denis Filatov's avatar
Denis Filatov committed
/**
 * Identifier for an ITS-S.
 *
 * The ITS-S ID may be a pseudonym. It may change over space and/or over time.
 *
 * The DE is used in @ref ActionID DF as defined in clause A.102 and @ref ItsPduHeader DF as defined in clause A.114.
 */
Denis Filatov's avatar
Denis Filatov committed
StationID ::= INTEGER(0..4294967295)

Denis Filatov's avatar
Denis Filatov committed
/**
 * The geographical position of a position or of an ITS-S. It represents a geographical point position.
 *
 * @field latitude: A latitude of the geographical point; it shall be presented as specified in clause A.41,
 *
 * @field longitude: A longitude of the geographical point; it shall be presented as specified in clause A.44,
 *
 * @field positionConfidenceEllipse: An accuracy of the geographical position; it shall be presented as specified in clause A.119,
 *
 * @field altitude: An altitude and an altitude accuracy of the geographical point; it shall be presented as specified in clause A.103.
 *
 * The DF is used in @ref ItineraryPath DF as defined in clause A.113.
 * @category: GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
ReferencePosition ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    latitude Latitude,
    longitude Longitude,
Denis Filatov's avatar
Denis Filatov committed
    positionConfidenceEllipse PosConfidenceEllipse,
Denis Filatov's avatar
Denis Filatov committed
    altitude Altitude
Denis Filatov's avatar
Denis Filatov committed
/**
 * Defines a geographical point position as offset position to a reference geographical point.
 *
 * The DF is used in @ref EventPoint DF as defined in clause A.111 and in @ref PathPoint DF as defined in clause A.118
 * 
 * @field deltaLatitude A delta latitude offset with regards to the latitude value of the reference position.
 *   It shall be presented as defined in clause A.20
 *
 * @field deltaLongitude A delta longitude offset with regards to the longitude value of the reference position.
 *   It shall be presented as defined in clause A.21
 *
 * @field deltaAltitude A delta altitude offset with regards to the altitude value of the reference position.
 *   It shall be presented as defined in clause A.19
 *
 * @category: GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
DeltaReferencePosition ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    deltaLatitude DeltaLatitude,
    deltaLongitude DeltaLongitude,
    deltaAltitude DeltaAltitude
Denis Filatov's avatar
Denis Filatov committed
/**
 * 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.
 *
 * - Negative values are used for longitudes to the west,
 * - Positive values are used for longitudes to the east.
 * - When the information is unavailable, the value shall be set to _1 800 000 001_.
 *
 * The DE is used in
 * @ref CenDsrcTollingZone DF as defined in clause A.105,
 * @ref ProtectedCommunicationZone DF as defined in clause A.121 and
 * @ref ReferencePosition DF as defined in clause A.124.
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 */
Longitude ::= INTEGER {
    oneMicrodegreeEast (10),
    oneMicrodegreeWest (-10),
    unavailable(1800000001)
} (-1800000000..1800000001)

/**
 * Absolute geographical latitude in a WGS84 coordinate system, providing a range of 90 degrees in north or
 * in south hemisphere.
 *
 * - Positive values are used for latitude in north of the Equator,
 * - Negative values are used for latitude in south of the Equator.
 * - When the information is unavailable, the value shall be set to _900 000 001_.
 *
 * The DE is used in
 * @ref CenDsrcTollingZone DF as defined in clause A.105, 
 * @ref ProtectedCommunicationZone DF as defined in clause A.121 and
 * @ref ReferencePosition DF as defined in clause A.124.
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 */
Latitude ::= INTEGER {
    oneMicrodegreeNorth (10),
    oneMicrodegreeSouth (-10),
    unavailable(900000001)
} (-900000000..900000001)

/**
 * Altitude and accuracy of an altitude in a WGS84 co-ordinate system.
 *
 * @field altitudeValue: altitude of a geographical point.
 *        It shall be presented as specified in clause A.9 AltitudeValue,
 *
 * @field altitudeConfidence: accuracy of the reported altitudeValue within a specific confidence level.
 *        It shall be presented as specified in clause A.8.
 *
 * This DF is used in @ref ReferencePosition DF as defined in clause A.124.
 * @category: GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
Altitude ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    altitudeValue AltitudeValue,
    altitudeConfidence AltitudeConfidence
Denis Filatov's avatar
Denis Filatov committed
/**
 * Altitude in a WGS84 co-ordinate system.
 * - When the information is not available, the DE shall be set to _800 001_.
 * - For altitude equal or greater than _8 000 m_, the DE shall be set to _800 000_.
 * - For altitude equal or less than _-1 000_ m, the DE shall be set to  _100 000_.
 *
 * The DE is used in @ref Altitude DF as defined in clause A.103.
 * @unit: 0.1 meter
 * @category: GeoReference information
 */
AltitudeValue ::= INTEGER {
    referenceEllipsoidSurface(0),
    oneCentimeter(1),
    unavailable(800001)
} (-100000..800001)

/**
 * Absolute accuracy of a reported altitude value of a geographical point for a predefined confidence level (e.g. 95 %).
 * The required confidence level is defined by the corresponding standards applying the usage of this DE.
 *
 * The DE is used in @ref Altitude DF as defined in clause A.103
 *
 * @note: The fact that an altitude value is received with confidence set to `unavailable(15)` 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 altitude value may be valid and used by the application.
 * 
 * @note: If an altitude value is received and its confidence is set to `outOfRange(14)`, it means that the reported 
 * altitude value is not valid and therefore cannot be trusted. Such value is not useful for the application.
 *
 * The value shall be set to: 
 *   - 0 `alt-000-01` if the altitude accuracy is equal to or less than 0,01 metre
 *   - 1 `alt-000-02` if the altitude accuracy is equal to or less than 0,02 metre
 *   - 2 `alt-000-05` if the altitude accuracy is equal to or less than 0,05 metre            
 *   - 3 `alt-000-10` if the altitude accuracy is equal to or less than 0,1 metre             
 *   - 4 `alt-000-20` if the altitude accuracy is equal to or less than 0,2 metre             
 *   - 5 `alt-000-50` if the altitude accuracy is equal to or less than 0,5 metre             
 *   - 6 `alt-001-00` if the altitude accuracy is equal to or less than 1 metre               
 *   - 7 `alt-002-00` if the altitude accuracy is equal to or less than 2 metres              
 *   - 8 `alt-005-00` if the altitude accuracy is equal to or less than 5 metres              
 *   - 9 `alt-010-00` if the altitude accuracy is equal to or less than 10 metres             
 *   - 10 `alt-020-00` if the altitude accuracy is equal to or less than 20 metres            
 *   - 11 `alt-050-00` if the altitude accuracy is equal to or less than 50 metres            
 *   - 12 `alt-100-00` if the altitude accuracy is equal to or less than 100 metres           
 *   - 13 `alt-200-00` if the altitude accuracy is equal to or less than 200 metres           
 *   - 14 `outOfRange` if the altitude accuracy is out of range, i.e. greater than 200 metres 
 *   - 15 `unavailable` if the altitude accuracy information is unavailable                    
 *
 * @category: GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
AltitudeConfidence ::= ENUMERATED {
Denis Filatov's avatar
Denis Filatov committed
    alt-000-01 (0),
    alt-000-02 (1),
    alt-000-05 (2),
    alt-000-10 (3),
    alt-000-20 (4),
    alt-000-50 (5),
    alt-001-00 (6),
    alt-002-00 (7),
    alt-005-00 (8),
    alt-010-00 (9),
    alt-020-00 (10),
    alt-050-00 (11),
    alt-100-00 (12),
    alt-200-00 (13),
    outOfRange (14),
    unavailable (15)
Denis Filatov's avatar
Denis Filatov committed
/**
 * It defines an offset longitude with regards to a referred longitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * - Positive values are used for providing offset towards the east from the reference position.
 * - Negative values are used for providing offset towards the west from the reference position.
 * - When the information is unavailable, the value shall be set to _131072_.
 *
 * The DE is used in @ref DeltaReferencePosition DF as defined in clause A.109.
 * @unit: 0.1 microdegree
 * @category: GeoReference information
 */
DeltaLongitude ::= INTEGER {
    oneMicrodegreeEast (10),
    oneMicrodegreeWest (-10),
    unavailable (131072)
} (-131071..131072)

/**
 * It defines offset latitude with regards to a referred latitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * - Positive values are used for providing offset towards the north from the reference position. 
 * - Negative values are used for providing offset towards the south from the reference position.
 * - When the information is unavailable, the value shall be set to _131072_.
 *
 * The DE is used in @ref DeltaReferencePosition DF as defined in clause A.109.
 * @unit: 0.1 microdegree
 * @category: GeoReference information
  */
DeltaLatitude ::= INTEGER {
    oneMicrodegreeNorth (10),
    oneMicrodegreeSouth (-10) ,
    unavailable (131072)
} (-131071..131072)

/**
 * It defines an offset altitude with regards to a referred altitude value.
 * It may be used to describe a geographical point with regards to a specific reference geographical position.
 *
 * - Positive values are used for providing altitude offset above the reference position.
 * - For values equal or greater than _127,99 metres_, the value shall be _12 799_.
 * - Negative values are used for providing altitude offset below the reference position.
 * - When the information is unavailable, the value shall be set to _12 800_.
 *
 * The DE is used in @ref DeltaReferencePosition DF as defined in clause A.109.
 * @unit: 0.1 metre
 * @category: GeoReference information
 */
DeltaAltitude ::= INTEGER {
    oneCentimeterUp (1),
    oneCentimeterDown (-1),
    unavailable (12800)
} (-12700..12800)

/**
 * This data field provides the horizontal position accuracy in a shape of ellipse with a predefined
 * confidence level (e.g. 95 %). The centre of the ellipse shape corresponds to the reference
 * position point for which the position accuracy is evaluated.
 *
 * @field semiMajorConfidence: half of length of the major axis, i.e. distance between the centre point
 *         and major axis point of the position accuracy ellipse. It shall be presented as specified
 *         in clause A.67,
 *
 * @field semiMinorConfidence: half of length of the minor axis, i.e. distance between the centre point
 *         and minor axis point of the position accuracy ellipse. It shall be presented as specified
 *         in clause A.67,
 *
 * @field semiMajorOrientation: orientation direction of the ellipse major axis of the position accuracy
 *         ellipse with regards to the WGS84 north. It shall be presented as specified in clause A.35.
 *
 * The required confidence level of the position accuracy is defined by ITS message or ITS application applying this DF.
 *
 * The DF is used in @ref ReferencePosition DF as defined in clause A.124.
 */
Denis Filatov's avatar
Denis Filatov committed
PosConfidenceEllipse ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    semiMajorConfidence SemiAxisLength,
    semiMinorConfidence SemiAxisLength,
    semiMajorOrientation HeadingValue
Denis Filatov's avatar
Denis Filatov committed
/**
 * The DF that defines a waypoint position within a path.
 *
 * @field pathPosition: The waypoint position defined as an offset position with regards to a pre-defined
 *        reference position. It shall be presented as specified in clause A.109
 *
 * @field pathDeltaTime: The travel time separated from a waypoint to the predefined reference position.
 *        It shall be presented as specified in clause A.47.
 *        This field is __OPTIONAL__. It shall be present if the information is available.
 *
 * The DE is used in @ref PathHistory DF as defined in clause A.117.
 * @category GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
PathPoint ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    pathPosition DeltaReferencePosition,
    pathDeltaTime PathDeltaTime OPTIONAL
Denis Filatov's avatar
Denis Filatov committed
/**
 * This DE defines the recorded or estimated travel time separated between a position and a predefined
 * reference position. It may be used to describe the historical path travelled by an ITS-S in mobility
 * (e.g. vehicle ITS-S) as specified in ETSI EN 302 637 2 [i.2].
 *
 * The DE is used in @ref EventPoint DF as defined in clause A.111 and @ref PathPoint DF as defined in clause A.118.
 * @unit 0.01 second
 * @category GeoReference information
 */
Denis Filatov's avatar
Denis Filatov committed
PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Real-time systems designed for operations control, traffic light priorities, track switches, barriers, etc.
 * using a range of activation devices equipped in public transport vehicles.
 *
 * The activation of the corresponding equipment is triggered by the approach or passage of a public transport
 * vehicle at a certain point (e.g. a beacon).
 *
 * @field ptActivationType: type of activation. It shall be presented as defined in clause A.60
 *
 * @field ptActicationData: data of activation. It shall be presented as defined in clause A.59
 *
 * Today there are different payload variants defined for public transport activation-data. The R09.x is one of
 * the industry standard used by public transport vehicles (e.g. buses, trams) in Europe (e.g. Germany Austria)
 * for controlling traffic lights, barriers, bollards, etc. This DF includes information like route, course,
 * destination, priority, etc.
 * 
 * The R09.x content is defined in VDV recommendation 420 [i.8]. It includes following information:
 * - Priority Request Information (pre-request, request, ready to start)
 * - End of Prioritization procedure
 * - Priority request direction
 * - Public Transport line number
 * - Priority of public transport
 * - Route line identifier of the public transport
 * - Route number identification
 * - Destination of public transport vehicle
 *
 * Other countries may use different message sets defined by the local administration.
 * @category: Vehicle information
 */
Denis Filatov's avatar
Denis Filatov committed
PtActivation ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    ptActivationType PtActivationType,
    ptActivationData PtActivationData
Denis Filatov's avatar
Denis Filatov committed
/**
 * This DE indicates a certain coding type of the PtActivationData data.
 * - `0`: undefined coding type,
 * - `1`: coding of PtActivationData conform to VDV recommendation 420 [i.8],
 * - `2`: coding of PtActivationData based on VDV recommendation 420 [i.8].
 * - values 3 to 255 are reserved for alternative and future use.
 * 
 * The DE is used in @ref PtActivation DF as defined in clause A.123.
 * @category: Vehicle information 
 */
Denis Filatov's avatar
Denis Filatov committed
PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * The DE used for various tasks in the public transportation environment, especially for controlling traffic
 * signal systems to prioritize and speed up public transportation in urban area (e.g. intersection "_bottlenecks_").
 * The traffic lights may be controlled by an approaching bus or tram automatically. This permits "_In Time_" activation
 * of the green phase, will enable the individual traffic to clear a potential traffic jam in advance. Thereby the
 * approaching bus or tram may pass an intersection with activated green light without slowing down the speed due to
 * traffic congestion. Other usage of the DE is the provision of information like the public transport line number
 * or the schedule delay of a public transport vehicle.
 * 
 * The DE is used in @ref PtActivation DF as defined in clause A.123.
 */
Denis Filatov's avatar
Denis Filatov committed
PtActivationData ::= OCTET STRING (SIZE(1..20))

Denis Filatov's avatar
Denis Filatov committed
/**
 * Current controlling mechanism for longitudinal movement of the vehicle.
 * The data may be provided via the in-vehicle network. It indicates whether a specific in-vehicle
 * acceleration control system is engaged or not. Currently, this DE includes the information of the
 * vehicle brake pedal, gas pedal, emergency brake system, collision warning system, adaptive cruise
 * control system, cruise control system and speed limiter system.
 *
 * The corresponding bit shall be set to 1 under the following conditions:
 * - 0 `brakePedalEngaged`      : Driver is stepping on the brake pedal,
 * - 1 `gasPedalEngaged`        : Driver is stepping on the gas pedal,
 * - 2 `emergencyBrakeEngaged`  : emergency brake system is engaged,
 * - 3 `collisionWarningEngaged`: collision warning system is engaged,
 * - 4 `accEngaged`             : ACC is engaged,
 * - 5 `cruiseControlEngaged`   : cruise control is engaged,
 * - 6 `speedLimiterEngaged`    : speed limiter is engaged.
 *
 * Otherwise (for example when the corresponding system is not available due to non equipped system
 * or information is unavailable), the corresponding bit shall be set to _0_.
 *
 * @note: The system engagement condition is OEM specific and therefore out of scope of the present document.
 * @category: Vehicle information
 */
Denis Filatov's avatar
Denis Filatov committed
AccelerationControl ::= BIT STRING {
Denis Filatov's avatar
Denis Filatov committed
    brakePedalEngaged (0),
    gasPedalEngaged (1),
    emergencyBrakeEngaged (2),
    collisionWarningEngaged (3),
    accEngaged (4),
    cruiseControlEngaged (5),
    speedLimiterEngaged (6)
Denis Filatov's avatar
Denis Filatov committed
} (SIZE(7))

Denis Filatov's avatar
Denis Filatov committed
/**
 * Absolute position accuracy in one of the axis direction as defined in a shape of ellipse with a predefined
 * confidence level (e.g. 95 %). The required confidence level is defined by the corresponding standards applying the DE.
 * 
 * The value shall be set to:
 * - `1` if the accuracy is equal to or less than 1 cm,
 * - `n (n > 1 and n < 4 093)` if the accuracy is equal to or less than n cm,
 * - `4 093` if the accuracy is equal to or less than 4 093 cm,
 * - `4 094` if the accuracy is out of range, i.e. greater than 4 093 cm,
 * - `4 095` if the accuracy information is unavailable.
 * 
 * The DE is used in @ref PosConfidenceEllipse DF as defined in clause A.119.
 * 
 * @note:	The fact that a position coordinate value is received with confidence set to 'unavailable(4095)'
 * can be caused by several reasons, such as:
 * - the sensor cannot deliver the accuracy at the defined confidence level because it is a low-end sensor,
 * - the sensor cannot calculate the accuracy due to lack of variables, or
 * - there has been a vehicle bus (e.g. CAN bus) error.
 * In all 3 cases above, the reported position coordinate value may be valid and used by the application.
 * If a position coordinate value is received and its confidence is set to 'outOfRange(4094)', it means that
 * the reported position coordinate value is not valid and therefore cannot be trusted. Such value is not useful
 * for the application.
 */
Denis Filatov's avatar
Denis Filatov committed
SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of a traffic event type. 
 *
 * @field causeCode: the type of a direct cause of a detected event. It shall be presented as defined in clause A.10
 *
 * @field subCauseCode: sub type of the direct cause. It shall be presented as defined in clause A.81
 *
 * The values of `causeCodeType` and `subCauseCode` are defined in clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
CauseCode ::= SEQUENCE {
Denis Filatov's avatar
Denis Filatov committed
    causeCode CauseCodeType,
    subCauseCode SubCauseCodeType,
        ...
Denis Filatov's avatar
Denis Filatov committed
/**
 * Value of the direct cause code of a detected event as defined in ETSI EN 302 637 3 [i.3].
 * The value is assigned according to the clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The cause codes are described as following:
 * - 0  reserved for future use,
 * - 1 `trafficCondition`                    : the type of event is an abnormal traffic condition,
 * - 2 `accident`                            : the type of event is a road accident,
 * - 3 `roadworks`                           : the type of event is roadwork,
 * - 4 reserved for future usage,
 * - 5 `impassability`                       : 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-Adhesion`    : the type of event is low adhesion,
 * - 7 `aquaplaning`                         : danger of aquaplaning on the road,
 * - 8 reserved for future usage,
 * - 9 `hazardousLocation-SurfaceCondition`  : the type of event is abnormal road surface condition,
 * - 10 `hazardousLocation-ObstacleOnTheRoad`: the type of event is obstacle on the road,
 * - 11 `hazardousLocation-AnimalOnTheRoad`  : the type of event is animal on the road,
 * - 12 `humanPresenceOnTheRoad`             : the type of event is human presence on the road,
 * - 13 reserved for future usage,
 * - 14 `wrongWayDriving`                    : the type of the event is vehicle driving in wrong way,
 * - 15 `rescueAndRecoveryWorkInProgress`    : 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-ExtremeWeatherCondition`: the type of event is extreme weather condition,
 * - 18 `adverseWeatherCondition-Visibility`             : the type of event is low visibility,
 * - 19 `adverseWeatherCondition-Precipitation`          : the type of event is precipitation,
 * - 20-25 reserved for future usage,
 * - 26 `slowVehicle`                        : the type of event is slow vehicle driving on the road,
 * - 27 `dangerousEndOfQueue`                : the type of event is dangerous end of vehicle queue,
 * - 28-90 are reserved for future usage,
 * - 91 `vehicleBreakdown`                   : the type of event is break down vehicle on the road,
 * - 92 `postCrash`                          : the type of event is a detected crash,
 * - 93 `humanProblem`                       : the type of event is human health problem in vehicles involved in traffic,
 * - 94 `stationaryVehicle`                  : the type of event is stationary vehicle,
 * - 95 `emergencyVehicleApproaching`        : the type of event is approaching vehicle operating emergency mission,
 * - 96 `hazardousLocation-DangerousCurve`   : the type of event is dangerous curve,
 * - 97 `collisionRisk`                      : the type of event is a collision risk,
 * - 98 `signalViolation`                    : the type of event is signal violation,
 * - 99 `dangerousSituation`                 : the type of event is dangerous situation in which autonomous safety system in vehicle is activated,
 * - 100-255 are reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
CauseCodeType ::= INTEGER {
Denis Filatov's avatar
Denis Filatov committed
    reserved (0),
    trafficCondition (1),
    accident (2),
    roadworks (3),
Denis Filatov's avatar
Denis Filatov committed
    impassability (5),
Denis Filatov's avatar
Denis Filatov committed
    adverseWeatherCondition-Adhesion (6),
Denis Filatov's avatar
Denis Filatov committed
    aquaplannning (7),
Denis Filatov's avatar
Denis Filatov committed
    hazardousLocation-SurfaceCondition (9),
    hazardousLocation-ObstacleOnTheRoad (10),
    hazardousLocation-AnimalOnTheRoad (11),
    humanPresenceOnTheRoad (12),
    wrongWayDriving (14),
    rescueAndRecoveryWorkInProgress (15),
    adverseWeatherCondition-ExtremeWeatherCondition (17),
    adverseWeatherCondition-Visibility (18),
    adverseWeatherCondition-Precipitation (19),
    slowVehicle (26),
    dangerousEndOfQueue (27),
    vehicleBreakdown (91),
    postCrash (92),
    humanProblem (93),
    stationaryVehicle (94),
    emergencyVehicleApproaching (95),
    hazardousLocation-DangerousCurve (96),
    collisionRisk (97),
    signalViolation (98),
    dangerousSituation (99)
Denis Filatov's avatar
Denis Filatov committed
} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Type of sub cause of a detected event as defined in ETSI EN 302 637-3 [i.3].
 * 
 * For DENM usage, the value as given in clause 7.1.4 of ETSI EN 302 637-3 [i.3] apply.
 * 
 * The DE is used in CauseCode DF as defined in clause A.104.
 * 
 * @note 1: The sub cause code value assignment varies based on value of causeCode as defined in clause A.10.
 *
 * @note 2: Complete list of all possible sub cause code values as given in ETSI EN 302 637-3 [i.3] is provided
 * in the present document for information. For example, see clause A.3 for sub cause code of accident event.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
SubCauseCodeType ::= INTEGER (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `trafficCondition` as defined in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`                 : in case further detailed information on traffic jam is unavailable,
 * - 1 `increasedVolumeOfTraffic`    : in case detected jam volume is increased,
 * - 2 `trafficJamSlowlyIncreasing`  : in case detected traffic jam volume is increasing slowly,
 * - 3 `trafficJamIncreasing`        : in case traffic jam volume is increasing,
 * - 4 `trafficJamStronglyIncreasing`: in case traffic jam volume is strongly increasing,
 * - 5 `trafficStationary`           : in case traffic is stationary,
 * - 6 `trafficJamSlightlyDecreasing`: in case traffic jam volume is decreasing slowly,
 * - 7 `trafficJamDecreasing`        : in case traffic jam volume is decreasing,
 * - 8 `trafficJamStronglyDecreasing`: in case traffic jam volume is decreasing rapidly,
 * - 9-255: reserved for future usage.
 *
 * @category: Traffic information
 */
TrafficConditionSubCauseCode ::= INTEGER {
    unavailable(0),
    increasedVolumeOfTraffic(1),
    trafficJamSlowlyIncreasing(2),
    trafficJamIncreasing(3),
    trafficJamStronglyIncreasing(4),
    trafficStationary(5),
    trafficJamSlightlyDecreasing(6),
    trafficJamDecreasing(7),
    trafficJamStronglyDecreasing(8)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `accident` as defined in clause A.10 of ETSI TS 102 859-2.
 * Sub event cause and value setting rule is defined according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 *
 * The sub causes are described as following:
 * - 0 `unavailable`                        : in case the information on the sub cause of the accident is unavailable,
 * - 1 `multiVehicleAccident`               : in case more than two vehicles are involved in accident,
 * - 2 `heavyAccident`                      : in case the airbag of the vehicle involved in the accident is triggered, 
 *                                             the accident requires important rescue and/or recovery work,
 * - 3 `accidentInvolvingLorry`             : in case the accident involves a lorry,
 * - 4 `accidentInvolvingBus`               : in case the accident involves a bus,
 * - 5 `accidentInvolvingHazardousMaterials`: in case the accident involves hazardous material,
 * - 6 `accidentOnOppositeLane`             : in case the accident happens on opposite lanes,
 * - 7 `unsecuredAccident`                  : in case the accident is not secured,
 * - 8 `assistanceRequested`                : in case rescue and assistance are requested,
 * - 9-255 reserved for future usage. 
 * @category: Traffic information
 */
AccidentSubCauseCode ::= INTEGER {
    unavailable(0),
    multiVehicleAccident(1),
    heavyAccident(2),
    accidentInvolvingLorry(3),
    accidentInvolvingBus(4),
    accidentInvolvingHazardousMaterials(5),
    accidentOnOppositeLane(6),
    unsecuredAccident(7),
    assistanceRequested(8)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `roadworks` as defined in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to
 * clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`                 : in case further detailed information on roadworks is unavailable,
 * - 1 `majorRoadworks`              : in case a major roadworks is ongoing,
 * - 2 `roadMarkingWork`             : in case a road marking work is ongoing,
 * - 3 `slowMovingRoadMaintenance`   : in case slow moving road maintenance work is ongoing,
 * - 4 `shortTermStationaryRoadworks`: in case a short term stationary roadwork is ongoing,
 * - 5 `streetCleaning`              : in case a vehicle street cleaning work is ongoing,
 * - 6 `winterService`               : in case winter service work is ongoing,
 * - 7-255 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `humanPresenceOnTheRoad` as defined in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to
 * clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `wrongWayDriving` as defined in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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,
 * - 3-255 reserved for future usage.
 * 
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `adverseWeatherCondition-ExtremeWeatherCondition` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 *
 * The sub causes are described as following:
 * - 0 `unavailable` : in case information on the type of extreme weather condition is unavailable
 * - 1 `strongWinds` : in case the type of extreme weather condition is strong wind
 * - 2 `damagingHail`: in case the type of extreme weather condition is damaging hail
 * - 3 `hurricane`   : in case the type of extreme weather condition is hurricane
 * - 4 `thunderstorm`: in case the type of extreme weather condition is thunderstorm
 * - 5 `tornado`     : in case the type of extreme weather condition is tornado
 * - 6 `blizzard`    : in case the type of extreme weather condition is blizzard
 * - 7-255 reserved for future usage
 *
 * @category: Traffic information
 */
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
    unavailable(0),
    strongWinds(1),
    damagingHail(2),
    hurricane(3),
    thunderstorm(4),
    tornado(5),
    blizzard(6)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `adverseWeatherCondition-Adhesion` as specified in clause A.10. 
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`     : in case information on the cause of the low road adhesion is unavailable
 * - 1 `heavyFrostOnRoad`: in case the low road adhesion is due to heavy frost on the road
 * - 2 `fuelOnRoad`      : in case the low road adhesion is due to fuel on the road
 * - 3 `mudOnRoad`       : in case the low road adhesion is due to mud on the road
 * - 4 `snowOnRoad`      : in case the low road adhesion is due to snow on the road
 * - 5 `iceOnRoad`       : in case the low road adhesion is due to ice on the road
 * - 6 `blackIceOnRoad`  : in case the low road adhesion is due to black ice on the road
 * - 7 `oilOnRoad`       : in case the low road adhesion is due to oil on the road
 * - 8 `looseChippings`  : in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard
 * - 9 `instantBlackIce` : in case the low road adhesion is due to instant black ice on the road surface
 * - 10 `roadsSalted`    : when the low road adhesion is due to salted road
 * - 11-255 reserved for future usage
 *
 * @category: Traffic information
 */
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
    unavailable(0),
    heavyFrostOnRoad(1),
    fuelOnRoad(2),
    mudOnRoad(3),
    snowOnRoad(4),
    iceOnRoad(5),
    blackIceOnRoad(6),
    oilOnRoad(7),
    looseChippings(8),
    instantBlackIce(9),
    roadsSalted(10)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `adverseWeatherCondition-Visibility` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * @category: Traffic information
 *
 * The sub causes are described as following:
 * - 0 `unavailable`    : in case information on the cause of low visibility is unavailable
 * - 1 `fog`            : in case the cause of low visibility is fog
 * - 2 `smoke`          : in case the cause of low visibility is smoke
 * - 3 `heavySnowfall`  : in case the cause of low visibility is heavy snow fall
 * - 4 `heavyRain`      : in case the cause of low visibility is heavy rain
 * - 5 `heavyHail`      : in case the cause of low visibility is heavy hail
 * - 6 `lowSunGlare`    : in case the cause of low visibility is sun glare
 * - 7 `sandstorms`     : in case the cause of low visibility is sand storm
 * - 8 `swarmsOfInsects`: in case the cause of low visibility is swarm of insects
 * - 9-255 reserved for future usage
 *
 * @category: Traffic information
 */
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
    unavailable(0),
    fog(1),
    smoke(2),
    heavySnowfall(3),
    heavyRain(4),
    heavyHail(5),
    lowSunGlare(6),
    sandstorms(7),
    swarmsOfInsects(8)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `adverseWeatherCondition-Precipitation` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 *
 * The sub causes are described as following:
 * - 0 `unavailable`: in case information on the type of precipitation is unavailable
 * - 1 `heavyRain`: in case the type of precipitation is heavy rain
 * - 2 `heavySnowfall`: in case the type of precipitation is heavy snow fall
 * - 3 `softHail`: in case the type of precipitation is soft hail
 * - 4-255 reserved for future usage
 *
 * @category: Traffic information
 */
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
    unavailable(0),
    heavyRain(1),
    heavySnowfall(2),
    softHail(3)
} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type "slowVehicle" as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`                    : in case further detailed information on slow vehicle driving event is
 *                                        unavailable,
 * - 1 `maintenanceVehicle`             : in case of a slow driving maintenance vehicle on the road,
 * - 2 `vehiclesSlowingToLookAtAccident`: in case vehicle is temporally slowing down to look at accident, spot, etc.,
 * - 3 `abnormalLoad`                   : in case an abnormal loaded vehicle is driving slowly on the road,
 * - 4 `abnormalWideLoad`               : in case an abnormal wide load vehicle is driving slowly on the road,
 * - 5 `convoy`                         : in case of slow driving convoy on the road,
 * - 6 `snowplough`                     : in case of slow driving snow plough on the road,
 * - 7 `deicing`                        : in case of slow driving de-icing vehicle on the road,
 * - 8 `saltingVehicles`                : in case of slow driving salting vehicle on the road,
 * - 9-255 reserved for future usage.
 * 
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255)
 
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type "stationaryVehicle" as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`           : in case further detailed information on stationary vehicle is unavailable,
 * - 1 `humanProblem`          : in case stationary vehicle is due to health problem of driver or passenger,
 * - 2 `vehicleBreakdown`      : in case stationary vehicle is due to vehicle break down,
 * - 3 `postCrash`             : in case stationary vehicle is caused by collision,
 * - 4 `publicTransportStop`   : in case public transport vehicle is stationary at bus stop,
 * - 5 `carryingDangerousGoods`: in case the stationary vehicle is carrying dangerous goods,
 * - 6-255 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type "humanProblem" as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * - The sub causes are described as following:
 * - 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
 */
Denis Filatov's avatar
Denis Filatov committed
HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type "emergencyVehicleApproaching" as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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,
 * - value 3-255  reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `hazardousLocation-DangerousCurve` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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,
 * - value 6-255 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
 */
Denis Filatov's avatar
Denis Filatov committed
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `hazardousLocation-SurfaceCondition` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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-255 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `hazardousLocation-ObstacleOnTheRoad` as specified
 * in clause A.10. Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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
 */
Denis Filatov's avatar
Denis Filatov committed
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `hazardousLocation-AnimalOnTheRoad` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 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
 */
Denis Filatov's avatar
Denis Filatov committed
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `collisionRisk` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`              : in case information on the type of collision risk is unavailable,
 * - 1 `longitudinalCollisionRisk`: in case the type of detected collision risk is longitudinal collision risk, 
 *                                  e.g. forward collision or face to face collision,
 * - 2 `crossingCollisionRisk`    : in case the type of detected collision risk is crossing collision risk,
 * - 3 `lateralCollisionRisk`     : in case the type of detected collision risk is lateral collision risk,
 * - 4 `vulnerableRoadUser`       : in case the type of detected collision risk involves vulnerable road users
 *                                  e.g. pedestrians or bicycles,
 * - 5-255 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `signalViolation` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`               : in case further detailed information on signal violation event is unavailable,
 * - 1 `stopSignViolation`         : in case a stop sign violation is detected,
 * - 2 `trafficLightViolation`     : in case a traffic light violation is detected,
 * - 3 `turningRegulationViolation`: in case a turning regulation violation is detected,
 * - 4-255: reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255)
Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `rescueAndRecoveryWorkInProgress` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according
 * to clause 7.1.4 of ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`             : in case further detailed information on rescue and recovery work is unavailable,
 * - 1 `emergencyVehicles`       : in case rescue work is ongoing by emergency vehicles,
 * - 2 `rescueHelicopterLanding` : in case rescue helicopter is landing,
 * - 3 `policeActivityOngoing`   : in case police activity is ongoing,
 * - 4 `medicalEmergencyOngoing` : in case medical emergency recovery is ongoing,
 * - 5 `childAbductionInProgress`: in case a child kidnapping alarm is activated and rescue work is ongoing,
 * - 6-255: reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `dangerousEndOfQueue` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI ETSI EN 302 637-3 [i.3].
 * 
 * The sub causes are described as following:
 * - 0 `unavailable`     : in case information on the type of dangerous queue is unavailable,
 * - 1 `suddenEndOfQueue`: in case a sudden end of queue is detected, e.g. due to accident or obstacle,
 * - 2 `queueOverHill`   : in case the dangerous end of queue is detected on the road hill,
 * - 3 `queueAroundBend` : in case the dangerous end of queue is detected around the road bend,
 * - 4 `queueInTunnel`   : in case queue is detected in tunnel,
 * - 5-255 reserved for future usage.
 *
 * @category: Traffic information
 */
Denis Filatov's avatar
Denis Filatov committed
DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255)

Denis Filatov's avatar
Denis Filatov committed
/**
 * Encoded value of the sub cause codes of the event type `dangerousSituation` as specified in clause A.10.
 * Definition of the sub event cause is defined and the value is assigned according to clause 7.1.4 of ETSI ETSI EN 302 637-3 [i.3].
 *