VAM-PDU-Descriptions.asn 3.42 KB
Newer Older
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(3) version(1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

    IMPORTS
	ItsPduHeader, ReferencePosition, AccelerationControl,
	    Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth,
	    PathHistory, ProtectedCommunicationZone, PtActivation,
	    Latitude, Longitude, ProtectedCommunicationZonesRSU
	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)}

    ;

    VAM ::= SEQUENCE {
        header ItsPduHeaderVam,
        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 {
        ...,
        messageID(vam)
    })
  
    VruAwareness ::= SEQUENCE {
        generationDeltaTime  GenerationDeltaTime,
        vamParameters        VamParameters,
        vamExtensions        SEQUENCE (SIZE(0..MAX)) OF VamExtension
    }

    VamParameters ::= SEQUENCE {
        activeProfile      VruProfileId,
        physicalProperties VruPhysicalProperties,
        dyanmicProperties  VruDynamicProperties,
        ...
    }

    VruProfileId ::= ENUMERATED { 
        pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ...
    }

    VruPhysicalProperties ::= CHOICE {
        singleVruPhysInfo   SingleVruPhysicalInfo,
        clusterPhysInfo     VruClusterPhysicalInfo,
        ...
    }

    SingleVruPhysicalInfo ::= SEQUENCE {
        referencePoint     ReferencePosition,
        orientation        Heading,
        clusterJoinInfo    ClusterJoinInfo OPTIONAL,
        clusterExitInfo    StationID OPTIONAL,
        ...
    }

    ClusterJoinInfo ::= SEQUENCE {
        clusterId       StationID,
        countdown       INTEGER(0..7),
        ...
    }

    VruClusterPhysicalInfo ::= SEQUENCE {
        referencePoint     ReferencePosition, -- middle of front edge of cluster
        heading            HeadingValue, -- direction of perp. line through referencePoint
        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)

    -- none of these fields are OPTIONAL as each of the types below has an "unknown" value, which
    -- should be used if the value isn't provided.
    VruDynamicProperties ::= SEQUENCE {
        heading                  Heading,
        speed                    Speed,
        longitudinalAcceleration LongitudinalAcceleration,
        laterialAcceleration     LateralAcceleration,
        verticalAcceleration     VerticalAcceleration,
        yawRate                  YawRate,
        pastLocations            PathHistory,
        predictedLocations       PathHistory,
        ...
    }

    VamExtension ::= CHOICE {
        dummy        NULL,
        ...
    }

END