management DecentralizedSituationManagement, -- container with DEN management and version control
situation DecentralizedSituation, -- container with event description, incl. type, severity
location DecentralizedSituationLocation, -- container with event location, location referencing with more detailed location description and the relevance area
...,
-- Specific data of the event (defined by the Application)
-- unique identifier about an event from one originator ITS station, combination of node ID and a sequence number
actionID ActionID, -- 6 byte
-- version of the DENM indicating updates from the same originator ITS station; value of 255 is used for the cancellation message sent from the originator ITS station
dataVersion DataVersion, -- 1 byte
-- time when the DENM is deleted from the DEN management and the information related to the event is set as invalid.. If it is not provided, it indicates that the expiry time is unkown by the originator ITS station
expiryTime TimeStamp OPTIONAL, -- 6 byte
frequency INTEGER (0..255) OPTIONAL, --units of 0.1 Hz
-- probability of the detected event to be true, varies from 0 to 100, with maximum value as full reliability
reliability INTEGER(0..100), -- 7 bits
-- negates the existence of an event at the event position by a third part ITS station that have received DENMs previously.
isNegation BOOLEAN -- 1 bit
}
-- event description derived from [3]
DecentralizedSituation::= SEQUENCE {
-- traffic status near the event position, defined based on [3], TPEG table tec001
disabled (1), -- switched off by user or due to driving situation, e.g. ACC below minimum speed
enabled (2), -- switched on but no action, e.g. ESP in normal operation, limiter below limit speed
engaged (3) -- switched on and in action, e.g. light bar flashing, limiter limiting speed
}
SireneInUse ::= SimpleSystemState
StationLength ::= Dimension
StationWidth ::= Dimension
StreetName ::= IA5String(SIZE(1..32))
Temperature ::= INTEGER (-40..215)
TrafficLightPriority ::= Priority
TurnAdvice ::= SEQUENCE {
direction TurnDirection,
distance Distance
}
TurnDirection ::= BIT STRING {
uTurn (0),
sharpRight (1),
right (2),
slightRight (3),
straight (4),
slightLeft (5),
left (6),
sharpLeft (7)
}
VehicleSpeed ::= Speed
VehicleType ::= INTEGER (0..255)
WiperSystemFront ::= ENUMERATED {
idle (0),
interval (1),
normal (2),
fast (3),
washerActive (4)
}
YawRate ::= SEQUENCE {
yawDirection ENUMERATED { left (0), right (1) },
yawRateValue INTEGER (0..32765) -- multiples of 0.01deg/s
}
-- SPAT
SignalPhaseAndTimingData ::= SEQUENCE {
id IntersectionID, -- this provided a unique mapping to the intersection map in question
status IntersectionStatusObject, -- general status of the controller
states SEQUENCE (SIZE(1..255)) OF MovementState
-- each active Movement/lane is given in turn and contains its state, and
-- seconds to the next event etc.
}
IntersectionID ::= INTEGER (0..999999)
IntersectionStatusObject ::= BIT STRING{
manual (0), -- Manual Control is enabled. Timing reported is per programmed values, etc but person at cabinet can manually request that certain intervals are terminated early (e.g. green)
stopTime (1), -- Stop Time is activated and all counting/timing has stopped.
conflict (2), -- Intersection is in Conflict Flash.
preempt (3), -- Preempt is Active
transit (4), -- Transit Signal Priority (TSP) is Active
proceedYel(5),
reserved1 (6), -- Reserved
reserved2 (7), -- Reserved as zero
flashYelAll (8), -- controller is in yellow flash state for all legs (e.g. at night) (see OCIT)
flashYelMin (9), -- controller is in yellow flash state for minor legs only, major legs are switched off (see OCIT)
partOff (10), -- controller is partially switched off or partially yellow flashing (see OCIT)
problem (11), -- controller has communication problems (see OCIT)
exceptional(12), -- exceptional operation (e.g. during maintenance) (see OCIT)
off (13) -- controller is switched off (see OCIT)
}
MovementState ::= SEQUENCE {
movementId [1] INTEGER OPTIONAL,
category TrafficCategory, -- indvidualTraffic, public transport, ..
lineRef IA5String(SIZE(0..32)), -- see PTLineDescription
laneSet LaneSet, -- the collection of lanes, to which this state data applies
currState [3]ColorState OPTIONAL, -- the state of a Motorised lane
relevantManeuver TurnDirection, -- e.g. right turn
nextChanges SEQUENCE OF Change -- description of next phase changes
}
-- the collection of lanes, by num, to which some state data applies
LaneSet ::= SET( SIZE(1..127)) OF LaneNumber
-- LaneNumber: Unique ID of a lane at an intersection or other topology data set.
LaneNumber ::= INTEGER
-- ColorState
-- Current color state of a signal group for a certain traffic stream. e.g. red-yellow (b0110),
-- yellow flashing (b1010)
-- Color state of a signal group
-- Reference SAE J2735 compare DE_ColorState, SAE defines an Enumeration instead of
-- the bitfield. The content is identical.
ColorState ::= BIT STRING {
green(0),
yellow(1),
red(2),
flashing(3)
}
-- change of signal phase
Change ::= SEQUENCE {
minTimeToChange TimeToChange, -- a count of the minimum time remaining in this state
maxTimeToChange TimeToChange, -- a count of the maximum time remaining in this state
likelyTimeToChange TimeToChange, -- a count of the most propable time remaining in this State
confidence Confidence, -- a confidence value for likelyTimeToChange
passState BOOLEAN, -- true, vehicles may pass
predCnt INTEGER, -- for which state is this valid?
...
}
-- time interval until signal state change reserved meanings: 0, 65531, 65532, 65533, 65534, and 65535.
TimeToChange ::= INTEGER (0..65535)
TrafficCategory ::= BIT STRING {
privateTraffic (0),
publicTransportRoad(1),
publicTransportRail(2),
individualTrafficCyclists (3),
individualTrafficPedestrians (4)
}
-- TOPO
Intersection ::= SEQUENCE {
id IntersectionID,
refPoint ReferencePosition,
approaches [3] SEQUENCE SIZE(1..32) OF ApproachObject
}
ApproachObject ::= SEQUENCE {
approach Approach
}
-- Egress or approach of a link containing all lanes
Approach ::= SEQUENCE {
drivingLanes SEQUENCE SIZE(0..32) OF VehicleReferenceLane
}
-- lane defined by a point list
VehicleReferenceLane ::= SEQUENCE {
laneNumber LaneNumber,
aneAttributes VehicleLaneAttributes,
laneWidth LaneWidth,
nodeList NodeList,
connectsTo ConnectsTo ,
speedLimit INTEGER (0..150)
}
LaneWidth ::= Dimension
-- List of relative positions describing an egress or approach
-- first point is the the stop line or point at the boarder of the intersection area.
NodeList ::= SEQUENCE{
nodes SEQUENCE SIZE (2..64) OF Offsets
}
-- providing offsets in an karthesian coordinate system in 1cm granularity
Offsets ::= SEQUENCE {
xOffset INTEGER (-32767..32767),
yOffset INTEGER (-32767..32767)
}
-- List of possible connection of a lane
ConnectsTo ::= SEQUENCE(SIZE(1..48)) OF ConnectionInformation
ConnectionInformation ::= SEQUENCE {
lane LaneNumber,
intersection IntersectionID,
maneuver TurnDirection
}
VehicleLaneAttributes ::= BIT STRING {
noData (0),
egressPath (1),
-- a two-way path or an outbound path is described
maneuverStraightAllowed (2),
maneuverLeftAllowed (3),
maneuverRightAllowed (4),
yield (5),
maneuverNoUTurn (6),
maneuverNoTurnOnRed (7),
maneuverNoStop (8),
noStop (9),
noTurnOnRed (10),
hovLane (11),
bus (12), -- SAE busOnly does not make sense in a Bit Field
taxi (13), -- SAE busAndTaxiOnly does not make sense in a Bit Field
maneuverHOVLane (14),
maneuverSharedLane (15), -- a "TWLTL" (two way left turn lane)
bike (16), -- SAE comment added maneuverBikeLane
train (17), -- added from SIM-TD includes train
individualTraffic (18), -- added from SIM-TD to distinguish special lanes
vehiclesEntering (19), -- for SIM-TD copied from SpecialLaneAttributes
vehiclesLeaving (20) -- for SIM-TD copied from SpecialLaneAttributes