obu-firmware builds against the vanetza-idf C-ITS library, which until now came from the colleague's microbu-esp32c5 tree beside the repository and was not tracked here, so a clone of this repository could not build the firmware it ships. The library alone is now part of obu-firmware, as obu-firmware/external/vanetza-idf: their external/vanetza-idf at commit cf4b99f, unchanged (9775 files; see its PROVENANCE.md). CMake takes it from there by default; -DVANETZA_IDF_DIR still points the build elsewhere. The rest of the colleague's tree (their own VAM firmware, PKI tooling, station-link Python tools, the V2X2MAP bridge) stays out of this repository and gitignored; nothing is pushed to their repository. NOTES.md, docs/06, TODO.md and the pcap verifier's usage line point at the new location.
373 lines
14 KiB
Plaintext
373 lines
14 KiB
Plaintext
CPM-PDU-Descriptions {
|
|
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) tr (103562) cpm (1) version (1)
|
|
}
|
|
|
|
DEFINITIONS AUTOMATIC TAGS ::=
|
|
|
|
BEGIN
|
|
|
|
IMPORTS ItsPduHeader, Heading, ReferencePosition, Speed, DriveDirection, LongitudinalAcceleration, LateralAcceleration, VerticalAcceleration, StationType, VehicleLength, VehicleWidth, YawRate, SpeedConfidence
|
|
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }
|
|
IntersectionReferenceID, LaneID, NodeOffsetPointXY, Offset-B10, Offset-B11, Offset-B12, Offset-B13, Offset-B14, Offset-B16, RoadSegmentReferenceID, VehicleHeight
|
|
FROM DSRC { iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2) }
|
|
GenerationDeltaTime FROM CAM-PDU-Descriptions { itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) en(302637) cam(2) version(2)} ;
|
|
|
|
-- The root data frame for collective perception message
|
|
CPM ::= SEQUENCE {
|
|
header ItsPduHeader,
|
|
cpm CollectivePerceptionMessage
|
|
}
|
|
|
|
CollectivePerceptionMessage ::= SEQUENCE {
|
|
generationDeltaTime GenerationDeltaTime,
|
|
cpmParameters CpmParameters
|
|
}
|
|
|
|
CpmParameters ::= SEQUENCE {
|
|
managementContainer CpmManagementContainer,
|
|
stationDataContainer StationDataContainer OPTIONAL,
|
|
sensorInformationContainer SensorInformationContainer OPTIONAL,
|
|
perceivedObjectContainer PerceivedObjectContainer OPTIONAL,
|
|
freeSpaceAddendumContainer FreeSpaceAddendumContainer OPTIONAL,
|
|
numberOfPerceivedObjects NumberOfPerceivedObjects,
|
|
...
|
|
}
|
|
|
|
CpmManagementContainer ::= SEQUENCE {
|
|
stationType StationType,
|
|
perceivedObjectContainerSegmentInfo PerceivedObjectContainerSegmentInfo OPTIONAL,
|
|
referencePosition ReferencePosition,
|
|
...
|
|
}
|
|
|
|
StationDataContainer ::= CHOICE {
|
|
originatingVehicleContainer OriginatingVehicleContainer,
|
|
originatingRSUContainer OriginatingRSUContainer,
|
|
...
|
|
}
|
|
|
|
OriginatingVehicleContainer ::= SEQUENCE {
|
|
heading Heading,
|
|
speed Speed,
|
|
vehicleOrientationAngle WGS84Angle OPTIONAL,
|
|
driveDirection DriveDirection DEFAULT forward,
|
|
longitudinalAcceleration LongitudinalAcceleration OPTIONAL,
|
|
lateralAcceleration LateralAcceleration OPTIONAL,
|
|
verticalAcceleration VerticalAcceleration OPTIONAL,
|
|
yawRate YawRate OPTIONAL,
|
|
pitchAngle CartesianAngle OPTIONAL,
|
|
rollAngle CartesianAngle OPTIONAL,
|
|
vehicleLength VehicleLength OPTIONAL,
|
|
vehicleWidth VehicleWidth OPTIONAL,
|
|
vehicleHeight VehicleHeight OPTIONAL,
|
|
trailerDataContainer TrailerDataContainer OPTIONAL,
|
|
...
|
|
}
|
|
|
|
OriginatingRSUContainer ::= CHOICE {
|
|
intersectionReferenceId IntersectionReferenceID,
|
|
roadSegmentReferenceId RoadSegmentReferenceID,
|
|
...
|
|
}
|
|
|
|
SensorInformationContainer ::= SEQUENCE SIZE(1..128, ...) OF SensorInformation
|
|
|
|
SensorInformation ::= SEQUENCE {
|
|
sensorID Identifier,
|
|
type SensorType,
|
|
detectionArea DetectionArea,
|
|
freeSpaceConfidence FreeSpaceConfidence OPTIONAL,
|
|
...
|
|
}
|
|
|
|
PerceivedObjectContainer ::= SEQUENCE SIZE(1..128, ...) OF PerceivedObject
|
|
|
|
PerceivedObject ::= SEQUENCE {
|
|
objectID Identifier,
|
|
sensorIDList SensorIdList OPTIONAL,
|
|
timeOfMeasurement TimeOfMeasurement,
|
|
objectAge ObjectAge OPTIONAL,
|
|
objectConfidence ObjectConfidence DEFAULT 0,
|
|
xDistance ObjectDistanceWithConfidence,
|
|
yDistance ObjectDistanceWithConfidence,
|
|
zDistance ObjectDistanceWithConfidence OPTIONAL,
|
|
xSpeed SpeedExtended,
|
|
ySpeed SpeedExtended,
|
|
zSpeed SpeedExtended OPTIONAL,
|
|
xAcceleration LongitudinalAcceleration OPTIONAL,
|
|
yAcceleration LateralAcceleration OPTIONAL,
|
|
zAcceleration VerticalAcceleration OPTIONAL,
|
|
yawAngle CartesianAngle OPTIONAL,
|
|
planarObjectDimension1 ObjectDimension OPTIONAL,
|
|
planarObjectDimension2 ObjectDimension OPTIONAL,
|
|
verticalObjectDimension ObjectDimension OPTIONAL,
|
|
objectRefPoint ObjectRefPoint DEFAULT 0,
|
|
dynamicStatus DynamicStatus OPTIONAL,
|
|
classification ObjectClassDescription OPTIONAL,
|
|
matchedPosition MatchedPosition OPTIONAL,
|
|
...
|
|
}
|
|
|
|
DetectionArea ::= CHOICE {
|
|
vehicleSensor VehicleSensor,
|
|
stationarySensorRadial AreaRadial,
|
|
stationarySensorPolygon AreaPolygon,
|
|
stationarySensorCircular AreaCircular,
|
|
stationarySensorEllipse AreaEllipse,
|
|
stationarySensorRectangle AreaRectangle,
|
|
...
|
|
}
|
|
|
|
VehicleSensor ::= SEQUENCE {
|
|
refPointId RefPointId DEFAULT 0,
|
|
xSensorOffset XSensorOffset,
|
|
ySensorOffset YSensorOffset,
|
|
zSensorOffset ZSensorOffset OPTIONAL,
|
|
vehicleSensorPropertyList VehicleSensorPropertyList,
|
|
...
|
|
}
|
|
|
|
VehicleSensorPropertyList ::= SEQUENCE SIZE(1..10) OF VehicleSensorProperties
|
|
|
|
VehicleSensorProperties ::= SEQUENCE {
|
|
range Range,
|
|
horizontalOpeningAngleStart CartesianAngleValue,
|
|
horizontalOpeningAngleEnd CartesianAngleValue,
|
|
verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
|
|
verticalOpeningAngleEnd CartesianAngleValue OPTIONAL,
|
|
...
|
|
}
|
|
|
|
AreaCircular ::= SEQUENCE {
|
|
nodeCenterPoint OffsetPoint OPTIONAL,
|
|
radius Radius
|
|
}
|
|
|
|
AreaEllipse ::= SEQUENCE {
|
|
nodeCenterPoint OffsetPoint OPTIONAL,
|
|
semiMinorRangeLength SemiRangeLength,
|
|
semiMajorRangeLength SemiRangeLength,
|
|
semiMajorRangeOrientation WGS84AngleValue,
|
|
semiHeight SemiRangeLength OPTIONAL
|
|
}
|
|
|
|
AreaRectangle ::= SEQUENCE {
|
|
nodeCenterPoint OffsetPoint OPTIONAL,
|
|
semiMajorRangeLength SemiRangeLength,
|
|
semiMinorRangeLength SemiRangeLength,
|
|
semiMajorRangeOrientation WGS84AngleValue,
|
|
semiHeight SemiRangeLength OPTIONAL
|
|
}
|
|
|
|
AreaPolygon ::= SEQUENCE {
|
|
polyPointList PolyPointList
|
|
}
|
|
|
|
PolyPointList ::= SEQUENCE (SIZE(3..16, ...)) OF OffsetPoint
|
|
|
|
AreaRadial ::= SEQUENCE {
|
|
range Range,
|
|
stationaryHorizontalOpeningAngleStart WGS84AngleValue,
|
|
stationaryHorizontalOpeningAngleEnd WGS84AngleValue,
|
|
verticalOpeningAngleStart CartesianAngleValue OPTIONAL,
|
|
verticalOpeningAngleEnd CartesianAngleValue OPTIONAL,
|
|
sensorPositionOffset OffsetPoint OPTIONAL,
|
|
sensorHeight SensorHeight OPTIONAL,
|
|
...
|
|
}
|
|
|
|
FreeSpaceAddendumContainer ::= SEQUENCE SIZE(1..128, ...) OF FreeSpaceAddendum
|
|
|
|
FreeSpaceAddendum ::= SEQUENCE {
|
|
freeSpaceConfidence FreeSpaceConfidence,
|
|
freeSpaceArea FreeSpaceArea,
|
|
sensorIDList SensorIdList OPTIONAL,
|
|
shadowingApplies ShadowingApplies DEFAULT TRUE,
|
|
...
|
|
}
|
|
|
|
FreeSpaceArea ::= CHOICE {
|
|
freeSpacePolygon AreaPolygon,
|
|
freeSpaceCircular AreaCircular,
|
|
freeSpaceEllipse AreaEllipse,
|
|
freeSpaceRectangle AreaRectangle,
|
|
...
|
|
}
|
|
|
|
ObjectDistanceWithConfidence ::= SEQUENCE {
|
|
value DistanceValue,
|
|
confidence DistanceConfidence
|
|
}
|
|
|
|
ObjectDimension ::= SEQUENCE {
|
|
value ObjectDimensionValue,
|
|
confidence ObjectDimensionConfidence
|
|
}
|
|
|
|
CartesianAngle ::= SEQUENCE {
|
|
value CartesianAngleValue,
|
|
confidence AngleConfidence
|
|
}
|
|
|
|
WGS84Angle ::= SEQUENCE {
|
|
value WGS84AngleValue,
|
|
confidence AngleConfidence
|
|
}
|
|
|
|
SpeedExtended ::= SEQUENCE {
|
|
value SpeedValueExtended,
|
|
confidence SpeedConfidence
|
|
}
|
|
|
|
SensorIdList ::= SEQUENCE SIZE(1..128, ...) OF Identifier
|
|
|
|
TrailerDataContainer ::= SEQUENCE SIZE(1..2) OF TrailerData
|
|
|
|
TrailerData ::= SEQUENCE {
|
|
refPointId RefPointId,
|
|
hitchPointOffset HitchPointOffset,
|
|
frontOverhang FrontOverhang,
|
|
rearOverhang RearOverhang,
|
|
trailerWidth VehicleWidth OPTIONAL,
|
|
hitchAngle CartesianAngle OPTIONAL,
|
|
...
|
|
}
|
|
|
|
LongitudinalLanePosition ::= SEQUENCE {
|
|
longitudinalLanePositionValue LongitudinalLanePositionValue,
|
|
longitudinalLanePositionConfidence LongitudinalLanePositionConfidence
|
|
}
|
|
|
|
MatchedPosition ::= SEQUENCE {
|
|
laneID LaneID OPTIONAL,
|
|
longitudinalLanePosition LongitudinalLanePosition OPTIONAL,
|
|
...
|
|
}
|
|
|
|
PerceivedObjectContainerSegmentInfo ::= SEQUENCE {
|
|
totalMsgSegments SegmentCount,
|
|
thisSegmentNum SegmentCount
|
|
}
|
|
|
|
ObjectClassDescription ::= SEQUENCE (SIZE(1..8)) OF ObjectClass
|
|
|
|
ObjectClass ::= SEQUENCE {
|
|
confidence ClassConfidence,
|
|
class CHOICE {
|
|
vehicle VehicleSubclass,
|
|
person PersonSubclass,
|
|
animal AnimalSubclass,
|
|
other OtherSubclass
|
|
}
|
|
}
|
|
|
|
VehicleSubclass ::= SEQUENCE {
|
|
type VehicleSubclassType DEFAULT 0,
|
|
confidence ClassConfidence DEFAULT 0
|
|
}
|
|
|
|
PersonSubclass ::= SEQUENCE {
|
|
type PersonSubclassType DEFAULT 0,
|
|
confidence ClassConfidence DEFAULT 0
|
|
}
|
|
|
|
AnimalSubclass ::= SEQUENCE {
|
|
type AnimalSubclassType DEFAULT 0,
|
|
confidence ClassConfidence DEFAULT 0
|
|
}
|
|
|
|
OtherSubclass ::= SEQUENCE {
|
|
type OtherSublassType DEFAULT 0,
|
|
confidence ClassConfidence DEFAULT 0
|
|
}
|
|
|
|
OffsetPoint ::= SEQUENCE {
|
|
nodeOffsetPointxy NodeOffsetPointXY (WITH COMPONENTS {..., node-LatLon ABSENT, regional ABSENT}),
|
|
nodeOffsetPointZ NodeOffsetPointZ OPTIONAL
|
|
}
|
|
|
|
NodeOffsetPointZ ::= CHOICE {
|
|
node-Z1 Offset-B10, -- node is within 5.11m of last node
|
|
node-Z2 Offset-B11, -- node is within 10.23m of last node
|
|
node-Z3 Offset-B12, -- node is within 20.47m of last node
|
|
node-Z4 Offset-B13, -- node is within 40.96m of last node
|
|
node-Z5 Offset-B14, -- node is within 81.91m of last node
|
|
node-Z6 Offset-B16 -- node is within 327.67m of last node
|
|
}
|
|
|
|
AnimalSubclassType ::= INTEGER {unknown(0)} (0..255)
|
|
|
|
ClassConfidence ::= INTEGER {unknown(0), onePercent(1), oneHundredPercent(100), unavailable(101)} (0..101)
|
|
|
|
WGS84AngleValue ::= INTEGER {wgs84North(0), wgs84East(900), wgs84South(1800), wgs84West(2700), unavailable(3601)} (0..3601)
|
|
|
|
CartesianAngleValue ::= INTEGER {zeroPointOneDegree(1), oneDegree(10), unavailable(3601)} (0..3601)
|
|
|
|
AngleConfidence ::= INTEGER {zeroPointOneDegree (1), oneDegree (10), outOfRange(126), unavailable(127)} (1..127)
|
|
|
|
SemiRangeLength ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..10000)
|
|
|
|
DistanceValue ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100)} (-132768..132767)
|
|
|
|
DistanceConfidence ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100), outOfRange(101), unavailable(102)} (0..102)
|
|
|
|
DynamicStatus ::= INTEGER {dynamic(0), hasBeenDynamic(1), static(2)} (0..2)
|
|
|
|
HitchPointOffset ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..100)
|
|
|
|
FrontOverhang ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..50)
|
|
|
|
FreeSpaceConfidence ::= INTEGER {unknown(0), onePercent(1), oneHundredPercent(100), unavailable(101)} (0..101)
|
|
|
|
LongitudinalLanePositionValue ::= INTEGER {zeroPointOneMeter(1)} (0..32767)
|
|
|
|
LongitudinalLanePositionConfidence ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100), outOfRange(101), unavailable(102)} (0..102)
|
|
|
|
ObjectAge ::= INTEGER {oneMiliSec(1)} (0..1500)
|
|
|
|
ObjectConfidence ::= INTEGER {unknown(0), onePercent(1), oneHundredPercent(100), unavailable(101)} (0..101)
|
|
|
|
ObjectDimensionValue ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..1023)
|
|
|
|
ObjectDimensionConfidence ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100), outOfRange(101), unavailable(102)} (0..102)
|
|
|
|
ObjectRefPoint ::= INTEGER {mid(0), bottomLeft(1), midLeft(2), topLeft(3), bottomMid(4), topMid(5), bottomRight(6), midRight(7), topRight(8)} (0..8)
|
|
|
|
OtherSublassType ::= INTEGER {unknown(0), roadSideUnit(1)} (0..255)
|
|
|
|
PersonSubclassType ::= INTEGER {unknown(0), pedestrian(1), personInWheelchair(2), cyclist(3), personWithStroller(4), personOnSkates(5), personGroup(6)} (0..255)
|
|
|
|
Radius ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..10000)
|
|
|
|
Range ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..10000)
|
|
|
|
RearOverhang ::= INTEGER {zeroPointOneMeter(1), oneMeter(10)} (0..150)
|
|
|
|
RefPointId ::= INTEGER (0..255)
|
|
|
|
SensorHeight ::= INTEGER {zeroPointZeroOneMeter(1)} (-5000..5000)
|
|
|
|
ShadowingApplies ::= BOOLEAN
|
|
|
|
Identifier ::= INTEGER (0..255)
|
|
|
|
NumberOfPerceivedObjects ::= INTEGER (0..255)
|
|
|
|
SensorType ::= INTEGER {undefined(0), radar(1), lidar(2), monovideo(3), stereovision(4), nightvision(5), ultrasonic(6), pmd(7), fusion(8), inductionloop(9), sphericalCamera(10), itssaggregation(11)} (0..15)
|
|
|
|
SegmentCount ::= INTEGER(1..127)
|
|
|
|
SpeedValueExtended ::= INTEGER {standstill(0), oneCentimeterPerSec(1),unavailable(16383)} (-16383..16383)
|
|
|
|
TimeOfMeasurement ::= INTEGER {oneMilliSecond(1)} (-1500..1500)
|
|
|
|
VehicleSubclassType ::= INTEGER {unknown(0), moped(1), motorcycle(2), passengerCar(3), bus(4), lightTruck(5), heavyTruck(6), trailer(7), specialVehicles(8), tram(9), emergencyVehicle(10), agricultural(11)} (0..255)
|
|
|
|
XSensorOffset ::= INTEGER {negativeZeroPointZeroOneMeter(-1), negativeOneMeter(-100)} (-5000..0)
|
|
|
|
YSensorOffset ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100)} (-1000..1000)
|
|
|
|
ZSensorOffset ::= INTEGER {zeroPointZeroOneMeter(1), oneMeter(100)} (0..1000)
|
|
|
|
END
|