VAM-PDU-Descriptions.asn 12.1 KB
Newer Older
-- ETSI TS 103 300-3 V2.1.1 (2020-11)
Denis Filatov's avatar
Denis Filatov committed
VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5)
    wg1(1) ts(103300) vam(1) version1(1)}
Denis Filatov's avatar
Denis Filatov committed
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

    IMPORTS
    Curvature, CurvatureCalculationMode, ExteriorLights, Heading,
William Whyte's avatar
William Whyte committed
    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)}
Denis Filatov's avatar
Denis Filatov committed

    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)}

    IntersectionReferenceID, LaneID 
    FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2)
        dsrc (2) version (2)}

Denis Filatov's avatar
Denis Filatov committed
    ;

Denis Filatov's avatar
Denis Filatov committed
    VAM ::= SEQUENCE {
        header ItsPduHeaderVam,
        vam    VruAwareness
    }

    ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS {
        ...,
        messageID(vam)
    })
Denis Filatov's avatar
Denis Filatov committed
    VruAwareness ::= SEQUENCE {
        generationDeltaTime  GenerationDeltaTime, -- from CAM-PDU-Descriptions
        vamParameters        VamParameters 
Denis Filatov's avatar
Denis Filatov committed
    }

    VamParameters ::= SEQUENCE {
        basicContainer                 BasicContainer, -- from VAM-Temp-Imports
        vruHighFrequencyContainer      VruHighFrequencyContainer OPTIONAL, 
        vruLowFrequencyContainer       VruLowFrequencyContainer OPTIONAL,
        vruClusterInformationContainer VruClusterInformationContainer OPTIONAL,
        vruClusterOperationContainer   VruClusterOperationContainer OPTIONAL,
        vruMotionPredictionContainer   VruMotionPredictionContainer OPTIONAL,
Denis Filatov's avatar
Denis Filatov committed
        ...
    }
Denis Filatov's avatar
Denis Filatov committed

    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,
        ...
Denis Filatov's avatar
Denis Filatov committed
    }

    VruLanePosition ::= CHOICE {
        offRoadLanePosition    OffRoadLanePosition,
        vehicularLanePosition  LanePosition, -- from ITS-Container
        trafficIslandPosition  TrafficIslandPosition,
        mapPosition            MapPosition,
Denis Filatov's avatar
Denis Filatov committed
        ...
    }

    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

William Whyte's avatar
William Whyte committed
    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 {
William Whyte's avatar
William Whyte committed
      unavailable(0), wild-animal(1), farm-animal(2), service-animal(3),   max(15)
    }

    VruExteriorLights ::= SEQUENCE {
        vruSpecific     VruSpecificExteriorLights, -- defined below
William Whyte's avatar
William Whyte committed
        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,
William Whyte's avatar
William Whyte committed
        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
        ...
    }

William Whyte's avatar
William Whyte committed
    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)

Denis Filatov's avatar
Denis Filatov committed
    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),
William Whyte's avatar
William Whyte committed
         cancelledJoin                 (6),
         failedJoin                    (7),
         safetyCondition               (8),
Denis Filatov's avatar
Denis Filatov committed

    ClusterBreakupReason ::= ENUMERATED {
         notProvided                        (0),
         clusteringPurposeCompleted         (1),
         leaderMovedOutOfClusterBoundingBox (2),    
         joiningAnotherCluster              (3),
William Whyte's avatar
William Whyte committed
         enteringLowRiskAreaBasedOnMaps     (4),
         receptionOfCpmContainingCluster    (5),
         max(15)                                                                 
    }

    VruMotionPredictionContainer ::= SEQUENCE {
        pathHistory                      PathHistory OPTIONAL,
William Whyte's avatar
William Whyte committed
        pathPrediction                   SequenceOfVruPathPoint OPTIONAL,
        safeDistance                     SequenceOfVruSafeDistanceIndication OPTIONAL,
        trajectoryInterceptionIndication SequenceOfTrajectoryInterceptionIndication OPTIONAL,
        accelerationChangeIndication     AccelerationChangeIndication OPTIONAL,
        headingChangeIndication          HeadingChangeIndication OPTIONAL,
        stabilityChangeIndication        StabilityChangeIndication OPTIONAL,
William Whyte's avatar
William Whyte committed
    SequenceOfVruPathPoint ::= SEQUENCE OF VruPathPoint

    VruPathPoint ::=  SEQUENCE {
        pathPosition           ReferencePosition,                   
        pathDeltaTime          PathDeltaTime     OPTIONAL
    }


    SequenceOfVruSafeDistanceIndication ::= 
William Whyte's avatar
William Whyte committed
        SEQUENCE(SIZE(1..8)) OF VruSafeDistanceIndication

    VruSafeDistanceIndication ::= SEQUENCE {
William Whyte's avatar
William Whyte committed
        subjectStation                 StationID OPTIONAL,
        stationSafeDistanceIndication  StationSafeDistanceIndication,
        timeToCollision                ActionDeltaTime OPTIONAL,
William Whyte's avatar
William Whyte committed
    StationSafeDistanceIndication ::= BOOLEAN

    SequenceOfTrajectoryInterceptionIndication ::= 
        SEQUENCE (SIZE(1..8)) OF TrajectoryInterceptionIndication

    TrajectoryInterceptionIndication  ::= SEQUENCE {
        subjectStation                    StationID OPTIONAL, 
William Whyte's avatar
William Whyte committed
        trajectoryInterceptionProbability TrajectoryInterceptionProbability,
        trajectoryInterceptionConfidence  TrajectoryInterceptionConfidence OPTIONAL,
William Whyte's avatar
William Whyte committed
    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) 


Denis Filatov's avatar
Denis Filatov committed
END