CAM.asn 8.47 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

kovacsa's avatar
kovacsa committed
CamPdu ::= SEQUENCE {
	header	ItsPduHeader,
	cam	CoopAwareness

}


ItsPduHeader ::= SEQUENCE {
	-- protocolVersion fixed to 0
	protocolVersion		INTEGER(0..255),
tepelmann's avatar
tepelmann committed

kovacsa's avatar
kovacsa committed
	-- message type ID associated to CAM = 0, DENM=1
tepelmann's avatar
tepelmann committed
	messageID 		INTEGER(0..255),

	-- milliseconds elapsed since midnight January 1st, 1970 UTC
kovacsa's avatar
kovacsa committed
	generationTime	TimeStamp
kovacsa's avatar
kovacsa committed
}

CoopAwareness ::= SEQUENCE {
tepelmann's avatar
tepelmann committed

    -- STF405: introduced type StationID
kovacsa's avatar
kovacsa committed
	stationID	StationID,
tepelmann's avatar
tepelmann committed

	stationCharacteristics	SEQUENCE {
		mobileItsStation			BOOLEAN,	-- will ITS station change position?
		privateItsStation			BOOLEAN,	-- not public authority
		physicalRelevantItsStation	BOOLEAN,	-- can another mobile ITS station crash into this station?
tepelmann's avatar
tepelmann committed
		...
	},
kovacsa's avatar
kovacsa committed
	
	-- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType.
	camParameters CHOICE {
	 irs IrsParameters,
	 vehicle VehicleParameters
	},
	
   ...
}

	IrsParameters ::= SEQUENCE {
kovacsa's avatar
kovacsa committed
	 referencePosition ReferencePositionIrs,
	 ...
	}
	
	
	VehicleParameters ::= SEQUENCE {
kovacsa's avatar
kovacsa committed
	 referencePosition ReferencePositionVehicle,
tepelmann's avatar
tepelmann committed

	-- STF405: replace taggedList with profile as described in chapter 7.2
berge's avatar
berge committed
	 vehicleCommonParameters	VehicleCommonParameters,
	 profileDependent 			ProfileParameters OPTIONAL,
kovacsa's avatar
kovacsa committed
	 ...
	}
	
ProfileParameters ::= CHOICE {
kovacsa's avatar
kovacsa committed
	basicVehicle	    BasicVehicle,
kovacsa's avatar
kovacsa committed
    emergencyVehicle        EmergencyVehicle,
    publicTransportVehicle  PublicTransportVehicle,
    ...
}

-- STF405: introduced as replacement for TaggedValue to reflect the profiles
berge's avatar
berge committed
VehicleCommonParameters ::= SEQUENCE {
kovacsa's avatar
kovacsa committed
     vehicleType                     VehicleType,
     stationLength                   StationLength,
     stationLengthConfidence         Confidence OPTIONAL,
     stationWidth                    StationWidth,
     stationWidthConfidence          Confidence OPTIONAL,
     vehicleSpeed                    VehicleSpeed,
     vehicleSpeedConfidence          Confidence,
     longAcceleration                LongAcceleration,
     accelerationControl             AccelerationControl,
     exteriorLights                  ExteriorLights,
     turnAdvice                      TurnAdvice OPTIONAL,
     distanceToStopLine              DistanceToStopLine OPTIONAL,
     occupancy                       Occupancy OPTIONAL,
     doorOpen                        DoorOpen OPTIONAL,
     posConfidenceEllipse            PosConfidenceEllipse,
     curvature                       Curvature,
     curvatureGradient               CurvatureGradient OPTIONAL,
     crashStatus                     CrashStatus OPTIONAL,
     headingConfidence               Confidence,
     dangerousGoods                  DangerousGoods OPTIONAL,
     ...
}

-- STF405: introduced as replacement for TaggedValue to reflect the profiles
kovacsa's avatar
kovacsa committed
BasicVehicle ::= SEQUENCE {
     ...
}

EmergencyVehicle ::= SEQUENCE {
kovacsa's avatar
kovacsa committed
     lightBarInUse                   LightBarInUse OPTIONAL,
     sireneInUse                     SireneInUse OPTIONAL,
     emergencyResponseType           EmergencyResponseType,
     ...
}

-- STF405: introduced as replacement for TaggedValue to reflect the profiles
PublicTransportVehicle ::= SEQUENCE {
kovacsa's avatar
kovacsa committed
     publicVehicleType              PublicVehicleType,
     pTLineDescription              PTLineDescription OPTIONAL,
     scheduleDeviation              ScheduleDeviation OPTIONAL,
     trafficLightPriority           TrafficLightPriority OPTIONAL,
tepelmann's avatar
tepelmann committed

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..28799)
tepelmann's avatar
tepelmann committed

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 {
-- STF405: changed type from PositionConfidence to Confidence
  semiMajorConfidence   Confidence,   -- confidence of the ellipse's major semi-axes
-- STF405: changed type from PositionConfidence to Confidence
  semiMinorConfidence   Confidence,   -- confidence of the ellipse's minor semi-axes
tepelmann's avatar
tepelmann committed
  semiMajorOrientation   Direction
} 

Priority ::= INTEGER(0..7) 

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

PublicVehicleType ::= INTEGER(0..255) 

kovacsa's avatar
kovacsa committed
--STF405: splitted ReferencePosition to ReferencePositionVehicle/ReferencePositionIRS for conditionality handling. Also, tags have been removed.
ReferencePositionVehicle ::= SEQUENCE {
tepelmann's avatar
tepelmann committed
  longitude Longitude,
  latitude Latitude,
  elevation Elevation,
kovacsa's avatar
kovacsa committed
  heading Direction,
  streetName StreetName OPTIONAL,
  positionConfidence Confidence,
  elevationConfidence Confidence,
  roadSegmentID RoadSegmentID OPTIONAL
tepelmann's avatar
tepelmann committed
}

kovacsa's avatar
kovacsa committed
ReferencePositionIrs ::= SEQUENCE {
  longitude Longitude,
  latitude Latitude,
  elevation Elevation,
  streetName StreetName OPTIONAL,
  roadSegmentID RoadSegmentID OPTIONAL
kovacsa's avatar
kovacsa committed

tepelmann's avatar
tepelmann committed
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 

-- STF405: introduced
StationID ::=   INTEGER(0..4294967295)

tepelmann's avatar
tepelmann committed
StationLength ::= Dimension 

StationWidth ::= Dimension 

StreetName ::= IA5String(SIZE(1..32)) 

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

kovacsa's avatar
kovacsa committed
TimeStamp ::=	INTEGER (0.. 281474976710655)		-- units of milliseconds, 6 byte

tepelmann's avatar
tepelmann committed
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)
}

-- STF405: changed
YawRate ::= SEQUENCE {
  isLeft BOOLEAN,                 	-- true if yaw is to the left
  yawRate  INTEGER (0..32765)  		-- multiples of 0.01deg/s
}
tepelmann's avatar
tepelmann committed

END