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 { -- protocolVersion fixed to 0 protocolVersion 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), -- STF405: introduced type StationID stationId StationID, 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 -- STF405: replace taggedList with profile as described in chapter 7.2 -- taggedList SET SIZE(0..32) OF TaggedValue, profile ProfileParameters, ... } ProfileParameters ::= CHOICE { basicVehicle [1] BasicVehicle, basicIRS [2] NULL, emergencyVehicle [3] EmergencyVehicle, publicTransportVehicle [4] PublicTransportVehicle, ... } -- STF405: replaced by the different profiles BasicVehicle, BasicIRS, EmergencyVehicle and PublicTransportVehicle --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, -- 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, -- ... -- } -- STF405: introduced as replacement for TaggedValue to reflect the profiles BasicVehicle ::= SEQUENCE { vehicleType [1] VehicleType, 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 EmergencyVehicle ::= SEQUENCE { vehicleType [1] VehicleType, lightBarInUse [3] LightBarInUse OPTIONAL, sireneInUse [4] SireneInUse OPTIONAL, 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 PublicTransportVehicle ::= SEQUENCE { vehicleType [1] VehicleType, publicVehicleType [2] PublicVehicleType, 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, 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, ... } 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) 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 PositionConfidence, semiMajorConfidence Confidence, -- confidence of the ellipse's major semi-axes -- STF405: changed type from PositionConfidence to Confidence -- semiMinorConfidence PositionConfidence, semiMinorConfidence Confidence, -- confidence of the ellipse's minor semi-axes semiMajorOrientation Direction } -- STF405: deleted as there is not need for this special type, all occurencies can be expressed directly by using Confidence --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, -- STF405: changed optionallity due to introduction of new PositionConfidence type -- positionConfidence [3] PositionConfidence OPTIONAL, positionConfidence [3] PositionConfidence, -- ommitted for fixed position, e.g. infrastructure location -- STF405: changed optionallity due to introduction of new PositionConfidence type -- elevationConfidence [4] Confidence OPTIONAL, elevationConfidence [4] ElevationConfidence, -- ommitted for fixed position, e.g. infrastructure location roadSegmentID [5] RoadSegmentID OPTIONAL } -- STF405: introduced PositionConfidence ::= CHOICE { mobile Confidence, stationary NULL -- omitted for fixed position, e.g. infrastructure location } -- STF405: introduced ElevationConfidence ::= CHOICE { mobile Confidence, stationary NULL -- omitted for fixed position, e.g. infrastructure location } 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) 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 ::= INTEGER (-32765..32765) YawRate ::= SEQUENCE { isLeft BOOLEAN, -- true if yaw is to the left yawRate INTEGER (0..32765) -- multiples of 0.01deg/s } END