pycrate/pycrate_asn1dir/ETSI_ITS_VAM_TS103300_3/VAM-PDU-Descriptions.asn

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