-- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the OSS ASN.1 Tools
SPAT-PDU-Descriptions
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS ItsPduHeader FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (0) version (1)
};
-- The root data frame for spat
SpatPdu ::= SEQUENCE {
header ItsPduHeader,
spat SignalPhaseAndTimingData
}
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 { -- the collection of lanes, by num, to which some state data applies
movementId 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 ColorState OPTIONAL, -- the state of a Motorised lane
relevantManeuver TurnDirection, -- e.g. right turn
nextChanges SEQUENCE OF Change -- description of next phase changes
}
LaneSet ::= SET( SIZE(1..127)) OF LaneNumber
LaneNumber ::= INTEGER -- Unique ID of a lane at an intersection or other topology data set.
TurnDirection ::= BIT STRING { -- Direction of turn movement for signal description or vehicle maneuver.
uTurn (0),
sharpRight (1),
right (2),
slightRight (3),
straight (4),
slightLeft (5),
left (6),
sharpLeft (7)
}
ColorState ::= BIT STRING {
green(0),
yellow(1),
red(2),
flashing(3)
}
Change ::= SEQUENCE{ -- change of signal phase
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?
...
}
TimeToChange ::= INTEGER (0..65535) -- time interval until signal state change reserved meanings: 0, 65531, 65532, 65533, 65534 and 65535