CAM.asn 8.67 KB
Newer Older
berge's avatar
berge 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

CamPdu ::= SEQUENCE {
	header	ItsPduHeader,
	cam	CoopAwareness

}

ItsPduHeader ::= SEQUENCE {
	-- protocolVersion fixed to 0
	protocolVersion		INTEGER(0..255),

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

	-- milliseconds elapsed since midnight January 1st, 1970 UTC
	generationTime	TimeStamp
}

CoopAwareness ::= SEQUENCE {

    -- STF405: introduced type StationID
	stationID	StationID,

	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?
		...
	},
	
	-- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType.
	camParameters CHOICE {
	 irs IrsParameters,
	 vehicle VehicleParameters
	},
	
   ...
}

	IrsParameters ::= SEQUENCE {
	 referencePositionIrs ReferencePositionIrs,
	 ...
	}
	
	
	VehicleParameters ::= SEQUENCE {
	 referencePositionVehicle ReferencePositionVehicle,

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

-- STF405: introduced as replacement for TaggedValue to reflect the profiles
-- STF405: added yawRate at longAcceleration/yawRate confidence fields to the common parameters
VehicleCommonParameters ::= SEQUENCE {
     vehicleType                     VehicleType,
     stationLength                   StationLength,
     stationLengthConfidence         Confidence OPTIONAL,
     stationWidth                    StationWidth,
     stationWidthConfidence          Confidence OPTIONAL,
     vehicleSpeed                    VehicleSpeed,
     vehicleSpeedConfidence          Confidence,
     longAcceleration                LongAcceleration,
     longAccelerationConfidence	     Confidence,
     accelerationControl             AccelerationControl,
     yawRate			     		 YawRate,
     yawRateConfidence	     	     Confidence,
     exteriorLights                  ExteriorLights,
     turnAdvice                      TurnAdvice OPTIONAL,
     distanceToStopLine              DistanceToStopLine OPTIONAL,
     occupancy                       Occupancy OPTIONAL,
     doorOpen                        DoorOpen OPTIONAL,
     posConfidenceEllipse            PosConfidenceEllipse,
     curvature                       Curvature,
     curvatureChange               	 CurvatureChange OPTIONAL,
     curvatureConfidence	     	 Confidence,
     crashStatus                     CrashStatus OPTIONAL,
     headingConfidence               Confidence,
     dangerousGoods                  DangerousGoods OPTIONAL,
     ...
}


-- STF405: introduced as replacement for TaggedValue to reflect the profiles
BasicVehicle ::= SEQUENCE {
     ...
}

EmergencyVehicle ::= SEQUENCE {
     lightBarInUse                   LightBarInUse OPTIONAL,
     sireneInUse                     SireneInUse OPTIONAL,
     emergencyResponseType           EmergencyResponseType,
     ...
}

-- STF405: introduced as replacement for TaggedValue to reflect the profiles
PublicTransportVehicle ::= SEQUENCE {
     publicVehicleType              PublicVehicleType,
     pTLineDescription              PTLineDescription OPTIONAL,
     scheduleDeviation              ScheduleDeviation OPTIONAL,
     trafficLightPriority           TrafficLightPriority OPTIONAL,
     ...
}

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)

CurvatureChange ::= 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)

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 {
  hemisphere ENUMERATED { north (0), south (1) },
  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 {
  hemisphere ENUMERATED { east (0), west (1) },
  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
  semiMajorOrientation   Direction
} 

Priority ::= INTEGER(0..7) 

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

PublicVehicleType ::= INTEGER(0..255) 

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

ReferencePositionIrs ::= SEQUENCE {
  longitude Longitude,
  latitude Latitude,
  elevation Elevation,
  streetName StreetName OPTIONAL,
  roadSegmentID 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 

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

StationLength ::= Dimension 

StationWidth ::= Dimension 

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

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

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

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 {
  yawDirection ENUMERATED { left (0), right (1) },
  yawRateValue  INTEGER (0..32765)  		-- multiples of 0.01deg/s
}

END