Vendor the ASN.1 modules the codecs are verified against; untrack IDE churn
asn1/ Three tests assert exact bytes - CamEncodeGoldenTest, DenmAirReceiveTest and SpatemUperCodecTest - and their expected values came from asn1tools compiled against ETSI modules that existed only as an untracked working copy on one machine. A golden-byte fixture nobody else can regenerate is a fixture nobody can safely touch, so the modules are now in the repo. Only the seven .asn files those tests need are copied, 576 KB of a 4.2 MB checkout; the upstream Rust parser is not used by this project at all. Verified sufficient in isolation: copied into an empty directory, all three specs compile and reproduce the committed golden CAM bytes byte-identically. Source is consider it GmbH's C-ITS-Parser (github.com/consider-it/C-ITS-Parser) at f457426, MIT licensed - LICENSE is retained alongside as that requires. The schemas themselves are ETSI's standard definitions; upstream's contribution is assembling them into a compilable set. asn1/README.md records the provenance, which module pairs with which message, and the rule that matters: never regenerate a golden fixture from this project's own encoder, because sharing a mistake between encoder and decoder is exactly the failure these files exist to catch. Doc references in the codecs and tests now point at asn1/ instead of the untracked checkout, and C-ITS-Parser/ is gitignored so the working copy beside the project is never picked up. Untracked local state - .idea/deploymentTargetSelector.xml rewrites itself on every deploy, so it has been showing as modified in essentially every commit. Along with deviceManager.xml, appInsightsSettings.xml and studiobot.xml it is per-machine state, not project configuration. - obu-firmware/sdkconfig.old is ESP-IDF build output - it is the previous sdkconfig, rewritten on every build. sdkconfig.defaults remains tracked, since that is the configuration actually chosen. All five stay on disk; only the tracking is removed. Also ignores .claude/settings.local.json, which is per-machine, while leaving the skills beside it committable as project knowledge.
This commit is contained in:
@@ -0,0 +1,511 @@
|
||||
ITS-Container {
|
||||
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2)
|
||||
}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
ItsPduHeader ::= SEQUENCE {
|
||||
protocolVersion INTEGER (0..255),
|
||||
messageID INTEGER{ denm(1), cam(2), poi(3), spatem(4), mapem(5), ivim(6), ev-rsr(7), tistpgtransaction(8), srem(9), ssem(10), evcsn(11), saem(12), rtcmem(13) } (0..255), -- Mantis #7209, #7005
|
||||
stationID StationID
|
||||
}
|
||||
|
||||
StationID ::= INTEGER(0..4294967295)
|
||||
|
||||
ReferencePosition ::= SEQUENCE {
|
||||
latitude Latitude,
|
||||
longitude Longitude,
|
||||
positionConfidenceEllipse PosConfidenceEllipse ,
|
||||
altitude Altitude
|
||||
}
|
||||
|
||||
DeltaReferencePosition ::= SEQUENCE {
|
||||
deltaLatitude DeltaLatitude,
|
||||
deltaLongitude DeltaLongitude,
|
||||
deltaAltitude DeltaAltitude
|
||||
}
|
||||
|
||||
Longitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(1800000001)} (-1800000000..1800000001)
|
||||
|
||||
Latitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unavailable(900000001)} (-900000000..900000001)
|
||||
|
||||
Altitude ::= SEQUENCE {
|
||||
altitudeValue AltitudeValue,
|
||||
altitudeConfidence AltitudeConfidence
|
||||
}
|
||||
|
||||
AltitudeValue ::= INTEGER {referenceEllipsoidSurface(0), oneCentimeter(1), unavailable(800001)} (-100000..800001)
|
||||
|
||||
AltitudeConfidence ::= ENUMERATED {
|
||||
alt-000-01 (0),
|
||||
alt-000-02 (1),
|
||||
alt-000-05 (2),
|
||||
alt-000-10 (3),
|
||||
alt-000-20 (4),
|
||||
alt-000-50 (5),
|
||||
alt-001-00 (6),
|
||||
alt-002-00 (7),
|
||||
alt-005-00 (8),
|
||||
alt-010-00 (9),
|
||||
alt-020-00 (10),
|
||||
alt-050-00 (11),
|
||||
alt-100-00 (12),
|
||||
alt-200-00 (13),
|
||||
outOfRange (14),
|
||||
unavailable (15)
|
||||
}
|
||||
|
||||
DeltaLongitude ::= INTEGER {oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unavailable(131072)} (-131071..131072)
|
||||
|
||||
DeltaLatitude ::= INTEGER {oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) , unavailable(131072)} (-131071..131072)
|
||||
|
||||
DeltaAltitude ::= INTEGER {oneCentimeterUp (1), oneCentimeterDown (-1), unavailable(12800)} (-12700..12800)
|
||||
|
||||
PosConfidenceEllipse ::= SEQUENCE {
|
||||
semiMajorConfidence SemiAxisLength,
|
||||
semiMinorConfidence SemiAxisLength,
|
||||
semiMajorOrientation HeadingValue
|
||||
}
|
||||
|
||||
PathPoint ::= SEQUENCE {
|
||||
pathPosition DeltaReferencePosition,
|
||||
pathDeltaTime PathDeltaTime OPTIONAL
|
||||
}
|
||||
|
||||
PathDeltaTime ::= INTEGER {tenMilliSecondsInPast(1)} (1..65535, ...)
|
||||
|
||||
PtActivation ::= SEQUENCE {
|
||||
ptActivationType PtActivationType,
|
||||
ptActivationData PtActivationData
|
||||
}
|
||||
|
||||
PtActivationType ::= INTEGER {undefinedCodingType(0), r09-16CodingType(1), vdv-50149CodingType(2)} (0..255)
|
||||
|
||||
PtActivationData ::= OCTET STRING (SIZE(1..20))
|
||||
|
||||
AccelerationControl ::= BIT STRING {
|
||||
brakePedalEngaged (0),
|
||||
gasPedalEngaged (1),
|
||||
emergencyBrakeEngaged (2),
|
||||
collisionWarningEngaged (3),
|
||||
accEngaged (4),
|
||||
cruiseControlEngaged (5),
|
||||
speedLimiterEngaged (6)
|
||||
} (SIZE(7))
|
||||
|
||||
|
||||
SemiAxisLength ::= INTEGER{oneCentimeter(1), outOfRange(4094), unavailable(4095)} (0..4095)
|
||||
|
||||
CauseCode ::= SEQUENCE {
|
||||
causeCode CauseCodeType,
|
||||
subCauseCode SubCauseCodeType,
|
||||
...
|
||||
}
|
||||
|
||||
CauseCodeType ::= INTEGER {
|
||||
reserved (0),
|
||||
trafficCondition (1),
|
||||
accident (2),
|
||||
roadworks (3),
|
||||
impassability (5),
|
||||
adverseWeatherCondition-Adhesion (6),
|
||||
aquaplannning (7),
|
||||
hazardousLocation-SurfaceCondition (9),
|
||||
hazardousLocation-ObstacleOnTheRoad (10),
|
||||
hazardousLocation-AnimalOnTheRoad (11),
|
||||
humanPresenceOnTheRoad (12),
|
||||
wrongWayDriving (14),
|
||||
rescueAndRecoveryWorkInProgress (15),
|
||||
adverseWeatherCondition-ExtremeWeatherCondition (17),
|
||||
adverseWeatherCondition-Visibility (18),
|
||||
adverseWeatherCondition-Precipitation (19),
|
||||
slowVehicle (26),
|
||||
dangerousEndOfQueue (27),
|
||||
vehicleBreakdown (91),
|
||||
postCrash (92),
|
||||
humanProblem (93),
|
||||
stationaryVehicle (94),
|
||||
emergencyVehicleApproaching (95),
|
||||
hazardousLocation-DangerousCurve (96),
|
||||
collisionRisk (97),
|
||||
signalViolation (98),
|
||||
dangerousSituation (99)
|
||||
} (0..255)
|
||||
|
||||
SubCauseCodeType ::= INTEGER (0..255)
|
||||
|
||||
TrafficConditionSubCauseCode ::= INTEGER {unavailable(0), increasedVolumeOfTraffic(1), trafficJamSlowlyIncreasing(2), trafficJamIncreasing(3), trafficJamStronglyIncreasing(4), trafficStationary(5), trafficJamSlightlyDecreasing(6), trafficJamDecreasing(7), trafficJamStronglyDecreasing(8)} (0..255)
|
||||
|
||||
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), shortTermStationaryRoadworks(4), streetCleaning(5), winterService(6)} (0..255)
|
||||
|
||||
HumanPresenceOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3)} (0..255)
|
||||
|
||||
WrongWayDrivingSubCauseCode ::= INTEGER {unavailable(0), wrongLane(1), wrongDirection(2)} (0..255)
|
||||
|
||||
AdverseWeatherCondition-ExtremeWeatherConditionSubCauseCode ::= INTEGER {unavailable(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6)} (0..255)
|
||||
|
||||
AdverseWeatherCondition-AdhesionSubCauseCode ::= INTEGER {unavailable(0), heavyFrostOnRoad(1), fuelOnRoad(2), mudOnRoad(3), snowOnRoad(4), iceOnRoad(5), blackIceOnRoad(6), oilOnRoad(7), looseChippings(8), instantBlackIce(9), roadsSalted(10)} (0..255)
|
||||
|
||||
AdverseWeatherCondition-VisibilitySubCauseCode ::= INTEGER {unavailable(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8)} (0..255)
|
||||
|
||||
AdverseWeatherCondition-PrecipitationSubCauseCode ::= INTEGER {unavailable(0), heavyRain(1), heavySnowfall(2), softHail(3)} (0..255)
|
||||
|
||||
SlowVehicleSubCauseCode ::= INTEGER {unavailable(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8)} (0..255)
|
||||
|
||||
StationaryVehicleSubCauseCode ::= INTEGER {unavailable(0), humanProblem(1), vehicleBreakdown(2), postCrash(3), publicTransportStop(4), carryingDangerousGoods(5)} (0..255)
|
||||
|
||||
HumanProblemSubCauseCode ::= INTEGER {unavailable(0), glycemiaProblem(1), heartProblem(2)} (0..255)
|
||||
|
||||
EmergencyVehicleApproachingSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2)} (0..255)
|
||||
|
||||
HazardousLocation-DangerousCurveSubCauseCode ::= INTEGER {unavailable(0), dangerousLeftTurnCurve(1), dangerousRightTurnCurve(2), multipleCurvesStartingWithUnknownTurningDirection(3), multipleCurvesStartingWithLeftTurn(4), multipleCurvesStartingWithRightTurn(5)} (0..255)
|
||||
|
||||
HazardousLocation-SurfaceConditionSubCauseCode ::= INTEGER {unavailable(0), rockfalls(1), earthquakeDamage(2), sewerCollapse(3), subsidence(4), snowDrifts(5), stormDamage(6), burstPipe(7), volcanoEruption(8), fallingIce(9)} (0..255)
|
||||
|
||||
HazardousLocation-ObstacleOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), shedLoad(1), partsOfVehicles(2), partsOfTyres(3), bigObjects(4), fallenTrees(5), hubCaps(6), waitingVehicles(7)} (0..255)
|
||||
|
||||
HazardousLocation-AnimalOnTheRoadSubCauseCode ::= INTEGER {unavailable(0), wildAnimals(1), herdOfAnimals(2), smallAnimals(3), largeAnimals(4)} (0..255)
|
||||
|
||||
CollisionRiskSubCauseCode ::= INTEGER {unavailable(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4)} (0..255)
|
||||
|
||||
SignalViolationSubCauseCode ::= INTEGER {unavailable(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3)} (0..255)
|
||||
|
||||
RescueAndRecoveryWorkInProgressSubCauseCode ::= INTEGER {unavailable(0), emergencyVehicles(1), rescueHelicopterLanding(2), policeActivityOngoing(3), medicalEmergencyOngoing(4), childAbductionInProgress(5)} (0..255)
|
||||
|
||||
DangerousEndOfQueueSubCauseCode ::= INTEGER {unavailable(0), suddenEndOfQueue(1), queueOverHill(2), queueAroundBend(3), queueInTunnel(4)} (0..255)
|
||||
|
||||
DangerousSituationSubCauseCode ::= INTEGER {unavailable(0), emergencyElectronicBrakeEngaged(1), preCrashSystemEngaged(2), espEngaged(3), absEngaged(4), aebEngaged(5), brakeWarningEngaged(6), collisionRiskWarningEngaged(7)} (0..255)
|
||||
|
||||
VehicleBreakdownSubCauseCode ::= INTEGER {unavailable(0), lackOfFuel (1), lackOfBatteryPower (2), engineProblem(3), transmissionProblem(4), engineCoolingProblem(5), brakingSystemProblem(6), steeringProblem(7), tyrePuncture(8), tyrePressureProblem(9)} (0..255)
|
||||
|
||||
PostCrashSubCauseCode ::= INTEGER {unavailable(0), accidentWithoutECallTriggered (1), accidentWithECallManuallyTriggered (2), accidentWithECallAutomaticallyTriggered (3), accidentWithECallTriggeredWithoutAccessToCellularNetwork(4)} (0..255)
|
||||
|
||||
Curvature ::= SEQUENCE {
|
||||
curvatureValue CurvatureValue,
|
||||
curvatureConfidence CurvatureConfidence
|
||||
}
|
||||
|
||||
CurvatureValue ::= INTEGER {straight(0), unavailable(1023)} (-1023..1023)
|
||||
|
||||
CurvatureConfidence ::= ENUMERATED {
|
||||
onePerMeter-0-00002 (0),
|
||||
onePerMeter-0-0001 (1),
|
||||
onePerMeter-0-0005 (2),
|
||||
onePerMeter-0-002 (3),
|
||||
onePerMeter-0-01 (4),
|
||||
onePerMeter-0-1 (5),
|
||||
outOfRange (6),
|
||||
unavailable (7)
|
||||
}
|
||||
|
||||
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(3601)} (0..3601)
|
||||
|
||||
HeadingConfidence ::= INTEGER {equalOrWithinZeroPointOneDegree (1), equalOrWithinOneDegree (10), outOfRange(126), unavailable(127)} (1..127)
|
||||
|
||||
LanePosition ::= INTEGER {offTheRoad(-1), innerHardShoulder(0),
|
||||
innermostDrivingLane(1), secondLaneFromInside(2), outerHardShoulder(14) } (-1..14)
|
||||
|
||||
ClosedLanes ::= SEQUENCE {
|
||||
innerhardShoulderStatus HardShoulderStatus OPTIONAL,
|
||||
outerhardShoulderStatus HardShoulderStatus OPTIONAL,
|
||||
drivingLaneStatus DrivingLaneStatus OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HardShoulderStatus ::= ENUMERATED {availableForStopping(0), closed(1), availableForDriving(2)}
|
||||
|
||||
DrivingLaneStatus ::= BIT STRING (SIZE (1..13))
|
||||
|
||||
|
||||
PerformanceClass ::= INTEGER {unavailable(0), performanceClassA(1), performanceClassB(2)} (0..7)
|
||||
|
||||
SpeedValue ::= INTEGER {standstill(0), oneCentimeterPerSec(1), unavailable(16383)} (0..16383)
|
||||
|
||||
SpeedConfidence ::= INTEGER {equalOrWithinOneCentimeterPerSec(1), equalOrWithinOneMeterPerSec(100), outOfRange(126), unavailable(127)} (1..127)
|
||||
|
||||
VehicleMass ::= INTEGER {hundredKg(1), unavailable(1024)} (1..1024)
|
||||
|
||||
Speed ::= SEQUENCE {
|
||||
speedValue SpeedValue,
|
||||
speedConfidence SpeedConfidence
|
||||
}
|
||||
|
||||
DriveDirection ::= ENUMERATED {forward (0), backward (1), unavailable (2)}
|
||||
|
||||
EmbarkationStatus ::= BOOLEAN
|
||||
|
||||
LongitudinalAcceleration ::= SEQUENCE {
|
||||
longitudinalAccelerationValue LongitudinalAccelerationValue,
|
||||
longitudinalAccelerationConfidence AccelerationConfidence
|
||||
}
|
||||
|
||||
LongitudinalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredForward(1), pointOneMeterPerSecSquaredBackward(-1), unavailable(161)} (-160 .. 161)
|
||||
|
||||
AccelerationConfidence ::= INTEGER {pointOneMeterPerSecSquared(1), outOfRange(101), unavailable(102)} (0 .. 102)
|
||||
|
||||
LateralAcceleration ::= SEQUENCE {
|
||||
lateralAccelerationValue LateralAccelerationValue,
|
||||
lateralAccelerationConfidence AccelerationConfidence
|
||||
}
|
||||
|
||||
LateralAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredToRight(-1), pointOneMeterPerSecSquaredToLeft(1), unavailable(161)} (-160 .. 161)
|
||||
|
||||
VerticalAcceleration ::= SEQUENCE {
|
||||
verticalAccelerationValue VerticalAccelerationValue,
|
||||
verticalAccelerationConfidence AccelerationConfidence
|
||||
}
|
||||
|
||||
VerticalAccelerationValue ::= INTEGER {pointOneMeterPerSecSquaredUp(1), pointOneMeterPerSecSquaredDown(-1), unavailable(161)} (-160 .. 161)
|
||||
|
||||
StationType ::= INTEGER {unknown(0), pedestrian(1), cyclist(2), moped(3), motorcycle(4), passengerCar(5), bus(6),
|
||||
lightTruck(7), heavyTruck(8), trailer(9), specialVehicles(10), tram(11), roadSideUnit(15)} (0..255)
|
||||
|
||||
ExteriorLights ::= BIT STRING {
|
||||
lowBeamHeadlightsOn (0),
|
||||
highBeamHeadlightsOn (1),
|
||||
leftTurnSignalOn (2),
|
||||
rightTurnSignalOn (3),
|
||||
daytimeRunningLightsOn (4),
|
||||
reverseLightOn (5),
|
||||
fogLightOn (6),
|
||||
parkingLightsOn (7)
|
||||
} (SIZE(8))
|
||||
|
||||
DangerousGoodsBasic::= ENUMERATED {
|
||||
explosives1(0),
|
||||
explosives2(1),
|
||||
explosives3(2),
|
||||
explosives4(3),
|
||||
explosives5(4),
|
||||
explosives6(5),
|
||||
flammableGases(6),
|
||||
nonFlammableGases(7),
|
||||
toxicGases(8),
|
||||
flammableLiquids(9),
|
||||
flammableSolids(10),
|
||||
substancesLiableToSpontaneousCombustion(11),
|
||||
substancesEmittingFlammableGasesUponContactWithWater(12),
|
||||
oxidizingSubstances(13),
|
||||
organicPeroxides(14),
|
||||
toxicSubstances(15),
|
||||
infectiousSubstances(16),
|
||||
radioactiveMaterial(17),
|
||||
corrosiveSubstances(18),
|
||||
miscellaneousDangerousSubstances(19)
|
||||
}
|
||||
|
||||
DangerousGoodsExtended ::= SEQUENCE {
|
||||
dangerousGoodsType DangerousGoodsBasic,
|
||||
unNumber INTEGER (0..9999),
|
||||
elevatedTemperature BOOLEAN,
|
||||
tunnelsRestricted BOOLEAN,
|
||||
limitedQuantity BOOLEAN,
|
||||
emergencyActionCode IA5String (SIZE (1..24)) OPTIONAL,
|
||||
phoneNumber PhoneNumber OPTIONAL,
|
||||
companyName UTF8String (SIZE (1..24)) OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
SpecialTransportType ::= BIT STRING {heavyLoad(0), excessWidth(1), excessLength(2), excessHeight(3)} (SIZE(4))
|
||||
|
||||
LightBarSirenInUse ::= BIT STRING {
|
||||
lightBarActivated (0),
|
||||
sirenActivated (1)
|
||||
} (SIZE(2))
|
||||
|
||||
HeightLonCarr ::= INTEGER {oneCentimeter(1), unavailable(100)} (1..100)
|
||||
|
||||
PosLonCarr ::= INTEGER {oneCentimeter(1), unavailable(127)} (1..127)
|
||||
|
||||
PosPillar ::= INTEGER {tenCentimeters(1), unavailable(30)} (1..30)
|
||||
|
||||
PosCentMass ::= INTEGER {tenCentimeters(1), unavailable(63)} (1..63)
|
||||
|
||||
RequestResponseIndication ::= ENUMERATED {request(0), response(1)}
|
||||
|
||||
SpeedLimit ::= INTEGER {oneKmPerHour(1)} (1..255)
|
||||
|
||||
StationarySince ::= ENUMERATED {lessThan1Minute(0), lessThan2Minutes(1), lessThan15Minutes(2), equalOrGreater15Minutes(3)}
|
||||
|
||||
Temperature ::= INTEGER {equalOrSmallerThanMinus60Deg (-60), oneDegreeCelsius(1), equalOrGreaterThan67Deg(67)} (-60..67)
|
||||
|
||||
TrafficRule ::= ENUMERATED {noPassing(0), noPassingForTrucks(1), passToRight(2), passToLeft(3), ...
|
||||
}
|
||||
|
||||
WheelBaseVehicle ::= INTEGER {tenCentimeters(1), unavailable(127)} (1..127)
|
||||
|
||||
TurningRadius ::= INTEGER {point4Meters(1), unavailable(255)} (1..255)
|
||||
|
||||
PosFrontAx ::= INTEGER {tenCentimeters(1), unavailable(20)} (1..20)
|
||||
|
||||
PositionOfOccupants ::= BIT STRING {
|
||||
row1LeftOccupied (0),
|
||||
row1RightOccupied (1),
|
||||
row1MidOccupied (2),
|
||||
row1NotDetectable (3),
|
||||
row1NotPresent (4),
|
||||
row2LeftOccupied (5),
|
||||
row2RightOccupied (6),
|
||||
row2MidOccupied (7),
|
||||
row2NotDetectable (8),
|
||||
row2NotPresent (9),
|
||||
row3LeftOccupied (10),
|
||||
row3RightOccupied (11),
|
||||
row3MidOccupied (12),
|
||||
row3NotDetectable (13),
|
||||
row3NotPresent (14),
|
||||
row4LeftOccupied (15),
|
||||
row4RightOccupied (16),
|
||||
row4MidOccupied (17),
|
||||
row4NotDetectable (18),
|
||||
row4NotPresent (19)} (SIZE(20))
|
||||
|
||||
PositioningSolutionType ::= ENUMERATED {noPositioningSolution(0), sGNSS(1), dGNSS(2), sGNSSplusDR(3), dGNSSplusDR(4), dR(5), ...}
|
||||
|
||||
VehicleIdentification ::= SEQUENCE {
|
||||
wMInumber WMInumber OPTIONAL,
|
||||
vDS VDS OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
WMInumber ::= IA5String (SIZE(1..3))
|
||||
|
||||
VDS ::= IA5String (SIZE(6))
|
||||
|
||||
EnergyStorageType ::= BIT STRING {hydrogenStorage(0), electricEnergyStorage(1), liquidPropaneGas(2), compressedNaturalGas(3), diesel(4), gasoline(5), ammonia(6)} (SIZE(7))
|
||||
|
||||
VehicleLength ::= SEQUENCE {
|
||||
vehicleLengthValue VehicleLengthValue,
|
||||
vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication
|
||||
}
|
||||
|
||||
VehicleLengthValue ::= INTEGER {tenCentimeters(1), outOfRange(1022), unavailable(1023)} (1..1023)
|
||||
|
||||
VehicleLengthConfidenceIndication ::= ENUMERATED {noTrailerPresent(0), trailerPresentWithKnownLength(1), trailerPresentWithUnknownLength(2), trailerPresenceIsUnknown(3), unavailable(4)}
|
||||
|
||||
VehicleWidth ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62)
|
||||
|
||||
PathHistory::= SEQUENCE (SIZE(0..40)) OF PathPoint
|
||||
|
||||
EmergencyPriority ::= BIT STRING {requestForRightOfWay(0), requestForFreeCrossingAtATrafficLight(1)} (SIZE(2))
|
||||
|
||||
InformationQuality ::= INTEGER {unavailable(0), lowest(1), highest(7)} (0..7)
|
||||
|
||||
RoadType ::= ENUMERATED {
|
||||
urban-NoStructuralSeparationToOppositeLanes(0),
|
||||
urban-WithStructuralSeparationToOppositeLanes(1),
|
||||
nonUrban-NoStructuralSeparationToOppositeLanes(2),
|
||||
nonUrban-WithStructuralSeparationToOppositeLanes(3)}
|
||||
|
||||
SteeringWheelAngle ::= SEQUENCE {
|
||||
steeringWheelAngleValue SteeringWheelAngleValue,
|
||||
steeringWheelAngleConfidence SteeringWheelAngleConfidence
|
||||
}
|
||||
|
||||
SteeringWheelAngleValue ::= INTEGER {straight(0), onePointFiveDegreesToRight(-1), onePointFiveDegreesToLeft(1), unavailable(512)} (-511..512)
|
||||
|
||||
SteeringWheelAngleConfidence ::= INTEGER {equalOrWithinOnePointFiveDegree (1), outOfRange(126), unavailable(127)} (1..127)
|
||||
|
||||
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), agriculture(8), commercial(9), military(10), roadOperator(11), taxi(12), reserved1(13), reserved2(14), reserved3(15)}
|
||||
|
||||
YawRate::= SEQUENCE {
|
||||
yawRateValue YawRateValue,
|
||||
yawRateConfidence YawRateConfidence
|
||||
}
|
||||
|
||||
YawRateValue ::= INTEGER {straight(0), degSec-000-01ToRight(-1), degSec-000-01ToLeft(1), unavailable(32767)} (-32766..32767)
|
||||
|
||||
YawRateConfidence ::= ENUMERATED {
|
||||
degSec-000-01 (0),
|
||||
degSec-000-05 (1),
|
||||
degSec-000-10 (2),
|
||||
degSec-001-00 (3),
|
||||
degSec-005-00 (4),
|
||||
degSec-010-00 (5),
|
||||
degSec-100-00 (6),
|
||||
outOfRange (7),
|
||||
unavailable (8)
|
||||
}
|
||||
|
||||
ProtectedZoneType::= ENUMERATED { permanentCenDsrcTolling (0), ..., temporaryCenDsrcTolling (1) }
|
||||
|
||||
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 ProtectedZoneRadius OPTIONAL,
|
||||
protectedZoneID ProtectedZoneID 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 OPTIONAL,
|
||||
informationQuality InformationQuality
|
||||
}
|
||||
|
||||
ProtectedCommunicationZonesRSU ::= SEQUENCE (SIZE(1..16)) OF ProtectedCommunicationZone
|
||||
|
||||
|
||||
|
||||
CenDsrcTollingZone ::= SEQUENCE {
|
||||
protectedZoneLatitude Latitude,
|
||||
protectedZoneLongitude Longitude,
|
||||
cenDsrcTollingZoneID CenDsrcTollingZoneID OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ProtectedZoneRadius ::= INTEGER {oneMeter(1)} (1..255,...)
|
||||
|
||||
ProtectedZoneID ::= INTEGER (0.. 134217727)
|
||||
|
||||
CenDsrcTollingZoneID ::= ProtectedZoneID
|
||||
|
||||
DigitalMap ::= SEQUENCE (SIZE(1..256)) OF ReferencePosition
|
||||
|
||||
OpeningDaysHours ::= UTF8String
|
||||
|
||||
PhoneNumber ::= NumericString (SIZE(1..16))
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user