pycrate/pycrate_asn1dir/ETSI_ITS_r1318/ISO_TS_19091.asn

2078 lines
82 KiB
Groff

-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 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
--
-- It includes the addendunm extensions for Addgrp-C (e.g. Europe)
--
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: AddGrpC
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
AddGrpC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) addgrpc (0) version (1) }
DEFINITIONS AUTOMATIC TAGS::= BEGIN
IMPORTS
NodeOffsetPointXY, NodeSetXY, PrioritizationResponseStatus, SignalGroupID, DeltaTime, LaneID FROM DSRC
Altitude, StationID, DeltaAltitude FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) };
ConnectionManeuverAssist-addGrpC ::= SEQUENCE {
itsStationPositions ItsStationPositionList OPTIONAL,
rsuGNSSOffset NodeOffsetPointXY OPTIONAL,
...
}
ConnectionTrajectory-addGrpC ::= SEQUENCE {
nodes NodeSetXY,
...
}
Control-addGrpC ::= SEQUENCE {
ptvRequest PtvRequestType,
...
}
IntersectionState-addGrpC ::= SEQUENCE {
activePrioritizations PrioritizationResponseList OPTIONAL,
...
}
MapData-addGrpC ::= SEQUENCE {
signalHeadLocations SignalHeadLocationList OPTIONAL,
...
}
Position3D-addGrpC ::= SEQUENCE {
altitude Altitude,
...
}
PrioritizationResponseList ::= SEQUENCE SIZE(1..10) OF PrioritizationResponse
PrioritizationResponse ::= SEQUENCE {
stationID StationID,
priorState PrioritizationResponseStatus,
signalGroup SignalGroupID,
...
}
RestrictionUserType-addGrpC ::= SEQUENCE {
emission EmissionType OPTIONAL,
...
}
SignalHeadLocationList ::= SEQUENCE (SIZE(1..64)) OF SignalHeadLocation
SignalHeadLocation ::= SEQUENCE {
nodeXY NodeOffsetPointXY,
nodeZ DeltaAltitude,
signalGroupID SignalGroupID,
...
}
SignalStatusPackage-addGrpC ::= SEQUENCE {
synchToSchedule DeltaTime OPTIONAL,
...
}
ItsStationPositionList::= SEQUENCE SIZE(1..5) OF ItsStationPosition
ItsStationPosition ::= SEQUENCE {
stationID StationID,
laneID LaneID OPTIONAL,
nodeXY NodeOffsetPointXY OPTIONAL,
timeReference TimeReference OPTIONAL,
...
}
EmissionType ::= ENUMERATED {
euro1,
euro2,
euro3,
euro4,
euro5,
euro6,
...
}
PtvRequestType ::= ENUMERATED {
preRequest,
mainRequest,
doorCloseRequest,
cancelRequest,
emergencyRequest,
...
}
TimeReference ::= INTEGER { oneMilliSec(1) } (0..65535)
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: REGION
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
REGION { iso (1) standard (0) signalizedIntersection (19091) profilec(2) region (1) version (1) }
DEFINITIONS AUTOMATIC TAGS::= BEGIN
IMPORTS
addGrpC, REG-EXT-ID-AND-TYPE FROM DSRC
ConnectionManeuverAssist-addGrpC, ConnectionTrajectory-addGrpC, IntersectionState-addGrpC, Control-addGrpC, Position3D-addGrpC, RestrictionUserType-addGrpC,
SignalStatusPackage-addGrpC, MapData-addGrpC FROM AddGrpC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) addgrpc (0) version (1)};
Reg-AdvisorySpeed REG-EXT-ID-AND-TYPE ::= { ... }
Reg-ComputedLane REG-EXT-ID-AND-TYPE ::= { ... }
Reg-ConnectionManeuverAssist REG-EXT-ID-AND-TYPE ::= {
{ConnectionManeuverAssist-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-GenericLane REG-EXT-ID-AND-TYPE ::= {
{ConnectionTrajectory-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-IntersectionGeometry REG-EXT-ID-AND-TYPE ::= { ... }
Reg-IntersectionState REG-EXT-ID-AND-TYPE ::= {
{IntersectionState-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-LaneAttributes REG-EXT-ID-AND-TYPE ::= { ... }
Reg-LaneDataAttribute REG-EXT-ID-AND-TYPE ::= { ... }
Reg-MapData REG-EXT-ID-AND-TYPE ::= {
{MapData-addGrpC IDENTIFIED BY addGrpC},
...
}
Reg-MovementEvent REG-EXT-ID-AND-TYPE ::= { ... }
Reg-MovementState REG-EXT-ID-AND-TYPE ::= { ... }
Reg-NodeAttributeSetLL REG-EXT-ID-AND-TYPE ::= { ... }
Reg-NodeAttributeSetXY REG-EXT-ID-AND-TYPE ::= {
{Control-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-NodeOffsetPointLL REG-EXT-ID-AND-TYPE ::= { ... }
Reg-NodeOffsetPointXY REG-EXT-ID-AND-TYPE ::= { ... }
Reg-Position3D REG-EXT-ID-AND-TYPE ::= {
{Position3D-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-RequestorDescription REG-EXT-ID-AND-TYPE ::= { ... }
Reg-RequestorType REG-EXT-ID-AND-TYPE ::= { ... }
Reg-RestrictionUserType REG-EXT-ID-AND-TYPE ::= {
{RestrictionUserType-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-RoadSegment REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalControlZone REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalRequest REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalRequestMessage REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalRequestPackage REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalStatus REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalStatusMessage REG-EXT-ID-AND-TYPE ::= { ... }
Reg-SignalStatusPackage REG-EXT-ID-AND-TYPE ::= {
{ SignalStatusPackage-addGrpC IDENTIFIED BY addGrpC} ,
...
}
Reg-SPAT REG-EXT-ID-AND-TYPE ::= { ... }
END
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
--
-- module: DSRC
--
-- ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version (1) }
DEFINITIONS AUTOMATIC TAGS::= BEGIN
IMPORTS
StationID, Longitude, Latitude, SpeedConfidence FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (1) }
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)}
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
}
-- 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
}
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,
...
}
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
}
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
...
}
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
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
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,
...
}
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), --
...
}
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))
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
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)
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
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),
...
}
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
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
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
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
...
}
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