CAM.asn 7.39 KB
Newer Older
tepelmann's avatar
tepelmann committed
CAM-PDU-Descriptions {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) 
}

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

--	The root data frame for cooperative awareness messages
CoopAwareness ::= SEQUENCE {

	-- protocolVersionCAM fixed to 0
	protocolVersionCAM		INTEGER(0..255),

	-- message type ID associated to CAM = 0
	messageID 		INTEGER(0..255),

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

	stationId	INTEGER(0..4294967295),

	referencePosition ReferencePosition,

	-- Basic characterization of an ITS station. A more detailed classification can be given by
	-- VehicleType.
	stationCharacteristics	SEQUENCE {
		mobile		BOOLEAN,	-- will ITS station change position?
		private		BOOLEAN,	-- not public authority
		physicalRelevant	BOOLEAN,	-- can another mobile ITS station crash into this station?
		...
	},

	-- tagged list has optional and mandatory entries depending on the profile of the 
	-- ITS station, this is defined in a separate document
	taggedList	SET SIZE(0..32) OF TaggedValue,

   ...
}
	
TaggedValue ::= CHOICE {
	 vehicleType           			 [1] VehicleType,
	 publicVehicleType     			 [2] PublicVehicleType,
	 lightBarInUse         			 [3] LightBarInUse,
	 sireneInUse           			 [4] SireneInUse,
	 emergencyResponseType 			 [5] EmergencyResponseType,
	 stationLength         			 [6] StationLength,
	 stationLengthConfidence		 [7] Confidence,
	 stationWidth          			 [8] StationWidth,
	 stationWidthConfidence			 [9] Confidence,
	 vehicleSpeed          			[10] VehicleSpeed,
	 vehicleSpeedConfidence			[11] Confidence,
	 longAcceleration      			[12] LongAcceleration,
	 longAccelConfidence   			[13] Confidence,
	 yawRate               			[14] YawRate,
	 yawRateConfidence     			[15] Confidence,
	 accelerationControl   			[16] AccelerationControl,
	 exteriorLights        			[17] ExteriorLights,
	 causeCode             			[18] CauseCode,
	 ambientAirTemperature 			[19] AmbientAirTemperature,
	 speed                 			[20] Speed, --other speed than vehicle speed
	 -- heading               			[21] Heading,
	 pTLineDescription     			[22] PTLineDescription,
	 turnAdvice            			[23] TurnAdvice,
	 distanceToStopLine    			[24] DistanceToStopLine,
	 distanceToStoLineConfidence	[25] Confidence,
	 occupancy             			[26] Occupancy,
	 scheduleDeviation    			[27] ScheduleDeviation,
	 trafficLightPriority 			[28] TrafficLightPriority,
	 doorOpen            			  	[29] DoorOpen,
	 dataReference       			  	[30] DataReference,
	 posConfidenceElli   			  	[31] PosConfidenceEllipse,
	 curvature           			  	[32] Curvature,
	 curvatureGradient     			[33] CurvatureGradient,
	 curvatureConfidence   			[34] Confidence,
	 wiperSystemFront      			[35] WiperSystemFront,
	 crashStatus           			[36] CrashStatus,
	 headingConfidence     			[37] Confidence,
	 dangerousGoods			 			[38] DangerousGoods,
	 ...
	}

AccelerationControl ::= BIT STRING {
 brakePedal    (0),
 throttlePedal (1),
 cruiseControl (2),
 acc           (3),
 limiter       (4),
 brakeAssist   (5)
} 

AmbientAirTemperature ::= Temperature 

CauseCode ::= INTEGER (0..100, ...) 

Confidence ::= INTEGER (0..15) 

CourseOfJourney ::= IA5String(SIZE(0..32)) 

CrashStatus ::= BOOLEAN

Curvature ::= INTEGER (-32765..32765)

CurvatureGradient ::= INTEGER (-1023..1023)

DataReference ::= IA5String(SIZE(1..128))

DangerousGoods ::= INTEGER (0..8191)

Dimension ::= INTEGER (0..16383)

Direction ::= INTEGER{north(0), east(7200), south(14400), west(21600)} (0..28800)

Distance ::= INTEGER (0..65535) -- multiples of 1.0m

DistanceToStopLine ::= Distance

DoorOpen ::= BIT STRING {
  driver (0),
  passenger (1), -- any passenger door
  maintenance (2), -- hood, other access to engine, or similar
  luggage (3)
} 

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

EmergencyResponseType ::= ENUMERATED {
 none         (0),
 staticSafeguard (1),   -- e.g. at accident spot
 movingSafeguard (2),   -- e.g. convoy or abnormal load
 rightOfWay      (3),   -- claiming right of way
 ...
} 

ExteriorLights ::= BIT STRING {
 lowBeamHeadlightsOn     (0),
 highBeamHeadlightsOn    (1),
 leftTurnSignalOn        (2),
 rightTurnSignalOn       (3),
 automaticLightControlOn (4),
 daytimeRunningLightsOn  (5),
 fogLightOn              (6),
 parkingLightsOn         (7)
 } 

Heading ::= Direction 

Latitude ::= SEQUENCE {
  isSouth BOOLEAN,               -- true if on southern hemisphere (sign flag)
  degree  INTEGER (0..900000000) -- multiples of 0.1 microdegree
} 

LightBarInUse ::= SimpleSystemState 

LineRef ::= IA5String(SIZE(0..32)) 

LongAcceleration ::= INTEGER (-2000..2000)  -- multiples of 0.01 m/s^2 

Longitude ::= SEQUENCE {
  isEast BOOLEAN,                 -- true if east of 0-meridian (sign flag)
  degree  INTEGER (0..1800000000) -- multiples of 0.1 microdegree
}

Occupancy ::= INTEGER (0..255) 

PosConfidenceEllipse ::= SEQUENCE {
  semiMajorConfidence   PositionConfidence,   -- confidence of the ellipse's major semi-axes
  semiMinorConfidence   PositionConfidence,   -- confidence of the ellipse's minor semi-axes
  semiMajorOrientation   Direction
} 

PositionConfidence ::= Confidence -- 2^PositionConfidence * 0.1m 

Priority ::= INTEGER(0..7) 

PTLineDescription ::= SEQUENCE {
  courseOfJourney  CourseOfJourney,
  lineRef          LineRef,
  routeRef         RouteRef
} 

PublicVehicleType ::= INTEGER(0..255) 

ReferencePosition ::= SEQUENCE {
  longitude Longitude,
  latitude Latitude,
  elevation Elevation,
  heading [1] Direction OPTIONAL, -- if relevant for position reference
  streetName [2] StreetName OPTIONAL,
  positionConfidence [3] PositionConfidence OPTIONAL, -- ommitted for fixed position, e.g. infrastructure location
  elevationConfidence [4] Confidence OPTIONAL, -- ommitted for fixed position, e.g. infrastructure location
  roadSegmentID [5] RoadSegmentID OPTIONAL
}

RoadSegmentID ::= INTEGER (0..99999999) 

RouteRef ::= IA5String(SIZE(0..32)) 

ScheduleDeviation ::= INTEGER (-900..3600)  -- seconds, positiv delay; negative ahead of schedule 

SimpleSystemState ::= ENUMERATED {
  unavailable  (0), -- not equipped or out of order
  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 

Speed ::= INTEGER (-32765..32765)  -- multiples of 0.01 m/s 

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 ::= INTEGER (-32765..32765) 

END