Commit 2e590776 authored by mullers's avatar mullers
Browse files

Modifications to align with TS 102 894-2 V1.1.6 (CDD)

parent e9e80423
Loading
Loading
Loading
Loading
+102 −47
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ BEGIN

ItsPduHeader ::= SEQUENCE {
	protocolVersion		INTEGER{ currentVersion(1) } (0..255),
	messageID 		INTEGER{ denm(1),cam(2), poi(3), spat(4), map(5), ivi(6), ivs(7), ev-rsr(8)  } (0..255),
	messageID 		INTEGER{ denm(1),cam(2), poi(3), spat(4), map(5), ivi(6), ev-rsr(7)  } (0..255),
	stationID StationID
}

@@ -27,7 +27,7 @@ DeltaReferencePosition ::= SEQUENCE {
  deltaAltitude DeltaAltitude
}

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

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

@@ -36,7 +36,7 @@ Altitude ::= SEQUENCE {
 altitudeConfidence AltitudeConfidence
}

AltitudeValue ::= INTEGER { seaLevel(0), oneCentimeter(1), unavailable(800001) } (-100000..800001)
AltitudeValue ::= INTEGER { referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001) } (-100000..800001)

AltitudeConfidence ::= ENUMERATED {
alt-000-01 (0), 
@@ -57,17 +57,17 @@ outOfRange (14),
unavailable (15)
}

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

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

DeltaAltitude  ::= INTEGER { oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800) } (-12700..12800)


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

PathPoint ::= SEQUENCE {
@@ -75,7 +75,7 @@ PathPoint ::= SEQUENCE {
 pathDeltaTime PathDeltaTime OPTIONAL
}

PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (0..65535, ...) 
PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (1..65535, ...) 

PtActivation ::= SEQUENCE {
  ptActivationType PtActivationType,
@@ -138,7 +138,7 @@ SemiAxisLength ::= INTEGER{ oneCentimeter(1), outOfRange(4094), unavailable(4095
 
 AccidentSubCauseCode ::= INTEGER {unavailable(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8) } (0..255)
 
 RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), winterService(4), streetCleaning(5) }  (0..255)
 RoadworksSubCauseCode ::= INTEGER {unavailable(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6) }  (0..255)
 
 HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3) }  (0..255)
 
@@ -201,18 +201,18 @@ CurvatureConfidence ::= ENUMERATED {
 unavailable (7)
}

CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), transitionMode(2), ... }
CurvatureCalculationMode ::= ENUMERATED { yawRateUsed(0), yawRateNotUsed(1), unavailable(2), ... }

Heading ::= SEQUENCE {
 headingValue HeadingValue,
 headingConfidence HeadingConfidence
}

HeadingValue ::= INTEGER { wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3600) } (0..3600)
HeadingValue ::= INTEGER { wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601) } (0..3601)

HeadingConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), outOfRange(126), unavailable(127) } (1..127)
HeadingConfidence ::= INTEGER {  equalOrWithinZeroPointOneDegree (1),  equalOrWithinOneDegree (10), outOfRange(126), unavailable(127) } (1..127)

LaneNumber ::= INTEGER { offTheRoad(-1), hardShoulder(0),
LanePosition::= INTEGER { offTheRoad(-1), hardShoulder(0),
outermostDrivingLane(1), secondLaneFromOutside(2) } (-1..14)

ClosedLanes ::= SEQUENCE {
@@ -223,14 +223,14 @@ ClosedLanes ::= SEQUENCE {

HardShoulderStatus ::= ENUMERATED { availableForStopping(0), closed(1), availableForDriving(2) }

DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (1..14)) -- numbering matches LaneNumber numbering
DrivingLaneStatus ::= BIT STRING { outermostLaneClosed(1), secondLaneFromOutsideClosed(2) } (SIZE (1..14)) -- numbering matches LanePosition numbering


PerformanceClass ::= INTEGER { unavailable(0), performanceClassA(1), performanceClassB(2) } (0..7)  -- values in range 3-7 are reserved for later definition

SpeedValue ::= INTEGER { standstill(0), oneCentimeterPerSec(1), unavailable(16383)  } (0..16383)

SpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127)
SpeedConfidence ::= INTEGER { equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127) } (1..127)

VehicleMass ::= INTEGER  { hundredKg(1), unavailable(1024) } (1..1024) 

@@ -310,9 +310,9 @@ DangerousGoodsExtended ::= SEQUENCE {
   elevatedTemperature BOOLEAN,
   tunnelsRestricted   BOOLEAN,
   limitedQuantity     BOOLEAN,
   emergencyActionCode IA5String OPTIONAL,
   phoneNumber         IA5String OPTIONAL,
   companyName         UTF8String OPTIONAL
   emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,
   phoneNumber         IA5String (SIZE (1..24)) OPTIONAL,
   companyName         UTF8String (SIZE (1..24)) OPTIONAL
}


@@ -323,31 +323,31 @@ LightBarSirenInUse ::= BIT STRING {
 sirenActivated (1)
} (SIZE(2))

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

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

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

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

RequestResponseIndication ::= ENUMERATED { request(0), response(1) }

SpeedLimit ::= INTEGER { oneKmPerHour(1) } (0..255)
SpeedLimit ::= INTEGER { oneKmPerHour(1) } (1..255)

StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), over15Minutes(3) }
StationarySince ::= ENUMERATED { lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3) }

Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67)
Temperature ::= INTEGER { equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67) } (-60..67)

TrafficRule ::= ENUMERATED { noPassing(0),
 noPassingForTrucks(1), ...
 }

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

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

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

PositionOfOccupants ::= BIT STRING {
 row1LeftOccupied (0),
@@ -374,8 +374,9 @@ PositionOfOccupants ::= BIT STRING {
PositioningSolutionType ::= ENUMERATED { noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ... }

VehicleIdentification ::= SEQUENCE {
 wMInumber WMInumber,
 vDS VDS
 wMInumber WMInumber OPTIONAL,
 vDS VDS OPTIONAL,
 ...
}
 
WMInumber ::= IA5String (SIZE(1..3))
@@ -392,11 +393,11 @@ VehicleLength ::= SEQUENCE {
VehicleLengthValue  ::= INTEGER { tenCentimeters(1), outOfRange(1022), unavailable(1023) }  (1..1023)

VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), 
trailerPresenceIsUnknown(3) }
trailerPresenceIsUnknown(3), unavailable(4) }

VehicleWidth  ::= INTEGER { tenCentimeters(1), outOfRange(61), unavailable(62) }  (1..62)

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

EmergencyPriority ::= BIT STRING { requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1) } (SIZE(2))

@@ -410,14 +411,14 @@ RoadType ::= ENUMERATED {

SteeringWheelAngle::= SEQUENCE {
 steeringWheelAngleValue SteeringWheelAngleValue,
 steeringWheelConfidence SteeringWheelConfidence
 steeringWheelAngleConfidence SteeringWheelAngleConfidence
}

SteeringWheelAngleValue  ::= INTEGER { straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(511) } (-511..511)
SteeringWheelAngleValue  ::= INTEGER { straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512) } (-511..512)

SteeringWheelConfidence ::= INTEGER { withinOnePointFiveDegrees(1), outOfRange(126), unavailable(127) } (1..127)
SteeringWheelAngleConfidence ::= INTEGER { equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127) } (1..127)

TimestampIts ::= INTEGER { utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1) } (0..3153600000000)
TimestampIts ::= INTEGER { utcStartOf2004(0), oneMillisecAfterUTCStartOf2004(1) } (0..4398046511103)

VehicleRole ::= ENUMERATED { default(0), publicTransport(1), specialTransport(2), dangerousGoods(3), roadWork(4), rescue(5), emergency(6), safetyCar(7) }

@@ -426,7 +427,7 @@ YawRate::= SEQUENCE {
 yawRateConfidence YawRateConfidence
}

YawRateValue ::= INTEGER { straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767) } (-32767..32767)
YawRateValue ::= INTEGER { straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767) } (-32766..32767)
-- LSB units of 0.01 degrees per second

YawRateConfidence ::= ENUMERATED {
@@ -441,6 +442,60 @@ YawRateConfidence ::= ENUMERATED {
 unavailable (8)
}

ProtectedZoneType::=  ENUMERATED {
  cenDsrcTolling (0),
  ...
}

END
RelevanceDistance ::= ENUMERATED { lessThan50m(0), lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7) }


RelevanceTrafficDirection ::= ENUMERATED { allTrafficDirections(0), upstreamTraffic(1), downstreamTraffic(2), oppositeTraffic(3) }

TransmissionInterval ::= INTEGER { oneMilliSecond(1), tenSeconds(10000) } (1..10000)

ValidityDuration ::=	INTEGER { timeOfDetection(0), oneSecondAfterDetection(1) } (0..86400)

ActionID ::= SEQUENCE {
  originatingStationID StationID,
  sequenceNumber SequenceNumber
 }

ItineraryPath ::= SEQUENCE SIZE(1..40) OF ReferencePosition

ProtectedCommunicationZone ::=  SEQUENCE {
  protectedZoneType		ProtectedZoneType,
  expiryTime TimestampIts OPTIONAL,
  protectedZoneLatitude	Latitude,
  protectedZoneLongitude	Longitude,
  protectedZoneRadius       INTEGER {oneMeter(1)} (1..255,...) OPTIONAL
}

Traces ::= SEQUENCE SIZE(1..7) OF PathHistory

NumberOfOccupants ::= INTEGER { oneOccupant (1), unavailable(127) } (0 .. 127)

SequenceNumber ::=	INTEGER (0..65535)

PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar

RestrictedTypes ::= SEQUENCE (SIZE(1..3, ...)) OF StationType

EventHistory::= SEQUENCE (SIZE(1..23)) OF EventPoint

EventPoint ::= SEQUENCE {
  eventPosition DeltaReferencePosition,
  eventDeltaTime PathDeltaTime,
  informationQuality InformationQuality
}

ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..255)) OF ProtectedCommunicationZone 

CenDsrcTollingZonesVehicle ::= SEQUENCE (SIZE(1..5)) OF CenDsrcTollingZone

CenDsrcTollingZone ::=  SEQUENCE {
  protectedZoneLatitude				Latitude,
  protectedZoneLongitude			Longitude
}

END
 No newline at end of file