Commit 3c5bb42e authored by William Whyte's avatar William Whyte
Browse files

Successful compilation

parent 2c8860fb
Loading
Loading
Loading
Loading
+274 −51
Original line number 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)
    wg1(1) ts(103300) vam(3) version(1)}
    wg1(1) ts(103300) part-3 (3) vam(1) version(1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

    IMPORTS
	ItsPduHeader, ReferencePosition, AccelerationControl,
	    Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth,
	    PathHistory, ProtectedCommunicationZone, PtActivation,
	    Latitude, Longitude, ProtectedCommunicationZonesRSU
    Curvature, CurvatureCalculationMode, ExteriorLights, Heading,
    LanePosition, LateralAcceleration,
    LongitudinalAcceleration, PathHistory, ReferencePosition, Speed,
    StationID, SteeringWheelAngle, VerticalAcceleration, YawRate
    FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0)
        itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)}

@@ -15,88 +17,309 @@ BEGIN
    FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0)
        itsDomain(5) wg1(1) en(302637) cam(2) version(2)}


    -- VAM-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 {
        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
        generationDeltaTime  GenerationDeltaTime, -- from CAM-PDU-Descriptions
        vamParameters        VamParameters 
    }

    VamParameters ::= SEQUENCE {
        activeProfile      VruProfileId,
        physicalProperties VruPhysicalProperties,
        dyanmicProperties  VruDynamicProperties,
        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,
        ...
    }

    VruProfileId ::= ENUMERATED { 
        pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ...
    OffRoadLanePosition ::= ENUMERATED {
        unavailable(0), sidewalk(1), parkingLane(2), bikeLane(3), 
        max(15)
    }

    VruPhysicalProperties ::= CHOICE {
        singleVruPhysInfo   SingleVruPhysicalInfo,
        clusterPhysInfo     VruClusterPhysicalInfo,
    TrafficIslandPosition ::= SEQUENCE {
        oneSide    NonIslandLanePosition,
        otherSide  NonIslandLanePosition
    }
  
    NonIslandLanePosition ::= CHOICE {
        offRoadLanePosition    OffRoadLanePosition,
        vehicularLanePosition  LanePosition, -- from ITS-Container
        mapPosition            MapPosition,
        ...
    }

    SingleVruPhysicalInfo ::= SEQUENCE {
        referencePoint     ReferencePosition,
        orientation        Heading,
    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),
        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,
        clusterExitInfo    StationID OPTIONAL,
        clusterLeaveInfo    ClusterLeaveInfo OPTIONAL,
        clusterBreakupInfo  ClusterBreakupInfo OPTIONAL,
        clusterIdChangeInfo VruClusterOpTimestamp OPTIONAL,
        ...
    }

    VruClusterOpTimestamp ::= INTEGER (1..255)

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

    ClusterLeaveInfo ::= SEQUENCE {
        clusterId               ClusterId,
        clusterLeaveReason      ClusterLeaveReason,
        ...
    }

    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
    ClusterBreakupInfo ::= SEQUENCE {
        clusterBreakupReason  ClusterBreakupReason,
        breakupTime           VruClusterOpTimestamp,
        ...
    }

    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
    -- 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,
    VruMotionPredictionContainer ::= SEQUENCE {
        pathHistory                    PathHistory OPTIONAL,
        pathPrediction                 PathPrediction OPTIONAL,
        safeDistance                   SequenceOfVruSafeDistanceIndication OPTIONAL,
        trajectoryChangeIndication     SequenceOfTrajectoryInterceptionIndication OPTIONAL,
        accelerationChangeIndication   AccelerationChangeIndication OPTIONAL,
        headingChangeIndication        HeadingChangeIndication OPTIONAL,
        stabilityChangeIndication      StabilityChangeIndication OPTIONAL,
        ...
    }

    VamExtension ::= CHOICE {
        dummy        NULL,
    PathPrediction ::= PathHistory

    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
+10 −2
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ BEGIN

IMPORTS

ReferencePosition, SpeedConfidence, VehicleWidth
ReferencePosition, SpeedConfidence, StationID, VehicleWidth
FROM ITS-Container 
  {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) 
   ts (102894) cdd (2) version (2)}
@@ -23,7 +23,7 @@ NodeOffsetPointXY, Offset-B10, Offset-B11, Offset-B12, Offset-B13,
Offset-B14, Offset-B16
FROM DSRC 
  {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) 
   version2 (2)}
   version (2)}

;

@@ -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 {
    nodeCenterPoint      OffsetPoint OPTIONAL,
+2077 −0

File added.

Preview size limit exceeded, changes collapsed.

+85 −0
Original line number Diff line number Diff line
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 24534-3:2015 
--
-- This ASN.1 was generateds: 30.08.2016
--
-- This document contains only the data element needed for the encoding of an IVI message
-- as defined in ISO TS 19321(2015) 
--
-- Published version location:
-- http://standards.iso.org/iso/24534/-3/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-- ISO 24534-3:2015
-- Version 29.4.2015


ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version (1)} 


DEFINITIONS AUTOMATIC TAGS ::= BEGIN

-- Electronic Registration Identification (ERI)- Vehicle Data

EuVehicleCategoryCode ::= CHOICE {
	euVehicleCategoryL	EuVehicleCategoryL,   -- conforms to EU 2002/24 and UNECE 1999
	euVehicleCategoryM	EuVehicleCategoryM,   -- conforms to EU 2001/116 and UNECE 1999
	euVehicleCategoryN	EuVehicleCategoryN,   -- conforms to EU 2001/116 and UNECE 1999
	euVehicleCategoryO	EuVehicleCategoryO,   -- conforms to EU 2001/116 and UNECE 1999
	euVehilcleCategoryT	NULL,    -- conforms to UNECE 1999
	euVehilcleCategoryG	NULL     -- conforms to EU 2001/116 and UNECE 1999
	}

EuVehicleCategoryL ::= ENUMERATED { l1, l2, l3, l4, l5, l6, l7 }

EuVehicleCategoryM ::= ENUMERATED {m1, m2, m3}

EuVehicleCategoryN ::= ENUMERATED {n1, n2, n3}

EuVehicleCategoryO ::= ENUMERATED {o1, o2, o3, o4}

Iso3833VehicleType ::= INTEGER {
	passengerCar	(0),	-- term No 3.1.1
	saloon	(1),	-- term No 3.1.1.1 (sedan)
	convertibleSaloon	(2),	-- term No 3.1.1.2
	pullmanSaloon	(3),	-- term No 3.1.1.3
	stationWagon	(4),	-- term No 3.1.1.4
	truckStationWagon	(5),	-- term No 3.1.1.4.1
	coupe	(6),	-- term No 3.1.1.5 (coupé)
	convertible	(7),	-- term No 3.1.1.6 (open tourer, roadstar, spider)
	multipurposePassengerCar	(8),	-- term No 3.1.1.7
	forwardControlPassengerCar	(9),	-- term No 3.1.1.8
	specialPassengerCar	(10),	-- term No 3.1.1.9
	bus	(11),	-- term No 3.1.2
	minibus	(12),	-- term No 3.1.2.1
	urbanBus	(13),	-- term No 3.1.2.2
	interurbanCoach	(14),	-- term No 3.1.2.3
	longDistanceCoach	(15),	-- term No 3.1.2.4
	articulatedBus	(16),	-- term No 3.1.2.5
	trolleyBus	(17),	-- term No 3.1.2.6
	specialBus	(18),	-- term No 3.1.2.7
	commercialVehicle	(19),	-- term No 3.1.3
	specialCommercialVehicle	(20),	-- term No 3.1.3.1
	specialVehicle	(21),	-- term No 3.1.4
	trailingTowingVehicle	(22),	-- term No 3.1.5 (draw-bar tractor)
	semiTrailerTowingVehicle	(23),	-- term No 3.1.6 (fifth wheel tractor)
	trailer	(24),	-- term No 3.2.1
	busTrailer	(25),	-- term No 3.2.1.1
	generalPurposeTrailer	(26),	-- term No 3.2.1.2
	caravan	(27),	-- term No 3.2.1.3
	specialTrailer	(28),	-- term No 3.2.1.4
	semiTrailer	(29),	-- term No 3.2.2
	busSemiTrailer	(30),	-- term No 3.2.2.1
	generalPurposeSemiTrailer	(31),	-- term No 3.2.2.2
	specialSemiTrailer	(32),	-- term No 3.2.2.3
	roadTrain	(33),	-- term No 3.3.1
	passengerRoadTrain	(34),	-- term No 3.3.2
	articulatedRoadTrain	(35),	-- term No 3.3.3
	doubleRoadTrain	(36),	-- term No 3.3.4
	compositeRoadTrain	(37),	-- term No 3.3.5
	specialRoadTrain	(38),	-- term No 3.3.6
	moped	(39),	-- term No 3.4
	motorCycle	(40)	-- term No 3.5
	} (0..255)

END

vam.a1sproj

0 → 100644
+29 −0
Original line number Diff line number Diff line
<OssGuiProject product="ASN.1 Studio" productVersion="9.0.2" version="2.0">
 <Asn1Files>
  <File>motorcyclist-special-container.asn</File>
  <File>VAM-PDU-Descriptions.asn</File>
  <File>VAM-Temp-Imports.asn</File>
  <File>cam/CAM-PDU-Descriptions.asn</File>
  <File>cdd/ITS-Container.asn</File>
  <File>iso/IS_TS103301_ISO_TS_19091.asn</File>
  <File>iso/IS_TS103301_ISO_TS_24534-3.asn</File>
 </Asn1Files>
 <CompilerSettings/>
 <EncodingFiles/>
 <Settings>
  <Setting name="-informatoryMessages"/>
  <Setting present="false" name="-noRelaxedMode"/>
  <Setting name="-root"/>
  <Setting name="-uper"/>
  <Setting name="-warningMessages"/>
  <Setting name="AUTOMATIC_ENCDEC"/>
  <Setting name="Additional Options">-noRelaxedMode</Setting>
  <Setting name="DEBUGPDU"/>
  <Setting name="OSS_AUTO_ENCODE_WITHOUT_CHECKING_CONSTRAINT"/>
  <Setting name="OSS_HEXBYTES"/>
  <Setting name="OSS_PRINT_COMMENTS"/>
  <Setting name="OSS_PRINT_OFFSET"/>
  <Setting name="OSS_PRINT_TYPE_INFO"/>
  <Setting name="STRICT_PER_ENCODING_OF_DEFAULT_VALUES"/>
 </Settings>
</OssGuiProject>