Newer
Older
DENM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
Latitude, Longitude, Elevation, BasicVehicle, ProfileParameters, StationID, TimeStamp, ReferencePositionVehicle
FROM CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) };
--STF405: doubled defined, renamed
--DecentralizedSituation ::= SEQUENCE {
DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
-- protocol version number of the DENM
protocolVersion INTEGER (0..255),
-- time at which an originator ITS station generates the DENM
generationTime TimeStamp, -- 6 byte
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
...
}
DecentralizedSituationManagement::= SEQUENCE {
-- 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
-- STF405: changed inline definition to explicit
-- dataVersion INTEGER(0..255),
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, --1 byte
-- 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
trafficFlowEffect TrafficFlowEffect OPTIONAL, -- 1 byte.
-- event direct cause and sub cause description as defined in tab6.1 and in [3]
-- linked cause if information is available.
linkedCause Situation OPTIONAL, -- 2 Byte,
-- severity value of the event, defined in [3], TPEG table tec003
severity Severity, -- 1 byte
-- characteristics of the event
eventCharact SEQUENCE -- EventCharact OPTIONAL 1 byte
{
-- event mobility description, set to TRUE if the event is in mobility
eventmobility BOOLEAN,
-- whether the event is caused by the originator ITS station, set to TRUE if it is the case. FALSE if it is a location that may cause danger
-- STF405: changed type to be more self explaining
-- causeType BOOLEAN,
causeType ENUMERATED { itsStation, geographicalRegion },
-- whether the event is physicalling relevant to the receiving ITS station.. Set to TRUE if it is the case
-- STF405: changed type to be more self explaining
-- relevant BOOLEAN,
relevant ENUMERATED {physicallyRelevant, difficultDrivingConditions },
-- whether the event is time critical road safety event, set to TRUE if it is the case.
timeCritacality BOOLEAN,
-- more characteristics may be added.
...
} OPTIONAL,
-- tagged list to provide supplementary information describing the event, may include DEs and EFs definied in [i.6] or [6]
-- STF405: changed to profile based on the changes in the CAM module
-- taggedList SET SIZE(0..32) OF TaggedList OPTIONAL
-- optional taggedlist with TaggedValue OPTIONAL
profile ProfileParameters OPTIONAL
}
DecentralizedSituationLocation::= SEQUENCE {
-- description of the event position
-- STF405: as the eventPosition CHOICe is extensible the EventArea type can be added when needed
eventPosition CHOICE {
-- the geographical position of the reference position
-- refPosition RefPosition,
refPosition ReferencePositionVehicle,
...
},
-- description of the relevance area for the DENM dissemination
--STF405: changed DecentralizedSituationLocation to extensible SEQUENCE, so that definition of RelevanceArea can be added when needed!
--relevanceArea RelevanceArea,
-- location referencing of the event position
locationRef CHOICE {
-- consequence position of the trace location referencing mechanism
--STF405: uses imported TimeStamp type instead as this is actually referenced, LongTimeStamp never
--LongTimeStamp ::= INTEGER (0.. 281474976710655)
ActionID ::= SEQUENCE {
stationID StationID, -- a 4 byte value
sequenceNo SequenceNo -- a 2 byte value
}
--STF405: STRING not a valid ASN.1 type, using the CAM definition
--StationID ::= STRING
-- station ID of the DENM originator ITS station
SequenceNo ::= INTEGER (0..65535) -- increased by 1 each time a new event is detected by the same ITS station.
-- STF405: changed to INTEGER as ENUMERATED is not applicable for handling
-- DataVersion ::= ENUMERATED {
-- firstVersion (0),
-- secondVersion (1),
-- cancellation (255),
-- ...
-- }
DataVersion ::= INTEGER {firstVersion(0),secondVersion(1),cancellation(255) } (0..255)
--STF405: removed as is expressed already in TimeStamp which is referenced only, furthermore OPTIONAL is syntactically incorrect
--LongTimeStamp ::= INTEGER (0.. 281474976710655) OPTIONAL
-- 6byte, units of milliseconds.
Frenquency ::= INTEGER (0..255)
-- STF405: no need for explicit type
--Reliability ::= INTEGER (0..100)
--7 bit
-- STF405: no need for explicit type
-- IsNegation ::= BOOLEAN
--1 bit
--STF405: removed OPTIONAL, as it is syntactically incorrect
--TrafficFlowEffect ::= INTEGER(0..7) OPTIONAL
TrafficFlowEffect ::= INTEGER {
trafficFlowUnknown(1),
freeTrafficFlow(2),
slowTraffic(3),
heavyTraffic(4),
queuingTraffic(5),
stationaryTraffic(6),
noTrafficFlow(7)
} (0..7)
Situation ::= SEQUENCE {
cause CauseCode, -- 1 byte
subCause SubCauseCode -- 1 byte
}
-- STF405: Changed to INTEGER as it allows to use cause codes in [3]
-- CauseCode ::= ENUMERATED
-- 1 to 100 indicates causecode defined within [3]
-- 101 – 255 indicates causecode without being defined by [3]
-- {
-- reserved (0),
-- dangerousDriving (101),
-- intersectionViolation (102),
-- vehicleProblem (103),
-- intersectionCollision (104),
-- hazardousLocation (105),
-- ...
--}
CauseCode ::= INTEGER {reserved(0),dangerousDriving(101),intersectionViolation(102),vehicleProblem(103),intersectionCollision(104),hazardousLocation(105) } (0..255)
-- STF405: changed type as it seems more applicable
-- SubCauseCode ::= ENUMERATED
-- {
-- unknown (0),
-- subCauseCode1 (1),
-- subCauseCode2 (2),
-- ...
-- }
SubCauseCode ::= INTEGER {unknown(0)} (0..255)
--STF405: removed OPTIONAL, as it is syntactically incorrect
--LinkedCause ::= Situation OPTIONAL
LinkedCause ::= Situation
--STF405: renamed to Severity
--LongTimeStamp ::= ENUMERATED...
Severity ::= ENUMERATED -- 1 byte
{
informative (1),
-- Text example: <Attention, there is a dangerous obstruction due to fog>
obstacles (2), --danger level 1
-- Text example: <Attention, there a danger due to fog>
danger (3), --danger level 2:
-- Text example: <Attention, highest danger due to fog>
highestDanger (4) --danger level 3:
}
--STF405: no need for explicit type
--EventCharact ::= SEQUENCE
-- 1 byte
--{
-- whether the detected event is in mobility (moving vehicle) or static
-- mobility BOOLEAN,
-- whether the detected event is an ITS station, or is a geographical region
-- causeType BOOLEAN,
-- whether the detected event is physically relevant to the received ITS stations (accident) or describing difficult driving conditions (fog on the road)
-- relevant BOOLEAN,
-- whether a detected event is time critical (e.g., electronic braking light) or not (e.g. fog on the road)
-- timeCriticality BOOLEAN,
-- ...
--}
--STF405: The CAM definition is used instead, removed OPTIONAL, as it is syntactically incorrect
-- TaggedList ::= SEQUENCE
-- {
-- ...
-- }
--STF405: replaced by imported type from CAM
--RefPosition ::= SEQUENCE {
-- situationLat Latitude,
-- situationLong Longitude,
-- situationAlt Altitude,
-- accuracy PositionAccuracy,
-- speed Speed OPTIONAL,
-- direction Direction OPTIONAL
Altitude ::= INTEGER (-10000..16767215) -- multiples of 0.1 m
PositionAccuracy ::= OCTET STRING (SIZE(4))
--STF405: removed Direction, as it is imported from CAM
--Direction ::= INTEGER{north(0), east(7200), south(14400), west(21600)} (0..28799)
--STF405: removed OPTIONAL, as it is syntactically incorrect
Speed ::= INTEGER (-32765..32765) -- multiples of 0.01 m/s
--STF405: no need for explicit type
--LocationRef ::= CHOICE {
-- consequence position of the trace location referencing mechanism
-- trace [0] TraceLocData,
--3 bits, identifier of the trace
--5 bits, number of waypoint positions included in the trace
waypoints SEQUENCE (SIZE(0..31)) OF Waypoint
}
Waypoint ::= SEQUENCE{
-- waypoint positions included in the trace.
ptLat Latitude, --a 4 bytes value
ptLong Longitude, --a 4 bytes value
--STF405: type name is made consistent with CAM definitions
-- ptAlt Altitude, --a 2 bytes value
ptAlt Elevation,