DSRC.asn 36.5 KB
Newer Older
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 19091
--
-- This ASN.1 was generated: 30.08.2016
--
-- This document contains the data element needed for the encoding the SPAT, MapData, SignalRequestMessage, SignalStatusMessage message
-- as defined in ISO TS 19091 and SAEJ2735
-- 
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

filatov's avatar
filatov committed
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
-- 
-- module: DSRC
-- 
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
Yann Garcia's avatar
Yann Garcia committed
DSRC {
  iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)
}
filatov's avatar
filatov committed

DEFINITIONS AUTOMATIC TAGS::= BEGIN 

IMPORTS
--FIXME RGY definitions moved to module DSRC-REGION-noCircular are commented our below
filatov's avatar
filatov committed
Reg-SPAT,Reg-SignalRequestMessage, Reg-SignalStatusMessage, Reg-MapData, Reg-AdvisorySpeed, Reg-ComputedLane, Reg-ConnectionManeuverAssist,
Reg-GenericLane, Reg-IntersectionGeometry, Reg-IntersectionState, Reg-LaneAttributes, /*Reg-LaneDataAttribute,*/ Reg-MovementEvent, Reg-MovementState,
/*Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY,*/ Reg-Position3D, Reg-RequestorDescription, Reg-RequestorType, Reg-RestrictionUserType, Reg-RoadSegment,
Yann Garcia's avatar
Yann Garcia committed
Reg-SignalControlZone, Reg-SignalRequestPackage, Reg-SignalRequest, Reg-SignalStatusPackage, Reg-SignalStatus, Reg-RTCMcorrections FROM REGION {iso (1) standard (0) signalizedIntersection (19091) profilec (2) region (1) version2 (2)}

--FIXME RGY definitions moved to DSRC-REGION-noCircular but also refernced here are re-imported
Yann Garcia's avatar
Yann Garcia committed
DeltaAngle, DeltaTime, LaneID, LaneConnectionID, IntersectionID, NodeSetXY, PrioritizationResponseStatus, RegionalExtension, SignalGroupID, SpeedLimitList, Velocity, NodeOffsetPointXY, NodeAttributeXY, Reg-LaneDataAttribute, Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY, Offset-B12, Offset-B09, Offset-B10 FROM DSRC-REGION-noCircular
Yann Garcia's avatar
Yann Garcia committed
Iso3833VehicleType FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version1 (1)}

Longitude, Latitude, StationID FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }
;
filatov's avatar
filatov committed

-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-- 
-- Start of entries from table Messages...
-- This table typicaly contains message entries.
-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-- 

MessageFrame ::= SEQUENCE {
   messageId   MESSAGE-ID-AND-TYPE.&id({MessageTypes}),
   value       MESSAGE-ID-AND-TYPE.&Type({MessageTypes}{@.messageId}),
   ...
   }

MESSAGE-ID-AND-TYPE ::= CLASS {
   &id    DSRCmsgID UNIQUE,
   &Type
   } WITH SYNTAX {&Type IDENTIFIED BY &id}

MessageTypes MESSAGE-ID-AND-TYPE ::= {
   { MapData               IDENTIFIED BY mapData               } |          
   { SPAT                  IDENTIFIED BY signalPhaseAndTimingMessage } | 
   { SignalRequestMessage  IDENTIFIED BY signalRequestMessage  } |    
   { SignalStatusMessage   IDENTIFIED BY signalStatusMessage   },  
   ... -- Expansion to be used only by the SAE J2735 DSRC TC
   }


/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
-- Regional extensions support
REG-EXT-ID-AND-TYPE ::= CLASS {
   &id     RegionId UNIQUE,
   &Type
   } WITH SYNTAX {&Type IDENTIFIED BY &id}

RegionalExtension {REG-EXT-ID-AND-TYPE : Set} ::= SEQUENCE {
   regionId     REG-EXT-ID-AND-TYPE.&id( {Set} ),
   regExtValue  REG-EXT-ID-AND-TYPE.&Type( {Set}{@regionId} )
   }
filatov's avatar
filatov committed
 
Yann Garcia's avatar
Yann Garcia committed
MapData ::= SEQUENCE {
  timeStamp         MinuteOfTheYear OPTIONAL,
  msgIssueRevision  MsgCount,
  layerType         LayerType OPTIONAL,
  layerID           LayerID  OPTIONAL,
  intersections     IntersectionGeometryList OPTIONAL,
  roadSegments      RoadSegmentList OPTIONAL,
  dataParameters    DataParameters OPTIONAL,
  restrictionList   RestrictionClassList OPTIONAL,
  regional          SEQUENCE (SIZE(1..4)) OF
                    RegionalExtension {{Reg-MapData}} OPTIONAL,
  ...
}

RTCMcorrections ::= SEQUENCE {
   msgCnt      MsgCount,
   rev         RTCM-Revision,
   timeStamp   MinuteOfTheYear  OPTIONAL,
   anchorPoint FullPositionVector OPTIONAL,
   rtcmHeader  RTCMheader OPTIONAL,
   msgs        RTCMmessageList,
   regional    SEQUENCE (SIZE(1..4)) OF
               RegionalExtension {{Reg-RTCMcorrections}} OPTIONAL,
   ...
}

filatov's avatar
filatov committed
SPAT ::= SEQUENCE { 
   timeStamp     MinuteOfTheYear OPTIONAL,  
   name          DescriptiveName OPTIONAL, 
   intersections IntersectionStateList,
   regional      SEQUENCE (SIZE(1..4)) OF 
                 RegionalExtension {{Reg-SPAT}} OPTIONAL,
   ...
   }

SignalRequestMessage ::= SEQUENCE {    
   timeStamp       MinuteOfTheYear  OPTIONAL,
   second          DSecond,
   sequenceNumber  MsgCount         OPTIONAL,

   requests        SignalRequestList OPTIONAL,
   requestor       RequestorDescription,
   regional        SEQUENCE (SIZE(1..4)) OF 
                   RegionalExtension {{Reg-SignalRequestMessage}} OPTIONAL,
   ...
}

SignalStatusMessage ::= SEQUENCE {
   timeStamp       MinuteOfTheYear  OPTIONAL,
   second          DSecond,
   sequenceNumber  MsgCount         OPTIONAL,            
   status          SignalStatusList,
   regional        SEQUENCE (SIZE(1..4)) OF 
                   RegionalExtension {{Reg-SignalStatusMessage}} OPTIONAL,
   ...
}

   


-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-- Start of entries from table Data_Frames...
Yann Garcia's avatar
Yann Garcia committed
-- Data frames
filatov's avatar
filatov committed
-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

AdvisorySpeed ::= SEQUENCE {
   type        AdvisorySpeedType,
   speed       SpeedAdvice OPTIONAL,
Yann Garcia's avatar
Yann Garcia committed
  confidence  SpeedConfidenceDSRC OPTIONAL,
filatov's avatar
filatov committed
   distance    ZoneLength OPTIONAL,
   class       RestrictionClassID OPTIONAL,
   regional    SEQUENCE (SIZE(1..4)) OF 
               RegionalExtension {{Reg-AdvisorySpeed}} OPTIONAL,
   ...
   }

AdvisorySpeedList ::= SEQUENCE (SIZE(1..16)) OF AdvisorySpeed

Yann Garcia's avatar
Yann Garcia committed
AntennaOffsetSet ::= SEQUENCE {
   antOffsetX  Offset-B12,
   antOffsetY  Offset-B09,
   antOffsetZ  Offset-B10
   }

filatov's avatar
filatov committed
ComputedLane ::= SEQUENCE {
   referenceLaneId    LaneID,
   offsetXaxis        CHOICE {
                         small   DrivenLineOffsetSm, 
                         large   DrivenLineOffsetLg
                         },  
   offsetYaxis        CHOICE {
                         small   DrivenLineOffsetSm, 
                         large   DrivenLineOffsetLg
                         },  
   rotateXY           Angle OPTIONAL, 
   scaleXaxis         Scale-B12 OPTIONAL, 
   scaleYaxis         Scale-B12 OPTIONAL, 
   regional  SEQUENCE (SIZE(1..4)) OF 
             RegionalExtension {{Reg-ComputedLane}} OPTIONAL,
   ... 
   }
ConnectsToList ::= SEQUENCE (SIZE(1..16)) OF Connection

ConnectingLane ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  lane      LaneID,
filatov's avatar
filatov committed
   maneuver  AllowedManeuvers OPTIONAL
   }


Connection ::= SEQUENCE {
   connectingLane     ConnectingLane, 
   remoteIntersection IntersectionReferenceID OPTIONAL,  
   signalGroup        SignalGroupID OPTIONAL,    
   userClass          RestrictionClassID OPTIONAL, 
   connectionID       LaneConnectionID OPTIONAL
   }


ConnectionManeuverAssist ::= SEQUENCE {
   connectionID         LaneConnectionID,
   queueLength          ZoneLength OPTIONAL,
   availableStorageLength ZoneLength OPTIONAL,
   waitOnStop           WaitOnStopline OPTIONAL,
   pedBicycleDetect     PedestrianBicycleDetect OPTIONAL,
   regional  SEQUENCE (SIZE(1..4)) OF 
             RegionalExtension {{Reg-ConnectionManeuverAssist}} OPTIONAL,
   ...  
   }

DataParameters ::= SEQUENCE {
   processMethod     IA5String(SIZE(1..255)) OPTIONAL, 
   processAgency     IA5String(SIZE(1..255)) OPTIONAL, 
   lastCheckedDate   IA5String(SIZE(1..255)) OPTIONAL, 
   geoidUsed         IA5String(SIZE(1..255)) OPTIONAL, 
   ...  
   }

Yann Garcia's avatar
Yann Garcia committed

DDateTime ::= SEQUENCE {
   year    DYear    OPTIONAL,
   month   DMonth   OPTIONAL,
   day     DDay     OPTIONAL,
   hour    DHour    OPTIONAL,
   minute  DMinute  OPTIONAL,
   second  DSecond  OPTIONAL,
   offset  DOffset  OPTIONAL
   }

filatov's avatar
filatov committed
EnabledLaneList ::= SEQUENCE (SIZE(1..16)) OF LaneID
Yann Garcia's avatar
Yann Garcia committed

FullPositionVector ::= SEQUENCE {
   utcTime             DDateTime OPTIONAL,   -- time with mSec precision
   long                Longitude,
   lat                 Latitude,
   elevation           Elevation  OPTIONAL,
   heading             HeadingDSRC OPTIONAL,
   speed               TransmissionAndSpeed OPTIONAL,
   posAccuracy         PositionalAccuracy OPTIONAL,
   timeConfidence      TimeConfidence OPTIONAL,
   posConfidence       PositionConfidenceSet OPTIONAL,
   speedConfidence     SpeedandHeadingandThrottleConfidence OPTIONAL,
   ...
   }

filatov's avatar
filatov committed

GenericLane ::= SEQUENCE { 
   laneID           LaneID, 
   name             DescriptiveName OPTIONAL,        
Yann Garcia's avatar
Yann Garcia committed
  ingressApproach  ApproachID OPTIONAL,
  egressApproach   ApproachID OPTIONAL,
filatov's avatar
filatov committed
   laneAttributes   LaneAttributes, 
   maneuvers        AllowedManeuvers OPTIONAL,
   nodeList         NodeListXY,
   connectsTo       ConnectsToList OPTIONAL, 
   overlays         OverlayLaneList OPTIONAL, 
   regional  SEQUENCE (SIZE(1..4)) OF 
             RegionalExtension {{Reg-GenericLane}} OPTIONAL,
   ...
   }

IntersectionAccessPoint ::= CHOICE {
   lane       LaneID,
   approach   ApproachID,
   connection LaneConnectionID,
   ...
   }

IntersectionGeometry ::= SEQUENCE {
   name        DescriptiveName OPTIONAL, 
   id          IntersectionReferenceID,  
   revision    MsgCount,    
Yann Garcia's avatar
Yann Garcia committed
  refPoint    Position3D,
filatov's avatar
filatov committed
   laneWidth   LaneWidth OPTIONAL,   
   speedLimits SpeedLimitList OPTIONAL, 
Yann Garcia's avatar
Yann Garcia committed
  laneSet     LaneList,
filatov's avatar
filatov committed
   preemptPriorityData PreemptPriorityList OPTIONAL, 
   regional     SEQUENCE (SIZE(1..4)) OF 
                RegionalExtension {{Reg-IntersectionGeometry}} OPTIONAL,
   ... 
   }

IntersectionGeometryList ::= SEQUENCE (SIZE(1..32)) OF IntersectionGeometry
   
IntersectionReferenceID ::= SEQUENCE {
   region  RoadRegulatorID OPTIONAL,
   id      IntersectionID
   }
   
IntersectionState ::= SEQUENCE {
   name         DescriptiveName OPTIONAL, 
   id           IntersectionReferenceID,  
   revision     MsgCount,    
   status       IntersectionStatusObject,
   moy          MinuteOfTheYear OPTIONAL,
   timeStamp    DSecond OPTIONAL, 
   enabledLanes EnabledLaneList OPTIONAL,  
   states       MovementList,
   maneuverAssistList  ManeuverAssistList OPTIONAL,
   regional     SEQUENCE (SIZE(1..4)) OF 
                RegionalExtension {{Reg-IntersectionState}} OPTIONAL,
   ... 
   }
   
IntersectionStateList ::= SEQUENCE (SIZE(1..32)) OF  IntersectionState

LaneAttributes ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  directionalUse  LaneDirection,
  sharedWith      LaneSharing,
  laneType        LaneTypeAttributes,
filatov's avatar
filatov committed
   regional        RegionalExtension {{Reg-LaneAttributes}} OPTIONAL
   }

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
LaneDataAttribute ::= CHOICE {
    pathEndPointAngle        DeltaAngle,  
    laneCrownPointCenter     RoadwayCrownAngle,  
    laneCrownPointLeft       RoadwayCrownAngle,  
    laneCrownPointRight      RoadwayCrownAngle,  
    laneAngle                MergeDivergeNodeAngle,  
    speedLimits              SpeedLimitList,
    regional  SEQUENCE (SIZE(1..4)) OF 
              RegionalExtension {{Reg-LaneDataAttribute}}, 
    ...
    }

LaneDataAttributeList ::= SEQUENCE (SIZE(1..8)) OF LaneDataAttribute
filatov's avatar
filatov committed

LaneList ::= SEQUENCE (SIZE(1..255)) OF GenericLane

LaneSharing ::= BIT STRING {
    overlappingLaneDescriptionProvided  (0),
    multipleLanesTreatedAsOneLane       (1),
Yann Garcia's avatar
Yann Garcia committed
   otherNonMotorizedTrafficTypes       (2),
filatov's avatar
filatov committed
    individualMotorizedVehicleTraffic   (3),
    busVehicleTraffic                   (4),  
    taxiVehicleTraffic                  (5),
    pedestriansTraffic                  (6),
    cyclistVehicleTraffic               (7),
    trackedVehicleTraffic               (8),
    pedestrianTraffic                   (9)
    } (SIZE (10))

LaneTypeAttributes ::= CHOICE {
Yann Garcia's avatar
Yann Garcia committed
  vehicle        LaneAttributes-Vehicle,
  crosswalk      LaneAttributes-Crosswalk,
  bikeLane       LaneAttributes-Bike,
  sidewalk       LaneAttributes-Sidewalk,
  median         LaneAttributes-Barrier,
  striping       LaneAttributes-Striping,
  trackedVehicle LaneAttributes-TrackedVehicle,
  parking        LaneAttributes-Parking,
filatov's avatar
filatov committed
   ...
   }

ManeuverAssistList ::= SEQUENCE (SIZE(1..16)) OF ConnectionManeuverAssist

MovementEvent ::= SEQUENCE {
   eventState   MovementPhaseState,
   timing       TimeChangeDetails OPTIONAL,
   speeds       AdvisorySpeedList OPTIONAL,
   regional     SEQUENCE (SIZE(1..4)) OF 
                RegionalExtension {{Reg-MovementEvent}} OPTIONAL,
   ...  
   }

Yann Garcia's avatar
Yann Garcia committed
MovementEventList ::= SEQUENCE (SIZE(1..16)) OF MovementEvent

filatov's avatar
filatov committed
MovementList ::= SEQUENCE (SIZE(1..255)) OF MovementState

MovementState ::= SEQUENCE {
   movementName       DescriptiveName OPTIONAL,
   signalGroup        SignalGroupID,    
   state-time-speed   MovementEventList,   
   maneuverAssistList ManeuverAssistList OPTIONAL,
   regional           SEQUENCE (SIZE(1..4)) OF 
                      RegionalExtension {{Reg-MovementState}} OPTIONAL,
   ...  
   }

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
NodeAttributeSetXY ::= SEQUENCE {
   localNode    NodeAttributeXYList OPTIONAL,
   disabled     SegmentAttributeXYList OPTIONAL,
   enabled      SegmentAttributeXYList OPTIONAL,
   data         LaneDataAttributeList OPTIONAL,
   dWidth       Offset-B10 OPTIONAL,
   dElevation   Offset-B10 OPTIONAL,
   regional     SEQUENCE (SIZE(1..4)) OF 
                RegionalExtension {{Reg-NodeAttributeSetXY}} OPTIONAL,
   ...
   }

NodeAttributeXY ::= ENUMERATED {
   reserved,  
Yann Garcia's avatar
Yann Garcia committed
  stopLine,
  roundedCapStyleA,
  roundedCapStyleB,
  mergePoint,
  divergePoint,
  downstreamStopLine,
  downstreamStartNode,
  closedToTraffic,
  safeIsland,
  curbPresentAtStepOff,
  hydrantPresent,
filatov's avatar
filatov committed
   ...
   }
filatov's avatar
filatov committed

Yann Garcia's avatar
Yann Garcia committed
NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY

filatov's avatar
filatov committed
Node-LLmD-64b ::= SEQUENCE {
   lon  Longitude,
   lat  Latitude
   }


/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
   Node-XY-20b ::= SEQUENCE {
   x  Offset-B10,
   y  Offset-B10
   }

Node-XY-22b ::= SEQUENCE {
   x  Offset-B11,
   y  Offset-B11
   }


Node-XY-24b ::= SEQUENCE {
   x  Offset-B12,
   y  Offset-B12
   }


Node-XY-26b ::= SEQUENCE {
   x  Offset-B13,
   y  Offset-B13
   }


Node-XY-28b ::= SEQUENCE {
   x  Offset-B14,
   y  Offset-B14
   }


Node-XY-32b ::= SEQUENCE {
   x  Offset-B16,
   y  Offset-B16
   }
filatov's avatar
filatov committed

NodeListXY ::= CHOICE {
   nodes     NodeSetXY,
   computed  ComputedLane,
   ...
   }

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
NodeOffsetPointXY ::= CHOICE {
Yann Garcia's avatar
Yann Garcia committed
  node-XY1         Node-XY-20b,
  node-XY2         Node-XY-22b,
  node-XY3         Node-XY-24b,
  node-XY4         Node-XY-26b,
  node-XY5         Node-XY-28b,
  node-XY6         Node-XY-32b,
  node-LatLon      Node-LLmD-64b,
filatov's avatar
filatov committed
   regional         RegionalExtension {{Reg-NodeOffsetPointXY}}
   }

NodeXY ::= SEQUENCE {
   delta       NodeOffsetPointXY,
   attributes  NodeAttributeSetXY OPTIONAL,
   ... 
}
Yann Garcia's avatar
Yann Garcia committed

NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY
filatov's avatar
filatov committed

OverlayLaneList ::= SEQUENCE (SIZE(1..5)) OF LaneID
Yann Garcia's avatar
Yann Garcia committed

PositionalAccuracy ::= SEQUENCE {
   semiMajor     SemiMajorAxisAccuracy,
   semiMinor     SemiMinorAxisAccuracy,
   orientation   SemiMajorAxisOrientation
}

PositionConfidenceSet ::= SEQUENCE {
   pos        PositionConfidence, -- for both horizontal directions
   elevation  ElevationConfidence
   }

filatov's avatar
filatov committed

Position3D ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  lat        Latitude,
  long       Longitude,
  elevation  Elevation  OPTIONAL,
filatov's avatar
filatov committed
   regional   SEQUENCE (SIZE(1..4)) OF 
              RegionalExtension {{Reg-Position3D}} OPTIONAL,
   ...
   }

PreemptPriorityList ::= SEQUENCE (SIZE(1..32)) OF SignalControlZone

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
RegulatorySpeedLimit ::= SEQUENCE {
   type        SpeedLimitType, 
   speed       Velocity
   }
filatov's avatar
filatov committed

RequestorDescription ::= SEQUENCE {
   id                VehicleID, 
   type              RequestorType OPTIONAL,
   position          RequestorPositionVector OPTIONAL,
   name              DescriptiveName OPTIONAL,
   routeName         DescriptiveName OPTIONAL,
   transitStatus     TransitVehicleStatus OPTIONAL,
   transitOccupancy  TransitVehicleOccupancy OPTIONAL,
   transitSchedule   DeltaTime OPTIONAL, 
   regional          SEQUENCE (SIZE(1..4)) OF 
                     RegionalExtension {{Reg-RequestorDescription}} OPTIONAL,
   ...
   }

RequestorPositionVector ::= SEQUENCE {
   position           Position3D,
   heading            Angle OPTIONAL, 
   speed              TransmissionAndSpeed OPTIONAL,
   ...  
   }

RequestorType ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  role         BasicVehicleRole,
  subrole      RequestSubRole OPTIONAL,
  request      RequestImportanceLevel OPTIONAL,
filatov's avatar
filatov committed
   iso3883      Iso3833VehicleType OPTIONAL,
Yann Garcia's avatar
Yann Garcia committed
  hpmsType     VehicleType OPTIONAL,
filatov's avatar
filatov committed
   regional     RegionalExtension {{Reg-RequestorType}} OPTIONAL,
   ...
   }

RestrictionClassAssignment ::= SEQUENCE {
   id       RestrictionClassID,
   users    RestrictionUserTypeList 
   }

RestrictionClassList ::= SEQUENCE (SIZE(1..254)) OF RestrictionClassAssignment

RestrictionUserType ::= CHOICE {
   basicType   RestrictionAppliesTo,
   regional    SEQUENCE (SIZE(1..4)) OF 
               RegionalExtension {{Reg-RestrictionUserType}}, 
   ...
   }

Yann Garcia's avatar
Yann Garcia committed
RestrictionUserTypeList ::= SEQUENCE (SIZE(1..16)) OF  RestrictionUserType

filatov's avatar
filatov committed
RoadLaneSetList ::= SEQUENCE (SIZE(1..255)) OF GenericLane

RoadSegmentReferenceID ::= SEQUENCE {
   region  RoadRegulatorID OPTIONAL,
   id      RoadSegmentID
   }

RoadSegment ::= SEQUENCE {
   name        DescriptiveName OPTIONAL,
   id          RoadSegmentReferenceID,
   revision    MsgCount,    
Yann Garcia's avatar
Yann Garcia committed
  refPoint    Position3D,
filatov's avatar
filatov committed
   laneWidth   LaneWidth OPTIONAL,   
   speedLimits SpeedLimitList OPTIONAL, 
   roadLaneSet RoadLaneSetList,   
   regional    SEQUENCE (SIZE(1..4)) OF 
               RegionalExtension {{Reg-RoadSegment}} OPTIONAL,
   ...
   }

RoadSegmentList ::= SEQUENCE (SIZE(1..32)) OF RoadSegment
   
Yann Garcia's avatar
Yann Garcia committed
RTCMheader ::= SEQUENCE {
   status     GNSSstatus,
   offsetSet  AntennaOffsetSet
   }

RTCMmessageList ::= SEQUENCE (SIZE(1..5)) OF RTCMmessage

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY
filatov's avatar
filatov committed

SignalControlZone ::=  SEQUENCE {
  zone  RegionalExtension {{Reg-SignalControlZone}},
  ...
  }

SignalRequesterInfo ::= SEQUENCE {
   id             VehicleID,
   request        RequestID,
   sequenceNumber MsgCount,
   role           BasicVehicleRole OPTIONAL,
Yann Garcia's avatar
Yann Garcia committed
  typeData       RequestorType OPTIONAL,
  ...
}
filatov's avatar
filatov committed

Yann Garcia's avatar
Yann Garcia committed
SignalRequest ::= SEQUENCE {
  id            IntersectionReferenceID,
  requestID     RequestID,
  requestType   PriorityRequestType,
  inBoundLane   IntersectionAccessPoint,
  outBoundLane  IntersectionAccessPoint OPTIONAL,
  regional      SEQUENCE (SIZE(1..4)) OF
                RegionalExtension {{Reg-SignalRequest}} OPTIONAL,
filatov's avatar
filatov committed
   ...
   }

SignalRequestList ::= SEQUENCE (SIZE(1..32)) OF SignalRequestPackage

SignalRequestPackage ::= SEQUENCE {
   request        SignalRequest,
   minute         MinuteOfTheYear OPTIONAL,
   second         DSecond OPTIONAL,
   duration       DSecond OPTIONAL,
   regional       SEQUENCE (SIZE(1..4)) OF 
                  RegionalExtension {{Reg-SignalRequestPackage}} OPTIONAL,
   ...  
   }

Yann Garcia's avatar
Yann Garcia committed
SignalStatus ::= SEQUENCE {
  sequenceNumber MsgCount,
filatov's avatar
filatov committed
   id            IntersectionReferenceID,  
Yann Garcia's avatar
Yann Garcia committed
  sigStatus      SignalStatusPackageList,
filatov's avatar
filatov committed
   regional      SEQUENCE (SIZE(1..4)) OF 
Yann Garcia's avatar
Yann Garcia committed
                 RegionalExtension {{Reg-SignalStatus}} OPTIONAL,
filatov's avatar
filatov committed
   ...
   }

SignalStatusList ::= SEQUENCE (SIZE(1..32)) OF SignalStatus

SignalStatusPackageList ::= SEQUENCE (SIZE(1..32)) OF SignalStatusPackage

SignalStatusPackage ::= SEQUENCE {
   requester    SignalRequesterInfo OPTIONAL,
Yann Garcia's avatar
Yann Garcia committed
  inboundOn    IntersectionAccessPoint,
filatov's avatar
filatov committed
   outboundOn   IntersectionAccessPoint OPTIONAL,

   minute       MinuteOfTheYear OPTIONAL,
   second       DSecond OPTIONAL,
      duration     DSecond OPTIONAL,
   status       PrioritizationResponseStatus,
   regional     SEQUENCE (SIZE(1..4)) OF 
                RegionalExtension {{Reg-SignalStatusPackage}} OPTIONAL,
   ...  
   }

Yann Garcia's avatar
Yann Garcia committed
SpeedandHeadingandThrottleConfidence ::= SEQUENCE {
   heading   HeadingConfidenceDSRC,
   speed     SpeedConfidenceDSRC,
   throttle  ThrottleConfidence
filatov's avatar
filatov committed
   }
   
/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit

SpeedLimitType ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
   unknown,
   maxSpeedInSchoolZone,
   maxSpeedInSchoolZoneWhenChildrenArePresent,
   maxSpeedInConstructionZone,
filatov's avatar
filatov committed
    vehicleMinSpeed,
Yann Garcia's avatar
Yann Garcia committed
   vehicleMaxSpeed,
filatov's avatar
filatov committed
    vehicleNightMaxSpeed,

    truckMinSpeed,
    truckMaxSpeed,
    truckNightMaxSpeed,

    vehiclesWithTrailersMinSpeed,
    vehiclesWithTrailersMaxSpeed,
    vehiclesWithTrailersNightMaxSpeed,
    ...
    }
filatov's avatar
filatov committed

TimeChangeDetails ::= SEQUENCE {
   startTime   TimeMark           OPTIONAL,
   minEndTime  TimeMark,
   maxEndTime  TimeMark           OPTIONAL,
   likelyTime  TimeMark           OPTIONAL,
   confidence  TimeIntervalConfidence OPTIONAL,
   nextTime    TimeMark           OPTIONAL
   }

garciay's avatar
garciay committed
TimeMark ::= INTEGER (0..36001)
filatov's avatar
filatov committed

TransmissionAndSpeed ::= SEQUENCE {
   transmisson   TransmissionState,
   speed         Velocity
   }

VehicleID ::= CHOICE {
   entityID     TemporaryID,
   stationID    StationID
filatov's avatar
filatov committed
   }

   
-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Yann Garcia's avatar
Yann Garcia committed
-- data elements
filatov's avatar
filatov committed
-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

AdvisorySpeedType ::= ENUMERATED {
    none       (0),
    greenwave  (1),
    ecoDrive   (2),
    transit    (3),
    ...  
Yann Garcia's avatar
Yann Garcia committed
}
filatov's avatar
filatov committed

AllowedManeuvers ::= BIT STRING {
    maneuverStraightAllowed      (0), 
    maneuverLeftAllowed          (1),  
    maneuverRightAllowed         (2), 
    maneuverUTurnAllowed         (3), 
    maneuverLeftTurnOnRedAllowed (4), 
    maneuverRightTurnOnRedAllowed (5), 
    maneuverLaneChangeAllowed    (6), 
    maneuverNoStoppingAllowed    (7), 
    yieldAllwaysRequired         (8), 
    goWithHalt                   (9), 
    caution                      (10), 
    reserved1                    (11)
   } (SIZE(12))

Angle ::= INTEGER (0..28800) 

Yann Garcia's avatar
Yann Garcia committed
ApproachID ::= INTEGER (0..15)
filatov's avatar
filatov committed
   
BasicVehicleRole ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
  basicVehicle     (0),
  publicTransport  (1),
  specialTransport (2),
  dangerousGoods   (3),
  roadWork         (4),
  roadRescue       (5),
  emergency        (6),
  safetyCar        (7),
  none-unknown     (8),
  truck            (9),
  motorcycle      (10),
  roadSideSource  (11),
  police          (12),
  fire            (13),
  ambulance       (14),
  dot             (15),
  transit         (16),
  slowMoving      (17),
  stopNgo         (18),
  cyclist         (19),
  pedestrian      (20),
  nonMotorized    (21),
  military        (22),
filatov's avatar
filatov committed
    ...   
    }  

Yann Garcia's avatar
Yann Garcia committed
DDay ::= INTEGER (0..31)

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
DeltaAngle ::= INTEGER (-150..150) 

DeltaTime ::= INTEGER (-122 .. 121) 
filatov's avatar
filatov committed

DescriptiveName ::= IA5String (SIZE(1..63))

Yann Garcia's avatar
Yann Garcia committed
DHour ::= INTEGER (0..31)

DMinute ::= INTEGER (0..60)

DMonth ::= INTEGER (0..12)

DOffset ::= INTEGER (-840..840)

filatov's avatar
filatov committed
DrivenLineOffsetLg ::= INTEGER (-32767..32767) 

DrivenLineOffsetSm ::= INTEGER (-2047..2047) 

Yann Garcia's avatar
Yann Garcia committed
DSecond ::= INTEGER (0..65535)
filatov's avatar
filatov committed
   
DSRCmsgID ::= INTEGER (0..32767)
Yann Garcia's avatar
Yann Garcia committed
  mapData                           DSRCmsgID ::=   18
  rtcmCorrections                   DSRCmsgID ::=   28
  signalPhaseAndTimingMessage       DSRCmsgID ::=   19
  signalRequestMessage              DSRCmsgID ::=   29
  signalStatusMessage               DSRCmsgID ::=   30

DYear ::= INTEGER (0..4095)
filatov's avatar
filatov committed

Elevation ::= INTEGER (-4096..61439) 
filatov's avatar
filatov committed

Yann Garcia's avatar
Yann Garcia committed
ElevationConfidence ::= ENUMERATED {
   unavailable (0),
   elev-500-00 (1),
   elev-200-00 (2),
   elev-100-00 (3),
   elev-050-00 (4),
   elev-020-00 (5),
   elev-010-00 (6),
   elev-005-00 (7),
   elev-002-00 (8),
   elev-001-00 (9),
   elev-000-50 (10),
   elev-000-20 (11),
   elev-000-10 (12),
   elev-000-05 (13),
   elev-000-02 (14),
   elev-000-01 (15)
   }


GNSSstatus ::= BIT STRING {
   unavailable               (0),
   isHealthy                 (1),
   isMonitored               (2),
   baseStationType           (3),
   aPDOPofUnder5             (4),
   inViewOfUnder5            (5),
   localCorrectionsPresent   (6),
   networkCorrectionsPresent (7)
   } (SIZE(8))

HeadingConfidenceDSRC ::= ENUMERATED {
   unavailable   (0),
   prec10deg     (1),
   prec05deg     (2),
   prec01deg     (3),
   prec0-1deg    (4),
   prec0-05deg   (5),
   prec0-01deg   (6),
   prec0-0125deg (7)
   }

HeadingDSRC ::= INTEGER (0..28800)
filatov's avatar
filatov committed

IntersectionStatusObject ::= BIT STRING {
    manualControlIsEnabled                (0),
    stopTimeIsActivated                   (1),
    failureFlash                          (2), 
    preemptIsActive                       (3),
    signalPriorityIsActive                (4),   
    fixedTimeOperation                    (5),
    trafficDependentOperation             (6),
    standbyOperation                      (7),
    failureMode                           (8),
    off                                   (9),
    recentMAPmessageUpdate                (10),
    recentChangeInMAPassignedLanesIDsUsed (11),
    noValidMAPisAvailableAtThisTime       (12),
    noValidSPATisAvailableAtThisTime      (13)
    } (SIZE(16))


LaneAttributes-Barrier ::= BIT STRING {
   median-RevocableLane     (0),
   median                   (1),
   whiteLineHashing         (2),
   stripedLines             (3),
   doubleStripedLines       (4),
   trafficCones             (5),
   constructionBarrier      (6),
   trafficChannels          (7),
   lowCurbs                 (8),
   highCurbs                (9)
   } (SIZE (16))

LaneAttributes-Bike ::= BIT STRING {
   bikeRevocableLane       (0),
   pedestrianUseAllowed    (1),
   isBikeFlyOverLane       (2),
   fixedCycleTime          (3),
   biDirectionalCycleTimes (4),
   isolatedByBarrier       (5),
   unsignalizedSegmentsPresent  (6)
   } (SIZE (16))

LaneAttributes-Crosswalk ::= BIT STRING { 
   crosswalkRevocableLane  (0),
   bicyleUseAllowed        (1),
   isXwalkFlyOverLane      (2),
   fixedCycleTime          (3),
   biDirectionalCycleTimes (4),
   hasPushToWalkButton     (5),
   audioSupport            (6),
   rfSignalRequestPresent  (7),
   unsignalizedSegmentsPresent  (8)
   } (SIZE (16))

LaneAttributes-Parking ::= BIT STRING { 
    parkingRevocableLane         (0),
    parallelParkingInUse         (1),
    headInParkingInUse           (2),
    doNotParkZone                (3),
    parkingForBusUse             (4),
    parkingForTaxiUse            (5),
    noPublicParkingUse           (6)
   } (SIZE (16))

LaneAttributes-Sidewalk ::= BIT STRING { 
   sidewalk-RevocableLane  (0),
   bicyleUseAllowed        (1),
   isSidewalkFlyOverLane   (2),
   walkBikes               (3)
   } (SIZE (16))


LaneAttributes-Striping ::= BIT STRING { 
    stripeToConnectingLanesRevocableLane      (0),
    stripeDrawOnLeft                          (1),
    stripeDrawOnRight                         (2),
    stripeToConnectingLanesLeft               (3),
    stripeToConnectingLanesRight              (4),
    stripeToConnectingLanesAhead              (5)
   } (SIZE (16))


LaneAttributes-TrackedVehicle ::= BIT STRING { 
   spec-RevocableLane         (0),
   spec-commuterRailRoadTrack (1), 
   spec-lightRailRoadTrack    (2),
   spec-heavyRailRoadTrack    (3),
   spec-otherRailType         (4)
   } (SIZE (16))


LaneAttributes-Vehicle ::= BIT STRING {  
   isVehicleRevocableLane       (0),
   isVehicleFlyOverLane         (1),
   hovLaneUseOnly               (2),
   restrictedToBusUse           (3),
   restrictedToTaxiUse          (4),
   restrictedFromPublicUse      (5),
   hasIRbeaconCoverage          (6),
Yann Garcia's avatar
Yann Garcia committed
  permissionOnRequest          (7)
filatov's avatar
filatov committed
   } (SIZE (8,...))

LaneDirection ::= BIT STRING {
   ingressPath     (0), 
   egressPath      (1)
   } (SIZE (2))

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
LaneID ::= INTEGER (0..255)
filatov's avatar
filatov committed

LayerID ::= INTEGER (0..100)

LayerType ::= ENUMERATED {
     none, 
Yann Garcia's avatar
Yann Garcia committed
  mixedContent,
filatov's avatar
filatov committed
     generalMapData, 
     intersectionData, 
     curveData, 
     roadwaySectionData, 
     parkingAreaData, 
     sharedLaneData,
     ... 
     }
   
Yann Garcia's avatar
Yann Garcia committed
LaneWidth ::= INTEGER (0..32767)
filatov's avatar
filatov committed

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
MergeDivergeNodeAngle ::= INTEGER (-180..180) 
filatov's avatar
filatov committed

MinuteOfTheYear ::= INTEGER (0..527040) 

MovementPhaseState ::= ENUMERATED {
    unavailable (0), 
    dark (1),   
    stop-Then-Proceed (2), 
    stop-And-Remain (3),
    pre-Movement (4), 
    permissive-Movement-Allowed (5), 
    protected-Movement-Allowed (6), 
    permissive-clearance (7), 
    protected-clearance (8),  
    caution-Conflicting-Traffic (9)
    }

MsgCount ::= INTEGER (0..127)

/*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop
filatov's avatar
filatov committed
Offset-B10 ::= INTEGER (-512..511)

Offset-B11 ::= INTEGER (-1024..1023)

Offset-B12 ::= INTEGER (-2048..2047)

Offset-B13 ::= INTEGER (-4096..4095)

Offset-B14 ::= INTEGER (-8192..8191)