obu-firmware builds against vanetza-idf from microbu-esp32c5/external, but that tree was gitignored, so a clone of this repository could not build the firmware it ships. It is now committed here as ordinary files in its own folder, microbu-esp32c5/: the colleague's commit cf4b99f plus the V2X2MAP bridge's signature verification (--trust) used on the bench. Nothing is fetched from or pushed to the colleague's repository; this repository and its remotes carry everything. The folder's own .gitignore keeps build output, downloaded components and private key material out, as it did there; the committed file set is identical to that repository's tracked files. The ESP32-C5 is still flashed from obu-firmware/, which only takes vanetza-idf from microbu-esp32c5/, so the two stay separate folders. FLASHING.md says how to take a newer version of the colleague's tree (copy it over the folder, rebuild, test, commit).
172 lines
5.9 KiB
Plaintext
172 lines
5.9 KiB
Plaintext
CPM-PDU-Descriptions { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) major-version-1 (1) minor-version-1(1)}
|
|
|
|
DEFINITIONS AUTOMATIC TAGS ::=
|
|
|
|
BEGIN
|
|
|
|
IMPORTS
|
|
|
|
ItsPduHeader, MessageRateHz, MessageSegmentationInfo, OrdinalNumber1B, ReferencePosition, StationType, TimestampIts
|
|
FROM ETSI-ITS-CDD {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) major-version-4 (4) minor-version-3 (3)}
|
|
WITH SUCCESSORS
|
|
|
|
OriginatingRsuContainer, OriginatingVehicleContainer
|
|
FROM CPM-OriginatingStationContainers {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationContainers (2) major-version-1 (1) minor-version-1(1)}
|
|
WITH SUCCESSORS
|
|
|
|
SensorInformationContainer
|
|
FROM CPM-SensorInformationContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformationContainer (3) major-version-1 (1) minor-version-1(1)}
|
|
WITH SUCCESSORS
|
|
|
|
PerceptionRegionContainer
|
|
FROM CPM-PerceptionRegionContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceptionRegionContainer (5) major-version-1 (1) minor-version-1(1)}
|
|
WITH SUCCESSORS
|
|
|
|
PerceivedObjectContainer
|
|
FROM CPM-PerceivedObjectContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObjectContainer (4) major-version-1 (1) minor-version-1(1)}
|
|
WITH SUCCESSORS
|
|
|
|
;
|
|
|
|
/**
|
|
* This DF represents the Collective Perception Message (CPM) and is the top level Protocol Data Unit.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field header: the common message header for the facilities layer message.
|
|
*
|
|
* @field payload: the payload of the message.
|
|
*
|
|
*/
|
|
CollectivePerceptionMessage ::= SEQUENCE {
|
|
header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cpm)}),
|
|
payload CpmPayload
|
|
}
|
|
|
|
/**
|
|
* This DF represents the payload of the CPM.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field managementContainer: the management container.
|
|
*
|
|
* @field cpmContainers: the list of CPM containers, including its container type identifier and including either one or none of originatingVehicleContainer and/or originatingRsuContainer.
|
|
*
|
|
*/
|
|
CpmPayload ::= SEQUENCE {
|
|
managementContainer ManagementContainer,
|
|
cpmContainers ConstraintWrappedCpmContainers,
|
|
...
|
|
}
|
|
|
|
/**
|
|
* This DF represents the management container of the CPM.
|
|
* The management container provides basic information about the originating ITS-S, which are not specific to a specific type of station.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field referenceTime: the reference time for all time related information in the CPM.
|
|
*
|
|
* @field messageRateRange: the planned or expected range of the CPM generation rate.
|
|
*
|
|
* @field segmentationInfo: information regarding the message segmentation on facility layer.
|
|
*
|
|
* @field referencePosition: the reference position for all position related information in the CPM.
|
|
*
|
|
*/
|
|
ManagementContainer ::= SEQUENCE {
|
|
referenceTime TimestampIts,
|
|
referencePosition ReferencePosition,
|
|
segmentationInfo MessageSegmentationInfo OPTIONAL,
|
|
messageRateRange MessageRateRange OPTIONAL,
|
|
...
|
|
}
|
|
|
|
/**
|
|
* This information object class is an abstract template to instantiate containers.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field &id: the identifier of the container type.
|
|
*
|
|
* @field &Type: the container content.
|
|
*
|
|
*/
|
|
|
|
CPM-CONTAINER-ID-AND-TYPE ::= CLASS {
|
|
&id CpmContainerId UNIQUE,
|
|
&Type
|
|
} WITH SYNTAX {&Type IDENTIFIED BY &id}
|
|
|
|
/**
|
|
* This DE represents the identifier of the container type.
|
|
*
|
|
*/
|
|
CpmContainerId ::= INTEGER (1..16)
|
|
|
|
/**
|
|
* These value assignements represent specific values of the container type identifier.
|
|
*/
|
|
originatingVehicleContainer CpmContainerId ::= 1
|
|
originatingRsuContainer CpmContainerId ::= 2
|
|
sensorInformationContainer CpmContainerId ::= 3
|
|
perceptionRegionContainer CpmContainerId ::= 4
|
|
perceivedObjectContainer CpmContainerId ::= 5
|
|
|
|
|
|
/**
|
|
* This information object set represents the association between the container type and the container content.
|
|
*/
|
|
CpmContainers CPM-CONTAINER-ID-AND-TYPE ::= {
|
|
{OriginatingVehicleContainer IDENTIFIED BY originatingVehicleContainer} |
|
|
{OriginatingRsuContainer IDENTIFIED BY originatingRsuContainer} |
|
|
{SensorInformationContainer IDENTIFIED BY sensorInformationContainer} |
|
|
{PerceptionRegionContainer IDENTIFIED BY perceptionRegionContainer} |
|
|
{PerceivedObjectContainer IDENTIFIED BY perceivedObjectContainer},
|
|
...
|
|
}
|
|
|
|
/**
|
|
* This DF represents a CPM container preceded by its type identifier and a lenght indicator.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field containerId: the identifier of the container type.
|
|
*
|
|
* @field containerData: the container content consistent with the container type.
|
|
*
|
|
*/
|
|
WrappedCpmContainer ::= SEQUENCE {
|
|
containerId CPM-CONTAINER-ID-AND-TYPE.&id( {CpmContainers} ),
|
|
containerData CPM-CONTAINER-ID-AND-TYPE.&Type( {CpmContainers}{@containerId} )
|
|
}
|
|
|
|
/**
|
|
* This DF represents a list of CPM containers, each with their type identifier.
|
|
*/
|
|
WrappedCpmContainers::= SEQUENCE SIZE(1..8,...) OF WrappedCpmContainer
|
|
|
|
/**
|
|
* This DF represents a list of CPM containers, each with their type identifier with an additional constraint.
|
|
*/
|
|
ConstraintWrappedCpmContainers ::= WrappedCpmContainers
|
|
((WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 1)})) |
|
|
(WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 2)})))
|
|
|
|
/**
|
|
* This DF represents the planned or expected range of the message generation rate.
|
|
*
|
|
* It shall include the following components:
|
|
*
|
|
* @field messageRateMin: the minimum planned or expected message rate.
|
|
*
|
|
* @field messageRateMax: the maximum planned or expected message rate.
|
|
*
|
|
*/
|
|
MessageRateRange::= SEQUENCE{
|
|
messageRateMin MessageRateHz,
|
|
messageRateMax MessageRateHz
|
|
}
|
|
|
|
END
|