Commit b7e90023 authored by schieggf's avatar schieggf
Browse files

Update CPM.asn

parent d4a53f48
Loading
Loading
Loading
Loading
Loading
+168 −0
Original line number Diff line number Diff line
-- Date 29.11.2022

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-3 (3) minor-version-1 (1)}
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

PerceivedRegionContainer
FROM CPM-PerceivedRegionContainer {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedRegionContainer (5) major-version-1 (1) minor-version-1(1)}
WITH SUCCESSORS

PerceivedObjectContainer
FROM CPM-PerceivedObject-Descriptions {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 either one or none of originatingVehicleContainer and/or originatingRsuContainer. 
 *
*/
CpmPayload ::= SEQUENCE {
    managementContainer   ManagementContainer,
    cpmContainers         WrappedCpmContainers
    ((WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 1)})) |
    (WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 2)}))),
    ...
}

/**
 * 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
perceivedRegionContainer 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} |
    {PerceivedRegionContainer IDENTIFIED BY perceivedRegionContainer} |
    {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 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

asn/CPM.asn

deleted100644 → 0
+0 −153
Original line number Diff line number Diff line
--! @brief Specification of the Collective Perception Message ETSI TS 103 324
--! Latest version available at @url https://forge.etsi.org/rep/ITS/CPM_TS103324

CPM-PDU-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) cpm (1) version1 (1)
}

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
/** @brief Include ETSI TS 102 894-2 v1.3.1
Include references from @url https://forge.etsi.org/rep/ITS/asn1/cdd_ts102894_2/blob/v1.3.1/ITS-Container.asn
*/
ItsPduHeader, ReferencePosition, StationType
FROM ITS-Container {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }

/** @brief Include ETSI EN 302 637-2 v1.4.1
Include references from @url https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2/blob/v1.4.1/CAM-PDU-Descriptions.asn
*/
GenerationDeltaTime
FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5) wg1(1) en(302637) cam(2) version(2)}

MessageSegmentInfo
FROM CPM-CommonDataTypes-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) commonDataTypes (2) version1 (1)}

--! @brief Import Originating Vehicle Container
OriginatingVehicleContainer, OriginatingRSUContainer
FROM CPM-OriginatingStationData-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) originatingStationData (3) version1 (1)}

--! @brief Import Sensor Information Container
SensorInformationContainer
FROM CPM-SensorInformation-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) sensorInformation (4) version1 (1)}

PerceivedObjectContainer
FROM CPM-PerceivedObject-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) perceivedObject (5) version1 (1)}

FreeSpaceAddendumContainer
FROM CPM-FreeSpaceAddendum-Descriptions {itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (103324) freeSpaceAddendum (6) version1 (1)};

--! Information Object Class Definitions
CPM-STATIONDATA-ID-AND-TYPE ::= CLASS {
    &id     CpmStationDataId UNIQUE,
    &Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}

CpmStationDataContainer {CPM-STATIONDATA-ID-AND-TYPE : Set} ::= SEQUENCE {
   containerId     CPM-STATIONDATA-ID-AND-TYPE.&id( {Set} ),
   containerData   CPM-STATIONDATA-ID-AND-TYPE.&Type( {Set}{@containerId} )
}

CPM-CONTAINER-ID-AND-TYPE ::= CLASS {
    &id     CpmContainerId UNIQUE,
    &Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}

CpmPerceptionDataContainer {CPM-CONTAINER-ID-AND-TYPE : Set} ::= SEQUENCE {
   containerId     CPM-CONTAINER-ID-AND-TYPE.&id( {Set} ),
   containerData   CPM-CONTAINER-ID-AND-TYPE.&Type( {Set}{@containerId} )
}

CpmStationDataId ::= INTEGER (0..255)
CpmContainerId ::= INTEGER (0..255)

-- Information Object Class Registry
OriginatingStationData CPM-STATIONDATA-ID-AND-TYPE ::= {
    {OriginatingVehicleContainer IDENTIFIED BY originatingStationVehicleContainer} |
    {OriginatingRSUContainer IDENTIFIED BY originatingStationRSUContainer},
    ...
}

PerceptionData CPM-CONTAINER-ID-AND-TYPE ::= {
    {SensorInformationContainer IDENTIFIED BY sensorInformationCpmContainer} |
    {PerceivedObjectContainer IDENTIFIED BY perceivedObjectCpmContainer} |
    {FreeSpaceAddendumContainer IDENTIFIED BY freeSpaceAdddendumCpmContainer},
    ...
}

--! ID Assignments for Information Object Classes
--! Assignment for Originating Station Container
originatingStationVehicleContainer CpmStationDataId ::= 1
originatingStationRSUContainer CpmStationDataId ::= 2

--! Assignment for Perception Data Container
sensorInformationCpmContainer CpmContainerId ::= 1
perceivedObjectCpmContainer CpmContainerId ::= 2
freeSpaceAdddendumCpmContainer CpmContainerId ::= 3

--! Collective Perception Message

/** @brief Collective Perception Message Root
This DF includes DEs for the CPM protocolVersion, the CP message type identifier _messageID_ and
the station identifier _stationID_ of the originating ITS-S.
*/
CPM ::= SEQUENCE {
    /** @details header
    The DE _protocolVersion_ is used to select the appropriate protocol decoder at the receiving
    ITS-S. It shall be set to @todo cpm(15).
    The DE _messageID_ shall be harmonized with other V2X message identifier definitions.
    */
    header ItsPduHeader,
    cpm CollectivePerceptionMessage
}

/** Collective Perception Message
This is the actual CPM Payload. It shall include the time stamp of the CPM and the applicable
containers of type _PerceptionData_. The selection of the StationDataContainer type container
depends on the _StationType_ as selected in the @see CpmManagementContainer
*/
CollectivePerceptionMessage ::= SEQUENCE {
    generationDeltaTime GenerationDeltaTime,
    cpmParameters       CpmParameters
}

/** CPM Parameters
The sequence of mandatory and optional containers. Other containers may be added in the future.
*/
CpmParameters ::= SEQUENCE {
    /** @brief managementContainer
    The managementContainer comprises basic information about the originating ITS-S, which are
    not specific to vehicles or RSUs.
    */
    managementContainer     CpmManagementContainer,
    /** @brief stationDataContainer
    The stationDataContainer comprises ITS-S type specific information about the sending station.
    */
    stationDataContainer    CpmStationDataContainer {{OriginatingStationData}} OPTIONAL,
    /** @brief perceptionData
    The perceptionData comprises different container types for describing the sensory properties
    of the transmitting ITS-S, its detected objects and free space estimates.
    */
    perceptionData          SEQUENCE SIZE(1..255) OF CpmPerceptionDataContainer {{PerceptionData}} OPTIONAL,
    ...
}

/** @brief CPM Management Container
The managementContainer comprises basic information about the originating ITS-S, which are not
specific to vehicles or RSUs.
*/
CpmManagementContainer ::= SEQUENCE {
    stationType                             StationType,
    /** @brief messageSegmentInfo
    The perceived object container segment info describes the segmentation information in case
    the data for CPM transmission needs to be split up into multiple messages due to
    message size constraints.
    */
    messageSegmentInfo     MessageSegmentInfo OPTIONAL,
    referencePosition      ReferencePosition,
    ...
}

END