Loading VAM-PDU-Descriptions.asn +274 −51 Original line number Original line Diff line number Diff line -- ETSI TS 103 300-3 V0.4.0 (2020-07) VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) vam(3) version(1)} wg1(1) ts(103300) part-3 (3) vam(1) version(1)} DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, ExteriorLights, Heading, Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth, LanePosition, LateralAcceleration, PathHistory, ProtectedCommunicationZone, PtActivation, LongitudinalAcceleration, PathHistory, ReferencePosition, Speed, Latitude, Longitude, ProtectedCommunicationZonesRSU StationID, SteeringWheelAngle, VerticalAcceleration, YawRate FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0) FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)} itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)} Loading @@ -15,88 +17,309 @@ BEGIN FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) en(302637) cam(2) version(2)} itsDomain(5) wg1(1) en(302637) cam(2) version(2)} -- Note: sVAM-Temp-Imports defines types that are intended to be updated within -- or added to the Common Data Dictionary. Once the CDD has been updated, -- VAM-Temp-Imports will also be updated to import the new types directly -- from the CDD. The use of WITH SUCCESSORS ensures that the import -- statement below will not have to change. AreaCircular, AreaPolygon, AreaRectangle, BasicContainer, ItsPduHeader FROM VAM-Temp-Imports {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) part-3(3) temp-imports(255) version(1)} IntersectionReferenceID, LaneID FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)} ; ; VAM ::= SEQUENCE { VAM ::= SEQUENCE { header ItsPduHeaderVam, header ItsPduHeaderVam, vam VruAwareness vam VruAwareness } } -- contains StationId -- StationId should change when certificate changes, or when VRU -- enters or leaves a cluster (as leader or otherwise) ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS { ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS { ..., ..., messageID(vam) messageID(vam) }) }) VruAwareness ::= SEQUENCE { VruAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions vamParameters VamParameters, vamParameters VamParameters vamExtensions SEQUENCE (SIZE(0..MAX)) OF VamExtension } } VamParameters ::= SEQUENCE { VamParameters ::= SEQUENCE { activeProfile VruProfileId, basicContainer BasicContainer, -- from VAM-Temp-Imports physicalProperties VruPhysicalProperties, vruHighFrequencyContainer VruHighFrequencyContainer OPTIONAL, dyanmicProperties VruDynamicProperties, vruLowFrequencyContainer VruLowFrequencyContainer OPTIONAL, vruClusterInformationContainer VruClusterInformationContainer OPTIONAL, vruClusterOperationContainer VruClusterOperationContainer OPTIONAL, vruMotionPredictionContainer VruMotionPredictionContainer OPTIONAL, ... } VruProfile ::= ENUMERATED { unavailable(0), pedestrian(1), cyclist(2), motorcyclist(3), animal(4), max(15) } VruHighFrequencyContainer ::= SEQUENCE { heading Heading, -- from ITS-Container speed Speed, -- from ITS-Container longitudinalAcceleration LongitudinalAcceleration, -- from ITS-Container curvature Curvature OPTIONAL, -- from ITS-Container curvatureCalculationMode CurvatureCalculationMode OPTIONAL, -- from ITS-Container yawRate YawRate OPTIONAL, -- from ITS-Container lateralAcceleration LateralAcceleration OPTIONAL, -- from ITS-Container verticalAcceleration VerticalAcceleration OPTIONAL, -- from ITS-Container vruLanePosition VruLanePosition OPTIONAL, environment VruEnvironment OPTIONAL, movementControl VruMovementControl OPTIONAL, orientation VruOrientation OPTIONAL, rollAngle VruRollAngle OPTIONAL, deviceUsage VruDeviceUsage OPTIONAL, ... } VruLanePosition ::= CHOICE { offRoadLanePosition OffRoadLanePosition, vehicularLanePosition LanePosition, -- from ITS-Container trafficIslandPosition TrafficIslandPosition, mapPosition MapPosition, ... ... } } VruProfileId ::= ENUMERATED { OffRoadLanePosition ::= ENUMERATED { pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ... unavailable(0), sidewalk(1), parkingLane(2), bikeLane(3), max(15) } } VruPhysicalProperties ::= CHOICE { TrafficIslandPosition ::= SEQUENCE { singleVruPhysInfo SingleVruPhysicalInfo, oneSide NonIslandLanePosition, clusterPhysInfo VruClusterPhysicalInfo, otherSide NonIslandLanePosition } NonIslandLanePosition ::= CHOICE { offRoadLanePosition OffRoadLanePosition, vehicularLanePosition LanePosition, -- from ITS-Container mapPosition MapPosition, ... ... } } SingleVruPhysicalInfo ::= SEQUENCE { MapPosition ::= SEQUENCE { referencePoint ReferencePosition, intersectionId IntersectionReferenceID, orientation Heading, lane LaneID } VruEnvironment ::= ENUMERATED { unavailable (0), intersectionCrossing(1), zebraCrossing(2), sidewalk (3), onVehicleRoad(4), protectedGeographicArea(5), max (255) -- values 6-254 reserved for later use } VruMovementControl ::= ENUMERATED { unavailable (0), braking(1), hardBraking(2), stopPedaling (3), noReaction(4), max (255) -- values 5-254 reserved for later use } VruOrientation ::= Heading -- from ITS-Container VruRollAngle ::= SteeringWheelAngle -- from ITS-Container VruDeviceUsage ::= ENUMERATED { unavailable(0), other(1), idle(2), listeningToAudio(3), typing(4), calling(5), playingGames(6), reading(7), viewing(8), max(255) -- values 9-254 reserved for later use } VruLowFrequencyContainer ::= SEQUENCE { profileAndSubprofile VruProfileAndSubprofile OPTIONAL, exteriorLights VruExteriorLights OPTIONAL, sizeClass VruSizeClass OPTIONAL, ... } VruProfileAndSubprofile ::= CHOICE { pedestrian VruSubProfilePedestrian, bicyclist VruSubProfileBicyclist, motorcylist VruSubProfileMotorcyclist, animal VruSubProfileAnimal, ... } VruSubProfilePedestrian ::= ENUMERATED { unavailable(0), ordinary-pedestrian(1), road-worker(2), first-responder(3), max(15) } VruSubProfileBicyclist ::= ENUMERATED { unavailable(0), bicyclist(1), wheelchair-user(2), horse-and-rider(3), rollerskater(4), e-scooter(5), personal-transporter(6), pedelec(7), speed-pedelec(8), max(15) } VruSubProfileMotorcyclist ::= ENUMERATED { unavailable(0), moped(1), motorcycle(2), motorcycle-and-sidecar-right(3), motorcycle-and-sidecar-left(4), max(15) } VruSubProfileAnimal ::= ENUMERATED { unavailable(0), max(15) } VruExteriorLights ::= SEQUENCE { vruSpecific VruSpecificExteriorLights, -- defined below generic ExteriorLights -- should be extensible? } VruSpecificExteriorLights ::= BIT STRING { unavailable (0), backFlashLight (1), helmetLight (2), armLight (3), legLight (4), wheelLight (5) } (SIZE(8)) VruSizeClass ::= ENUMERATED { unavailable (0), low(1), medium(2), high (3), max(15) -- values 4-14 reserved for later use } VruClusterInformationContainer ::= SEQUENCE { clusterId ClusterId, clusterBoundingBoxShape ClusterBoundingBoxShape, clusterCardinalitySize INTEGER(0..255), -- 0 means unknown clusterProfiles ClusterProfiles, ... } ClusterId ::= INTEGER(0..255) ClusterBoundingBoxShape::= CHOICE { clusterRectangle AreaRectangle, -- from VAM-Temp-Imports clusterCircle AreaCircular, -- from VAM-Temp-Imports clusterPolygon AreaPolygon, -- from VAM-Temp-Imports ... } ClusterProfiles ::= BIT STRING { pedestrian(0), bicyclist(1), motorcyclist(2), animal(3) } (SIZE(4)) -- this is OPTIONAL elements rather than a CHOICE because a -- VRU ITS-S could be leaving one cluster and joining another. VruClusterOperationContainer ::= SEQUENCE { clusterJoinInfo ClusterJoinInfo OPTIONAL, clusterJoinInfo ClusterJoinInfo OPTIONAL, clusterExitInfo StationID OPTIONAL, clusterLeaveInfo ClusterLeaveInfo OPTIONAL, clusterBreakupInfo ClusterBreakupInfo OPTIONAL, clusterIdChangeInfo VruClusterOpTimestamp OPTIONAL, ... ... } } VruClusterOpTimestamp ::= INTEGER (1..255) ClusterJoinInfo ::= SEQUENCE { ClusterJoinInfo ::= SEQUENCE { clusterId StationID, clusterId ClusterId, countdown INTEGER(0..7), joinTime VruClusterOpTimestamp, ... } ClusterLeaveInfo ::= SEQUENCE { clusterId ClusterId, clusterLeaveReason ClusterLeaveReason, ... ... } } VruClusterPhysicalInfo ::= SEQUENCE { ClusterBreakupInfo ::= SEQUENCE { referencePoint ReferencePosition, -- middle of front edge of cluster clusterBreakupReason ClusterBreakupReason, heading HeadingValue, -- direction of perp. line through referencePoint breakupTime VruClusterOpTimestamp, width VruClusterSideLength, -- width (with referencePoint in the -- middle) in units of 10 cm length VruClusterSideLength, -- length (from referencePoint to rear of -- cluster) in units of 10 cm number INTEGER(0..255), -- 0 means unknown ... ... } } VruClusterSideLength ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) ClusterLeaveReason ::= ENUMERATED { notProvided (0), clusterLeaderLost (1), clusterDisbandedByLeader (2), outOfClusterBoundingBox (3), outOfClusterSpeedRange (4), joiningAnotherCluster (5), max(15) } ClusterBreakupReason ::= ENUMERATED { notProvided (0), clusteringPurposeCompleted (1), leaderMovedOutOfClusterBoundingBox (2), joiningAnotherCluster (3), max(15) } -- none of these fields are OPTIONAL as each of the types below has an "unknown" value, which VruMotionPredictionContainer ::= SEQUENCE { -- should be used if the value isn't provided. pathHistory PathHistory OPTIONAL, VruDynamicProperties ::= SEQUENCE { pathPrediction PathPrediction OPTIONAL, heading Heading, safeDistance SequenceOfVruSafeDistanceIndication OPTIONAL, speed Speed, trajectoryChangeIndication SequenceOfTrajectoryInterceptionIndication OPTIONAL, longitudinalAcceleration LongitudinalAcceleration, accelerationChangeIndication AccelerationChangeIndication OPTIONAL, laterialAcceleration LateralAcceleration, headingChangeIndication HeadingChangeIndication OPTIONAL, verticalAcceleration VerticalAcceleration, stabilityChangeIndication StabilityChangeIndication OPTIONAL, yawRate YawRate, pastLocations PathHistory, predictedLocations PathHistory, ... ... } } VamExtension ::= CHOICE { PathPrediction ::= PathHistory dummy NULL, SequenceOfVruSafeDistanceIndication ::= SEQUENCE(SIZE(0..8)) OF VruSafeDistanceIndication VruSafeDistanceIndication ::= SEQUENCE { subjectStation StationID OPTIONAL, stationSafeDistanceIndication BOOLEAN, timeToCollision ActionDeltaTime OPTIONAL, ... ... } } SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8)) OF TrajectoryInterceptionIndication TrajectoryInterceptionIndication ::= SEQUENCE { subjectStation StationID OPTIONAL, trajectoryInterceptionIndication BOOLEAN } HeadingChangeIndication ::= SEQUENCE { direction LeftOrRight, actionDeltaTime ActionDeltaTime } LeftOrRight ::= ENUMERATED { left, right } ActionDeltaTime ::= INTEGER {zero(0), hundredMs(1), twoHundredMs(2), unavailable (127) } (0..127) AccelerationChangeIndication ::= SEQUENCE { accelOrDecel AccelOrDecel, actionDeltaTime ActionDeltaTime } AccelOrDecel ::= ENUMERATED { accelerate, decelerate } StabilityChangeIndication ::= SEQUENCE { lossProbability StabilityLossProbability, actionDeltaTime ActionDeltaTime } StabilityLossProbability ::= INTEGER { zero(0), twoPercent (1), fourPercent(2), unavailable (63) } (0..63) END END VAM-Temp-Imports.asn +11 −3 Original line number Original line Diff line number Diff line -- This module defines types that are intended to be updated within -- Note: This module defines types that are intended to be updated within -- or added to the Common Data Dictionary. Defining the types in this -- or added to the Common Data Dictionary. Defining the types in this -- module allows them to be used by the VAM before the CDD has been -- module allows them to be used by the VAM before the CDD has been -- updated. Once the CDD has been updated, this module will also be -- updated. Once the CDD has been updated, this module will also be Loading @@ -14,7 +14,7 @@ BEGIN IMPORTS IMPORTS ReferencePosition, SpeedConfidence, VehicleWidth ReferencePosition, SpeedConfidence, StationID, VehicleWidth FROM ITS-Container FROM ITS-Container {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)} ts (102894) cdd (2) version (2)} Loading @@ -23,7 +23,7 @@ NodeOffsetPointXY, Offset-B10, Offset-B11, Offset-B12, Offset-B13, Offset-B14, Offset-B16 Offset-B14, Offset-B16 FROM DSRC FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)} version (2)} ; ; Loading @@ -34,6 +34,14 @@ BasicContainer ::= SEQUENCE { ... ... } } ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 stationID StationID } AreaCircular ::= SEQUENCE { AreaCircular ::= SEQUENCE { nodeCenterPoint OffsetPoint OPTIONAL, nodeCenterPoint OffsetPoint OPTIONAL, Loading Loading
VAM-PDU-Descriptions.asn +274 −51 Original line number Original line Diff line number Diff line -- ETSI TS 103 300-3 V0.4.0 (2020-07) VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) vam(3) version(1)} wg1(1) ts(103300) part-3 (3) vam(1) version(1)} DEFINITIONS AUTOMATIC TAGS ::= DEFINITIONS AUTOMATIC TAGS ::= BEGIN BEGIN IMPORTS IMPORTS ItsPduHeader, ReferencePosition, AccelerationControl, Curvature, CurvatureCalculationMode, ExteriorLights, Heading, Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth, LanePosition, LateralAcceleration, PathHistory, ProtectedCommunicationZone, PtActivation, LongitudinalAcceleration, PathHistory, ReferencePosition, Speed, Latitude, Longitude, ProtectedCommunicationZonesRSU StationID, SteeringWheelAngle, VerticalAcceleration, YawRate FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0) FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)} itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)} Loading @@ -15,88 +17,309 @@ BEGIN FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) en(302637) cam(2) version(2)} itsDomain(5) wg1(1) en(302637) cam(2) version(2)} -- Note: sVAM-Temp-Imports defines types that are intended to be updated within -- or added to the Common Data Dictionary. Once the CDD has been updated, -- VAM-Temp-Imports will also be updated to import the new types directly -- from the CDD. The use of WITH SUCCESSORS ensures that the import -- statement below will not have to change. AreaCircular, AreaPolygon, AreaRectangle, BasicContainer, ItsPduHeader FROM VAM-Temp-Imports {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) ts(103300) part-3(3) temp-imports(255) version(1)} IntersectionReferenceID, LaneID FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (2)} ; ; VAM ::= SEQUENCE { VAM ::= SEQUENCE { header ItsPduHeaderVam, header ItsPduHeaderVam, vam VruAwareness vam VruAwareness } } -- contains StationId -- StationId should change when certificate changes, or when VRU -- enters or leaves a cluster (as leader or otherwise) ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS { ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS { ..., ..., messageID(vam) messageID(vam) }) }) VruAwareness ::= SEQUENCE { VruAwareness ::= SEQUENCE { generationDeltaTime GenerationDeltaTime, generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions vamParameters VamParameters, vamParameters VamParameters vamExtensions SEQUENCE (SIZE(0..MAX)) OF VamExtension } } VamParameters ::= SEQUENCE { VamParameters ::= SEQUENCE { activeProfile VruProfileId, basicContainer BasicContainer, -- from VAM-Temp-Imports physicalProperties VruPhysicalProperties, vruHighFrequencyContainer VruHighFrequencyContainer OPTIONAL, dyanmicProperties VruDynamicProperties, vruLowFrequencyContainer VruLowFrequencyContainer OPTIONAL, vruClusterInformationContainer VruClusterInformationContainer OPTIONAL, vruClusterOperationContainer VruClusterOperationContainer OPTIONAL, vruMotionPredictionContainer VruMotionPredictionContainer OPTIONAL, ... } VruProfile ::= ENUMERATED { unavailable(0), pedestrian(1), cyclist(2), motorcyclist(3), animal(4), max(15) } VruHighFrequencyContainer ::= SEQUENCE { heading Heading, -- from ITS-Container speed Speed, -- from ITS-Container longitudinalAcceleration LongitudinalAcceleration, -- from ITS-Container curvature Curvature OPTIONAL, -- from ITS-Container curvatureCalculationMode CurvatureCalculationMode OPTIONAL, -- from ITS-Container yawRate YawRate OPTIONAL, -- from ITS-Container lateralAcceleration LateralAcceleration OPTIONAL, -- from ITS-Container verticalAcceleration VerticalAcceleration OPTIONAL, -- from ITS-Container vruLanePosition VruLanePosition OPTIONAL, environment VruEnvironment OPTIONAL, movementControl VruMovementControl OPTIONAL, orientation VruOrientation OPTIONAL, rollAngle VruRollAngle OPTIONAL, deviceUsage VruDeviceUsage OPTIONAL, ... } VruLanePosition ::= CHOICE { offRoadLanePosition OffRoadLanePosition, vehicularLanePosition LanePosition, -- from ITS-Container trafficIslandPosition TrafficIslandPosition, mapPosition MapPosition, ... ... } } VruProfileId ::= ENUMERATED { OffRoadLanePosition ::= ENUMERATED { pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ... unavailable(0), sidewalk(1), parkingLane(2), bikeLane(3), max(15) } } VruPhysicalProperties ::= CHOICE { TrafficIslandPosition ::= SEQUENCE { singleVruPhysInfo SingleVruPhysicalInfo, oneSide NonIslandLanePosition, clusterPhysInfo VruClusterPhysicalInfo, otherSide NonIslandLanePosition } NonIslandLanePosition ::= CHOICE { offRoadLanePosition OffRoadLanePosition, vehicularLanePosition LanePosition, -- from ITS-Container mapPosition MapPosition, ... ... } } SingleVruPhysicalInfo ::= SEQUENCE { MapPosition ::= SEQUENCE { referencePoint ReferencePosition, intersectionId IntersectionReferenceID, orientation Heading, lane LaneID } VruEnvironment ::= ENUMERATED { unavailable (0), intersectionCrossing(1), zebraCrossing(2), sidewalk (3), onVehicleRoad(4), protectedGeographicArea(5), max (255) -- values 6-254 reserved for later use } VruMovementControl ::= ENUMERATED { unavailable (0), braking(1), hardBraking(2), stopPedaling (3), noReaction(4), max (255) -- values 5-254 reserved for later use } VruOrientation ::= Heading -- from ITS-Container VruRollAngle ::= SteeringWheelAngle -- from ITS-Container VruDeviceUsage ::= ENUMERATED { unavailable(0), other(1), idle(2), listeningToAudio(3), typing(4), calling(5), playingGames(6), reading(7), viewing(8), max(255) -- values 9-254 reserved for later use } VruLowFrequencyContainer ::= SEQUENCE { profileAndSubprofile VruProfileAndSubprofile OPTIONAL, exteriorLights VruExteriorLights OPTIONAL, sizeClass VruSizeClass OPTIONAL, ... } VruProfileAndSubprofile ::= CHOICE { pedestrian VruSubProfilePedestrian, bicyclist VruSubProfileBicyclist, motorcylist VruSubProfileMotorcyclist, animal VruSubProfileAnimal, ... } VruSubProfilePedestrian ::= ENUMERATED { unavailable(0), ordinary-pedestrian(1), road-worker(2), first-responder(3), max(15) } VruSubProfileBicyclist ::= ENUMERATED { unavailable(0), bicyclist(1), wheelchair-user(2), horse-and-rider(3), rollerskater(4), e-scooter(5), personal-transporter(6), pedelec(7), speed-pedelec(8), max(15) } VruSubProfileMotorcyclist ::= ENUMERATED { unavailable(0), moped(1), motorcycle(2), motorcycle-and-sidecar-right(3), motorcycle-and-sidecar-left(4), max(15) } VruSubProfileAnimal ::= ENUMERATED { unavailable(0), max(15) } VruExteriorLights ::= SEQUENCE { vruSpecific VruSpecificExteriorLights, -- defined below generic ExteriorLights -- should be extensible? } VruSpecificExteriorLights ::= BIT STRING { unavailable (0), backFlashLight (1), helmetLight (2), armLight (3), legLight (4), wheelLight (5) } (SIZE(8)) VruSizeClass ::= ENUMERATED { unavailable (0), low(1), medium(2), high (3), max(15) -- values 4-14 reserved for later use } VruClusterInformationContainer ::= SEQUENCE { clusterId ClusterId, clusterBoundingBoxShape ClusterBoundingBoxShape, clusterCardinalitySize INTEGER(0..255), -- 0 means unknown clusterProfiles ClusterProfiles, ... } ClusterId ::= INTEGER(0..255) ClusterBoundingBoxShape::= CHOICE { clusterRectangle AreaRectangle, -- from VAM-Temp-Imports clusterCircle AreaCircular, -- from VAM-Temp-Imports clusterPolygon AreaPolygon, -- from VAM-Temp-Imports ... } ClusterProfiles ::= BIT STRING { pedestrian(0), bicyclist(1), motorcyclist(2), animal(3) } (SIZE(4)) -- this is OPTIONAL elements rather than a CHOICE because a -- VRU ITS-S could be leaving one cluster and joining another. VruClusterOperationContainer ::= SEQUENCE { clusterJoinInfo ClusterJoinInfo OPTIONAL, clusterJoinInfo ClusterJoinInfo OPTIONAL, clusterExitInfo StationID OPTIONAL, clusterLeaveInfo ClusterLeaveInfo OPTIONAL, clusterBreakupInfo ClusterBreakupInfo OPTIONAL, clusterIdChangeInfo VruClusterOpTimestamp OPTIONAL, ... ... } } VruClusterOpTimestamp ::= INTEGER (1..255) ClusterJoinInfo ::= SEQUENCE { ClusterJoinInfo ::= SEQUENCE { clusterId StationID, clusterId ClusterId, countdown INTEGER(0..7), joinTime VruClusterOpTimestamp, ... } ClusterLeaveInfo ::= SEQUENCE { clusterId ClusterId, clusterLeaveReason ClusterLeaveReason, ... ... } } VruClusterPhysicalInfo ::= SEQUENCE { ClusterBreakupInfo ::= SEQUENCE { referencePoint ReferencePosition, -- middle of front edge of cluster clusterBreakupReason ClusterBreakupReason, heading HeadingValue, -- direction of perp. line through referencePoint breakupTime VruClusterOpTimestamp, width VruClusterSideLength, -- width (with referencePoint in the -- middle) in units of 10 cm length VruClusterSideLength, -- length (from referencePoint to rear of -- cluster) in units of 10 cm number INTEGER(0..255), -- 0 means unknown ... ... } } VruClusterSideLength ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62) ClusterLeaveReason ::= ENUMERATED { notProvided (0), clusterLeaderLost (1), clusterDisbandedByLeader (2), outOfClusterBoundingBox (3), outOfClusterSpeedRange (4), joiningAnotherCluster (5), max(15) } ClusterBreakupReason ::= ENUMERATED { notProvided (0), clusteringPurposeCompleted (1), leaderMovedOutOfClusterBoundingBox (2), joiningAnotherCluster (3), max(15) } -- none of these fields are OPTIONAL as each of the types below has an "unknown" value, which VruMotionPredictionContainer ::= SEQUENCE { -- should be used if the value isn't provided. pathHistory PathHistory OPTIONAL, VruDynamicProperties ::= SEQUENCE { pathPrediction PathPrediction OPTIONAL, heading Heading, safeDistance SequenceOfVruSafeDistanceIndication OPTIONAL, speed Speed, trajectoryChangeIndication SequenceOfTrajectoryInterceptionIndication OPTIONAL, longitudinalAcceleration LongitudinalAcceleration, accelerationChangeIndication AccelerationChangeIndication OPTIONAL, laterialAcceleration LateralAcceleration, headingChangeIndication HeadingChangeIndication OPTIONAL, verticalAcceleration VerticalAcceleration, stabilityChangeIndication StabilityChangeIndication OPTIONAL, yawRate YawRate, pastLocations PathHistory, predictedLocations PathHistory, ... ... } } VamExtension ::= CHOICE { PathPrediction ::= PathHistory dummy NULL, SequenceOfVruSafeDistanceIndication ::= SEQUENCE(SIZE(0..8)) OF VruSafeDistanceIndication VruSafeDistanceIndication ::= SEQUENCE { subjectStation StationID OPTIONAL, stationSafeDistanceIndication BOOLEAN, timeToCollision ActionDeltaTime OPTIONAL, ... ... } } SequenceOfTrajectoryInterceptionIndication ::= SEQUENCE (SIZE(1..8)) OF TrajectoryInterceptionIndication TrajectoryInterceptionIndication ::= SEQUENCE { subjectStation StationID OPTIONAL, trajectoryInterceptionIndication BOOLEAN } HeadingChangeIndication ::= SEQUENCE { direction LeftOrRight, actionDeltaTime ActionDeltaTime } LeftOrRight ::= ENUMERATED { left, right } ActionDeltaTime ::= INTEGER {zero(0), hundredMs(1), twoHundredMs(2), unavailable (127) } (0..127) AccelerationChangeIndication ::= SEQUENCE { accelOrDecel AccelOrDecel, actionDeltaTime ActionDeltaTime } AccelOrDecel ::= ENUMERATED { accelerate, decelerate } StabilityChangeIndication ::= SEQUENCE { lossProbability StabilityLossProbability, actionDeltaTime ActionDeltaTime } StabilityLossProbability ::= INTEGER { zero(0), twoPercent (1), fourPercent(2), unavailable (63) } (0..63) END END
VAM-Temp-Imports.asn +11 −3 Original line number Original line Diff line number Diff line -- This module defines types that are intended to be updated within -- Note: This module defines types that are intended to be updated within -- or added to the Common Data Dictionary. Defining the types in this -- or added to the Common Data Dictionary. Defining the types in this -- module allows them to be used by the VAM before the CDD has been -- module allows them to be used by the VAM before the CDD has been -- updated. Once the CDD has been updated, this module will also be -- updated. Once the CDD has been updated, this module will also be Loading @@ -14,7 +14,7 @@ BEGIN IMPORTS IMPORTS ReferencePosition, SpeedConfidence, VehicleWidth ReferencePosition, SpeedConfidence, StationID, VehicleWidth FROM ITS-Container FROM ITS-Container {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)} ts (102894) cdd (2) version (2)} Loading @@ -23,7 +23,7 @@ NodeOffsetPointXY, Offset-B10, Offset-B11, Offset-B12, Offset-B13, Offset-B14, Offset-B16 Offset-B14, Offset-B16 FROM DSRC FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)} version (2)} ; ; Loading @@ -34,6 +34,14 @@ BasicContainer ::= SEQUENCE { ... ... } } ItsPduHeader ::= SEQUENCE { protocolVersion INTEGER (0..255), messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13), vam(14) } (0..255), -- Mantis #7209, #7005 stationID StationID } AreaCircular ::= SEQUENCE { AreaCircular ::= SEQUENCE { nodeCenterPoint OffsetPoint OPTIONAL, nodeCenterPoint OffsetPoint OPTIONAL, Loading