-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 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 -- -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^- -- -- module: DSRC -- -- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^- DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) } DEFINITIONS AUTOMATIC TAGS::= BEGIN IMPORTS --FIXME RGY definitions moved to module DSRC-REGION-noCircular are commented our below StationID, Longitude, Latitude, SpeedConfidence FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) } 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, Reg-SignalControlZone, Reg-SignalRequestPackage, Reg-SignalRequest, Reg-SignalStatusPackage, Reg-SignalStatus FROM REGION {iso (1) standard (0) signalizedIntersection (19091) profilec(2) region (1) version (1)} --FIXME RGY definitions moved to DSRC-REGION-noCircular but also refernced here are re-imported DeltaAngle, DeltaTime, LaneID, NodeSetXY, PrioritizationResponseStatus, RegionalExtension, SignalGroupID, SpeedLimitList, Velocity, Reg-LaneDataAttribute, Reg-NodeAttributeSetXY, Reg-NodeOffsetPointXY FROM DSRC-REGION-noCircular Iso3833VehicleType FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version (1)} ; -- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -- -- 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 -- 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} ) } */ SPAT ::= SEQUENCE { timeStamp MinuteOfTheYear OPTIONAL, name DescriptiveName OPTIONAL, -- human readable name for this collection -- to be used only in debug mode intersections IntersectionStateList, -- sets of SPAT data (one per intersection) -- If PrioritizationResponse data is required, it is found -- in the RegionalSPAT entry below regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SPAT}} OPTIONAL, ... } SignalRequestMessage ::= SEQUENCE { timeStamp MinuteOfTheYear OPTIONAL, second DSecond, sequenceNumber MsgCount OPTIONAL, requests SignalRequestList OPTIONAL, -- Request Data for one or more signalized -- intersections that support SRM dialogs requestor RequestorDescription, -- Requesting Device and other User Data -- contains vehicle ID (if from a vehicle) -- as well as type data and current position -- and may contain additional transit data regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalRequestMessage}} OPTIONAL, ... } SignalStatusMessage ::= SEQUENCE { timeStamp MinuteOfTheYear OPTIONAL, second DSecond, sequenceNumber MsgCount OPTIONAL, -- Status Data for one of more signalized intersections status SignalStatusList, regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalStatusMessage}} OPTIONAL, ... } MapData ::= SEQUENCE { timeStamp MinuteOfTheYear OPTIONAL, msgIssueRevision MsgCount, layerType LayerType OPTIONAL, layerID LayerID OPTIONAL, intersections IntersectionGeometryList OPTIONAL, -- All Intersection definitions roadSegments RoadSegmentList OPTIONAL, -- All roadway descriptions dataParameters DataParameters OPTIONAL, -- Any meta data regarding the map contents restrictionList RestrictionClassList OPTIONAL, -- Any restriction ID tables which have -- established for these map entries regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-MapData}} OPTIONAL, -- NOTE: -- Other map data will be added here as it is defined -- Examples of the type of content to be added include -- curve warnings, construction routes, etc. ... } -- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -- -- Start of entries from table Data_Frames... -- This table typicaly contains data frame entries. -- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -- AdvisorySpeed ::= SEQUENCE { type AdvisorySpeedType, -- the type of advisory which this is. speed SpeedAdvice OPTIONAL, -- See Section 11 for converting and translating speed -- expressed in mph into units of m/s -- This element is optional ONLY when superceded -- by the presence of a regional speed element found in -- Reg-AdvisorySpeed entry confidence SpeedConfidence OPTIONAL, -- A confidence value for the above speed distance ZoneLength OPTIONAL, -- Unit = 1 meter, -- The distance indicates the region for which the advised speed -- is recommended, it is specified upstream from the stop bar -- along the connected egressing lane class RestrictionClassID OPTIONAL, -- the vehicle types to which it applies -- when absent, the AdvisorySpeed applies to -- all motor vehicle types regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-AdvisorySpeed}} OPTIONAL, ... } AdvisorySpeedList ::= SEQUENCE (SIZE(1..16)) OF AdvisorySpeed ComputedLane ::= SEQUENCE { -- Data needed to created a computed lane referenceLaneId LaneID, -- the lane ID upon which this -- computed lane will be based -- Lane Offset in X and Y direction offsetXaxis CHOICE { small DrivenLineOffsetSm, large DrivenLineOffsetLg }, offsetYaxis CHOICE { small DrivenLineOffsetSm, large DrivenLineOffsetLg }, -- A path X offset value for translations of the -- path's points when creating translated lanes. -- The values found in the reference lane are -- all offset based on the X and Y values from -- the coordinates of the reference lane's -- initial path point. -- Lane Rotation rotateXY Angle OPTIONAL, -- A path rotation value for the entire lane -- Observe that this rotates the existing orientation -- of the referenced lane, it does not replace it. -- Rotation occurs about the initial path point. -- Lane Path Scale (zooming) scaleXaxis Scale-B12 OPTIONAL, scaleYaxis Scale-B12 OPTIONAL, -- value for translations or zooming of the path's -- points. The values found in the reference lane -- are all expanded or contracted based on the X -- and Y and width values from the coordinates of -- the reference lane's initial path point. -- The Z axis remains untouched. regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-ComputedLane}} OPTIONAL, ... } ConnectsToList ::= SEQUENCE (SIZE(1..16)) OF Connection ConnectingLane ::= SEQUENCE { lane LaneID, -- Index of the connecting lane maneuver AllowedManeuvers OPTIONAL -- The Maneuver between -- the enclosing lane and this lane -- at the stop line to connect them } Connection ::= SEQUENCE { -- The subject lane connecting to this lane is: connectingLane ConnectingLane, -- The index of the connecting lane and also -- the maneuver from the current lane to it remoteIntersection IntersectionReferenceID OPTIONAL, -- This entry is only used when the -- indicated connecting lane belongs -- to another intersection layout. This -- provides a means to create meshes of lanes -- SPAT mapping details at the stop line are: signalGroup SignalGroupID OPTIONAL, -- The matching signal group send by -- the SPAT message for this lane/maneuver. -- Shall be present unless the connectingLane -- has no signal group (is un-signalized) userClass RestrictionClassID OPTIONAL, -- The Restriction Class of users this applies to -- The use of some lane/maneuver and SignalGroupID -- pairings are restricted to selected users. -- When absent, the SignalGroupID applies to all -- Movement assist details are given by: connectionID LaneConnectionID OPTIONAL -- An optional connection index used to -- relate this lane connection to any dynamic -- clearance data in the SPAT. Note that -- the index may be shared with other -- connections if the clearance data is common } ConnectionManeuverAssist ::= SEQUENCE { connectionID LaneConnectionID, -- the common connectionID used by all lanes to which -- this data applies -- (this value traces to ConnectsTo entries in lanes) -- Expected Clearance Information queueLength ZoneLength OPTIONAL, -- Unit = 1 meter, 0 = no queue -- The distance from the stop line to the back -- edge of the last vehicle in the queue, -- as measured along the lane center line. availableStorageLength ZoneLength OPTIONAL, -- Unit = 1 meter, 0 = no space remains -- Distance (e.g. beginning from the downstream -- stop-line up to a given distance) with a high -- probability for successfully executing the -- connecting maneuver between the two lanes -- during the current cycle. -- Used for enhancing the awareness of vehicles -- to anticipate if they can pass the stop line -- of the lane. Used for optimizing the green wave, -- due to knowledge of vehicles waiting in front -- of a red light (downstream). -- The element nextTime in TimeChangeDetails -- in the containing data frame contains the next -- timemark at which an active phase is expected, -- a form of storage flush interval. waitOnStop WaitOnStopline OPTIONAL, -- If "true", the vehicles on this specific connecting -- maneuver have to stop on the stop-line and not -- to enter the collision area pedBicycleDetect PedestrianBicycleDetect OPTIONAL, -- true if ANY ped or bicycles are detected crossing -- the above lanes. Set to false ONLY if there is a -- high certainty that there are none present, -- otherwise element is not sent. 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, ... } EnabledLaneList ::= SEQUENCE (SIZE(1..16)) OF LaneID -- The unique ID numbers for each -- lane object which is 'active' -- as part of the dynamic map contents. GenericLane ::= SEQUENCE { laneID LaneID, -- The unique ID number assigned -- to this lane object name DescriptiveName OPTIONAL, -- often for debug use only -- but at times used to name ped crossings ingressApproach ApproachID OPTIONAL, -- inbound egressApproach ApproachID OPTIONAL, -- outbound -- Approach IDs to which this lane belongs laneAttributes LaneAttributes, -- All Attribute information about -- the basic selected lane type -- Directions of use, Geometric co-sharing -- and Type Specific Attributes -- These Attributes are 'lane - global' that is, -- they are true for the entire length of the lane maneuvers AllowedManeuvers OPTIONAL, -- the permitted maneuvers for this lane nodeList NodeListXY, -- Lane spatial path information as well as -- various Attribute information along the node path -- Attributes found here are more general and may -- come and go over the length of the lane. connectsTo ConnectsToList OPTIONAL, -- a list of other lanes and their signal group IDs -- each connecting lane and its signal group ID -- is given, therefore this element provides the -- information formerly in "signalGroups" in prior -- editions. overlays OverlayLaneList OPTIONAL, -- A list of any lanes which have spatial paths that -- overlay (run on top of, and not simply cross) -- the path of this lane when used regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-GenericLane}} OPTIONAL, ... } IntersectionAccessPoint ::= CHOICE { lane LaneID, approach ApproachID, connection LaneConnectionID, ... } IntersectionGeometry ::= SEQUENCE { name DescriptiveName OPTIONAL, -- For debug use only id IntersectionReferenceID, -- A globally unique value set, -- consisting of a regionID and -- intersection ID assignment revision MsgCount, -- Required default values about lane descriptions follow refPoint Position3D, -- The reference from which subsequent -- data points are offset until a new -- point is used. laneWidth LaneWidth OPTIONAL, -- Reference width used by all subsequent -- lanes unless a new width is given speedLimits SpeedLimitList OPTIONAL, -- Reference regulatory speed limits -- used by all subsequent -- lanes unless a new speed is given -- See Section 11 for converting and -- translating speed expressed in mph -- into units of m/s -- Complete details regarding each lane type in this intersection laneSet LaneList, -- Data about one or more lanes -- (all lane data is found here) -- Data describing how to use and request preemption and -- priority services from this intersection (if supported) -- NOTE Additonal data may be added in the next release of the -- standard at this point to handle this concept preemptPriorityData PreemptPriorityList OPTIONAL, -- data about one or more regional -- preempt or priority zones regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-IntersectionGeometry}} OPTIONAL, ... } IntersectionGeometryList ::= SEQUENCE (SIZE(1..32)) OF IntersectionGeometry IntersectionReferenceID ::= SEQUENCE { region RoadRegulatorID OPTIONAL, -- a globally unique regional assignment value -- typical assigned to a regional DOT authority -- the value zero shall be used for testing needs id IntersectionID -- a unique mapping to the intersection -- in question within the above region of use } IntersectionState ::= SEQUENCE { name DescriptiveName OPTIONAL, -- human readable name for intersection -- to be used only in debug mode id IntersectionReferenceID, -- A globally unique value set, consisting of a -- regionID and intersection ID assignment -- provides a unique mapping to the -- intersection MAP in question -- which provides complete location -- and approach/move/lane data revision MsgCount, status IntersectionStatusObject, -- general status of the controller(s) moy MinuteOfTheYear OPTIONAL, -- Minute of current UTC year -- used only with messages to be archived timeStamp DSecond OPTIONAL, -- the mSec point in the current UTC minute that -- this message was constructed enabledLanes EnabledLaneList OPTIONAL, -- a list of lanes where the RevocableLane bit -- has been set which are now active and -- therefore part of the current intersection states MovementList, -- Each Movement is given in turn -- and contains its signal phase state, -- mapping to the lanes it applies to, and -- point in time it will end, and it -- may contain both active and future states maneuverAssistList ManeuverAssistList OPTIONAL, -- Assist data regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-IntersectionState}} OPTIONAL, ... } IntersectionStateList ::= SEQUENCE (SIZE(1..32)) OF IntersectionState LaneAttributes ::= SEQUENCE { directionalUse LaneDirection, -- directions of lane use sharedWith LaneSharing, -- co-users of the lane path laneType LaneTypeAttributes, -- specific lane type data regional RegionalExtension {{Reg-LaneAttributes}} OPTIONAL } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop LaneDataAttribute ::= CHOICE { -- Segment attribute types and the data needed for each pathEndPointAngle DeltaAngle, -- adjusts final point/width slant -- of the lane to align with the stop line laneCrownPointCenter RoadwayCrownAngle, -- sets the canter of the road bed -- from centerline point laneCrownPointLeft RoadwayCrownAngle, -- sets the canter of the road bed -- from left edge laneCrownPointRight RoadwayCrownAngle, -- sets the canter of the road bed -- from right edge laneAngle MergeDivergeNodeAngle, -- the angle or direction of another lane -- this is required to support Japan style -- when a merge point angle is required speedLimits SpeedLimitList, -- Reference regulatory speed limits -- used by all segments -- Add others as needed, in regional space 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 { -- With bits as defined: overlappingLaneDescriptionProvided (0), -- Assert when another lane object is present to describe the -- path of the overlapping shared lane -- this construct is not used for lane objects which simply cross multipleLanesTreatedAsOneLane (1), -- Assert if the lane object path and width details represents -- multiple lanes within it that are not further described -- Various modes and type of traffic that may share this lane: otherNonMotorizedTrafficTypes (2), -- horse drawn etc. individualMotorizedVehicleTraffic (3), busVehicleTraffic (4), taxiVehicleTraffic (5), pedestriansTraffic (6), cyclistVehicleTraffic (7), trackedVehicleTraffic (8), pedestrianTraffic (9) } (SIZE (10)) -- All zeros would indicate 'not shared' and 'not overlapping' LaneTypeAttributes ::= CHOICE { vehicle LaneAttributes-Vehicle, -- motor vehicle lanes crosswalk LaneAttributes-Crosswalk, -- pedestrian crosswalks bikeLane LaneAttributes-Bike, -- bike lanes sidewalk LaneAttributes-Sidewalk, -- pedestrian sidewalk paths median LaneAttributes-Barrier, -- medians & channelization striping LaneAttributes-Striping, -- roadway markings trackedVehicle LaneAttributes-TrackedVehicle, -- trains and trolleys parking LaneAttributes-Parking, -- parking and stopping lanes ... } ManeuverAssistList ::= SEQUENCE (SIZE(1..16)) OF ConnectionManeuverAssist MovementEventList ::= SEQUENCE (SIZE(1..16)) OF MovementEvent MovementEvent ::= SEQUENCE { eventState MovementPhaseState, -- Consisting of: -- Phase state (the basic 11 states) -- Directional, protected, or permissive state timing TimeChangeDetails OPTIONAL, -- Timing Data in UTC time stamps for event -- includes start and min/max end times of phase -- confidence and estimated next occurrence speeds AdvisorySpeedList OPTIONAL, -- various speed advisories for use by -- general and specific types of vehicles -- supporting green-wave and other flow needs -- See Section 11 for converting and translating -- speed expressed in mph into units of m/s regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-MovementEvent}} OPTIONAL, ... } MovementList ::= SEQUENCE (SIZE(1..255)) OF MovementState MovementState ::= SEQUENCE { movementName DescriptiveName OPTIONAL, -- uniquely defines movement by name -- human readable name for intersection -- to be used only in debug mode signalGroup SignalGroupID, -- the group id is used to map to lists -- of lanes (and their descriptions) -- which this MovementState data applies to -- see comments in the Remarks for usage details state-time-speed MovementEventList, -- Consisting of sets of movement data with: -- a) SignalPhaseState -- b) TimeChangeDetails, and -- c) AdvisorySpeeds (optional ) -- Note one or more of the movement events may be for -- a future time and that this allows conveying multiple -- predictive phase and movement timing for various uses -- for the current signal group maneuverAssistList ManeuverAssistList OPTIONAL, -- This information may also be placed in the -- IntersectionState when common information applies to -- different lanes in the same way regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-MovementState}} OPTIONAL, ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop NodeAttributeSetXY ::= SEQUENCE { localNode NodeAttributeXYList OPTIONAL, -- Attribute states which pertain to this node point disabled SegmentAttributeXYList OPTIONAL, -- Attribute states which are disabled at this node point enabled SegmentAttributeXYList OPTIONAL, -- Attribute states which are enabled at this node point -- and which remain enabled until disabled or the lane ends data LaneDataAttributeList OPTIONAL, -- Attributes which require an additional data values -- some of these are local to the node point, while others -- persist with the provided values until changed -- and this is indicated in each entry dWidth Offset-B10 OPTIONAL, -- A value added to the current lane width -- at this node and from this node onwards, in 1cm steps -- lane width between nodes are a linear taper between pts -- the value of zero shall not be sent here dElevation Offset-B10 OPTIONAL, -- A value added to the current Elevation -- at this node from this node onwards, in 10cm steps -- elevations between nodes are a linear taper between pts -- the value of zero shall not be sent here regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-NodeAttributeSetXY}} OPTIONAL, ... } NodeAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF NodeAttributeXY NodeAttributeXY ::= ENUMERATED { -- Various values which pertain only to the current node point -- General Items reserved, stopLine, -- point where a mid-path stop line exists -- See also 'do not block' for segments -- Path finish details roundedCapStyleA, -- Used to control final path rounded end shape -- with edge of curve at final point in a circle roundedCapStyleB, -- Used to control final path rounded end shape -- with edge of curve extending 50% of width past -- final point in a circle -- Topography Points (items with no concept of a distance along the path) mergePoint, -- Japan merge with 1 or more lanes divergePoint, -- Japan diverge with 1 or more lanes downstreamStopLine, -- Japan style downstream intersection -- (a 2nd intersection) stop line downstreamStartNode, -- Japan style downstream intersection -- (a 2nd intersection) start node -- Pedestrian Support Attributes closedToTraffic, -- where a pedestrian may NOT go -- to be used during construction events safeIsland, -- a pedestrian safe stopping point -- also called a traffic island -- This usage described a point feature on a path, -- other entries can describe a path curbPresentAtStepOff, -- the sidewalk to street curb is NOT -- angled where it meets the edge of the -- roadway (user must step up/down) -- Lane geometry details (see standard for defined shapes) hydrantPresent, -- Or other services access ... } */ Node-LLmD-64b ::= SEQUENCE { lon Longitude, lat Latitude } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop 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 } */ NodeListXY ::= CHOICE { nodes NodeSetXY, -- a lane made up of two or more -- XY node points and any attributes -- defined in those nodes computed ComputedLane, -- a lane path computed by translating -- the data defined by another lane ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop NodeOffsetPointXY ::= CHOICE { -- Nodes with X,Y content node-XY1 Node-XY-20b, -- node is within 5.11m of last node node-XY2 Node-XY-22b, -- node is within 10.23m of last node node-XY3 Node-XY-24b, -- node is within 20.47m of last node node-XY4 Node-XY-26b, -- node is within 40.96m of last node node-XY5 Node-XY-28b, -- node is within 81.91m of last node node-XY6 Node-XY-32b, -- node is within 327.67m of last node node-LatLon Node-LLmD-64b, -- node is a full 32b Lat/Lon range regional RegionalExtension {{Reg-NodeOffsetPointXY}} -- node which follows is of a -- regional definition type } NodeSetXY ::= SEQUENCE (SIZE(2..63)) OF NodeXY NodeXY ::= SEQUENCE { delta NodeOffsetPointXY, -- A choice of which X,Y offset value to use -- this includes various delta values as well a regional choices attributes NodeAttributeSetXY OPTIONAL, -- Any optional Attributes which are needed -- This includes changes to the current lane width and elevation ... } */ OverlayLaneList ::= SEQUENCE (SIZE(1..5)) OF LaneID -- The unique ID numbers for any lane object which have -- spatial paths that overlay (run on top of, and not -- simply cross with) the current lane. -- Such as a train path that overlays a motor vehicle -- lane object for a roadway segment. Position3D ::= SEQUENCE { lat Latitude, -- in 1/10th micro degrees long Longitude, -- in 1/10th micro degrees elevation Elevation OPTIONAL, -- in 10 cm units 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 RegulatorySpeedLimit ::= SEQUENCE { type SpeedLimitType, -- The type of regulatory speed which follows speed Velocity -- The speed in units of 0.02 m/s -- See Section 11 for converting and translating -- speed expressed in mph into units of m/s } */ RequestorDescription ::= SEQUENCE { id VehicleID, -- The ID used in the BSM or CAM of the requestor -- This ID is presumed not to change -- during the exchange type RequestorType OPTIONAL, -- Information regarding all type and class data -- about the requesting vehicle position RequestorPositionVector OPTIONAL, -- The location of the requesting vehicle name DescriptiveName OPTIONAL, -- A human readable name for debugging use -- Support for Transit requests routeName DescriptiveName OPTIONAL, -- A string for transit operations use transitStatus TransitVehicleStatus OPTIONAL, -- current vehicle state (loading, etc.) transitOccupancy TransitVehicleOccupancy OPTIONAL, -- current vehicle occupancy transitSchedule DeltaTime OPTIONAL, -- current vehicle schedule adherence regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-RequestorDescription}} OPTIONAL, ... } RequestorPositionVector ::= SEQUENCE { position Position3D, heading Angle OPTIONAL, speed TransmissionAndSpeed OPTIONAL, ... } RequestorType ::= SEQUENCE { -- Defines who is requesting role BasicVehicleRole, -- Basic role of this user at this time subrole RequestSubRole OPTIONAL, -- A local list with role based items -- Defines what kind of request (a level of importance in the Priority Scheme) request RequestImportanceLevel OPTIONAL, -- A local list with request items -- Additional classification details iso3883 Iso3833VehicleType OPTIONAL, hpmsType VehicleType OPTIONAL, -- HPMS classification types regional RegionalExtension {{Reg-RequestorType}} OPTIONAL, ... } RestrictionClassAssignment ::= SEQUENCE { id RestrictionClassID, -- the unique value (within an intersection or local region) -- that is assigned to this group of users users RestrictionUserTypeList -- The list of user types/classes -- to which this restriction ID applies } RestrictionClassList ::= SEQUENCE (SIZE(1..254)) OF RestrictionClassAssignment RestrictionUserTypeList ::= SEQUENCE (SIZE(1..16)) OF RestrictionUserType RestrictionUserType ::= CHOICE { basicType RestrictionAppliesTo, -- a set of the most commonly used types regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-RestrictionUserType}}, ... } RoadLaneSetList ::= SEQUENCE (SIZE(1..255)) OF GenericLane RoadSegmentReferenceID ::= SEQUENCE { region RoadRegulatorID OPTIONAL, -- a globally unique regional assignment value -- typically assigned to a regional DOT authority -- the value zero shall be used for testing needs id RoadSegmentID -- a unique mapping to the road segment -- in question within the above region of use -- during its period of assignment and use -- note that unlike intersectionID values, -- this value can be reused by the region } RoadSegment ::= SEQUENCE { name DescriptiveName OPTIONAL, id RoadSegmentReferenceID, -- a globally unique value for the segment revision MsgCount, -- Required default values about the descriptions to follow refPoint Position3D, -- the reference from which subsequent -- data points are offset until a new -- point is used. laneWidth LaneWidth OPTIONAL, -- Reference width used by all subsequent -- lanes unless a new width is given speedLimits SpeedLimitList OPTIONAL, -- Reference regulatory speed limits -- used by all subsequent -- lanes unless a new speed is given -- See Section 11 for converting and -- translating speed expressed in mph -- into units of m/s -- Data describing disruptions in the RoadSegment -- such as work zones etc will be added here; -- in the US the SAE ITIS codes would be used here -- The details regarding each lane type in the RoadSegment roadLaneSet RoadLaneSetList, regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-RoadSegment}} OPTIONAL, ... } RoadSegmentList ::= SEQUENCE (SIZE(1..32)) OF RoadSegment /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop SegmentAttributeXYList ::= SEQUENCE (SIZE(1..8)) OF SegmentAttributeXY */ SignalControlZone ::= SEQUENCE { zone RegionalExtension {{Reg-SignalControlZone}}, ... } SignalRequesterInfo ::= SEQUENCE { -- These three items serve to uniquely identify the requester -- and the specific request to all parties id VehicleID, request RequestID, sequenceNumber MsgCount, role BasicVehicleRole OPTIONAL, typeData RequestorType OPTIONAL, -- Used when addition data besides the role -- is needed, at which point the role entry -- above is not sent. ... } SignalRequestList ::= SEQUENCE (SIZE(1..32)) OF SignalRequestPackage SignalRequestPackage ::= SEQUENCE { request SignalRequest, -- The specific request to the intersection -- contains IntersectionID, request type, -- requested action (approach/lane request) -- The Estimated Time of Arrival (ETA) when the service is requested minute MinuteOfTheYear OPTIONAL, second DSecond OPTIONAL, duration DSecond OPTIONAL, -- The duration value is used to provide a short interval that -- extends the ETA so that the requesting vehicle can arrive at -- the point of service with uncertainty or with some desired -- duration of service. This concept can be used to avoid needing -- to frequently update the request. -- The requester must update the ETA and duration values if the -- period of services extends beyond the duration time. -- It should be assumed that if the vehicle does not clear the -- intersection when the duration is reached, the request will -- be cancelled and the intersection will revert to -- normal operation. regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalRequestPackage}} OPTIONAL, ... } SignalRequest ::= SEQUENCE { -- the unique ID of the target intersection id IntersectionReferenceID, -- The unique requestID used by the requestor requestID RequestID, -- The type of request or cancel for priority or preempt use -- when a prior request is canceled, only the requestID is needed requestType PriorityRequestType, -- In typical use either an approach or a lane number would -- be given, this indicates the requested -- path through the intersection to the degree it is known. inBoundLane IntersectionAccessPoint, -- desired entry approach or lane outBoundLane IntersectionAccessPoint OPTIONAL, -- desired exit approach or lane -- the values zero is used to indicate -- intent to stop within the intersection regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalRequest}} OPTIONAL, ... } SignalStatusList ::= SEQUENCE (SIZE(1..32)) OF SignalStatus SignalStatusPackageList ::= SEQUENCE (SIZE(1..32)) OF SignalStatusPackage SignalStatusPackage ::= SEQUENCE { -- The party that made the initial SRM request requester SignalRequesterInfo OPTIONAL, -- The lanes or approaches used in the request inboundOn IntersectionAccessPoint, -- estimated lane / approach of vehicle outboundOn IntersectionAccessPoint OPTIONAL, -- The Estimated Time of Arrival (ETA) when the service is requested -- This data echos the data of the request minute MinuteOfTheYear OPTIONAL, second DSecond OPTIONAL, duration DSecond OPTIONAL, -- the SRM status for this request status PrioritizationResponseStatus, -- Status of request, this may include rejection regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalStatusPackage}} OPTIONAL, ... } SignalStatus ::= SEQUENCE { sequenceNumber MsgCount, -- changed whenever the below contents have change id IntersectionReferenceID, -- this provides a unique mapping to the -- intersection map in question -- which provides complete location -- and approach/movement/lane data -- as well as zones for priority/preemption sigStatus SignalStatusPackageList, -- a list of detailed status containing all -- priority or preemption state data, both -- active and pending, and who requested it -- requests which are denied are also listed -- here for a short period of time regional SEQUENCE (SIZE(1..4)) OF RegionalExtension {{Reg-SignalStatus}} OPTIONAL, ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit SpeedLimitType ::= ENUMERATED { unknown, -- Speed limit type not available maxSpeedInSchoolZone, -- Only sent when the limit is active maxSpeedInSchoolZoneWhenChildrenArePresent, -- Sent at any time maxSpeedInConstructionZone, -- Used for work zones, incident zones, etc. -- where a reduced speed is present vehicleMinSpeed, vehicleMaxSpeed, -- Regulatory speed limit for general traffic vehicleNightMaxSpeed, truckMinSpeed, truckMaxSpeed, truckNightMaxSpeed, vehiclesWithTrailersMinSpeed, vehiclesWithTrailersMaxSpeed, vehiclesWithTrailersNightMaxSpeed, ... } */ TimeChangeDetails ::= SEQUENCE { startTime TimeMark OPTIONAL, -- When this phase 1st started minEndTime TimeMark, -- Expected shortest end time maxEndTime TimeMark OPTIONAL, -- Expected longest end time likelyTime TimeMark OPTIONAL, -- Best predicted value based on other data confidence TimeIntervalConfidence OPTIONAL, -- Applies to above time element only nextTime TimeMark OPTIONAL -- A rough estimate of time when -- this phase may next occur again -- used to support various ECO driving power -- management needs. } TimeMark ::= INTEGER (0..36001) -- Tenths of a second in the current or next hour -- In units of 1/10th second from UTC time -- A range of 0~36000 covers one hour -- The values 35991..36000 are used when a leap second occurs -- The value 36001 is used to indicate time >3600 seconds -- 36002 is to be used when value undefined or unknown -- Note that this is NOT expressed in GPS time -- or in local time TransmissionAndSpeed ::= SEQUENCE { transmisson TransmissionState, speed Velocity } VehicleID ::= CHOICE { entityID TemporaryID, stationID StationID } -- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -- -- Start of entries from table Data_Elements... -- This table typicaly contains data element entries. -- -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ -- AdvisorySpeedType ::= ENUMERATED { none (0), greenwave (1), ecoDrive (2), transit (3), ... } -- Note: subject to further growth AllowedManeuvers ::= BIT STRING { -- With bits as defined: -- Allowed maneuvers at path end (stop line) -- All maneuvers with bits not set are therefore prohibited ! -- A value of zero shall be used for unknown, indicating no Maneuver maneuverStraightAllowed (0), -- a Straight movement is allowed in this lane maneuverLeftAllowed (1), -- a Left Turn movement is allowed in this lane maneuverRightAllowed (2), -- a Right Turn movement is allowed in this lane maneuverUTurnAllowed (3), -- a U turn movement is allowed in this lane maneuverLeftTurnOnRedAllowed (4), -- a Stop, and then proceed when safe movement -- is allowed in this lane maneuverRightTurnOnRedAllowed (5), -- a Stop, and then proceed when safe movement -- is allowed in this lane maneuverLaneChangeAllowed (6), -- a movement which changes to an outer lane -- on the egress side is allowed in this lane -- (example: left into either outbound lane) maneuverNoStoppingAllowed (7), -- the vehicle should not stop at the stop line -- (example: a flashing green arrow) yieldAllwaysRequired (8), -- the allowed movements above are not protected -- (example: an permanent yellow condition) goWithHalt (9), -- after making a full stop, may proceed caution (10), -- proceed past stop line with caution reserved1 (11) -- used to align to 12 Bit Field } (SIZE(12)) Angle ::= INTEGER (0..28800) -- LSB of 0.0125 degrees -- A range of 0 to 359.9875 degrees ApproachID ::= INTEGER (0..15) -- zero to be used when valid value is unknown BasicVehicleRole ::= ENUMERATED { -- Values used in the EU and in the US basicVehicle (0), -- Light duty passenger vehicle type publicTransport (1), -- Used in EU for Transit us specialTransport (2), -- Used in EU (e.g. heavy load) dangerousGoods (3), -- Used in EU for any HAZMAT roadWork (4), -- Used in EU for State and Local DOT uses roadRescue (5), -- Used in EU and in the US to include tow trucks. emergency (6), -- Used in EU for Police, Fire and Ambulance units safetyCar (7), -- Used in EU for Escort vehicles -- Begin US unique numbering none-unknown (8), -- added to follow current SAE style guidelines truck (9), -- Heavy trucks with additional BSM rights and obligations motorcycle (10), -- roadSideSource (11), -- For infrastructure generated calls such as -- fire house, rail infrastructure, roadwork site, etc. police (12), -- fire (13), -- ambulance (14), -- (does not include private para-transit etc.) dot (15), -- all roadwork vehicles transit (16), -- all transit vehicles slowMoving (17), -- to also include oversize etc. stopNgo (18), -- to include trash trucks, school buses and others -- that routinely disturb the free flow of traffic cyclist (19), -- pedestrian (20), -- also includes those with mobility limitations nonMotorized (21), -- other, horse drawn, etc. military (22), -- ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop DeltaAngle ::= INTEGER (-150..150) -- With an angle range from -- negative 150 to positive 150 -- in one degree steps where zero is directly -- along the axis or the lane center line as defined by the -- two closest points DeltaTime ::= INTEGER (-122 .. 121) -- Supporting a range of +/- 20 minute in steps of 10 seconds -- the value of -121 shall be used when more than -20 minutes -- the value of +120 shall be used when more than +20 minutes -- the value -122 shall be used when the value is unavailable */ DescriptiveName ::= IA5String (SIZE(1..63)) DrivenLineOffsetLg ::= INTEGER (-32767..32767) -- LSB units are 1 cm. DrivenLineOffsetSm ::= INTEGER (-2047..2047) -- LSB units are 1 cm. DSecond ::= INTEGER (0..65535) -- units of milliseconds DSRCmsgID ::= INTEGER (0..32767) mapData DSRCmsgID ::= 18 -- MAP, intersections signalPhaseAndTimingMessage DSRCmsgID ::= 19 -- SPAT signalRequestMessage DSRCmsgID ::= 29 -- SRM signalStatusMessage DSRCmsgID ::= 30 -- SSM Elevation ::= INTEGER (-4096..61439) -- In units of 10 cm steps above or below the reference ellipsoid -- Providing a range of -409.5 to + 6143.9 meters -- The value -4096 shall be used when Unknown is to be sent IntersectionID ::= INTEGER (0..65535) -- The values zero through 255 are allocated for testing purposes -- Note that the value assigned to an intersection will be -- unique within a given regional ID only IntersectionStatusObject ::= BIT STRING { manualControlIsEnabled (0), -- Timing reported is per programmed values, etc. but person -- at cabinet can manually request that certain intervals are -- terminated early (e.g. green). stopTimeIsActivated (1), -- And all counting/timing has stopped. failureFlash (2), -- Above to be used for any detected hardware failures, -- e.g. conflict monitor as well as for police flash preemptIsActive (3), signalPriorityIsActive (4), -- Additional states fixedTimeOperation (5), -- Schedule of signals is based on time only -- (i.e. the state can be calculated) trafficDependentOperation (6), -- Operation is based on different levels of traffic parameters -- (requests, duration of gaps or more complex parameters) standbyOperation (7), -- Controller: partially switched off or partially amber flashing failureMode (8), -- Controller has a problem or failure in operation off (9), -- Controller is switched off -- Related to MAP and SPAT bindings recentMAPmessageUpdate (10), -- Map revision with content changes recentChangeInMAPassignedLanesIDsUsed (11), -- Change in MAP's assigned lanes used (lane changes) -- Changes in the active lane list description noValidMAPisAvailableAtThisTime (12), -- MAP (and various lanes indexes) not available noValidSPATisAvailableAtThisTime (13) -- SPAT system is not working at this time -- Bits 14,15 reserved at this time and shall be zero } (SIZE(16)) LaneAttributes-Barrier ::= BIT STRING { -- With bits as defined: median-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present median (1), whiteLineHashing (2), stripedLines (3), doubleStripedLines (4), trafficCones (5), constructionBarrier (6), trafficChannels (7), lowCurbs (8), highCurbs (9) -- Bits 10~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Bike ::= BIT STRING { -- With bits as defined: bikeRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present pedestrianUseAllowed (1), -- The path allows pedestrian traffic, -- if not set, this mode is prohibited isBikeFlyOverLane (2), -- path of lane is not at grade fixedCycleTime (3), -- the phases use preset times -- i.e. there is not a 'push to cross' button biDirectionalCycleTimes (4), -- ped walk phases use different SignalGroupID -- for each direction. The first SignalGroupID -- in the first Connection represents 'inbound' -- flow (the direction of travel towards the first -- node point) while second SignalGroupID in the -- next Connection entry represents the 'outbound' -- flow. And use of RestrictionClassID entries -- in the Connect follow this same pattern in pairs. isolatedByBarrier (5), unsignalizedSegmentsPresent (6) -- The lane path consists of one of more segments -- which are not part of a signal group ID -- Bits 7~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Crosswalk ::= BIT STRING { -- With bits as defined: -- MUTCD provides no suitable "types" to use here crosswalkRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present bicyleUseAllowed (1), -- The path allows bicycle traffic, -- if not set, this mode is prohibited isXwalkFlyOverLane (2), -- path of lane is not at grade fixedCycleTime (3), -- ped walk phases use preset times -- i.e. there is not a 'push to cross' button biDirectionalCycleTimes (4), -- ped walk phases use different SignalGroupID -- for each direction. The first SignalGroupID -- in the first Connection represents 'inbound' -- flow (the direction of travel towards the first -- node point) while second SignalGroupID in the -- next Connection entry represents the 'outbound' -- flow. And use of RestrictionClassID entries -- in the Connect follow this same pattern in pairs. hasPushToWalkButton (5), -- Has a demand input audioSupport (6), -- audio crossing cues present rfSignalRequestPresent (7), -- Supports RF push to walk technologies unsignalizedSegmentsPresent (8) -- The lane path consists of one of more segments -- which are not part of a signal group ID -- Bits 9~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Parking ::= BIT STRING { -- With bits as defined: -- Parking use details, note that detailed restrictions such as -- allowed hours are sent by way of ITIS codes in the TIM message parkingRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present parallelParkingInUse (1), headInParkingInUse (2), doNotParkZone (3), -- used to denote fire hydrants as well as -- short disruptions in a parking zone parkingForBusUse (4), parkingForTaxiUse (5), noPublicParkingUse (6) -- private parking, as in front of -- private property -- Bits 7~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Sidewalk ::= BIT STRING { -- With bits as defined: sidewalk-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present bicyleUseAllowed (1), -- The path allows bicycle traffic, -- if not set, this mode is prohibited isSidewalkFlyOverLane (2), -- path of lane is not at grade walkBikes (3) -- bike traffic must dismount and walk -- Bits 4~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Striping ::= BIT STRING { -- With bits as defined: stripeToConnectingLanesRevocableLane (0), -- this lane may be activated or not activated based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present stripeDrawOnLeft (1), stripeDrawOnRight (2), -- which side of lane to mark stripeToConnectingLanesLeft (3), stripeToConnectingLanesRight (4), stripeToConnectingLanesAhead (5) -- the stripe type should be -- presented to the user visually -- to reflect stripes in the -- intersection for the type of -- movement indicated -- Bits 6~15 reserved and set to zero } (SIZE (16)) LaneAttributes-TrackedVehicle ::= BIT STRING { -- With bits as defined: spec-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present spec-commuterRailRoadTrack (1), spec-lightRailRoadTrack (2), spec-heavyRailRoadTrack (3), spec-otherRailType (4) -- Bits 5~15 reserved and set to zero } (SIZE (16)) LaneAttributes-Vehicle ::= BIT STRING { -- With bits as defined: isVehicleRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present isVehicleFlyOverLane (1), -- path of lane is not at grade hovLaneUseOnly (2), restrictedToBusUse (3), restrictedToTaxiUse (4), restrictedFromPublicUse (5), hasIRbeaconCoverage (6), permissionOnRequest (7) -- e.g. to inform about a lane for e-cars } (SIZE (8,...)) LaneConnectionID ::= INTEGER (0..255) LaneDirection ::= BIT STRING { -- With bits as defined: -- Allowed directions of travel in the lane object -- All lanes are described from the stop line outwards ingressPath (0), -- travel from rear of path to front -- is allowed egressPath (1) -- travel from front of path to rear -- is allowed -- Notes: No Travel, i.e. the lane object type does not support -- travel (medians, curbs, etc.) is indicated by not -- asserting any bit value -- Bi-Directional Travel (such as a ped crosswalk) is -- indicated by asserting both of the bits } (SIZE (2)) /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop LaneID ::= INTEGER (0..255) -- the value 0 shall be used when the lane ID is -- not available or not known -- the value 255 is reserved for future use */ LayerID ::= INTEGER (0..100) LayerType ::= ENUMERATED { none, mixedContent, -- two or more of the below types generalMapData, intersectionData, curveData, roadwaySectionData, parkingAreaData, sharedLaneData, ... } LaneWidth ::= INTEGER (0..32767) -- units of 1 cm /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop MergeDivergeNodeAngle ::= INTEGER (-180..180) -- In units of 1.5 degrees from north -- the value -180 shall be used to represent -- data is not available or unknown */ MinuteOfTheYear ::= INTEGER (0..527040) -- the value 527040 shall be used for invalid MovementPhaseState ::= ENUMERATED { -- Note that based on the regions and the operating mode not every -- phase will be used in all transportation modes and that not -- every phase will be used in all transportation modes unavailable (0), -- This state is used for unknown or error dark (1), -- The signal head is dark (unlit) -- Reds stop-Then-Proceed (2), -- Often called 'flashing red' in US -- Driver Action: -- Stop vehicle at stop line. -- Do not proceed unless it is safe. -- Note that the right to proceed either right or left when -- it is safe may be contained in the lane description to -- handle what is called a 'right on red' stop-And-Remain (3), -- e.g. called 'red light' in US -- Driver Action: -- Stop vehicle at stop line. -- Do not proceed. -- Note that the right to proceed either right or left when -- it is safe may be contained in the lane description to -- handle what is called a 'right on red' -- Greens pre-Movement (4), -- Not used in the US, red+yellow partly in EU -- Driver Action: -- Stop vehicle. -- Prepare to proceed (pending green) -- (Prepare for transition to green/go) permissive-Movement-Allowed (5), -- Often called 'permissive green' in US -- Driver Action: -- Proceed with caution, -- must yield to all conflicting traffic -- Conflicting traffic may be present -- in the intersection conflict area protected-Movement-Allowed (6), -- Often called 'protected green' in US -- Driver Action: -- Proceed, tossing caution to the wind, -- in indicated (allowed) direction. -- Yellows / Ambers -- The vehicle is not allowed to cross the stop bar if it is possible -- to stop without danger. permissive-clearance (7), -- Often called 'permissive yellow' in US -- Driver Action: -- Prepare to stop. -- Proceed if unable to stop, -- Clear Intersection. -- Conflicting traffic may be present -- in the intersection conflict area protected-clearance (8), -- Often called 'protected yellow' in US -- Driver Action: -- Prepare to stop. -- Proceed if unable to stop, -- in indicated direction (to connected lane) -- Clear Intersection. caution-Conflicting-Traffic (9) -- Often called 'flashing yellow' in US -- Often used for extended periods of time -- Driver Action: -- Proceed with caution, -- Conflicting traffic may be present -- in the intersection conflict area } -- The above number assignments are not used with UPER encoding -- and are only to be used with DER or implicit encoding MsgCount ::= INTEGER (0..127) /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop Offset-B10 ::= INTEGER (-512..511) -- a range of +- 5.11 meters Offset-B11 ::= INTEGER (-1024..1023) -- a range of +- 10.23 meters Offset-B12 ::= INTEGER (-2048..2047) -- a range of +- 20.47 meters Offset-B13 ::= INTEGER (-4096..4095) -- a range of +- 40.95 meters Offset-B14 ::= INTEGER (-8192..8191) -- a range of +- 81.91 meters Offset-B16 ::= INTEGER (-32768..32767) -- a range of +- 327.68 meters */ PedestrianBicycleDetect ::= BOOLEAN -- true if ANY Pedestrians or Bicyclists are -- detected crossing the target lane or lanes /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop PrioritizationResponseStatus ::= ENUMERATED { unknown (0), -- Unknown state requested (1), -- This prioritization request was detected -- by the traffic controller processing (2), -- Checking request -- (request is in queue, other requests are prior) watchOtherTraffic (3), -- Cannot give full permission, -- therefore watch for other traffic -- Note that other requests may be present granted (4), -- Intervention was successful -- and now prioritization is active rejected (5), -- The prioritization or preemption request was -- rejected by the traffic controller maxPresence (6), -- The Request has exceeded maxPresence time -- Used when the controller has determined that -- the requester should then back off and -- request an alternative. reserviceLocked (7), -- Prior conditions have resulted in a reservice -- locked event: the controller requires the -- passage of time before another similar request -- will be accepted ... } */ PriorityRequestType ::= ENUMERATED { priorityRequestTypeReserved (0), priorityRequest (1), priorityRequestUpdate (2), priorityCancellation (3), ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop RegionId ::= INTEGER (0..255) noRegion RegionId ::= 0 -- Use default supplied stubs addGrpA RegionId ::= 1 -- USA addGrpB RegionId ::= 2 -- Japan addGrpC RegionId ::= 3 -- EU -- NOTE: new registered regional IDs will be added here -- The values 128 and above are for local region use */ RequestID ::= INTEGER (0..255) RequestImportanceLevel ::= ENUMERATED { requestImportanceLevelUnKnown (0), requestImportanceLevel1 (1), -- The least important request requestImportanceLevel2 (2), -- The values here shall be assigned requestImportanceLevel3 (3), -- Meanings based on regional needs requestImportanceLevel4 (4), -- for each of the basic roles which requestImportanceLevel5 (5), -- are defined elsewhere requestImportanceLevel6 (6), requestImportanceLevel7 (7), requestImportanceLevel8 (8), requestImportanceLevel9 (9), requestImportanceLevel10 (10), requestImportanceLevel11 (11), requestImportanceLevel12 (12), requestImportanceLevel13 (13), requestImportanceLevel14 (14), -- The most important request requestImportanceReserved (15) -- Reserved for future use } RequestSubRole ::= ENUMERATED { requestSubRoleUnKnown (0), requestSubRole1 (1), -- The first type of sub role requestSubRole2 (2), -- The values here shall be assigned requestSubRole3 (3), -- Meanings based on regional needs requestSubRole4 (4), -- to refine and expand the basic requestSubRole5 (5), -- roles which are defined elsewhere requestSubRole6 (6), requestSubRole7 (7), requestSubRole8 (8), requestSubRole9 (9), requestSubRole10 (10), requestSubRole11 (11), requestSubRole12 (12), requestSubRole13 (13), requestSubRole14 (14), -- The last type of sub role requestSubRoleReserved (15) -- Reserved for future use } RestrictionAppliesTo ::= ENUMERATED { none, -- applies to nothing equippedTransit, -- buses etc. equippedTaxis, equippedOther, -- other vehicle types with -- necessary signal phase state -- reception equipment emissionCompliant, -- regional variants with more -- definitive items also exist equippedBicycle, weightCompliant, heightCompliant, -- Items dealing with traveler needs serviced by the infrastructure -- These end users (which are not vehicles) are presumed to be suitably equipped pedestrians, slowMovingPersons, wheelchairUsers, visualDisabilities, audioDisabilities, -- hearing otherUnknownDisabilities, ... } RestrictionClassID ::= INTEGER (0..255) -- An index value to identify data about classes of users -- the value used varies with each intersection's -- needs and is defined in the map to the assigned -- classes of supported users. RoadRegulatorID ::= INTEGER (0..65535) -- The value zero shall be used for testing only RoadSegmentID ::= INTEGER (0..65535) -- The values zero to 255 shall be used for testing only -- Note that the value assigned to an RoadSegment will be -- unique within a given regional ID only during its use /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop RoadwayCrownAngle ::= INTEGER (-128..127) -- In LSB units of 0.3 degrees of angle -- over a range of -38.1 to + 38.1 degrees -- The value -128 shall be used for unknown -- The value zero shall be used for angles -- which are between -0.15 and +0.15 */ Scale-B12 ::= INTEGER (-2048..2047) -- in steps of 0.05 percent /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop SignalGroupID ::= INTEGER (0..255) -- The value 0 shall be used when the ID is -- not available or not known -- the value 255 is reserved to indicate a -- permanent green movement state -- therefore a simple 8 phase signal controller -- device might use 1..9 as its groupIDs */ /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop SegmentAttributeXY ::= ENUMERATED { -- Various values which can be Enabled and Disabled for a lane segment -- General Items reserved , doNotBlock , -- segment where a vehicle -- may not come to a stop whiteLine , -- segment where lane crossing not allowed -- such as the final few meters of a lane -- Porous Lane states, merging, turn outs, parking etc. mergingLaneLeft , -- indicates porous lanes mergingLaneRight , curbOnLeft , -- indicates presence of curbs curbOnRight , loadingzoneOnLeft , -- loading or drop off zones loadingzoneOnRight , turnOutPointOnLeft , -- opening to adjacent street/alley/road turnOutPointOnRight , adjacentParkingOnLeft , -- side of road parking adjacentParkingOnRight , -- Bike Lane Needs adjacentBikeLaneOnLeft , -- presence of marked bike lanes adjacentBikeLaneOnRight , sharedBikeLane , -- right of way is shared with bikes -- who may occupy entire lane width bikeBoxInFront , -- Transit Needs transitStopOnLeft , -- any form of bus/transit loading -- with pull in-out access to lane on left transitStopOnRight , -- any form of bus/transit loading -- with pull in-out access to lane on right transitStopInLane , -- any form of bus/transit loading -- in mid path of the lane sharedWithTrackedVehicle , -- lane is shared with train or trolley -- not used for crossing tracks -- Pedestrian Support Attributes safeIsland , -- begin/end a safety island in path lowCurbsPresent , -- for ADA support rumbleStripPresent , -- for ADA support audibleSignalingPresent , -- for ADA support adaptiveTimingPresent , -- for ADA support rfSignalRequestPresent , -- Supports RF push to walk technologies partialCurbIntrusion , -- path is blocked by a median or curb -- but at least 1 meter remains open for use -- and at-grade passage -- Lane geometry details (see standard for defined shapes) taperToLeft , -- Used to control final path shape taperToRight , -- Used to control final path shape taperToCenterLine , -- Used to control final path shape -- Parking Lane and Curb Attributes parallelParking , -- headInParking , -- Parking at an angle with the street freeParking , -- no restriction on use of parking timeRestrictionsOnParking , -- Parking is not permitted at all times -- typically used when the 'parking' lane -- becomes a driving lane at times costToPark , -- Used where parking has a cost midBlockCurbPresent , -- a protruding curb near lane edge unEvenPavementPresent , -- a disjoint height at lane edge ... } */ SpeedAdvice ::= INTEGER (0..500) -- LSB units are 0.1 m/s^2 -- the value 499 shall be used for values at or greater than 49.9 m/s -- the value 500 shall be used to indicate that speed is unavailable TemporaryID ::= OCTET STRING (SIZE(4)) TimeIntervalConfidence ::= INTEGER (0..15) -- Value Probability -- 0 21% -- 1 36% -- 2 47% -- 3 56% -- 4 62% -- 5 68% -- 6 73% -- 7 77% -- 8 81% -- 9 85% -- 10 88% -- 11 91% -- 12 94% -- 13 96% -- 14 98% -- 15 100% TransitVehicleOccupancy ::= ENUMERATED { occupancyUnknown (0), occupancyEmpty (1), occupancyVeryLow (2), occupancyLow (3), occupancyMed (4), occupancyHigh (5), occupancyNearlyFull (6), occupancyFull (7) } TransitVehicleStatus ::= BIT STRING { loading (0), -- parking and unable to move at this time anADAuse (1), -- an ADA access is in progress (wheelchairs, kneeling, etc.) aBikeLoad (2), -- loading of a bicycle is in progress doorOpen (3), -- a vehicle door is open for passenger access charging (4), -- a vehicle is connected to charging point atStopLine (5) -- a vehicle is at the stop line for the lane it is in } (SIZE(8)) TransmissionState ::= ENUMERATED { neutral (0), -- Neutral park (1), -- Park forwardGears (2), -- Forward gears reverseGears (3), -- Reverse gears reserved1 (4), reserved2 (5), reserved3 (6), unavailable (7) -- not-equipped or unavailable value, -- Any related speed is relative to the vehicle reference frame used } VehicleType ::= ENUMERATED { none (0), -- Not Equipped, Not known or unavailable unknown (1), -- Does not fit any other category special (2), -- Special use moto (3), -- Motorcycle car (4), -- Passenger car carOther (5), -- Four tire single units bus (6), -- Buses axleCnt2 (7), -- Two axle, six tire single units axleCnt3 (8), -- Three axle, single units axleCnt4 (9), -- Four or more axle, single unit axleCnt4Trailer (10), -- Four or less axle, single trailer axleCnt5Trailer (11), -- Five or less axle, single trailer axleCnt6Trailer (12), -- Six or more axle, single trailer axleCnt5MultiTrailer (13), -- Five or less axle, multi-trailer axleCnt6MultiTrailer (14), -- Six axle, multi-trailer axleCnt7MultiTrailer (15), -- Seven or more axle, multi-trailer ... } /*FIXME RGY moved to IS-DSRC-REGION-noCircular to cut circular import loop Velocity ::= INTEGER (0..8191) -- Units of 0.02 m/s -- The value 8191 indicates that -- velocity is unavailable */ WaitOnStopline ::= BOOLEAN -- -- True or False -- If "true", the vehicles on this specific connecting -- maneuver have to stop on the stop-line -- and not to enter the collision area ZoneLength ::= INTEGER (0..10000) -- Unit = 1 meter, 0 = unknown, -- The value 10000 to be used for Distances >=10000 m -- (e.g. from known point to another point along a -- known path, often against traffic flow direction -- when used for measuring queues) END