Loading CAM/CAM.asn +49 −20 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) ts (102637) cam (2) version (3) } DEFINITIONS AUTOMATIC TAGS ::= Loading @@ -9,8 +9,9 @@ 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, ReferencePosition, AccelerationControl, Curvature, CurvatureAccuracy, CurvatureCalculationMode, Direction, DirectionConfidence, IncidentIndication, IncidentRule, LaneCount, LaneCountConfidence, Percentage, Priority, PtLineRoute, PtScheduleDelay, VehicleSpeed, DriveDirection, LongitudinalAcceleration, StationType, ExteriorLights, LongTruck, DangerousGoods, SpecialTransport, LightBarSirenInUse, Mass, VehicleWidth, VehicleLength, VehicleLengthConfidenceIndication, PathHistory FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) }; -- The root data frame for cooperative awareness messages Loading @@ -23,31 +24,59 @@ CamPdu ::= SEQUENCE { CoopAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, camParameters CamParameters, stationID StationID, ... } -- 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? CamParameters ::= SEQUENCE { basicContainer BasicContainer, basicVehicleContainer BasicVehicleContainerHighFrequency OPTIONAL, basicVehicleContainerStatic BasicVehicleContainerLowFrequency OPTIONAL, specialVehicleContainer SpecialVehicleContainer OPTIONAL, ... }, } referencePosition ReferencePosition, camParameters CamParameters OPTIONAL, -- presently omitted for Irs ... BasicContainer ::= SEQUENCE { stationType StationType, referencePosition ReferencePosition } BasicVehicleContainerHighFrequency ::= SEQUENCE { heading Direction, headingConfidence DirectionConfidence, laneCount LaneCount OPTIONAL, vehicleSpeed VehicleSpeed, driveDirection DriveDirection, longitudinalAcceleration LongitudinalAcceleration, accelerationControl AccelerationControl, curvature Curvature, curvatureAccuracy CurvatureAccuracy, curvatureCalculationMode CurvatureCalculationMode } BasicVehicleContainerLowFrequency ::= SEQUENCE { vehicleWidth VehicleWidth, vehicleLength VehicleLength, vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication, exteriorLights ExteriorLights, pathHistory PathHistory } CamParameters ::= SEQUENCE { vehicleCommonParameters VehicleCommonParameters, profileDependent ProfileParameters OPTIONAL, ... SpecialVehicleContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse OPTIONAL, incidentIndication IncidentIndication OPTIONAL, incidentRule IncidentRule OPTIONAL, dangerousGoods DangerousGoods OPTIONAL, ptLineRoute PtLineRoute OPTIONAL, ptScheduleDelay PtScheduleDelay OPTIONAL, priority Priority OPTIONAL } GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) END CommonContainer/ITS-Container.asn 0 → 100644 +213 −0 Original line number Diff line number Diff line ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) } DEFINITIONS AUTOMATIC TAGS ::= BEGIN ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER{ currentVersion(3) } (0..255), messageID INTEGER{ cam(0), denm(1) } (0..255), stationID StationID } StationID ::= INTEGER(0..4294967295) ReferencePosition ::= SEQUENCE { longitude Longitude, latitude Latitude, positionConfidenceEllipse PosConfidenceEllipse , elevation Elevation, elevationConfidence ElevationConfidence } DeltaPosition ::= SEQUENCE { deltaLongitude DeltaLongitude, deltaLatitude DeltaLatitude, positionConfidenceEllipse PosConfidenceEllipse } Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unknown(1800000001) } (-1800000000..1800000001) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unknown(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree Elevation ::= INTEGER (-1000..7191) -- multiples of 1 m DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-120..120) -- multiples of 0.1 microdegree DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-120..120) -- multiples of 0.1 microdegree PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction } PathPoint ::= SEQUENCE { pathPosition DeltaPosition, pathDeltaTime PathDeltaTime } PathDeltaTime ::= INTEGER { hundredMilliSecondsInPast(1), hundredMilliSecondsInFuture(-1) } (-31..31, ...) AccelerationControl ::= BIT STRING { notValid (0), breakPedalActive (1), gasPedalActive (2), emergencyBrakeActive (3), collisionWarningActive (4), accActive (5), cruiseControl (6), speedLimiterActive (7) } SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095) Curvature ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureChange ::= INTEGER{ noChange(0) } (-1020..1020) -- removing this type is under discussion CurvatureAccuracy ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) CurvatureCalculationMode ::= ENUMERATED { yawRateNotAvailable(0), yawRateAvailable(1), ... } Direction ::= INTEGER {north(0), east(900), south(1800), west(2700)} (0..4095) DirectionConfidence ::= INTEGER { notValid(127) } (0..127) ElevationConfidence ::= INTEGER { notValid(127) } (0..127) LaneCount ::= INTEGER { offTheRoad(0) } (0..15) LaneCountConfidence ::= Percentage Percentage ::= INTEGER (0..100) VehicleSpeed ::= INTEGER { oneCentimeterPerSec(1) } (0..16383) DriveDirection ::= ENUMERATED { forward (0), backward (1) } LongitudinalAcceleration ::= INTEGER { pointOneMeterPerSecSquared(1), notValid (160)} (-160 .. 160) StationType ::= INTEGER { unkown(0), passengerCar(1), bus(2) } (0..255) VehicleHeight ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51) VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51) VehicleLengthNormal ::= INTEGER { tenCentimeters(1), outOfRange(127) } (0..127) ExteriorLights ::= BIT STRING { lowBeamHeadlightsOn (0), highBeamHeadlightsOn (1), leftTurnSignalOn (2), rightTurnSignalOn (3), tbd (4), tbd2 (5), fogLightOn (6), parkingLightsOn (7) } LongTruck ::= ENUMERATED { lengthOf18point75Meters, ... } DangerousGoods ::= ENUMERATED { unknown (0), explosives (1), flammableGases(2), toxicGases(3), flammableLiquids (4), flammalbeSolids(5), substancesLiableToSpontaneousCombustion(6) , substancesEmittingFlammableGasesUponContactWithWater(7), oxidizingSubstances(8), organicPeroxides (9), toxicSubstances(10), infectiousSubstances(11), radioactiveMaterial (12), corrosiveSubstances(13), miscellaneousDangerousSubstances(14) } SpecialTransport ::= ENUMERATED { toBeDefined } -- not well defined yet LightBarSirenInUse ::= BIT STRING { noActivity (0), lightBarAvailable (1), lightBarActivated (2), sirenAvailable (3), sirenActivated (4) } Mass ::= INTEGER { hundredKg(1), exceeding50Tons(500), massUnknown(501) } (0..501) HeightLonCarr ::= INTEGER { oneCentimeter(1) } (0..100) PosLonCarr ::= INTEGER { oneCentimeter(1) } (0..127) PosPillar ::= INTEGER { tenCentimeters(1), notUsed(30) } (0..30) PosCentMass ::= INTEGER { tenCentimeters(1), notUsed(63) } (0..63) WheelBaseVehicle ::= INTEGER { tenCentimeters(1), notUsed(127) } (0..127) TurningRadius ::= INTEGER { point4Meters(1) } (0..255) PosFrontAx ::= INTEGER { tenCentimeters(1) } (0..20) PositionOfOccupants ::= BIT STRING { tier1LeftOccupied (0), tier1RightOccupied (1), tier1MidOccupied (2), tier2LeftOccupied (3), tier2RightOccupied (4), tier2MidOccupied (5), tier3LeftOccupied (6), tier3RightOccupied (7), tier3MidOccupied (8), tier3NotDetectable (9) } VehicleLength ::= CHOICE { vehicleLengthNormal VehicleLengthNormal, longTruck LongTruck} VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithUnkownLength(1), trailerPresenceIsUnkown(2) } PathHistory::= SEQUENCE SIZE(0..23) OF PathPoint IncidentIndication ::= ENUMERATED { attention(0), trafficJamAhead(1), slowVehicle(2), heavyGoodsTransport(3), movingRoadWorks(4), publicTransportDisembarkation(5), ... } IncidentRule ::= BIT STRING { leftLaneClosed (0), rightLaneClosed (1), noPassing (2), noPassingForTrucks (3) } Priority ::= INTEGER { lowest(0), highest(3) } (0..3) PtLineRoute ::= BIT STRING PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..127) RoadClass ::= ENUMERATED { gravelRoad(0) , localRoad(1), districtRoad(2), countryRoad(3), stateRoad(4), highway(5), reserved(6), unknown(7) } Timestamp ::= INTEGER { startOf1970(0), oneMillisecAfterStartOf1970(1) } (0..281474976710655) END DENM/DENM.asn +160 −413 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
CAM/CAM.asn +49 −20 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) ts (102637) cam (2) version (3) } DEFINITIONS AUTOMATIC TAGS ::= Loading @@ -9,8 +9,9 @@ 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, ReferencePosition, AccelerationControl, Curvature, CurvatureAccuracy, CurvatureCalculationMode, Direction, DirectionConfidence, IncidentIndication, IncidentRule, LaneCount, LaneCountConfidence, Percentage, Priority, PtLineRoute, PtScheduleDelay, VehicleSpeed, DriveDirection, LongitudinalAcceleration, StationType, ExteriorLights, LongTruck, DangerousGoods, SpecialTransport, LightBarSirenInUse, Mass, VehicleWidth, VehicleLength, VehicleLengthConfidenceIndication, PathHistory FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) }; -- The root data frame for cooperative awareness messages Loading @@ -23,31 +24,59 @@ CamPdu ::= SEQUENCE { CoopAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, camParameters CamParameters, stationID StationID, ... } -- 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? CamParameters ::= SEQUENCE { basicContainer BasicContainer, basicVehicleContainer BasicVehicleContainerHighFrequency OPTIONAL, basicVehicleContainerStatic BasicVehicleContainerLowFrequency OPTIONAL, specialVehicleContainer SpecialVehicleContainer OPTIONAL, ... }, } referencePosition ReferencePosition, camParameters CamParameters OPTIONAL, -- presently omitted for Irs ... BasicContainer ::= SEQUENCE { stationType StationType, referencePosition ReferencePosition } BasicVehicleContainerHighFrequency ::= SEQUENCE { heading Direction, headingConfidence DirectionConfidence, laneCount LaneCount OPTIONAL, vehicleSpeed VehicleSpeed, driveDirection DriveDirection, longitudinalAcceleration LongitudinalAcceleration, accelerationControl AccelerationControl, curvature Curvature, curvatureAccuracy CurvatureAccuracy, curvatureCalculationMode CurvatureCalculationMode } BasicVehicleContainerLowFrequency ::= SEQUENCE { vehicleWidth VehicleWidth, vehicleLength VehicleLength, vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication, exteriorLights ExteriorLights, pathHistory PathHistory } CamParameters ::= SEQUENCE { vehicleCommonParameters VehicleCommonParameters, profileDependent ProfileParameters OPTIONAL, ... SpecialVehicleContainer ::= SEQUENCE { lightBarSirenInUse LightBarSirenInUse OPTIONAL, incidentIndication IncidentIndication OPTIONAL, incidentRule IncidentRule OPTIONAL, dangerousGoods DangerousGoods OPTIONAL, ptLineRoute PtLineRoute OPTIONAL, ptScheduleDelay PtScheduleDelay OPTIONAL, priority Priority OPTIONAL } GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535) END
CommonContainer/ITS-Container.asn 0 → 100644 +213 −0 Original line number Diff line number Diff line ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) } DEFINITIONS AUTOMATIC TAGS ::= BEGIN ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER{ currentVersion(3) } (0..255), messageID INTEGER{ cam(0), denm(1) } (0..255), stationID StationID } StationID ::= INTEGER(0..4294967295) ReferencePosition ::= SEQUENCE { longitude Longitude, latitude Latitude, positionConfidenceEllipse PosConfidenceEllipse , elevation Elevation, elevationConfidence ElevationConfidence } DeltaPosition ::= SEQUENCE { deltaLongitude DeltaLongitude, deltaLatitude DeltaLatitude, positionConfidenceEllipse PosConfidenceEllipse } Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unknown(1800000001) } (-1800000000..1800000001) -- multiples of 0.1 microdegree Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unknown(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree Elevation ::= INTEGER (-1000..7191) -- multiples of 1 m DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-120..120) -- multiples of 0.1 microdegree DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-120..120) -- multiples of 0.1 microdegree PosConfidenceEllipse ::= SEQUENCE { semiMajorConfidence SemiAxisLength, -- confidence of the ellipse's major semi-axes semiMinorConfidence SemiAxisLength, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction } PathPoint ::= SEQUENCE { pathPosition DeltaPosition, pathDeltaTime PathDeltaTime } PathDeltaTime ::= INTEGER { hundredMilliSecondsInPast(1), hundredMilliSecondsInFuture(-1) } (-31..31, ...) AccelerationControl ::= BIT STRING { notValid (0), breakPedalActive (1), gasPedalActive (2), emergencyBrakeActive (3), collisionWarningActive (4), accActive (5), cruiseControl (6), speedLimiterActive (7) } SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095) Curvature ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000) CurvatureChange ::= INTEGER{ noChange(0) } (-1020..1020) -- removing this type is under discussion CurvatureAccuracy ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12) CurvatureCalculationMode ::= ENUMERATED { yawRateNotAvailable(0), yawRateAvailable(1), ... } Direction ::= INTEGER {north(0), east(900), south(1800), west(2700)} (0..4095) DirectionConfidence ::= INTEGER { notValid(127) } (0..127) ElevationConfidence ::= INTEGER { notValid(127) } (0..127) LaneCount ::= INTEGER { offTheRoad(0) } (0..15) LaneCountConfidence ::= Percentage Percentage ::= INTEGER (0..100) VehicleSpeed ::= INTEGER { oneCentimeterPerSec(1) } (0..16383) DriveDirection ::= ENUMERATED { forward (0), backward (1) } LongitudinalAcceleration ::= INTEGER { pointOneMeterPerSecSquared(1), notValid (160)} (-160 .. 160) StationType ::= INTEGER { unkown(0), passengerCar(1), bus(2) } (0..255) VehicleHeight ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51) VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51) VehicleLengthNormal ::= INTEGER { tenCentimeters(1), outOfRange(127) } (0..127) ExteriorLights ::= BIT STRING { lowBeamHeadlightsOn (0), highBeamHeadlightsOn (1), leftTurnSignalOn (2), rightTurnSignalOn (3), tbd (4), tbd2 (5), fogLightOn (6), parkingLightsOn (7) } LongTruck ::= ENUMERATED { lengthOf18point75Meters, ... } DangerousGoods ::= ENUMERATED { unknown (0), explosives (1), flammableGases(2), toxicGases(3), flammableLiquids (4), flammalbeSolids(5), substancesLiableToSpontaneousCombustion(6) , substancesEmittingFlammableGasesUponContactWithWater(7), oxidizingSubstances(8), organicPeroxides (9), toxicSubstances(10), infectiousSubstances(11), radioactiveMaterial (12), corrosiveSubstances(13), miscellaneousDangerousSubstances(14) } SpecialTransport ::= ENUMERATED { toBeDefined } -- not well defined yet LightBarSirenInUse ::= BIT STRING { noActivity (0), lightBarAvailable (1), lightBarActivated (2), sirenAvailable (3), sirenActivated (4) } Mass ::= INTEGER { hundredKg(1), exceeding50Tons(500), massUnknown(501) } (0..501) HeightLonCarr ::= INTEGER { oneCentimeter(1) } (0..100) PosLonCarr ::= INTEGER { oneCentimeter(1) } (0..127) PosPillar ::= INTEGER { tenCentimeters(1), notUsed(30) } (0..30) PosCentMass ::= INTEGER { tenCentimeters(1), notUsed(63) } (0..63) WheelBaseVehicle ::= INTEGER { tenCentimeters(1), notUsed(127) } (0..127) TurningRadius ::= INTEGER { point4Meters(1) } (0..255) PosFrontAx ::= INTEGER { tenCentimeters(1) } (0..20) PositionOfOccupants ::= BIT STRING { tier1LeftOccupied (0), tier1RightOccupied (1), tier1MidOccupied (2), tier2LeftOccupied (3), tier2RightOccupied (4), tier2MidOccupied (5), tier3LeftOccupied (6), tier3RightOccupied (7), tier3MidOccupied (8), tier3NotDetectable (9) } VehicleLength ::= CHOICE { vehicleLengthNormal VehicleLengthNormal, longTruck LongTruck} VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithUnkownLength(1), trailerPresenceIsUnkown(2) } PathHistory::= SEQUENCE SIZE(0..23) OF PathPoint IncidentIndication ::= ENUMERATED { attention(0), trafficJamAhead(1), slowVehicle(2), heavyGoodsTransport(3), movingRoadWorks(4), publicTransportDisembarkation(5), ... } IncidentRule ::= BIT STRING { leftLaneClosed (0), rightLaneClosed (1), noPassing (2), noPassingForTrucks (3) } Priority ::= INTEGER { lowest(0), highest(3) } (0..3) PtLineRoute ::= BIT STRING PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) } (-300..3795) InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) } (0..127) RoadClass ::= ENUMERATED { gravelRoad(0) , localRoad(1), districtRoad(2), countryRoad(3), stateRoad(4), highway(5), reserved(6), unknown(7) } Timestamp ::= INTEGER { startOf1970(0), oneMillisecAfterStartOf1970(1) } (0..281474976710655) END