summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/its/CPM-PDU-Descriptions.asn
blob: afb669b66f1575aff9fce24fa231408da00fef83 (plain)
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