ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) } DEFINITIONS AUTOMATIC TAGS ::= BEGIN ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER{ currentVersion(1) } (0..255), messageID INTEGER{ denm(1),cam(2), poi(3) } (0..255), stationID StationID } StationID ::= INTEGER(0..4294967295) ReferencePosition ::= SEQUENCE { latitude Latitude, longitude Longitude, positionConfidenceEllipse PosConfidenceEllipse , elevation Elevation } DeltaReferencePosition ::= SEQUENCE { deltaLatitude DeltaLatitude, deltaLongitude DeltaLongitude, deltaElevation DeltaElevation } Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001) } (-1799999999..1800000001) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree Elevation ::= SEQUENCE { elevationValue ElevationValue, elevationConfidence ElevationConfidence } ElevationValue ::= INTEGER { seaLevel(0), oneMeter(1), unavailable(7191) } (-1000..7191) ElevationConfidence ::= INTEGER { withinOneMeter(1), outOfRange(126), unavailable(127) } (1..127) DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-131072..131071) -- multiples of 0.1 microdegree DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-131072..131071) -- multiples of 0.1 microdegree DeltaElevation ::= INTEGER { oneMeterUp (1), oneMeterDown (-1), unavailable(128) } (-127..128) PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Heading } PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, pathDeltaTime PathDeltaTime OPTIONAL } PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (0..65535, ...) PtActivation ::= SEQUENCE { ptActivationType PtActivationType, ptActivationData PtActivationData } PtActivationType ::= INTEGER { undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2) } (0..255) PtActivationData ::= OCTET STRING (SIZE(1..20)) AccelerationControl ::= BIT STRING { brakePedalActive (0), gasPedalActive (1), emergencyBrakeActive (2), collisionWarningActive (3), accActive (4), cruiseControl (5), speedLimiterActive (6) } (SIZE(7)) SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095) } (0..4095) CauseCode ::= SEQUENCE { causeCode CauseCodeType, subCauseCode SubCauseCodeType } CauseCodeType ::= INTEGER { reserved (0), trafficCondition (1), accident (2), roadworks (3), adverseWeatherCondition-Adhesion (6), 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) } (0..255) 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) AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8) } (0..255) RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), winterService(4), streetCleaning(5) } (0..255) HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3) } (0..255) 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) SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8) } (0..255) StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5) } (0..255) HumanProblemSubCauseCode ::= INTEGER { unavailable(0), glycemiaProblem(1), heartProblem(2) } (0..255) EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2) } (0..255) HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5) } (0..255) 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) HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7) } (0..255) HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4) } (0..255) CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4) } (0..255) SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3) } (0..255) RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5) } (0..255) DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4) } (0..255) DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrake(1), preCrashSystemActivated(2), espActivated(3), absActivated(4), aebActivated(5), brakeWarningActivated(6), collisionRiskWarningActivated(7) } (0..255) VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8)} (0..255) PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255) Curvature ::= SEQUENCE { curvatureValue CurvatureValue, curvatureConfidence CurvatureConfidence } CurvatureValue ::= INTEGER { straight(0), reciprocalOf1MeterRadiusToRight(-30000), reciprocalOf1MeterRadiusToLeft(30000), unavailable(30001) } (-30000..30001) CurvatureConfidence ::= ENUMERATED { onePerMeter-0-00002 (0), -- within 0.00002 m^-1 onePerMeter-0-0001 (1), -- within 0.0001 m^-1 onePerMeter-0-0005 (2), -- within 0.0005 m^-1 onePerMeter-0-002 (3), -- within 0.002 m^-1 onePerMeter-0-01 (4), -- within 0.01 m^-1 onePerMeter-0-1 (5), -- within 0.1 m^-1 outOfRange (6), unavailable (7) } CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... } Heading ::= SEQUENCE { headingValue HeadingValue, headingConfidence HeadingConfidence } HeadingValue ::= INTEGER { wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3600) } (0..3600) HeadingConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), outOfRange(126), unavailable(127) } (1..127) LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14) ClosedLanes ::= SEQUENCE { hardShoulderStatus HardShoulderStatus OPTIONAL, drivingLaneStatus DrivingLaneStatus, ... } HardShoulderStatus ::= ENUMERATED { availableForStopping(0), closed(1), availableForDriving(2) } DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (1..14)) -- numbering matches LaneNumber numbering PerformanceClass ::= INTEGER { unavailable(0), performanceClassA(1), performanceClassB(2) } (0..7) -- values in range 3-7 are reserved for later definition SpeedValue ::= INTEGER { standstill(0), oneCentimeterPerSec(1), unavailable(16383) } (0..16383) SpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127) VehicleMass ::= INTEGER { hundredKg(1), unavailable(1024) } (1..1024) Speed ::= SEQUENCE { speedValue SpeedValue, speedConfidence SpeedConfidence } DriveDirection ::= ENUMERATED { forward (0), backward (1), unavailable (2) } EmbarkationStatus ::= BOOLEAN LongitudinalAcceleration ::= SEQUENCE { longitudinalAccelerationValue LongitudinalAccelerationValue, longitudinalAccelerationConfidence AccelerationConfidence } LongitudinalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) AccelerationConfidence ::= INTEGER { pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) LateralAcceleration ::= SEQUENCE { lateralAccelerationValue LateralAccelerationValue, lateralAccelerationConfidence AccelerationConfidence } LateralAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161) } (-160 .. 161) VerticalAcceleration ::= SEQUENCE { verticalAccelerationValue VerticalAccelerationValue, verticalAccelerationConfidence AccelerationConfidence } VerticalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161) } (-160 .. 161) StationType ::= INTEGER { unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6), lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15) } (0..255) ExteriorLights ::= BIT STRING { lowBeamHeadlightsOn (0), highBeamHeadlightsOn (1), leftTurnSignalOn (2), rightTurnSignalOn (3), daytimeRunningLightsOn (4), reverseLightOn (5), fogLightOn (6), parkingLightsOn (7) } (SIZE(8)) DangerousGoodsBasic::= ENUMERATED { explosives1(0), explosives2(1), explosives3(2), explosives4(3), explosives5(4), explosives6(5), flammableGases(6), nonFlammableGases(7), toxicGases(8), flammableLiquids(9), flammableSolids(10), substancesLiableToSpontaneousCombustion(11), substancesEmittingFlammableGasesUponContactWithWater(12), oxidizingSubstances(13), organicPeroxides(14), toxicSubstances(15), infectiousSubstances(16), radioactiveMaterial(17), corrosiveSubstances(18), miscellaneousDangerousSubstances(19) } DangerousGoodsExtended ::= SEQUENCE { dangerousGoodsType DangerousGoodsBasic, unNumber INTEGER (0..9999), elevatedTemperature BOOLEAN, tunnelsRestricted BOOLEAN, limitedQuantity BOOLEAN, emergencyActionCode IA5String OPTIONAL, phoneNumber IA5String OPTIONAL, companyName UTF8String OPTIONAL } SpecialTransportType ::= BIT STRING { heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3) } (SIZE(4)) LightBarSirenInUse ::= BIT STRING { lightBarActivated (0), sirenActivated (1) } (SIZE(2)) HeightLonCarr ::= INTEGER { oneCentimeter(1), unavailable(100) } (0..100) PosLonCarr ::= INTEGER { oneCentimeter(1), unavailable(127) } (0..127) PosPillar ::= INTEGER { tenCentimeters(1), unavailable(30) } (0..30) PosCentMass ::= INTEGER { tenCentimeters(1), unavailable(63) } (0..63) RequestResponseIndication ::= ENUMERATED { request(0), response(1) } SpeedLimit ::= INTEGER { oneKmPerHour(1) } (0..150) StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), over15Minutes(3) } Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) TrafficRule ::= ENUMERATED { noPassing(0), noPassingForTrucks(1), ... } WheelBaseVehicle ::= INTEGER { tenCentimeters(1), unavailable(127) } (0..127) TurningRadius ::= INTEGER { point4Meters(1), unavailable(255) } (0..255) PosFrontAx ::= INTEGER { tenCentimeters(1), unavailable(20) } (0..20) PositionOfOccupants ::= BIT STRING { row1LeftOccupied (0), row1RightOccupied (1), row1MidOccupied (2), row1NotDetectable (3), row1NotPresent (4), row2LeftOccupied (5), row2RightOccupied (6), row2MidOccupied (7), row2NotDetectable (8), row2NotPresent (9), row3LeftOccupied (10), row3RightOccupied (11), row3MidOccupied (12), row3NotDetectable (13), row3NotPresent (14), row4LeftOccupied (15), row4RightOccupied (16), row4MidOccupied (17), row4NotDetectable (18), row4NotPresent (19) } (SIZE(20)) PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... } VehicleIdentification ::= SEQUENCE { wMInumber WMInumber, vDS VDS } WMInumber ::= IA5String (SIZE(1..3)) VDS ::= IA5String (SIZE(6)) EnergyStorageType::= BIT STRING { hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6) } (SIZE(7)) VehicleLength ::= SEQUENCE { vehicleLengthValue VehicleLengthValue, vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication } VehicleLengthValue ::= INTEGER { tenCentimeters(1), outOfRange(1022), unavailable(1023) } (1..1023) VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3) } VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) } (1..62) PathHistory::= SEQUENCE (SIZE(0..23)) OF PathPoint EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) InformationQuality ::= INTEGER { unavailable(0), lowest(1), highest(7) } (0..7) RoadClass ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), urban-WithStructuralSeparationToOppositeLanes(1), nonUrban-NoStructuralSeparationToOppositeLanes(2), nonUrban-WithStructuralSeparationToOppositeLanes(3) } SteeringWheelAngle::= SEQUENCE { steeringWheelAngleValue SteeringWheelAngleValue, steeringWheelConfidence SteeringWheelConfidence } SteeringWheelAngleValue ::= INTEGER { straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(511) } (-511..511) SteeringWheelConfidence ::= INTEGER { withinOnePointFiveDegrees(1), outOfRange(126), unavailable(127) } (1..127) TimestampIts ::= INTEGER { utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1) } (0..3153600000000) VehicleRole ::= ENUMERATED { default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7) } YawRate::= SEQUENCE { yawRateValue YawRateValue, yawRateConfidence YawRateConfidence } YawRateValue ::= INTEGER { straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767) } (-32767..32767) -- LSB units of 0.01 degrees per second YawRateConfidence ::= ENUMERATED { unavailable (0), degSec-100-00 (1), -- within 100 deg/sec degSec-010-00 (2), -- within 10 deg/sec degSec-005-00 (3), -- within 5 deg/sec degSec-001-00 (4), -- within 1 deg/sec degSec-000-10 (5), -- within 0.1 deg/sec degSec-000-05 (6), -- within 0.05 deg/sec degSec-000-01 (7), -- within 0.01 deg/sec outOfRange (8) } END