Loading asn1/CAM/CAM.asn +108 −28 Original line number 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 { 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 ::= Loading @@ -9,13 +7,14 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS ItsPduHeader, VehicleCommonParameters, ProfileParameters, StationID, TimeStamp, ReferencePosition FROM DENM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) }; 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 { 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 CamPdu ::= SEQUENCE { CAM ::= SEQUENCE { header ItsPduHeader, cam CoopAwareness Loading @@ -23,31 +22,112 @@ CamPdu ::= 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. stationCharacteristics SEQUENCE { mobileItsStation BOOLEAN, -- will ITS station change position? privateItsStation BOOLEAN, -- not public authority physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? LowFrequencyContainer ::= CHOICE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, ... -- further type specific RSU containers might be added as extensions } SpecialVehicleContainer ::= CHOICE { publicTransportContainer PublicTransportContainer, specialTransportContainer SpecialTransportContainer, dangerousGoodsContainer DangerousGoodsContainer, roadWorksContainerBasic RoadWorksContainerBasic, rescueContainer RescueContainer, emergencyContainer EmergencyContainer, safetyCarContainer SafetyCarContainer, ... }, } BasicContainer ::= SEQUENCE { stationType StationType, 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 { vehicleCommonParameters VehicleCommonParameters, profileDependent ProfileParameters OPTIONAL, ... PublicTransportContainer ::= SEQUENCE { embarkationStatus EmbarkationStatus, 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 asn1/DENM/DENM.asn +4 −13 Original line number Diff line number Diff line Loading @@ -7,8 +7,8 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN 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 { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 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) ts (102894) cdd (2) version (1) }; Loading Loading @@ -46,8 +46,8 @@ SituationContainer ::= SEQUENCE { } LocationContainer ::= SEQUENCE { eventSpeed Movement OPTIONAL, eventPositionHeading Direction OPTIONAL, eventSpeed Speed OPTIONAL, eventPositionHeading Heading OPTIONAL, traces Traces, roadClass RoadClass OPTIONAL } Loading Loading @@ -78,15 +78,6 @@ PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar 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 Loading asn1/ITS-Container/ITS-Container.asn +133 −68 Original line number Diff line number Diff line 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 ::= Loading Loading @@ -27,39 +27,48 @@ DeltaReferencePosition ::= SEQUENCE { 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 { elevationValue ElevationValue, 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 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 { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction semiMajorOrientation Heading } PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, pathDeltaTime PathDeltaTime 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), Loading @@ -71,7 +80,7 @@ AccelerationControl ::= BIT STRING { } (SIZE(7)) SemiAxisLength ::= INTEGER{ oneCentimeter(1), unavailable(4095) } (0..4095) SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095) } (0..4095) CauseCode ::= SEQUENCE { causeCode CauseCodeType, Loading Loading @@ -162,53 +171,83 @@ Curvature ::= SEQUENCE { curvatureConfidence CurvatureConfidence } CurvatureValue ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureConfidence ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) 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 { yawRateNotUsed(0), yawRateUsed(1), ... } CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... } Direction ::= SEQUENCE { directionValue DirectionValue, directionConfidence DirectionConfidence Heading ::= SEQUENCE { headingValue HeadingValue, 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), 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) Movement ::= SEQUENCE { vehicleSpeed VehicleSpeed, vehicleSpeedConfidence VehicleSpeedConfidence Speed ::= SEQUENCE { speedValue SpeedValue, speedConfidence SpeedConfidence } DriveDirection ::= ENUMERATED { forward (0), backward (1) } DriveDirection ::= ENUMERATED { forward (0), backward (1), unavailable (2) } EmbarkationStatus ::= BOOLEAN LongitudinalAcceleration ::= SEQUENCE { 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), 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) } (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) } Loading @@ -284,33 +323,36 @@ StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessTh Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) 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 { row1LeftOccupied (0), row1RightOccupied (1), row1MidOccupied (2), row1NotDetectable (3), row2LeftOccupied (4), row2RightOccupied (5), row2MidOccupied (6), row2NotDetectable (7), row3LeftOccupied (8), row3RightOccupied (9), row3MidOccupied (10), row3NotDetectable (11), row4LeftOccupied (12), row4RightOccupied (13), row4MidOccupied (14), row4NotDetectable (15) } (SIZE(16)) 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), ... } Loading @@ -330,24 +372,20 @@ VehicleLength ::= SEQUENCE { 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), trailerPresenceIsUnknown(3) } VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unknown(62) } (1..62) PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) } (1..62) PtPriority ::= INTEGER { lowest(0), highest(3) } (0..3) PathHistory::= SEQUENCE (SIZE(0..23)) OF PathPoint EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) PtLineNumber ::= UTF8String (SIZE(1..5)) PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..7) InformationQuality ::= INTEGER { unavailable(0), lowest(1), highest(7) } (0..7) RoadClass ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), Loading @@ -355,11 +393,38 @@ RoadClass ::= ENUMERATED { nonUrban-NoStructuralSeparationToOppositeLanes(2), 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) 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 Loading
asn1/CAM/CAM.asn +108 −28 Original line number 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 { 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 ::= Loading @@ -9,13 +7,14 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS ItsPduHeader, VehicleCommonParameters, ProfileParameters, StationID, TimeStamp, ReferencePosition FROM DENM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) }; 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 { 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 CamPdu ::= SEQUENCE { CAM ::= SEQUENCE { header ItsPduHeader, cam CoopAwareness Loading @@ -23,31 +22,112 @@ CamPdu ::= 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. stationCharacteristics SEQUENCE { mobileItsStation BOOLEAN, -- will ITS station change position? privateItsStation BOOLEAN, -- not public authority physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? LowFrequencyContainer ::= CHOICE { basicVehicleContainerLowFrequency BasicVehicleContainerLowFrequency, ... -- further type specific RSU containers might be added as extensions } SpecialVehicleContainer ::= CHOICE { publicTransportContainer PublicTransportContainer, specialTransportContainer SpecialTransportContainer, dangerousGoodsContainer DangerousGoodsContainer, roadWorksContainerBasic RoadWorksContainerBasic, rescueContainer RescueContainer, emergencyContainer EmergencyContainer, safetyCarContainer SafetyCarContainer, ... }, } BasicContainer ::= SEQUENCE { stationType StationType, 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 { vehicleCommonParameters VehicleCommonParameters, profileDependent ProfileParameters OPTIONAL, ... PublicTransportContainer ::= SEQUENCE { embarkationStatus EmbarkationStatus, 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
asn1/DENM/DENM.asn +4 −13 Original line number Diff line number Diff line Loading @@ -7,8 +7,8 @@ DEFINITIONS AUTOMATIC TAGS ::= BEGIN 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 { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 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) ts (102894) cdd (2) version (1) }; Loading Loading @@ -46,8 +46,8 @@ SituationContainer ::= SEQUENCE { } LocationContainer ::= SEQUENCE { eventSpeed Movement OPTIONAL, eventPositionHeading Direction OPTIONAL, eventSpeed Speed OPTIONAL, eventPositionHeading Heading OPTIONAL, traces Traces, roadClass RoadClass OPTIONAL } Loading Loading @@ -78,15 +78,6 @@ PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar 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 Loading
asn1/ITS-Container/ITS-Container.asn +133 −68 Original line number Diff line number Diff line 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 ::= Loading Loading @@ -27,39 +27,48 @@ DeltaReferencePosition ::= SEQUENCE { 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 { elevationValue ElevationValue, 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 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 { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction semiMajorOrientation Heading } PathPoint ::= SEQUENCE { pathPosition DeltaReferencePosition, pathDeltaTime PathDeltaTime 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), Loading @@ -71,7 +80,7 @@ AccelerationControl ::= BIT STRING { } (SIZE(7)) SemiAxisLength ::= INTEGER{ oneCentimeter(1), unavailable(4095) } (0..4095) SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095) } (0..4095) CauseCode ::= SEQUENCE { causeCode CauseCodeType, Loading Loading @@ -162,53 +171,83 @@ Curvature ::= SEQUENCE { curvatureConfidence CurvatureConfidence } CurvatureValue ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureConfidence ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) 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 { yawRateNotUsed(0), yawRateUsed(1), ... } CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... } Direction ::= SEQUENCE { directionValue DirectionValue, directionConfidence DirectionConfidence Heading ::= SEQUENCE { headingValue HeadingValue, 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), 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) Movement ::= SEQUENCE { vehicleSpeed VehicleSpeed, vehicleSpeedConfidence VehicleSpeedConfidence Speed ::= SEQUENCE { speedValue SpeedValue, speedConfidence SpeedConfidence } DriveDirection ::= ENUMERATED { forward (0), backward (1) } DriveDirection ::= ENUMERATED { forward (0), backward (1), unavailable (2) } EmbarkationStatus ::= BOOLEAN LongitudinalAcceleration ::= SEQUENCE { 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), 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) } (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) } Loading @@ -284,33 +323,36 @@ StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessTh Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67) 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 { row1LeftOccupied (0), row1RightOccupied (1), row1MidOccupied (2), row1NotDetectable (3), row2LeftOccupied (4), row2RightOccupied (5), row2MidOccupied (6), row2NotDetectable (7), row3LeftOccupied (8), row3RightOccupied (9), row3MidOccupied (10), row3NotDetectable (11), row4LeftOccupied (12), row4RightOccupied (13), row4MidOccupied (14), row4NotDetectable (15) } (SIZE(16)) 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), ... } Loading @@ -330,24 +372,20 @@ VehicleLength ::= SEQUENCE { 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), trailerPresenceIsUnknown(3) } VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unknown(62) } (1..62) PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) } (1..62) PtPriority ::= INTEGER { lowest(0), highest(3) } (0..3) PathHistory::= SEQUENCE (SIZE(0..23)) OF PathPoint EmergencyPriority ::= INTEGER { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (0..1) PtLineNumber ::= UTF8String (SIZE(1..5)) PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..7) InformationQuality ::= INTEGER { unavailable(0), lowest(1), highest(7) } (0..7) RoadClass ::= ENUMERATED { urban-NoStructuralSeparationToOppositeLanes(0), Loading @@ -355,11 +393,38 @@ RoadClass ::= ENUMERATED { nonUrban-NoStructuralSeparationToOppositeLanes(2), 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) 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