DSRC.asn 32.9 KB
Newer Older
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
Yann Garcia's avatar
Yann Garcia committed
--
Yann Garcia's avatar
Yann Garcia committed
-- Some Types renamed (added xxxDSRC) to avoid name-clashes with CDD
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-

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

DEFINITIONS AUTOMATIC TAGS::= BEGIN
Yann Garcia's avatar
Yann Garcia committed
Longitude, Latitude, StationID
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }
Yann Garcia's avatar
Yann Garcia committed
Reg-AdvisorySpeed, Reg-ComputedLane, Reg-ConnectionManeuverAssist, Reg-GenericLane,
Reg-IntersectionGeometry, Reg-IntersectionState, Reg-LaneAttributes, Reg-MapData,
Reg-LaneDataAttribute, Reg-MovementEvent, Reg-MovementState,
Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY, Reg-Position3D, Reg-RequestorDescription, Reg-RequestorType, Reg-RestrictionUserType, Reg-RoadSegment,
Reg-RTCMcorrections, Reg-SignalControlZone, Reg-SignalRequestPackage, Reg-SignalRequest, Reg-SignalStatus, Reg-SignalStatusPackage, Reg-SignalRequestMessage,
Reg-SignalStatusMessage, Reg-SPAT
FROM REGION  {iso (1) standard (0) signalizedIntersection (19091) profilec(2) region (1) version2 (2)}
Yann Garcia's avatar
Yann Garcia committed
Iso3833VehicleType
FROM ElectronicRegistrationIdentificationVehicleDataModule { iso(1) standard(0) iso24534 (24534) vehicleData (1) version1 (1) };

-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
-- Messages
-- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

REG-EXT-ID-AND-TYPE ::= CLASS {
Yann Garcia's avatar
Yann Garcia committed
  &id     RegionId UNIQUE,
  &Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}

RegionalExtension {REG-EXT-ID-AND-TYPE : Set} ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  regionId     REG-EXT-ID-AND-TYPE.&id( {Set} ),
  regExtValue  REG-EXT-ID-AND-TYPE.&Type( {Set}{@regionId} )
}
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,
  ...
}
Yann Garcia's avatar
Yann Garcia committed
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,
   ...
}
Yann Garcia's avatar
Yann Garcia committed
SPAT ::= SEQUENCE {
  timeStamp     MinuteOfTheYear OPTIONAL,
  name          DescriptiveName OPTIONAL,
  intersections IntersectionStateList,
  regional      SEQUENCE (SIZE(1..4)) OF
                RegionalExtension {{Reg-SPAT}} OPTIONAL,
  ...
}
Yann Garcia's avatar
Yann Garcia committed
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 {
Yann Garcia's avatar
Yann Garcia committed
  timeStamp       MinuteOfTheYear  OPTIONAL,
  second          DSecond,
  sequenceNumber  MsgCount         OPTIONAL,
  status          SignalStatusList,
  regional        SEQUENCE (SIZE(1..4)) OF
                  RegionalExtension {{Reg-SignalStatusMessage}} OPTIONAL,
  ...
Yann Garcia's avatar
Yann Garcia committed



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

AdvisorySpeed ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  type        AdvisorySpeedType,
  speed       SpeedAdvice OPTIONAL,
  confidence  SpeedConfidenceDSRC OPTIONAL,
  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
Yann Garcia's avatar
Yann Garcia 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,
  maneuver  AllowedManeuvers OPTIONAL
}

Connection ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  connectingLane     ConnectingLane,
  remoteIntersection IntersectionReferenceID OPTIONAL,
  signalGroup        SignalGroupID OPTIONAL,
  userClass          RestrictionClassID OPTIONAL,
  connectionID       LaneConnectionID OPTIONAL
}

ConnectionManeuverAssist ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  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 {
Yann Garcia's avatar
Yann Garcia committed
  processMethod     IA5String(SIZE(1..255)) OPTIONAL,
  processAgency     IA5String(SIZE(1..255)) OPTIONAL,
  lastCheckedDate   IA5String(SIZE(1..255)) OPTIONAL,
  geoidUsed         IA5String(SIZE(1..255)) OPTIONAL,
  ...
}


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

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,
Yann Garcia's avatar
Yann Garcia committed

GenericLane ::= SEQUENCE {
  laneID           LaneID,
  name             DescriptiveName OPTIONAL,
  ingressApproach  ApproachID OPTIONAL,
  egressApproach   ApproachID OPTIONAL,
  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 {
Yann Garcia's avatar
Yann Garcia committed
  lane       LaneID,
  approach   ApproachID,
  connection LaneConnectionID,
  ...
}

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

IntersectionGeometryList ::= SEQUENCE (SIZE(1..32)) OF IntersectionGeometry
Yann Garcia's avatar
Yann Garcia committed

IntersectionReferenceID ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  region  RoadRegulatorID OPTIONAL,
  id      IntersectionID
}

IntersectionState ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  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,
  regional        RegionalExtension {{Reg-LaneAttributes}} OPTIONAL
}

LaneDataAttribute ::= CHOICE {
Yann Garcia's avatar
Yann Garcia committed
   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

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

LaneSharing ::= BIT STRING {
Yann Garcia's avatar
Yann Garcia committed
   overlappingLaneDescriptionProvided  (0),
   multipleLanesTreatedAsOneLane       (1),
   otherNonMotorizedTrafficTypes       (2),
   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,
  ...
}

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

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

MovementEventList ::= SEQUENCE (SIZE(1..16)) OF MovementEvent

MovementList ::= SEQUENCE (SIZE(1..255)) OF MovementState

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

NodeAttributeSetXY ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  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 {
Yann Garcia's avatar
Yann Garcia committed
  reserved,
  stopLine,
  roundedCapStyleA,
  roundedCapStyleB,
  mergePoint,
  divergePoint,
  downstreamStopLine,
  downstreamStartNode,
  closedToTraffic,
  safeIsland,
  curbPresentAtStepOff,
  hydrantPresent,
  ...
}

NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY

Node-LLmD-64b ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  lon  Longitude,
  lat  Latitude
}
Yann Garcia's avatar
Yann Garcia committed
Node-XY-20b ::= SEQUENCE {
  x  Offset-B10,
  y  Offset-B10
}

Node-XY-22b ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  x  Offset-B11,
  y  Offset-B11
}

Node-XY-24b ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  x  Offset-B12,
  y  Offset-B12
}

Node-XY-26b ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  x  Offset-B13,
  y  Offset-B13
}

Node-XY-28b ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  x  Offset-B14,
  y  Offset-B14
}

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

NodeListXY ::= CHOICE {
Yann Garcia's avatar
Yann Garcia committed
  nodes     NodeSetXY,
  computed  ComputedLane,
  ...
}

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,
  regional         RegionalExtension {{Reg-NodeOffsetPointXY}}
}

NodeXY ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  delta       NodeOffsetPointXY,
  attributes  NodeAttributeSetXY OPTIONAL,
  ...
Yann Garcia's avatar
Yann Garcia committed
NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY

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
Yann Garcia's avatar
Yann Garcia committed

Position3D ::= SEQUENCE {
  lat        Latitude,
  long       Longitude,
  elevation  Elevation  OPTIONAL,
  regional   SEQUENCE (SIZE(1..4)) OF
             RegionalExtension {{Reg-Position3D}} OPTIONAL,
  ...
}

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

RegulatorySpeedLimit ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  type        SpeedLimitType,
  speed       Velocity
}

RequestorDescription ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  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 {
Yann Garcia's avatar
Yann Garcia committed
  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,
  iso3883      Iso3833VehicleType OPTIONAL,
  hpmsType     VehicleType OPTIONAL,
  regional     RegionalExtension {{Reg-RequestorType}} OPTIONAL,
  ...
}

RestrictionClassAssignment ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  id       RestrictionClassID,
  users    RestrictionUserTypeList
}

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

RestrictionUserType ::= CHOICE {
Yann Garcia's avatar
Yann Garcia committed
  basicType   RestrictionAppliesTo,
  regional    SEQUENCE (SIZE(1..4)) OF
              RegionalExtension {{Reg-RestrictionUserType}},
  ...
}

RestrictionUserTypeList ::= SEQUENCE (SIZE(1..16)) OF  RestrictionUserType

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

RoadSegmentReferenceID ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  region  RoadRegulatorID OPTIONAL,
  id      RoadSegmentID
}

RoadSegment ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  name        DescriptiveName OPTIONAL,
  id          RoadSegmentReferenceID,
  revision    MsgCount,
  refPoint    Position3D,
  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

SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY

SignalControlZone ::=  SEQUENCE {
  zone  RegionalExtension {{Reg-SignalControlZone}},
  ...
Yann Garcia's avatar
Yann Garcia committed
}

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

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

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

SignalRequestPackage ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  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,
  id             IntersectionReferenceID,
  sigStatus      SignalStatusPackageList,
  regional       SEQUENCE (SIZE(1..4)) OF
                 RegionalExtension {{Reg-SignalStatus}} OPTIONAL,
  ...
}

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

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

SignalStatusPackage ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  requester    SignalRequesterInfo OPTIONAL,
  inboundOn    IntersectionAccessPoint,
  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
SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit

SpeedLimitType ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
   unknown,
   maxSpeedInSchoolZone,
   maxSpeedInSchoolZoneWhenChildrenArePresent,
   maxSpeedInConstructionZone,
   vehicleMinSpeed,
   vehicleMaxSpeed,
   vehicleNightMaxSpeed,
   truckMinSpeed,
   truckMaxSpeed,
   truckNightMaxSpeed,
   vehiclesWithTrailersMinSpeed,
   vehiclesWithTrailersMaxSpeed,
   vehiclesWithTrailersNightMaxSpeed,
   ...
}

TimeChangeDetails ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  startTime   TimeMark           OPTIONAL,
  minEndTime  TimeMark,
  maxEndTime  TimeMark           OPTIONAL,
  likelyTime  TimeMark           OPTIONAL,
  confidence  TimeIntervalConfidence OPTIONAL,
  nextTime    TimeMark           OPTIONAL
}

TimeMark ::= INTEGER (0..36001)

TransmissionAndSpeed ::= SEQUENCE {
Yann Garcia's avatar
Yann Garcia committed
  transmisson   TransmissionState,
  speed         Velocity
}

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


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

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

AllowedManeuvers ::= BIT STRING {
Yann Garcia's avatar
Yann Garcia committed
  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)

ApproachID ::= INTEGER (0..15)

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

DDay ::= INTEGER (0..31)

DeltaAngle ::= INTEGER (-150..150)

DeltaTime ::= INTEGER (-122 .. 121)

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)

DrivenLineOffsetLg ::= INTEGER (-32767..32767)
Yann Garcia's avatar
Yann Garcia committed
DrivenLineOffsetSm ::= INTEGER (-2047..2047)

DSecond ::= INTEGER (0..65535)

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)

Elevation ::= INTEGER (-4096..61439)

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


FuelType ::= INTEGER (0..15)
   unknownFuel FuelType  ::= 0
   gasoline FuelType     ::= 1
   ethanol FuelType      ::= 2
   diesel FuelType       ::= 3
   electric FuelType     ::= 4
   hybrid FuelType       ::= 5
   hydrogen FuelType     ::= 6
   natGasLiquid FuelType ::= 7
   natGasComp FuelType   ::= 8
   propane FuelType      ::= 9

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)
   }
Yann Garcia's avatar
Yann Garcia committed
HeadingDSRC ::= INTEGER (0..28800)

IntersectionID ::= INTEGER (0..65535)

IntersectionStatusObject ::= BIT STRING {
Yann Garcia's avatar
Yann Garcia committed
  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 {
Yann Garcia's avatar
Yann Garcia committed
  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 {
Yann Garcia's avatar
Yann Garcia committed
  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),
  permissionOnRequest          (7)
} (SIZE (8,...))

LaneConnectionID ::= INTEGER (0..255)

LaneDirection ::= BIT STRING {
Yann Garcia's avatar
Yann Garcia committed
  ingressPath     (0),
  egressPath      (1)
} (SIZE (2))

LaneID ::= INTEGER (0..255)

LayerID ::= INTEGER (0..100)

LayerType ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
  none,
  mixedContent,
  generalMapData,
  intersectionData,
  curveData,
  roadwaySectionData,
  parkingAreaData,
  sharedLaneData,
  ...
}

LaneWidth ::= INTEGER (0..32767)

MergeDivergeNodeAngle ::= INTEGER (-180..180)

MinuteOfTheYear ::= INTEGER (0..527040)

MovementPhaseState ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
  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)

Yann Garcia's avatar
Yann Garcia committed
Offset-B09 ::= INTEGER (-256..255)

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)

Offset-B16 ::= INTEGER (-32768..32767)

Yann Garcia's avatar
Yann Garcia committed
PedestrianBicycleDetect ::= BOOLEAN

PositionConfidence ::= ENUMERATED {
   unavailable (0),
   a500m   (1),
   a200m   (2),
   a100m   (3),
   a50m    (4),
   a20m    (5),
   a10m    (6),
   a5m     (7),
   a2m     (8),
   a1m     (9),
   a50cm  (10),
   a20cm  (11),
   a10cm  (12),
   a5cm   (13),
   a2cm   (14),
   a1cm   (15)
   }

PrioritizationResponseStatus ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
  unknown           (0),
  requested         (1),
  processing        (2),
  watchOtherTraffic (3),
  granted           (4),
  rejected          (5),
  maxPresence       (6),
  reserviceLocked   (7),
  ...
}

PriorityRequestType ::= ENUMERATED {
Yann Garcia's avatar
Yann Garcia committed
  priorityRequestTypeReserved (0),
  priorityRequest             (1),
  priorityRequestUpdate       (2),
  priorityCancellation        (3),
  ...
}

RegionId ::= INTEGER (0..255)
Yann Garcia's avatar
Yann Garcia committed
  noRegion     RegionId ::= 0
  addGrpA      RegionId ::= 1
  addGrpB      RegionId ::= 2