1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ETSI TR 103 562 V2.1.1 (2019-12)
--
-- Intelligent Transport Systems (ITS);
-- Vehicular Communications;
-- Basic Set of Applications;
-- Analysis of the Collective Perception Service (CPS);
-- Release 2
--
-- https://www.etsi.org/deliver/etsi_tr/103500_103599/103562/02.01.01_60/tr_103562v020101p.pdf
--
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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
;
CollectivePerceptionMessage ::= SEQUENCE {
header ItsPduHeader (WITH COMPONENTS {... , protocolVersion (2), messageId(cpm)}),
payload CpmPayload
}
CpmPayload ::= SEQUENCE {
managementContainer ManagementContainer,
cpmContainers ConstraintWrappedCpmContainers,
...
}
ManagementContainer ::= SEQUENCE {
referenceTime TimestampIts,
referencePosition ReferencePosition,
segmentationInfo MessageSegmentationInfo OPTIONAL,
messageRateRange MessageRateRange OPTIONAL,
...
}
CPM-CONTAINER-ID-AND-TYPE ::= CLASS {
&id CpmContainerId UNIQUE,
&Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}
CpmContainerId ::= INTEGER (1..16)
originatingVehicleContainer CpmContainerId ::= 1
originatingRsuContainer CpmContainerId ::= 2
sensorInformationContainer CpmContainerId ::= 3
perceptionRegionContainer CpmContainerId ::= 4
perceivedObjectContainer CpmContainerId ::= 5
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},
...
}
WrappedCpmContainer ::= SEQUENCE {
containerId CPM-CONTAINER-ID-AND-TYPE.&id( {CpmContainers} ),
containerData CPM-CONTAINER-ID-AND-TYPE.&Type( {CpmContainers}{@containerId} )
}
WrappedCpmContainers::= SEQUENCE SIZE(1..8,...) OF WrappedCpmContainer
ConstraintWrappedCpmContainers ::= WrappedCpmContainers
-- ((WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 1)})) |
-- (WITH COMPONENT (WITH COMPONENTS {..., containerId (ALL EXCEPT 2)})))
-- ALL did not work...
((WITH COMPONENT (WITH COMPONENTS {..., containerId })) |
(WITH COMPONENT (WITH COMPONENTS {..., containerId })))
MessageRateRange::= SEQUENCE{
messageRateMin MessageRateHz,
messageRateMax MessageRateHz
}
END
|