Commit f229f184 authored by ASN.1 Documenter's avatar ASN.1 Documenter
Browse files

semidocumented

parent 0ee4d6f1
Loading
Loading
Loading
Loading
Loading
+252 −34
Original line number Diff line number Diff line
@@ -6,14 +6,61 @@ DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

/**
 * Common message header for application and facilities layer messages.
 * It is included at the beginning of an ITS message as the message header.
 *
 * @param protocolVersion: version of the ITS message,
 *
 * @param messageID: Type of the ITS message.
 *  Following message type values are assigned in the present document:
 *	- denm(1): Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3 [i.3],
 *  - cam(2): Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2 [i.2],
 *  - poi(3): Point of Interest message as specified in ETSI TS 101 556-1 [i.11],
 *  - spatem(4): Signal Phase And Timing (SPAT) message as specified in SAE J2735 [i.12] and in ETSI TS 103 301 [i.17],
 *  - mapem(5): MAP message as specified in SAE J2735 [i.12] and in ETSI TS 103 301 [i.17],
 *  - ivim(6): In Vehicle Information (IVI) message as defined in ISO TS 19321 [i.13],
 *  - ev-rsr(7): Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3 [i.14],
 *  - tistpgtransaction(8): messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2 i.15,
 *  - srem(9): Traffic light Signal Request Message as specified in ETSI TS 103 301 [i.17],
 *  - ssem(10): Traffic Light Signal Request Status Message as specified in ETSI TS 103 301 [i.17].
 *  - evcsn(11): Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1 [i.11],
 *  - saem(12): Services Announcement Extended Message as specified in ETSI TS 102 890-1 i.19,
 *  - rtcmem(13): Radio Technical Commission for Maritime Services (RTCM) Message as specified in ETSI TS 103 301 [i.17],
 *  - value 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
 */
ItsPduHeader ::= SEQUENCE {
    protocolVersion INTEGER (0..255),
    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
    stationID StationID
}

/**
 * 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.
 */
StationID ::= INTEGER(0..4294967295)

/**
 * The geographical position of a position or of an ITS-S. It represents a geographical point position.
 *
 * @param latitude: A latitude of the geographical point; it shall be presented as specified in clause A.41 Latitude,
 *
 * @param longitude: A longitude of the geographical point; it shall be presented as specified in clause A.44 Longitude,
 *
 * @param positionConfidenceEllipse: An accuracy of the geographical position; it shall be presented as specified in clause A.119 PosConfidenceEllipse,
 *
 * @param altitude: An altitude and an altitude accuracy of the geographical point; it shall be presented as specified in clause A.103 Altitude.
 *
 * The DF is used in @ref ItineraryPath DF as defined in clause A.113.
 * @category: GeoReference information
 */
ReferencePosition ::= SEQUENCE {
    latitude Latitude,
    longitude Longitude,
@@ -21,40 +68,80 @@ ReferencePosition ::= SEQUENCE {
    altitude Altitude
}

/**
 * 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
 * @category: GeoReference information
 */
DeltaReferencePosition ::= SEQUENCE {
    deltaLatitude DeltaLatitude,
    deltaLongitude DeltaLongitude,
    deltaAltitude DeltaAltitude
    deltaLatitude 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 @ref DeltaLatitude
                                     --!<
    deltaLongitude 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 @ref DeltaLongitude
                                     --!<
    deltaAltitude 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 @ref DeltaAltitude
}

Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001)
Longitude ::= INTEGER {
    oneMicrodegreeEast (10),
    oneMicrodegreeWest (-10),
    unavailable(1800000001)
} (-1800000000..1800000001)

Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001)
Latitude ::= INTEGER {
    oneMicrodegreeNorth (10),
    oneMicrodegreeSouth (-10),
    unavailable(900000001)
} (-900000000..900000001)

Altitude ::= SEQUENCE {
    altitudeValue AltitudeValue,
    altitudeConfidence AltitudeConfidence
}

AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001)

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.
 *
 * 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:
 */
AltitudeConfidence ::= ENUMERATED {
    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)
    alt-000-01 (0),    --!< if the altitude accuracy is equal to or less than 0,01 metre
    alt-000-02 (1),    --!< if the altitude accuracy is equal to or less than 0,02 metre            
    alt-000-05 (2),    --!< if the altitude accuracy is equal to or less than 0,05 metre            
    alt-000-10 (3),    --!< if the altitude accuracy is equal to or less than 0,1 metre             
    alt-000-20 (4),    --!< if the altitude accuracy is equal to or less than 0,2 metre             
    alt-000-50 (5),    --!< if the altitude accuracy is equal to or less than 0,5 metre             
    alt-001-00 (6),    --!< if the altitude accuracy is equal to or less than 1 metre               
    alt-002-00 (7),    --!< if the altitude accuracy is equal to or less than 2 metres              
    alt-005-00 (8),    --!< if the altitude accuracy is equal to or less than 5 metres              
    alt-010-00 (9),    --!< if the altitude accuracy is equal to or less than 10 metres             
    alt-020-00 (10),   --!< if the altitude accuracy is equal to or less than 20 metres            
    alt-050-00 (11),   --!< if the altitude accuracy is equal to or less than 50 metres            
    alt-100-00 (12),   --!< if the altitude accuracy is equal to or less than 100 metres           
    alt-200-00 (13),   --!< if the altitude accuracy is equal to or less than 200 metres           
    outOfRange (14),   --!< if the altitude accuracy is out of range, i.e. greater than 200 metres 
    unavailable (15)   --!< if the altitude accuracy information is unavailable                    
}

DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072)
@@ -85,6 +172,23 @@ PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-5

PtActivationData ::= OCTET STRING (SIZE(1..20))

/**
 * 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:
 * - `brakePedalEngaged(0)`: Driver is stepping on the brake pedal,
 * - `gasPedalEngaged(1)`: Driver is stepping on the gas pedal,
 * - `emergencyBrakeEngaged(2)`: emergency brake system is engaged,
 * - `collisionWarningEngaged(3)`: collision warning system is engaged,
 * - `accEngaged(4)`: ACC is engaged,
 * - `cruiseControlEngaged(5)`: cruise control is engaged,
 * - `speedLimiterEngaged(6)`: 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
 */
AccelerationControl ::= BIT STRING {
    brakePedalEngaged (0),
    gasPedalEngaged (1),
@@ -136,9 +240,36 @@ CauseCodeType ::= INTEGER {

SubCauseCodeType ::= INTEGER (0..255)

TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255)
TrafficConditionSubCauseCode ::= INTEGER {
    unavailable(0),
    increasedVolumeOfTraffic(1),
    trafficJamSlowlyIncreasing(2),
    trafficJamIncreasing(3),
    trafficJamStronglyIncreasing(4),
    trafficStationary(5),
    trafficJamSlightlyDecreasing(6),
    trafficJamDecreasing(7),
    trafficJamStronglyDecreasing(8)
} (0..255)

AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8)} (0..255)
/**
 * 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].
 * @category: Traffic information
 *
 * The sub causes are described as following:
 */
AccidentSubCauseCode ::= INTEGER {
    unavailable(0),                           --!< in case the information on the sub cause of the accident is unavailable
    multiVehicleAccident(1),                  --!< in case more than two vehicles are involved in accident
    heavyAccident(2),                         --!< in case the airbag of the vehicle involved in the accident is triggered, the accident requires important rescue and/or recovery work
    accidentInvolvingLorry(3),                --!< in case the accident involves a lorry
    accidentInvolvingBus(4),                  --!< in case the accident involves a bus
    accidentInvolvingHazardousMaterials(5),   --!< in case the accident involves hazardous material
    accidentOnOppositeLane(6),                --!< in case the accident happens on opposite lanes
    unsecuredAccident(7),                     --!< in case the accident is not secured
    assistanceRequested(8)                    --!< in case rescue and assistance are requested
} (0..255)                                    --!< value 9-255 are reserved for future usage

RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255)

@@ -146,13 +277,76 @@ HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadwa

WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255)

AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255)

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)

AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255)

AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255)
/**
 * 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].
 * @category: Traffic information
 *
 * The sub causes are described as following:
 */
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {
    unavailable(0),    --!< in case information on the type of extreme weather condition is unavailable
    strongWinds(1),    --!< in case the type of extreme weather condition is strong wind
    damagingHail(2),   --!< in case the type of extreme weather condition is damaging hail
    hurricane(3),      --!< in case the type of extreme weather condition is hurricane
    thunderstorm(4),   --!< in case the type of extreme weather condition is thunderstorm
    tornado(5),        --!< in case the type of extreme weather condition is tornado
    blizzard(6)        --!< in case the type of extreme weather condition is blizzard
} (0..255)             --!< value 7-255 are reserved for future usage

/**
 * 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].
 * @category: Traffic information
 * 
 * The sub causes are described as following:
 */
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {
    unavailable(0),           --!< in case information on the cause of the low road adhesion is unavailable
    heavyFrostOnRoad(1),      --!< in case the low road adhesion is due to heavy frost on the road
    fuelOnRoad(2),            --!< in case the low road adhesion is due to fuel on the road
    mudOnRoad(3),             --!< in case the low road adhesion is due to mud on the road
    snowOnRoad(4),            --!< in case the low road adhesion is due to snow on the road
    iceOnRoad(5),             --!< in case the low road adhesion is due to ice on the road
    blackIceOnRoad(6),        --!< in case the low road adhesion is due to black ice on the road
    oilOnRoad(7),             --!< in case the low road adhesion is due to oil on the road
    looseChippings(8),        --!< in case the low road adhesion is due to loose gravel or stone fragments detached from a road surface or from a hazard
    instantBlackIce(9),       --!< in case the low road adhesion is due to instant black ice on the road surface
    roadsSalted(10)           --!< when the low road adhesion is due to salted road
} (0..255)                    --!< values 11-255 are reserved for future usage

/**
 * 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:
 */
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {
    unavailable(0),     --!< in case information on the cause of low visibility is unavailable
    fog(1),             --!< in case the cause of low visibility is fog
    smoke(2),           --!< in case the cause of low visibility is smoke
    heavySnowfall(3),   --!< in case the cause of low visibility is heavy snow fall
    heavyRain(4),       --!< in case the cause of low visibility is heavy rain
    heavyHail(5),       --!< in case the cause of low visibility is heavy hail
    lowSunGlare(6),     --!< in case the cause of low visibility is sun glare
    sandstorms(7),      --!< in case the cause of low visibility is sand storm
    swarmsOfInsects(8)  --!< in case the cause of low visibility is swarm of insects
} (0..255)              --!< values 9-255 are reserved for future usage

/**
 * 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].
 * @category: Traffic information
 *
 * The sub causes are described as following:
 */
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {
    unavailable(0),     --!< in case information on the type of precipitation is unavailable
    heavyRain(1),       --!< in case the type of precipitation is heavy rain
    heavySnowfall(2),   --!< in case the type of precipitation is heavy snow fall
    softHail(3)         --!< in case the type of precipitation is soft hail
} (0..255)              --!< value 4-255 are reserved for future usage

SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255)
 
@@ -252,6 +446,30 @@ LongitudinalAcceleration ::= SEQUENCE {

LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161)

/**
 * The absolute accuracy of a reported vehicle acceleration value 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 acceleration accuracy is equal to or less than 0,1 m/s2.
 * - `n (n > 1 and n < 100)` if the acceleration accuracy is equal to or less than n × 0,1 m/s2.
 * - `100` if the acceleration accuracy is equal to or less than 10 m/s2.
 * - `101` if the acceleration accuracy is out of range i.e. greater than 10 m/s2.
 * - `102` if the data is unavailable.
 *
 * The DE is used in LateralAcceleration DF as defined in clause A.115, LongitudinalAcceleration DF as defined in clause A.116, or VerticalAcceleration DF as defined in clause A.129.
 *
 * NOTE:	The fact that an acceleration value is received with confidence set to 'unavailable(102)' 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 acceleration value may be valid and used by the application.
 * 
 * If an acceleration value is received and its confidence is set to `outOfRange(101)`, it means that the value is not valid and therefore cannot be trusted. Such value is not useful for the application.
 *
 * @unit 0,1 m/s2
 * @category Vehicle information
 */
AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102)

LateralAcceleration ::= SEQUENCE {