354 lines
12 KiB
Groff
354 lines
12 KiB
Groff
-- ETSI TS 103 300-3 V2.1.1 (2020-11)
|
|
|
|
VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5)
|
|
wg1(1) ts(103300) vam(1) version1(1)}
|
|
DEFINITIONS AUTOMATIC TAGS ::=
|
|
BEGIN
|
|
|
|
IMPORTS
|
|
Curvature, CurvatureCalculationMode, ExteriorLights, Heading,
|
|
LanePosition, LateralAcceleration, LongitudinalAcceleration,
|
|
PathDeltaTime, PathHistory, ReferencePosition, Speed,
|
|
StationID, VerticalAcceleration, YawRate
|
|
FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0)
|
|
itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)}
|
|
|
|
GenerationDeltaTime
|
|
FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0)
|
|
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) temp-imports(255) version1(1)}
|
|
WITH SUCCESSORS
|
|
|
|
IntersectionReferenceID, LaneID
|
|
FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2)
|
|
dsrc (2) version (2)}
|
|
|
|
;
|
|
|
|
|
|
VAM ::= SEQUENCE {
|
|
header ItsPduHeaderVam,
|
|
vam VruAwareness
|
|
}
|
|
|
|
ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS {
|
|
...,
|
|
messageID(vam)
|
|
})
|
|
|
|
VruAwareness ::= SEQUENCE {
|
|
generationDeltaTime GenerationDeltaTime, -- from CAM-PDU-Descriptions
|
|
vamParameters VamParameters
|
|
}
|
|
|
|
VamParameters ::= SEQUENCE {
|
|
basicContainer BasicContainer, -- from VAM-Temp-Imports
|
|
vruHighFrequencyContainer VruHighFrequencyContainer OPTIONAL,
|
|
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,
|
|
...
|
|
}
|
|
|
|
OffRoadLanePosition ::= ENUMERATED {
|
|
unavailable(0), sidewalk(1), parkingLane(2), bikeLane(3),
|
|
max(15)
|
|
}
|
|
|
|
TrafficIslandPosition ::= SEQUENCE {
|
|
oneSide NonIslandLanePosition,
|
|
otherSide NonIslandLanePosition,
|
|
...
|
|
}
|
|
|
|
NonIslandLanePosition ::= CHOICE {
|
|
offRoadLanePosition OffRoadLanePosition,
|
|
vehicularLanePosition LanePosition, -- from ITS-Container
|
|
mapPosition MapPosition,
|
|
...
|
|
}
|
|
|
|
MapPosition ::= SEQUENCE {
|
|
intersectionId IntersectionReferenceID,
|
|
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),
|
|
brakingAndStopPedaling(4), hardBrakingAndStopPedaling (5),
|
|
noReaction(6), max (255)
|
|
-- values 7-254 reserved for later use
|
|
}
|
|
|
|
VruOrientation ::= Heading -- from ITS-Container
|
|
|
|
VruRollAngle ::= Heading -- 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), wild-animal(1), farm-animal(2), service-animal(3), max(15)
|
|
}
|
|
|
|
VruExteriorLights ::= SEQUENCE {
|
|
vruSpecific VruSpecificExteriorLights, -- defined below
|
|
vehicular ExteriorLights
|
|
}
|
|
|
|
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 ClusterCardinalitySize, -- 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
|
|
...
|
|
}
|
|
|
|
ClusterCardinalitySize ::= INTEGER {unavailable(0), onlyLeader(1)} (0..255)
|
|
|
|
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,
|
|
clusterLeaveInfo ClusterLeaveInfo OPTIONAL,
|
|
clusterBreakupInfo ClusterBreakupInfo OPTIONAL,
|
|
clusterIdChangeTimeInfo VruClusterOpTimestamp OPTIONAL,
|
|
...
|
|
}
|
|
|
|
VruClusterOpTimestamp ::= INTEGER (1..255)
|
|
|
|
ClusterJoinInfo ::= SEQUENCE {
|
|
clusterId ClusterId,
|
|
joinTime VruClusterOpTimestamp,
|
|
...
|
|
}
|
|
|
|
ClusterLeaveInfo ::= SEQUENCE {
|
|
clusterId ClusterId,
|
|
clusterLeaveReason ClusterLeaveReason,
|
|
...
|
|
}
|
|
|
|
ClusterBreakupInfo ::= SEQUENCE {
|
|
clusterBreakupReason ClusterBreakupReason,
|
|
breakupTime VruClusterOpTimestamp,
|
|
...
|
|
}
|
|
|
|
ClusterLeaveReason ::= ENUMERATED {
|
|
notProvided (0),
|
|
clusterLeaderLost (1),
|
|
clusterDisbandedByLeader (2),
|
|
outOfClusterBoundingBox (3),
|
|
outOfClusterSpeedRange (4),
|
|
joiningAnotherCluster (5),
|
|
cancelledJoin (6),
|
|
failedJoin (7),
|
|
safetyCondition (8),
|
|
max(15)
|
|
}
|
|
|
|
ClusterBreakupReason ::= ENUMERATED {
|
|
notProvided (0),
|
|
clusteringPurposeCompleted (1),
|
|
leaderMovedOutOfClusterBoundingBox (2),
|
|
joiningAnotherCluster (3),
|
|
enteringLowRiskAreaBasedOnMaps (4),
|
|
receptionOfCpmContainingCluster (5),
|
|
max(15)
|
|
}
|
|
|
|
VruMotionPredictionContainer ::= SEQUENCE {
|
|
pathHistory PathHistory OPTIONAL,
|
|
pathPrediction SequenceOfVruPathPoint OPTIONAL,
|
|
safeDistance SequenceOfVruSafeDistanceIndication OPTIONAL,
|
|
trajectoryInterceptionIndication SequenceOfTrajectoryInterceptionIndication OPTIONAL,
|
|
accelerationChangeIndication AccelerationChangeIndication OPTIONAL,
|
|
headingChangeIndication HeadingChangeIndication OPTIONAL,
|
|
stabilityChangeIndication StabilityChangeIndication OPTIONAL,
|
|
...
|
|
}
|
|
|
|
SequenceOfVruPathPoint ::= SEQUENCE OF VruPathPoint
|
|
|
|
VruPathPoint ::= SEQUENCE {
|
|
pathPosition ReferencePosition,
|
|
pathDeltaTime PathDeltaTime OPTIONAL
|
|
}
|
|
|
|
|
|
SequenceOfVruSafeDistanceIndication ::=
|
|
SEQUENCE(SIZE(1..8)) OF VruSafeDistanceIndication
|
|
|
|
VruSafeDistanceIndication ::= SEQUENCE {
|
|
subjectStation StationID OPTIONAL,
|
|
stationSafeDistanceIndication StationSafeDistanceIndication,
|
|
timeToCollision ActionDeltaTime OPTIONAL,
|
|
...
|
|
}
|
|
|
|
StationSafeDistanceIndication ::= BOOLEAN
|
|
|
|
SequenceOfTrajectoryInterceptionIndication ::=
|
|
SEQUENCE (SIZE(1..8)) OF TrajectoryInterceptionIndication
|
|
|
|
TrajectoryInterceptionIndication ::= SEQUENCE {
|
|
subjectStation StationID OPTIONAL,
|
|
trajectoryInterceptionProbability TrajectoryInterceptionProbability,
|
|
trajectoryInterceptionConfidence TrajectoryInterceptionConfidence OPTIONAL,
|
|
...
|
|
}
|
|
|
|
TrajectoryInterceptionProbability ::= INTEGER { zero(0), twoPercent(1),
|
|
fourPercent(2), oneHundredPercent(50), unavailable (63) } (0..63)
|
|
|
|
TrajectoryInterceptionConfidence ::= INTEGER { lessthan50percent(0),
|
|
between50and70Percent(1), between70and90Percent(2), above90Percent(3) } (0..3)
|
|
|
|
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
|