Loading asn1/CAM/CAM.asn +108 −28 Original line number Original line Diff line number Diff line -- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the OSS ASN.1 Tools CAM-PDU-Descriptions { CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (1) } } DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= Loading @@ -9,13 +7,14 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, VehicleCommonParameters, ProfileParameters, StationID, TimeStamp, ReferencePosition ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, Heading, PtActivation, LaneNumber, EmergencyPriority, EmbarkationStatus, Speed, DriveDirection, LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType, ExteriorLights, DangerousGoodsBasic, PerformanceClass, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleWidth, PathHistory, RoadworksSubCauseCode, ClosedLanes, TrafficRule, SpeedLimit, SteeringWheelAngle, YawRate FROM ITS-Container { FROM DENM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) }; itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }; -- The root data frame for cooperative awareness messages -- The root data frame for cooperative awareness messages CamPdu ::= SEQUENCE { CAM ::= SEQUENCE { header ItsPduHeader, header ItsPduHeader, cam CoopAwareness cam CoopAwareness Loading @@ -23,31 +22,112 @@ CamPdu ::= SEQUENCE { CoopAwareness ::= SEQUENCE { CoopAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, camParameters CamParameters } CamParameters ::= SEQUENCE { basicContainer BasicContainer, highFrequencyContainer HighFrequencyContainer, lowFrequencyContainer LowFrequencyContainer OPTIONAL, specialVehicleContainer SpecialVehicleContainer OPTIONAL, ... } stationID StationID, HighFrequencyContainer ::= CHOICE { basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, emptyRSUContainerHighFrequency EmptyRSUContainerHighFrequency, ... -- further type specific RSU containers might be added as extensions } -- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType. LowFrequencyContainer ::= CHOICE { stationCharacteristics SEQUENCE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, mobileItsStation BOOLEAN, -- will ITS station change position? ... -- further type specific RSU containers might be added as extensions privateItsStation BOOLEAN, -- not public authority } physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? SpecialVehicleContainer ::= CHOICE { publicTransportContainer PublicTransportContainer, specialTransportContainer SpecialTransportContainer, dangerousGoodsContainer DangerousGoodsContainer, roadWorksContainerBasic RoadWorksContainerBasic, rescueContainer RescueContainer, emergencyContainer EmergencyContainer, safetyCarContainer SafetyCarContainer, ... ... }, } BasicContainer ::= SEQUENCE { stationType StationType, referencePosition ReferencePosition, referencePosition ReferencePosition, camParameters CamParameters OPTIONAL, -- presently omitted for Irs ... ... } } BasicVehicleContainerHighFrequency ::= SEQUENCE { heading Heading, speed Speed, driveDirection DriveDirection, vehicleLength VehicleLength, vehicleWidth VehicleWidth, longitudinalAcceleration LongitudinalAcceleration, curvature Curvature, curvatureCalculationMode CurvatureCalculationMode, yawRate YawRate, accelerationControl AccelerationControl OPTIONAL, laneNumber LaneNumber OPTIONAL, steeringWheelAngle SteeringWheelAngle OPTIONAL, lateralAcceleration LateralAcceleration OPTIONAL, verticalAcceleration VerticalAcceleration OPTIONAL, performanceClass PerformanceClass OPTIONAL } BasicVehicleContainerLowFrequency ::= SEQUENCE { vehicleRole VehicleRole, exteriorLights ExteriorLights, pathHistory PathHistory } CamParameters ::= SEQUENCE { PublicTransportContainer ::= SEQUENCE { vehicleCommonParameters VehicleCommonParameters, embarkationStatus EmbarkationStatus, profileDependent ProfileParameters OPTIONAL, ptActivation PtActivation OPTIONAL ... } } SpecialTransportContainer ::= SEQUENCE { specialTransportType SpecialTransportType, lightBarSirenInUse LightBarSirenInUse } DangerousGoodsContainer ::= SEQUENCE { dangerousGoodsBasic DangerousGoodsBasic } RoadWorksContainerBasic ::= SEQUENCE { roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, lightBarSirenInUse LightBarSirenInUse, closedLanes ClosedLanes OPTIONAL } RescueContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, emergencyPriority EmergencyPriority OPTIONAL } EmergencyContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, incidentIndication CauseCode OPTIONAL, emergencyPriority EmergencyPriority OPTIONAL } SafetyCarContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, incidentIndication CauseCode OPTIONAL, trafficRule TrafficRule OPTIONAL, speedLimit SpeedLimit OPTIONAL } EmptyRSUContainerHighFrequency ::= NULL GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) END END asn1/DENM/DENM.asn +4 −13 Original line number Original line Diff line number Diff line Loading @@ -7,8 +7,8 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, CauseCode, StationID, Movement, InformationQuality, ReferencePosition, DangerousGoodsExtended, Direction, LaneNumber, LightBarSirenInUse, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType FROM ITS-Container { ItsPduHeader, CauseCode, StationID, Speed, InformationQuality, ReferencePosition, ClosedLanes, DangerousGoodsExtended, Heading, LaneNumber, LightBarSirenInUse, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }; }; Loading Loading @@ -46,8 +46,8 @@ SituationContainer ::= SEQUENCE { } } LocationContainer ::= SEQUENCE { LocationContainer ::= SEQUENCE { eventSpeed Movement OPTIONAL, eventSpeed Speed OPTIONAL, eventPositionHeading Direction OPTIONAL, eventPositionHeading Heading OPTIONAL, traces Traces, traces Traces, roadClass RoadClass OPTIONAL roadClass RoadClass OPTIONAL } } Loading Loading @@ -78,15 +78,6 @@ PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar recommendedPath ItineraryPath OPTIONAL --Traces without timestamps recommendedPath ItineraryPath OPTIONAL --Traces without timestamps } } ClosedLanes ::= SEQUENCE { hardShoulderStatus HardShoulderStatus OPTIONAL, drivingLaneStatus DrivingLaneStatus, ... } HardShoulderStatus ::= ENUMERATED { availableForStopping(0), closed(1), availableForDriving(2) } DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(0), secondLaneFromOutsideClosed(1) } (SIZE (1..14)) RestrictedTypes ::= SEQUENCE OF StationType RestrictedTypes ::= SEQUENCE OF StationType Loading asn1/ITS-Container/ITS-Container.asn +133 −68 Original line number Original line Diff line number Diff line ITS-Container { ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cc (2) version (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) } } DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= Loading Loading @@ -27,39 +27,48 @@ DeltaReferencePosition ::= SEQUENCE { deltaElevation DeltaElevation deltaElevation DeltaElevation } } Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-1799999999..1800000000) -- multiples of 0.1 microdegree Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001) } (-1799999999..1800000001) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-900000000..900000000) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree Elevation ::= SEQUENCE { Elevation ::= SEQUENCE { elevationValue ElevationValue, elevationValue ElevationValue, elevationConfidence ElevationConfidence elevationConfidence ElevationConfidence } } ElevationValue ::= INTEGER { seaLevel(0),oneMeter (1) } (-1000..7191) ElevationValue ::= INTEGER { seaLevel(0), oneMeter(1), unavailable(7191) } (-1000..7191) ElevationConfidence ::= INTEGER { withinOneMeter(1), unavailable(127) } (1..127) ElevationConfidence ::= INTEGER { withinOneMeter(1), outOfRange(126), unavailable(127) } (1..127) DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-131072..131071) -- multiples of 0.1 microdegree 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 DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-131072..131071) -- multiples of 0.1 microdegree DeltaElevation ::= INTEGER { oneMeterUp (1), oneMeterDown (-1) } (-127..128) DeltaElevation ::= INTEGER { oneMeterUp (1), oneMeterDown (-1), unavailable(128) } (-127..128) PosConfidenceEllipse ::= SEQUENCE { PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction semiMajorOrientation Heading } } PathPoint ::= SEQUENCE { PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, pathPosition DeltaReferencePosition, pathDeltaTime PathDeltaTime pathDeltaTime PathDeltaTime OPTIONAL } } PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (0..65535, ...) 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 { AccelerationControl ::= BIT STRING { brakePedalActive (0), brakePedalActive (0), gasPedalActive (1), gasPedalActive (1), Loading @@ -71,7 +80,7 @@ AccelerationControl ::= BIT STRING { } (SIZE(7)) } (SIZE(7)) SemiAxisLength ::= INTEGER{ oneCentimeter(1), unavailable(4095) } (0..4095) SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095) } (0..4095) CauseCode ::= SEQUENCE { CauseCode ::= SEQUENCE { causeCode CauseCodeType, causeCode CauseCodeType, Loading Loading @@ -162,53 +171,83 @@ Curvature ::= SEQUENCE { curvatureConfidence CurvatureConfidence curvatureConfidence CurvatureConfidence } } CurvatureValue ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureValue ::= INTEGER { straight(0), reciprocalOf1MeterRadiusToRight(-30000), reciprocalOf1MeterRadiusToLeft(30000), unavailable(30001) } (-30000..30001) CurvatureConfidence ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) 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 { yawRateNotUsed(0), yawRateUsed(1), ... } CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... } Direction ::= SEQUENCE { Heading ::= SEQUENCE { directionValue DirectionValue, headingValue HeadingValue, directionConfidence DirectionConfidence headingConfidence HeadingConfidence } } DirectionValue ::= INTEGER {north(0), east(900), south(1800), west(2700), unavailable(3600) } (0..3600) HeadingValue ::= INTEGER { wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3600) } (0..3600) DirectionConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), unavailable(127) } (1..127) HeadingConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), outOfRange(126), unavailable(127) } (1..127) LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0), LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14) outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14) LaneClosure ::= BIT STRING { hardShoulderClosed(0), outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (2..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 VehicleSpeed ::= INTEGER { standstill(0), oneCentimeterPerSec(1) } (0..16383) SpeedValue ::= INTEGER { standstill(0), oneCentimeterPerSec(1), unavailable(16383) } (0..16383) VehicleSpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127) SpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127) VehicleMass ::= INTEGER { hundredKg(1), unavailable(1024) } (1..1024) VehicleMass ::= INTEGER { hundredKg(1), unavailable(1024) } (1..1024) Movement ::= SEQUENCE { Speed ::= SEQUENCE { vehicleSpeed VehicleSpeed, speedValue SpeedValue, vehicleSpeedConfidence VehicleSpeedConfidence speedConfidence SpeedConfidence } } DriveDirection ::= ENUMERATED { forward (0), backward (1) } DriveDirection ::= ENUMERATED { forward (0), backward (1), unavailable (2) } EmbarkationStatus ::= BOOLEAN EmbarkationStatus ::= BOOLEAN LongitudinalAcceleration ::= SEQUENCE { LongitudinalAcceleration ::= SEQUENCE { longitudinalAccelerationValue LongitudinalAccelerationValue, longitudinalAccelerationValue LongitudinalAccelerationValue, longitudinalAccelerationConfidence LongitudinalAccelerationConfidence longitudinalAccelerationConfidence AccelerationConfidence } } LongitudinalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1)} (-160 .. 160) LongitudinalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) LongitudinalAccelerationConfidence ::= INTEGER { pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) AccelerationConfidence ::= INTEGER { pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) LateralAcceleration ::= INTEGER { pointOneMeterPerSecSquaredToRight(1), pointOneMeterPerSecSquaredToLeft(-1)} (-160 .. 160) LateralAcceleration ::= SEQUENCE { lateralAccelerationValue LateralAccelerationValue, lateralAccelerationConfidence AccelerationConfidence } LateralAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161) } (-160 .. 161) VerticalAcceleration ::= INTEGER { eightCentimeterPerSecSquaredUp(1), eightCentimeterPerSecSquaredDown(-1)} (-127 .. 127) 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), 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) lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15) } (0..255) Loading Loading @@ -267,13 +306,13 @@ LightBarSirenInUse ::= BIT STRING { sirenActivated (1) sirenActivated (1) } (SIZE(2)) } (SIZE(2)) HeightLonCarr ::= INTEGER { oneCentimeter(1), unknown(100) } (0..100) HeightLonCarr ::= INTEGER { oneCentimeter(1), unavailable(100) } (0..100) PosLonCarr ::= INTEGER { oneCentimeter(1), unknown(127) } (0..127) PosLonCarr ::= INTEGER { oneCentimeter(1), unavailable(127) } (0..127) PosPillar ::= INTEGER { tenCentimeters(1), unknown(30) } (0..30) PosPillar ::= INTEGER { tenCentimeters(1), unavailable(30) } (0..30) PosCentMass ::= INTEGER { tenCentimeters(1), unknown(63) } (0..63) PosCentMass ::= INTEGER { tenCentimeters(1), unavailable(63) } (0..63) RequestResponseIndication ::= ENUMERATED { request(0), response(1) } RequestResponseIndication ::= ENUMERATED { request(0), response(1) } Loading @@ -284,33 +323,36 @@ StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessTh Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) TrafficRule ::= ENUMERATED { noPassing(0), TrafficRule ::= ENUMERATED { noPassing(0), noPassingForTrucks(1) noPassingForTrucks(1), ... } } WheelBaseVehicle ::= INTEGER { tenCentimeters(1), unknown(127) } (0..127) WheelBaseVehicle ::= INTEGER { tenCentimeters(1), unavailable(127) } (0..127) TurningRadius ::= INTEGER { point4Meters(1), unknown(255) } (0..255) TurningRadius ::= INTEGER { point4Meters(1), unavailable(255) } (0..255) PosFrontAx ::= INTEGER { tenCentimeters(1), unknown(20) } (0..20) PosFrontAx ::= INTEGER { tenCentimeters(1), unavailable(20) } (0..20) PositionOfOccupants ::= BIT STRING { PositionOfOccupants ::= BIT STRING { row1LeftOccupied (0), row1LeftOccupied (0), row1RightOccupied (1), row1RightOccupied (1), row1MidOccupied (2), row1MidOccupied (2), row1NotDetectable (3), row1NotDetectable (3), row2LeftOccupied (4), row1NotPresent (4), row2RightOccupied (5), row2LeftOccupied (5), row2MidOccupied (6), row2RightOccupied (6), row2NotDetectable (7), row2MidOccupied (7), row3LeftOccupied (8), row2NotDetectable (8), row3RightOccupied (9), row2NotPresent (9), row3MidOccupied (10), row3LeftOccupied (10), row3NotDetectable (11), row3RightOccupied (11), row4LeftOccupied (12), row3MidOccupied (12), row4RightOccupied (13), row3NotDetectable (13), row4MidOccupied (14), row3NotPresent (14), row4NotDetectable (15) row4LeftOccupied (15), } (SIZE(16)) row4RightOccupied (16), row4MidOccupied (17), row4NotDetectable (18), row4NotPresent (19) } (SIZE(20)) PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... } PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... } Loading @@ -330,24 +372,20 @@ VehicleLength ::= SEQUENCE { vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication } } VehicleLengthValue ::= INTEGER { tenCentimeters(1), outOfRange(1022), unknown(1023) } (1..1023) WMInumber ::= IA5String (SIZE(1..3)) VehicleLengthValue ::= INTEGER { tenCentimeters(1), outOfRange(1022), unavailable(1023) } (1..1023) VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3) } trailerPresenceIsUnknown(3) } VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unknown(62) } (1..62) VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) } (1..62) PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint PtPriority ::= INTEGER { lowest(0), highest(3) } (0..3) PathHistory::= SEQUENCE (SIZE(0..23)) OF PathPoint EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) PtLineNumber ::= UTF8String (SIZE(1..5)) InformationQuality ::= INTEGER { unavailable(0), lowest(1), highest(7) } (0..7) PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..7) RoadClass ::= ENUMERATED { RoadClass ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), urban-NoStructuralSeparationToOppositeLanes(0), Loading @@ -355,11 +393,38 @@ RoadClass ::= ENUMERATED { nonUrban-NoStructuralSeparationToOppositeLanes(2), nonUrban-NoStructuralSeparationToOppositeLanes(2), nonUrban-WithStructuralSeparationToOppositeLanes(3) } nonUrban-WithStructuralSeparationToOppositeLanes(3) } SteeringWheelAngle ::= INTEGER { straight(0), onePointFiveDegreesToRight(1), onePointFiveDegreesToLeft(-1), outOfRangeToRight(126), outOfRangeToLeft(-126) } (-126..126) 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) 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) } 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 END Loading
asn1/CAM/CAM.asn +108 −28 Original line number Original line Diff line number Diff line -- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the OSS ASN.1 Tools CAM-PDU-Descriptions { CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cam (2) version (1) } } DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= Loading @@ -9,13 +7,14 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, VehicleCommonParameters, ProfileParameters, StationID, TimeStamp, ReferencePosition ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, Heading, PtActivation, LaneNumber, EmergencyPriority, EmbarkationStatus, Speed, DriveDirection, LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType, ExteriorLights, DangerousGoodsBasic, PerformanceClass, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleWidth, PathHistory, RoadworksSubCauseCode, ClosedLanes, TrafficRule, SpeedLimit, SteeringWheelAngle, YawRate FROM ITS-Container { FROM DENM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) }; itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }; -- The root data frame for cooperative awareness messages -- The root data frame for cooperative awareness messages CamPdu ::= SEQUENCE { CAM ::= SEQUENCE { header ItsPduHeader, header ItsPduHeader, cam CoopAwareness cam CoopAwareness Loading @@ -23,31 +22,112 @@ CamPdu ::= SEQUENCE { CoopAwareness ::= SEQUENCE { CoopAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, camParameters CamParameters } CamParameters ::= SEQUENCE { basicContainer BasicContainer, highFrequencyContainer HighFrequencyContainer, lowFrequencyContainer LowFrequencyContainer OPTIONAL, specialVehicleContainer SpecialVehicleContainer OPTIONAL, ... } stationID StationID, HighFrequencyContainer ::= CHOICE { basicVehicleContainerHighFrequency BasicVehicleContainerHighFrequency, emptyRSUContainerHighFrequency EmptyRSUContainerHighFrequency, ... -- further type specific RSU containers might be added as extensions } -- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType. LowFrequencyContainer ::= CHOICE { stationCharacteristics SEQUENCE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, mobileItsStation BOOLEAN, -- will ITS station change position? ... -- further type specific RSU containers might be added as extensions privateItsStation BOOLEAN, -- not public authority } physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? SpecialVehicleContainer ::= CHOICE { publicTransportContainer PublicTransportContainer, specialTransportContainer SpecialTransportContainer, dangerousGoodsContainer DangerousGoodsContainer, roadWorksContainerBasic RoadWorksContainerBasic, rescueContainer RescueContainer, emergencyContainer EmergencyContainer, safetyCarContainer SafetyCarContainer, ... ... }, } BasicContainer ::= SEQUENCE { stationType StationType, referencePosition ReferencePosition, referencePosition ReferencePosition, camParameters CamParameters OPTIONAL, -- presently omitted for Irs ... ... } } BasicVehicleContainerHighFrequency ::= SEQUENCE { heading Heading, speed Speed, driveDirection DriveDirection, vehicleLength VehicleLength, vehicleWidth VehicleWidth, longitudinalAcceleration LongitudinalAcceleration, curvature Curvature, curvatureCalculationMode CurvatureCalculationMode, yawRate YawRate, accelerationControl AccelerationControl OPTIONAL, laneNumber LaneNumber OPTIONAL, steeringWheelAngle SteeringWheelAngle OPTIONAL, lateralAcceleration LateralAcceleration OPTIONAL, verticalAcceleration VerticalAcceleration OPTIONAL, performanceClass PerformanceClass OPTIONAL } BasicVehicleContainerLowFrequency ::= SEQUENCE { vehicleRole VehicleRole, exteriorLights ExteriorLights, pathHistory PathHistory } CamParameters ::= SEQUENCE { PublicTransportContainer ::= SEQUENCE { vehicleCommonParameters VehicleCommonParameters, embarkationStatus EmbarkationStatus, profileDependent ProfileParameters OPTIONAL, ptActivation PtActivation OPTIONAL ... } } SpecialTransportContainer ::= SEQUENCE { specialTransportType SpecialTransportType, lightBarSirenInUse LightBarSirenInUse } DangerousGoodsContainer ::= SEQUENCE { dangerousGoodsBasic DangerousGoodsBasic } RoadWorksContainerBasic ::= SEQUENCE { roadworksSubCauseCode RoadworksSubCauseCode OPTIONAL, lightBarSirenInUse LightBarSirenInUse, closedLanes ClosedLanes OPTIONAL } RescueContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, emergencyPriority EmergencyPriority OPTIONAL } EmergencyContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, incidentIndication CauseCode OPTIONAL, emergencyPriority EmergencyPriority OPTIONAL } SafetyCarContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse, incidentIndication CauseCode OPTIONAL, trafficRule TrafficRule OPTIONAL, speedLimit SpeedLimit OPTIONAL } EmptyRSUContainerHighFrequency ::= NULL GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) END END
asn1/DENM/DENM.asn +4 −13 Original line number Original line Diff line number Diff line Loading @@ -7,8 +7,8 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, CauseCode, StationID, Movement, InformationQuality, ReferencePosition, DangerousGoodsExtended, Direction, LaneNumber, LightBarSirenInUse, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType FROM ITS-Container { ItsPduHeader, CauseCode, StationID, Speed, InformationQuality, ReferencePosition, ClosedLanes, DangerousGoodsExtended, Heading, LaneNumber, LightBarSirenInUse, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, PositioningSolutionType, RequestResponseIndication, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }; }; Loading Loading @@ -46,8 +46,8 @@ SituationContainer ::= SEQUENCE { } } LocationContainer ::= SEQUENCE { LocationContainer ::= SEQUENCE { eventSpeed Movement OPTIONAL, eventSpeed Speed OPTIONAL, eventPositionHeading Direction OPTIONAL, eventPositionHeading Heading OPTIONAL, traces Traces, traces Traces, roadClass RoadClass OPTIONAL roadClass RoadClass OPTIONAL } } Loading Loading @@ -78,15 +78,6 @@ PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar recommendedPath ItineraryPath OPTIONAL --Traces without timestamps recommendedPath ItineraryPath OPTIONAL --Traces without timestamps } } ClosedLanes ::= SEQUENCE { hardShoulderStatus HardShoulderStatus OPTIONAL, drivingLaneStatus DrivingLaneStatus, ... } HardShoulderStatus ::= ENUMERATED { availableForStopping(0), closed(1), availableForDriving(2) } DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(0), secondLaneFromOutsideClosed(1) } (SIZE (1..14)) RestrictedTypes ::= SEQUENCE OF StationType RestrictedTypes ::= SEQUENCE OF StationType Loading
asn1/ITS-Container/ITS-Container.asn +133 −68 Original line number Original line Diff line number Diff line ITS-Container { ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cc (2) version (1) itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) } } DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= Loading Loading @@ -27,39 +27,48 @@ DeltaReferencePosition ::= SEQUENCE { deltaElevation DeltaElevation deltaElevation DeltaElevation } } Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-1799999999..1800000000) -- multiples of 0.1 microdegree Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001) } (-1799999999..1800000001) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-900000000..900000000) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree Elevation ::= SEQUENCE { Elevation ::= SEQUENCE { elevationValue ElevationValue, elevationValue ElevationValue, elevationConfidence ElevationConfidence elevationConfidence ElevationConfidence } } ElevationValue ::= INTEGER { seaLevel(0),oneMeter (1) } (-1000..7191) ElevationValue ::= INTEGER { seaLevel(0), oneMeter(1), unavailable(7191) } (-1000..7191) ElevationConfidence ::= INTEGER { withinOneMeter(1), unavailable(127) } (1..127) ElevationConfidence ::= INTEGER { withinOneMeter(1), outOfRange(126), unavailable(127) } (1..127) DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-131072..131071) -- multiples of 0.1 microdegree 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 DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-131072..131071) -- multiples of 0.1 microdegree DeltaElevation ::= INTEGER { oneMeterUp (1), oneMeterDown (-1) } (-127..128) DeltaElevation ::= INTEGER { oneMeterUp (1), oneMeterDown (-1), unavailable(128) } (-127..128) PosConfidenceEllipse ::= SEQUENCE { PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction semiMajorOrientation Heading } } PathPoint ::= SEQUENCE { PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, pathPosition DeltaReferencePosition, pathDeltaTime PathDeltaTime pathDeltaTime PathDeltaTime OPTIONAL } } PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (0..65535, ...) 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 { AccelerationControl ::= BIT STRING { brakePedalActive (0), brakePedalActive (0), gasPedalActive (1), gasPedalActive (1), Loading @@ -71,7 +80,7 @@ AccelerationControl ::= BIT STRING { } (SIZE(7)) } (SIZE(7)) SemiAxisLength ::= INTEGER{ oneCentimeter(1), unavailable(4095) } (0..4095) SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095) } (0..4095) CauseCode ::= SEQUENCE { CauseCode ::= SEQUENCE { causeCode CauseCodeType, causeCode CauseCodeType, Loading Loading @@ -162,53 +171,83 @@ Curvature ::= SEQUENCE { curvatureConfidence CurvatureConfidence curvatureConfidence CurvatureConfidence } } CurvatureValue ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureValue ::= INTEGER { straight(0), reciprocalOf1MeterRadiusToRight(-30000), reciprocalOf1MeterRadiusToLeft(30000), unavailable(30001) } (-30000..30001) CurvatureConfidence ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) 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 { yawRateNotUsed(0), yawRateUsed(1), ... } CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... } Direction ::= SEQUENCE { Heading ::= SEQUENCE { directionValue DirectionValue, headingValue HeadingValue, directionConfidence DirectionConfidence headingConfidence HeadingConfidence } } DirectionValue ::= INTEGER {north(0), east(900), south(1800), west(2700), unavailable(3600) } (0..3600) HeadingValue ::= INTEGER { wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3600) } (0..3600) DirectionConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), unavailable(127) } (1..127) HeadingConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), outOfRange(126), unavailable(127) } (1..127) LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0), LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0), outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14) outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14) LaneClosure ::= BIT STRING { hardShoulderClosed(0), outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (2..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 VehicleSpeed ::= INTEGER { standstill(0), oneCentimeterPerSec(1) } (0..16383) SpeedValue ::= INTEGER { standstill(0), oneCentimeterPerSec(1), unavailable(16383) } (0..16383) VehicleSpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127) SpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127) VehicleMass ::= INTEGER { hundredKg(1), unavailable(1024) } (1..1024) VehicleMass ::= INTEGER { hundredKg(1), unavailable(1024) } (1..1024) Movement ::= SEQUENCE { Speed ::= SEQUENCE { vehicleSpeed VehicleSpeed, speedValue SpeedValue, vehicleSpeedConfidence VehicleSpeedConfidence speedConfidence SpeedConfidence } } DriveDirection ::= ENUMERATED { forward (0), backward (1) } DriveDirection ::= ENUMERATED { forward (0), backward (1), unavailable (2) } EmbarkationStatus ::= BOOLEAN EmbarkationStatus ::= BOOLEAN LongitudinalAcceleration ::= SEQUENCE { LongitudinalAcceleration ::= SEQUENCE { longitudinalAccelerationValue LongitudinalAccelerationValue, longitudinalAccelerationValue LongitudinalAccelerationValue, longitudinalAccelerationConfidence LongitudinalAccelerationConfidence longitudinalAccelerationConfidence AccelerationConfidence } } LongitudinalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1)} (-160 .. 160) LongitudinalAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161) LongitudinalAccelerationConfidence ::= INTEGER { pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) AccelerationConfidence ::= INTEGER { pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102) LateralAcceleration ::= INTEGER { pointOneMeterPerSecSquaredToRight(1), pointOneMeterPerSecSquaredToLeft(-1)} (-160 .. 160) LateralAcceleration ::= SEQUENCE { lateralAccelerationValue LateralAccelerationValue, lateralAccelerationConfidence AccelerationConfidence } LateralAccelerationValue ::= INTEGER { pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161) } (-160 .. 161) VerticalAcceleration ::= INTEGER { eightCentimeterPerSecSquaredUp(1), eightCentimeterPerSecSquaredDown(-1)} (-127 .. 127) 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), 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) lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15) } (0..255) Loading Loading @@ -267,13 +306,13 @@ LightBarSirenInUse ::= BIT STRING { sirenActivated (1) sirenActivated (1) } (SIZE(2)) } (SIZE(2)) HeightLonCarr ::= INTEGER { oneCentimeter(1), unknown(100) } (0..100) HeightLonCarr ::= INTEGER { oneCentimeter(1), unavailable(100) } (0..100) PosLonCarr ::= INTEGER { oneCentimeter(1), unknown(127) } (0..127) PosLonCarr ::= INTEGER { oneCentimeter(1), unavailable(127) } (0..127) PosPillar ::= INTEGER { tenCentimeters(1), unknown(30) } (0..30) PosPillar ::= INTEGER { tenCentimeters(1), unavailable(30) } (0..30) PosCentMass ::= INTEGER { tenCentimeters(1), unknown(63) } (0..63) PosCentMass ::= INTEGER { tenCentimeters(1), unavailable(63) } (0..63) RequestResponseIndication ::= ENUMERATED { request(0), response(1) } RequestResponseIndication ::= ENUMERATED { request(0), response(1) } Loading @@ -284,33 +323,36 @@ StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessTh Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) TrafficRule ::= ENUMERATED { noPassing(0), TrafficRule ::= ENUMERATED { noPassing(0), noPassingForTrucks(1) noPassingForTrucks(1), ... } } WheelBaseVehicle ::= INTEGER { tenCentimeters(1), unknown(127) } (0..127) WheelBaseVehicle ::= INTEGER { tenCentimeters(1), unavailable(127) } (0..127) TurningRadius ::= INTEGER { point4Meters(1), unknown(255) } (0..255) TurningRadius ::= INTEGER { point4Meters(1), unavailable(255) } (0..255) PosFrontAx ::= INTEGER { tenCentimeters(1), unknown(20) } (0..20) PosFrontAx ::= INTEGER { tenCentimeters(1), unavailable(20) } (0..20) PositionOfOccupants ::= BIT STRING { PositionOfOccupants ::= BIT STRING { row1LeftOccupied (0), row1LeftOccupied (0), row1RightOccupied (1), row1RightOccupied (1), row1MidOccupied (2), row1MidOccupied (2), row1NotDetectable (3), row1NotDetectable (3), row2LeftOccupied (4), row1NotPresent (4), row2RightOccupied (5), row2LeftOccupied (5), row2MidOccupied (6), row2RightOccupied (6), row2NotDetectable (7), row2MidOccupied (7), row3LeftOccupied (8), row2NotDetectable (8), row3RightOccupied (9), row2NotPresent (9), row3MidOccupied (10), row3LeftOccupied (10), row3NotDetectable (11), row3RightOccupied (11), row4LeftOccupied (12), row3MidOccupied (12), row4RightOccupied (13), row3NotDetectable (13), row4MidOccupied (14), row3NotPresent (14), row4NotDetectable (15) row4LeftOccupied (15), } (SIZE(16)) row4RightOccupied (16), row4MidOccupied (17), row4NotDetectable (18), row4NotPresent (19) } (SIZE(20)) PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... } PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... } Loading @@ -330,24 +372,20 @@ VehicleLength ::= SEQUENCE { vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication } } VehicleLengthValue ::= INTEGER { tenCentimeters(1), outOfRange(1022), unknown(1023) } (1..1023) WMInumber ::= IA5String (SIZE(1..3)) VehicleLengthValue ::= INTEGER { tenCentimeters(1), outOfRange(1022), unavailable(1023) } (1..1023) VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3) } trailerPresenceIsUnknown(3) } VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unknown(62) } (1..62) VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) } (1..62) PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint PtPriority ::= INTEGER { lowest(0), highest(3) } (0..3) PathHistory::= SEQUENCE (SIZE(0..23)) OF PathPoint EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) PtLineNumber ::= UTF8String (SIZE(1..5)) InformationQuality ::= INTEGER { unavailable(0), lowest(1), highest(7) } (0..7) PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..7) RoadClass ::= ENUMERATED { RoadClass ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), urban-NoStructuralSeparationToOppositeLanes(0), Loading @@ -355,11 +393,38 @@ RoadClass ::= ENUMERATED { nonUrban-NoStructuralSeparationToOppositeLanes(2), nonUrban-NoStructuralSeparationToOppositeLanes(2), nonUrban-WithStructuralSeparationToOppositeLanes(3) } nonUrban-WithStructuralSeparationToOppositeLanes(3) } SteeringWheelAngle ::= INTEGER { straight(0), onePointFiveDegreesToRight(1), onePointFiveDegreesToLeft(-1), outOfRangeToRight(126), outOfRangeToLeft(-126) } (-126..126) 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) 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) } 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 END