Commit 2fa692ba authored by kovacsa's avatar kovacsa
Browse files

asn.1 update

parent bc85e775
Loading
Loading
Loading
Loading
+81 −101
Original line number Original line Diff line number Diff line
@@ -16,15 +16,11 @@ CoopAwareness ::= SEQUENCE {
	messageID 		INTEGER(0..255),
	messageID 		INTEGER(0..255),


	-- milliseconds elapsed since midnight January 1st, 1970 UTC
	-- milliseconds elapsed since midnight January 1st, 1970 UTC
	generationTime	INTEGER (0.. 281474976710655),
	generationTime	TimeStamp,


    -- STF405: introduced type StationID
    -- STF405: introduced type StationID
	stationId	StationID,
	stationID	StationID,


	referencePosition ReferencePosition,

	-- Basic characterization of an ITS station. A more detailed classification can be given by
	-- VehicleType.
	stationCharacteristics	SEQUENCE {
	stationCharacteristics	SEQUENCE {
		mobile		BOOLEAN,	-- will ITS station change position?
		mobile		BOOLEAN,	-- will ITS station change position?
		private		BOOLEAN,	-- not public authority
		private		BOOLEAN,	-- not public authority
@@ -32,24 +28,41 @@ CoopAwareness ::= SEQUENCE {
		...
		...
	},
	},
	
	
	-- tagged list has optional and mandatory entries depending on the profile of the 
	-- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType.
	camParameters CHOICE {
	 irs IrsParameters,
	 vehicle VehicleParameters
	},
	
   ...
}

	IrsParameters SEQUENCE {
	 referencePosition ReferencePositionIrs,
	 ...
	}
	
	
	VehicleParameters SEQUENCE {
	 referencePosition ReferencePositionVehicle,

	-- a Parameter list that has optional and mandatory entries depending on the profile of the 
	-- ITS station, this is defined in a separate document
	-- ITS station, this is defined in a separate document
	-- STF405: replace taggedList with profile as described in chapter 7.2
	-- STF405: replace taggedList with profile as described in chapter 7.2
	-- taggedList	SET SIZE(0..32) OF TaggedValue,
	-- taggedList	SET SIZE(0..32) OF TaggedValue,
	profile ProfileParameters,
	 commonParameters	BasicVehicle,

	 profileDependent 	ProfileParameters OPTIONAL,
	 ...
	 ...
	}
	}
	
	
ProfileParameters ::= CHOICE {
ProfileParameters ::= CHOICE {
    basicVehicle            [1] BasicVehicle,
    emergencyVehicle        EmergencyVehicle,
    basicIRS                [2] NULL,
    publicTransportVehicle  PublicTransportVehicle,
    emergencyVehicle        [3] EmergencyVehicle,
    publicTransportVehicle  [4] PublicTransportVehicle,
    ...
    ...
}
}


-- STF405: replaced by the different profiles BasicVehicle, BasicIRS, EmergencyVehicle and PublicTransportVehicle

-- STF405: replaced by the different profiles BasicVehicle, EmergencyVehicle and PublicTransportVehicle. Also removed tags
--TaggedValue ::= CHOICE {
--TaggedValue ::= CHOICE {
--	 vehicleType           			 [1] VehicleType,
--	 vehicleType           			 [1] VehicleType,
--	 publicVehicleType     			 [2] PublicVehicleType,
--	 publicVehicleType     			 [2] PublicVehicleType,
@@ -93,83 +106,43 @@ ProfileParameters ::= CHOICE {


-- STF405: introduced as replacement for TaggedValue to reflect the profiles
-- STF405: introduced as replacement for TaggedValue to reflect the profiles
BasicVehicle ::= SEQUENCE {
BasicVehicle ::= SEQUENCE {
     vehicleType                     [1] VehicleType,
     vehicleType                     VehicleType,
     stationLength                   [6] StationLength,
     stationLength                   StationLength,
     stationLengthConfidence         [7] Confidence OPTIONAL,
     stationLengthConfidence         Confidence OPTIONAL,
     stationWidth                    [8] StationWidth,
     stationWidth                    StationWidth,
     stationWidthConfidence          [9] Confidence OPTIONAL,
     stationWidthConfidence          Confidence OPTIONAL,
     vehicleSpeed                   [10] VehicleSpeed,
     vehicleSpeed                    VehicleSpeed,
     vehicleSpeedConfidence         [11] Confidence,
     vehicleSpeedConfidence          Confidence,
     longAcceleration               [12] LongAcceleration,
     longAcceleration                LongAcceleration,
     accelerationControl            [16] AccelerationControl,
     accelerationControl             AccelerationControl,
     exteriorLights                 [17] ExteriorLights,
     exteriorLights                  ExteriorLights,
     turnAdvice                     [23] TurnAdvice OPTIONAL,
     turnAdvice                      TurnAdvice OPTIONAL,
     distanceToStopLine             [24] DistanceToStopLine OPTIONAL,
     distanceToStopLine              DistanceToStopLine OPTIONAL,
     occupancy                      [26] Occupancy OPTIONAL,
     occupancy                       Occupancy OPTIONAL,
     doorOpen                       [29] DoorOpen OPTIONAL,
     doorOpen                        DoorOpen OPTIONAL,
     posConfidenceEllipse           [31] PosConfidenceEllipse,
     posConfidenceEllipse            PosConfidenceEllipse,
     curvature                      [32] Curvature,
     curvature                       Curvature,
     curvatureGradient              [33] CurvatureGradient OPTIONAL,
     curvatureGradient               CurvatureGradient OPTIONAL,
     crashStatus                    [36] CrashStatus OPTIONAL,
     crashStatus                     CrashStatus OPTIONAL,
     headingConfidence              [37] Confidence,
     headingConfidence               Confidence,
     dangerousGoods             [38] DangerousGoods OPTIONAL,
     dangerousGoods                  DangerousGoods OPTIONAL,
     ...
     ...
}
}


-- STF405: introduced as replacement for TaggedValue to reflect the profiles
-- STF405: introduced as replacement for TaggedValue to reflect the profiles
EmergencyVehicle ::= SEQUENCE {
EmergencyVehicle ::= SEQUENCE {
     vehicleType                     [1] VehicleType,
     lightBarInUse                   LightBarInUse OPTIONAL,
     lightBarInUse                   [3] LightBarInUse OPTIONAL,
     sireneInUse                     SireneInUse OPTIONAL,
     sireneInUse                     [4] SireneInUse OPTIONAL,
     emergencyResponseType           EmergencyResponseType,
     emergencyResponseType           [5] EmergencyResponseType,
     stationLength                   [6] StationLength,
     stationLengthConfidence         [7] Confidence OPTIONAL,
     stationWidth                    [8] StationWidth,
     stationWidthConfidence          [9] Confidence OPTIONAL,
     vehicleSpeed                   [10] VehicleSpeed,
     vehicleSpeedConfidence         [11] Confidence,
     longAcceleration               [12] LongAcceleration,
     accelerationControl            [16] AccelerationControl,
     exteriorLights                 [17] ExteriorLights,
     turnAdvice                     [23] TurnAdvice OPTIONAL,
     distanceToStopLine             [24] DistanceToStopLine OPTIONAL,
     occupancy                      [26] Occupancy OPTIONAL,
     doorOpen                       [29] DoorOpen OPTIONAL,
     posConfidenceEllipse           [31] PosConfidenceEllipse,
     curvature                      [32] Curvature,
     curvatureGradient              [33] CurvatureGradient OPTIONAL,
     crashStatus                    [36] CrashStatus OPTIONAL,
     headingConfidence              [37] Confidence,
     dangerousGoods                 [38] DangerousGoods OPTIONAL,
     ...
     ...
}
}


-- STF405: introduced as replacement for TaggedValue to reflect the profiles
-- STF405: introduced as replacement for TaggedValue to reflect the profiles
PublicTransportVehicle ::= SEQUENCE {
PublicTransportVehicle ::= SEQUENCE {
     vehicleType                     [1] VehicleType,
     publicVehicleType              PublicVehicleType,
     publicVehicleType               [2] PublicVehicleType,
     pTLineDescription              PTLineDescription OPTIONAL,
     stationLength                   [6] StationLength,
     scheduleDeviation              ScheduleDeviation OPTIONAL,
     stationLengthConfidence         [7] Confidence OPTIONAL,
     trafficLightPriority           TrafficLightPriority OPTIONAL,
     stationWidth                    [8] StationWidth,
     stationWidthConfidence          [9] Confidence OPTIONAL,
     vehicleSpeed                   [10] VehicleSpeed,
     vehicleSpeedConfidence         [11] Confidence,
     longAcceleration               [12] LongAcceleration,
     accelerationControl            [16] AccelerationControl,
     exteriorLights                 [17] ExteriorLights,
     pTLineDescription              [22] PTLineDescription OPTIONAL,
     turnAdvice                     [23] TurnAdvice OPTIONAL,
     distanceToStopLine             [24] DistanceToStopLine OPTIONAL,
     occupancy                      [26] Occupancy OPTIONAL,
     scheduleDeviation              [27] ScheduleDeviation OPTIONAL,
     trafficLightPriority           [28] TrafficLightPriority OPTIONAL,
     doorOpen                       [29] DoorOpen OPTIONAL,
     posConfidenceEllipse           [31] PosConfidenceEllipse,
     curvature                      [32] Curvature,
     curvatureGradient              [33] CurvatureGradient OPTIONAL,
     crashStatus                    [36] CrashStatus OPTIONAL,
     headingConfidence              [37] Confidence,
     dangerousGoods                 [38] DangerousGoods OPTIONAL,
     ...
     ...
}
}


@@ -280,33 +253,38 @@ PTLineDescription ::= SEQUENCE {


PublicVehicleType ::= INTEGER(0..255) 
PublicVehicleType ::= INTEGER(0..255) 


ReferencePosition ::= SEQUENCE {
--STF405: splitted ReferencePosition to ReferencePositionVehicle/ReferencePositionIRS for conditionality handling. Also, tags have been removed.
ReferencePositionVehicle ::= SEQUENCE {
  longitude Longitude,
  longitude Longitude,
  latitude Latitude,
  latitude Latitude,
  elevation Elevation,
  elevation Elevation,
  heading [1] Direction OPTIONAL, -- if relevant for position reference
-- STF405: changed optionality due to type splitting
  streetName [2] StreetName OPTIONAL,
--  heading [1] Direction OPTIONAL,
-- STF405: changed optionallity due to introduction of new PositionConfidence type
  heading Direction,
  streetName StreetName OPTIONAL,
-- STF405: changed optionality due to type splitting
--  positionConfidence [3] PositionConfidence OPTIONAL, 
--  positionConfidence [3] PositionConfidence OPTIONAL, 
  positionConfidence [3] PositionConfidence, -- ommitted for fixed position, e.g. infrastructure location
  positionConfidence Confidence,
-- STF405: changed optionallity due to introduction of new PositionConfidence type
-- STF405: changed optionality due to type splitting
--  elevationConfidence [4] Confidence OPTIONAL, 
--  elevationConfidence [4] Confidence OPTIONAL, 
  elevationConfidence [4] ElevationConfidence, -- ommitted for fixed position, e.g. infrastructure location
  elevationConfidence Confidence,
  roadSegmentID [5] RoadSegmentID OPTIONAL
  roadSegmentID RoadSegmentID OPTIONAL
}
}


-- STF405: introduced
PositionConfidence ::= CHOICE {
  mobile Confidence,
  stationary NULL	-- omitted for fixed position, e.g. infrastructure location
}


-- STF405: introduced
ReferencePositionIrs ::= SEQUENCE {
ElevationConfidence ::= CHOICE {
  longitude Longitude,
  mobile Confidence,
  latitude Latitude,
  stationary NULL	-- omitted for fixed position, e.g. infrastructure location
  elevation Elevation,
-- STF405: removed heading and confidence elements due to type splitting
--  heading [1] Direction OPTIONAL,
  streetName StreetName OPTIONAL,
--  positionConfidence [3] PositionConfidence OPTIONAL, 
--  elevationConfidence [4] Confidence OPTIONAL, 
  roadSegmentID RoadSegmentID OPTIONAL
}
}



RoadSegmentID ::= INTEGER (0..99999999) 
RoadSegmentID ::= INTEGER (0..99999999) 


RouteRef ::= IA5String(SIZE(0..32)) 
RouteRef ::= IA5String(SIZE(0..32)) 
@@ -335,6 +313,8 @@ StreetName ::= IA5String(SIZE(1..32))


Temperature ::= INTEGER (-40..215) 
Temperature ::= INTEGER (-40..215) 


TimeStamp ::=	INTEGER (0.. 281474976710655)		-- units of milliseconds, 6 byte

TrafficLightPriority ::= Priority 
TrafficLightPriority ::= Priority 


TurnAdvice ::= SEQUENCE {
TurnAdvice ::= SEQUENCE {
+46 −29
Original line number Original line Diff line number Diff line
@@ -7,26 +7,35 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
BEGIN


IMPORTS 
IMPORTS 
    Latitude, Longitude, ProfileParameters, StationID 
    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) };
FROM CAM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) };


--STF405: all unnecessary tags have been removed

--STF405: doubled defined, renamed
--STF405: doubled defined, renamed
--DecentralizedSituation ::= SEQUENCE {
--DecentralizedSituation ::= SEQUENCE {
DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
	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 {
	-- protocol version number of the DENM
	-- protocol version number of the DENM
	protocolVersion	INTEGER (0..255),
	protocolVersion	INTEGER (0..255),
	
	-- unique message type identifier assigned to the DENM		
	-- unique message type identifier assigned to the DENM		
	messageID	MessageID,	-- 1 byte 
	messageID	INTEGER(0..255),	-- 1 byte 
	
	-- time at which an originator  ITS  station generates the DENM
	-- time at which an originator  ITS  station generates the DENM
	generationtime	TimeStamp,		--  6 byte
	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
	-- unique identifier about an event from one originator ITS station, combination of node ID and a sequence number
	actionID	ActionID,	-- 6 byte
	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
	-- 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
	-- STF405: changed inline definition to explicit
@@ -73,33 +82,38 @@ DecentralizedSituation::= SEQUENCE {
	-- STF405: changed to profile based on the changes in the CAM module
	-- STF405: changed to profile based on the changes in the CAM module
	-- taggedList	SET SIZE(0..32) OF TaggedList OPTIONAL 
	-- taggedList	SET SIZE(0..32) OF TaggedList OPTIONAL 
	-- optional taggedlist with TaggedValue  OPTIONAL
	-- optional taggedlist with TaggedValue  OPTIONAL
	commonParameters	BasicVehicle OPTIONAL,
	profile ProfileParameters    OPTIONAL
	profile ProfileParameters    OPTIONAL
}
}


DecentralizedSituationLocation::= SEQUENCE {
DecentralizedSituationLocation::= SEQUENCE {
	-- description of the event position
	-- description of the event position
	-- STF405: as the eventPosition CHOICe is extensible the EventArea type can be added when needed
	eventPosition	CHOICE	{
	eventPosition	CHOICE	{
		-- the geographical position of the reference position 
		-- the geographical position of the reference position 
		refPosition	[0] RefPosition,	
--		refPosition	RefPosition,	
		refPosition	ReferencePositionVehicle,	
		...
		...
	},
	},
	-- description of  the relevance area for the  DENM dissemination
	-- description of  the relevance area for the  DENM dissemination
	--STF405:  type definition of RelevanceArea missing!
	--STF405:  changed DecentralizedSituationLocation to extensible SEQUENCE, so that definition of RelevanceArea can be added when needed!
	--relevanceArea	RelevanceArea,
	--relevanceArea	RelevanceArea,
	-- location referencing of the event position
	-- location referencing of the event position
	locationRef	CHOICE {
	locationRef	CHOICE {
		-- consequence position of the trace location referencing mechanism
		-- consequence position of the trace location referencing mechanism
		trace	[0]	TraceLocData,
		trace	TraceLocData,
		-- more location referencing mechanism to be added
		-- more location referencing mechanism to be added
		...
		...
	},
	...
}
}
}


MessageID ::=  	INTEGER (0..255) 		-- 1 byte


--STF405: renamed to TimeStamp as this is actually referenced, LongTimeStamp never
--STF405: changed MessageID to inline definition, as in CAM
--MessageID ::=  	INTEGER (0..255) 		-- 1 byte

--STF405: uses imported TimeStamp type instead as this is actually referenced, LongTimeStamp never
--LongTimeStamp ::=	INTEGER (0.. 281474976710655)		
--LongTimeStamp ::=	INTEGER (0.. 281474976710655)		
TimeStamp ::=	INTEGER (0.. 281474976710655)		-- units of milliseconds, 6 byte


ActionID ::= SEQUENCE {
ActionID ::= SEQUENCE {
	stationID 	StationID,	-- a 4 byte value
	stationID 	StationID,	-- a 4 byte value
@@ -217,24 +231,25 @@ Severity ::= ENUMERATED -- 1 byte
-- 	...
-- 	...
-- }
-- }


RefPosition ::= SEQUENCE {
--STF405: replaced by imported type from CAM
	situationLat	Latitude,  	-- 4 bytes
--RefPosition ::= SEQUENCE {
	situationLong	Longitude,  	-- 4 bytes
--	situationLat	Latitude,  	-- 4 bytes
	situationAlt	Altitude,	-- 2 bytes
--	situationLong	Longitude,  	-- 4 bytes
	-- accuracy of the reference position
--	situationAlt	Altitude,	-- 2 bytes
	accuracy	PositionAccuracy,	-- 4 bytes	
--	-- accuracy of the reference position
	-- speed of the detected event if it is in mobility, i.e. vehicle station
--	accuracy	PositionAccuracy,	-- 4 bytes	
	speed	Speed	OPTIONAL,		-- 2 bytes
--	-- speed of the detected event if it is in mobility, i.e. vehicle station
	-- direction of the event if it is in mobility, i.e. vehicle station
--	speed	Speed	OPTIONAL,		-- 2 bytes
	direction	Direction	OPTIONAL	-- 2 bytes
--	-- direction of the event if it is in mobility, i.e. vehicle station
}
--	direction	Direction	OPTIONAL	-- 2 bytes
--}


Altitude ::= INTEGER (-10000..16767215) 	-- multiples of 0.1 m
Altitude ::= INTEGER (-10000..16767215) 	-- multiples of 0.1 m


PositionAccuracy ::= OCTET STRING (SIZE(4))	
PositionAccuracy ::= OCTET STRING (SIZE(4))	


--STF405: removed OPTIONAL, as it is syntactically incorrect
--STF405: removed Direction, as it is imported from CAM
Direction ::= INTEGER{north(0), east(7200), south(14400), west(21600)} (0..28799)
--Direction ::= INTEGER{north(0), east(7200), south(14400), west(21600)} (0..28799)


--STF405: removed OPTIONAL, as it is syntactically incorrect
--STF405: removed OPTIONAL, as it is syntactically incorrect
Speed ::= INTEGER (-32765..32765)	 -- multiples of 0.01 m/s 
Speed ::= INTEGER (-32765..32765)	 -- multiples of 0.01 m/s 
@@ -258,7 +273,9 @@ Waypoint ::= SEQUENCE{
	--  waypoint positions included in the trace.	
	--  waypoint positions included in the trace.	
	ptLat 	Latitude,							--a 4 bytes value 
	ptLat 	Latitude,							--a 4 bytes value 
	ptLong 	Longitude,						--a 4 bytes value
	ptLong 	Longitude,						--a 4 bytes value
	ptAlt 	Altitude,							--a 2 bytes value
--STF405: type name is made consistent with CAM definitions
--	ptAlt 	Altitude,							--a 2 bytes value
	ptAlt 	Elevation,
	...
	...
	--STF405: removed repetition
	--STF405: removed repetition
}
}