Commit 7e1179ab authored by mullers's avatar mullers
Browse files

ITS-container added

parent a4f6d707
Loading
Loading
Loading
Loading
+49 −20
Original line number Diff line number Diff line
-- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the OSS ASN.1 Tools

CAM-PDU-Descriptions {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version1 (1) 
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cam (2) version (3) 
}

DEFINITIONS AUTOMATIC TAGS ::= 
@@ -9,8 +9,9 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

IMPORTS 
    ItsPduHeader, VehicleCommonParameters, ProfileParameters, StationID, TimeStamp, ReferencePosition 
FROM DENM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) };
   ItsPduHeader, ReferencePosition, AccelerationControl, Curvature, CurvatureAccuracy, CurvatureCalculationMode, Direction, DirectionConfidence, IncidentIndication, IncidentRule, LaneCount, LaneCountConfidence, Percentage, Priority, PtLineRoute, PtScheduleDelay, VehicleSpeed, DriveDirection, LongitudinalAcceleration, StationType, ExteriorLights, LongTruck, DangerousGoods, SpecialTransport, LightBarSirenInUse, Mass, VehicleWidth, VehicleLength, VehicleLengthConfidenceIndication, PathHistory FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) 
};


--	The root data frame for cooperative awareness messages
@@ -23,31 +24,59 @@ CamPdu ::= SEQUENCE {


CoopAwareness ::= SEQUENCE {
	generationDeltaTime GenerationDeltaTime,
	camParameters CamParameters,
	
	stationID	StationID,
   ...
}

	-- Basic characterization of an ITS station. A more detailed classification can be given by VehicleType.
	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?
	CamParameters ::= SEQUENCE {
	 basicContainer	BasicContainer,
	 basicVehicleContainer BasicVehicleContainerHighFrequency OPTIONAL,
	 basicVehicleContainerStatic BasicVehicleContainerLowFrequency OPTIONAL,
	 specialVehicleContainer SpecialVehicleContainer OPTIONAL,
	 ...
	},
	}
	
	referencePosition ReferencePosition,
	camParameters CamParameters OPTIONAL, -- presently omitted for Irs

   ...
 BasicContainer ::= SEQUENCE {
  stationType StationType,
  referencePosition ReferencePosition
 }
 
 BasicVehicleContainerHighFrequency  ::= SEQUENCE {
  heading Direction,
  headingConfidence DirectionConfidence,
  laneCount LaneCount OPTIONAL,
  vehicleSpeed VehicleSpeed,
  driveDirection DriveDirection,
  longitudinalAcceleration LongitudinalAcceleration,
  accelerationControl AccelerationControl,
  curvature Curvature,
  curvatureAccuracy CurvatureAccuracy,
  curvatureCalculationMode CurvatureCalculationMode
 }

 BasicVehicleContainerLowFrequency  ::= SEQUENCE {
  vehicleWidth VehicleWidth,
  vehicleLength VehicleLength,
  vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication,
  exteriorLights ExteriorLights,
  pathHistory PathHistory
 }
 
	CamParameters ::= SEQUENCE {
	 vehicleCommonParameters	VehicleCommonParameters,
	 profileDependent 		ProfileParameters OPTIONAL,
	 ...
 SpecialVehicleContainer ::= SEQUENCE {
  lightBarSirenInUse LightBarSirenInUse OPTIONAL,
  incidentIndication IncidentIndication OPTIONAL,
  incidentRule IncidentRule OPTIONAL,
  dangerousGoods DangerousGoods OPTIONAL,
  ptLineRoute PtLineRoute OPTIONAL,
  ptScheduleDelay PtScheduleDelay OPTIONAL,
  priority Priority OPTIONAL
 }
 
 GenerationDeltaTime ::= INTEGER { oneMilliSec(1) } (0..65535)
 
	
END
+213 −0
Original line number Diff line number Diff line
ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) 
}

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN


ItsPduHeader ::= SEQUENCE {
	protocolVersion		INTEGER{ currentVersion(3) } (0..255),
	messageID 		INTEGER{ cam(0), denm(1) } (0..255),
	stationID StationID
}

StationID ::=   INTEGER(0..4294967295)

ReferencePosition ::= SEQUENCE {
  longitude Longitude,
  latitude Latitude,
  positionConfidenceEllipse PosConfidenceEllipse ,
  elevation Elevation,
  elevationConfidence ElevationConfidence
}

DeltaPosition ::= SEQUENCE {
  deltaLongitude DeltaLongitude,
  deltaLatitude DeltaLatitude,
  positionConfidenceEllipse PosConfidenceEllipse
}

Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unknown(1800000001) } (-1800000000..1800000001) -- multiples of 0.1 microdegree

Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unknown(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree

Elevation ::= INTEGER (-1000..7191) -- multiples of 1 m

DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-120..120) -- multiples of 0.1 microdegree

DeltaLatitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-120..120) -- multiples of 0.1 microdegree


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

PathPoint ::= SEQUENCE {
 pathPosition DeltaPosition,
 pathDeltaTime PathDeltaTime
}

PathDeltaTime ::= INTEGER { hundredMilliSecondsInPast(1), hundredMilliSecondsInFuture(-1) } (-31..31, ...)

AccelerationControl ::= BIT STRING {
 notValid      (0),
 breakPedalActive (1),
 gasPedalActive (2),
 emergencyBrakeActive (3),
 collisionWarningActive (4),
 accActive       (5),
 cruiseControl   (6),
 speedLimiterActive (7)
} 


SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095)

Curvature ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000)

CurvatureChange  ::=  INTEGER{ noChange(0) } (-1020..1020)	-- removing this type is under discussion

CurvatureAccuracy ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12)

CurvatureCalculationMode ::= ENUMERATED { yawRateNotAvailable(0), yawRateAvailable(1), ... }

Direction ::= INTEGER {north(0), east(900), south(1800), west(2700)} (0..4095)

DirectionConfidence ::= INTEGER { notValid(127) } (0..127)

ElevationConfidence ::= INTEGER { notValid(127) } (0..127)

LaneCount ::= INTEGER { offTheRoad(0) } (0..15)

LaneCountConfidence ::= Percentage

Percentage ::= INTEGER (0..100)

VehicleSpeed ::= INTEGER { oneCentimeterPerSec(1) } (0..16383)

DriveDirection ::= ENUMERATED { forward (0), backward (1) }

LongitudinalAcceleration ::= INTEGER { pointOneMeterPerSecSquared(1), notValid (160)} (-160 .. 160)

StationType ::= INTEGER { unkown(0), passengerCar(1), bus(2) } (0..255)

VehicleHeight ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51)
VehicleWidth ::= INTEGER { tenCentimeters(1), outOfRange(51) } (0..51)
VehicleLengthNormal ::= INTEGER { tenCentimeters(1), outOfRange(127) } (0..127)

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


LongTruck ::= ENUMERATED { lengthOf18point75Meters, ... }

DangerousGoods ::= ENUMERATED { unknown
(0), explosives
(1), flammableGases(2), 
toxicGases(3), flammableLiquids
(4), flammalbeSolids(5), substancesLiableToSpontaneousCombustion(6)
, substancesEmittingFlammableGasesUponContactWithWater(7), oxidizingSubstances(8), 
organicPeroxides
(9), toxicSubstances(10), infectiousSubstances(11), radioactiveMaterial
(12), corrosiveSubstances(13), 
miscellaneousDangerousSubstances(14) }

SpecialTransport  ::= ENUMERATED { toBeDefined } -- not well defined yet

LightBarSirenInUse ::= BIT STRING {
 noActivity (0),
 lightBarAvailable (1),
 lightBarActivated (2),
 sirenAvailable (3),
 sirenActivated (4)
}

Mass ::= INTEGER { hundredKg(1), exceeding50Tons(500), massUnknown(501) } (0..501)

HeightLonCarr ::= INTEGER { oneCentimeter(1) } (0..100)

PosLonCarr ::= INTEGER { oneCentimeter(1) } (0..127)

PosPillar ::= INTEGER { tenCentimeters(1), notUsed(30) } (0..30)

PosCentMass ::= INTEGER { tenCentimeters(1), notUsed(63) } (0..63)

WheelBaseVehicle ::= INTEGER { tenCentimeters(1), notUsed(127) } (0..127)

TurningRadius ::= INTEGER { point4Meters(1) } (0..255)

PosFrontAx ::= INTEGER { tenCentimeters(1) } (0..20)

PositionOfOccupants ::= BIT STRING {
 tier1LeftOccupied    (0),
 tier1RightOccupied   (1),
 tier1MidOccupied     (2),
 tier2LeftOccupied    (3),
 tier2RightOccupied   (4),
 tier2MidOccupied     (5),
 tier3LeftOccupied    (6),
 tier3RightOccupied   (7),
 tier3MidOccupied     (8),
 tier3NotDetectable   (9)
}

VehicleLength ::= CHOICE { vehicleLengthNormal VehicleLengthNormal, longTruck LongTruck}

VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithUnkownLength(1), 
trailerPresenceIsUnkown(2) }

PathHistory::=  SEQUENCE SIZE(0..23) OF PathPoint

IncidentIndication ::= ENUMERATED { attention(0), 
trafficJamAhead(1), 
slowVehicle(2), 
heavyGoodsTransport(3), 
movingRoadWorks(4), 
publicTransportDisembarkation(5), ...
}

IncidentRule ::= BIT STRING {
 leftLaneClosed (0),
 
rightLaneClosed
 (1),
 
noPassing
 (2),
 
noPassingForTrucks (3)
}

Priority ::= INTEGER { lowest(0), highest(3) }  (0..3)

PtLineRoute ::= BIT STRING

PtScheduleDelay ::= INTEGER { oneSecondAheadOfSchedule(-1), noDelay(0), oneSecondDelay(1) }  (-300..3795)

InformationQuality ::= INTEGER { unknown(0), lowest(1), highest(7) }  (0..127)

RoadClass ::= ENUMERATED { gravelRoad(0)
, localRoad(1), 
districtRoad(2), 
countryRoad(3), 
stateRoad(4), 
highway(5), 
reserved(6), 
unknown(7) }

Timestamp  ::= INTEGER { startOf1970(0), oneMillisecAfterStartOf1970(1) }  (0..281474976710655)

END
+160 −413

File changed.

Preview size limit exceeded, changes collapsed.