Newer
Older
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
VAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0) itsDomain(5)
wg1(1) ts(103300) vam(3) version(1)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ItsPduHeader, ReferencePosition, AccelerationControl,
Heading, HeadingValue, Speed, StationID, VehicleLength, VehicleWidth,
PathHistory, ProtectedCommunicationZone, PtActivation,
Latitude, Longitude, ProtectedCommunicationZonesRSU
FROM ITS-Container {itu-t(0) identified-organization(4) etsi(0)
itsDomain(5) wg1(1) ts(102894) cdd(2) version(2)}
GenerationDeltaTime
FROM CAM-PDU-Descriptions {itu-t(0) identified-organization(4) etsi(0)
itsDomain(5) wg1(1) en(302637) cam(2) version(2)}
;
VAM ::= SEQUENCE {
header ItsPduHeaderVam,
vam VruAwareness
}
-- contains StationId
-- StationId should change when certificate changes, or when VRU
-- enters or leaves a cluster (as leader or otherwise)
ItsPduHeaderVam ::= ItsPduHeader(WITH COMPONENTS {
...,
messageID(vam)
})
VruAwareness ::= SEQUENCE {
generationDeltaTime GenerationDeltaTime,
vamParameters VamParameters,
vamExtensions SEQUENCE (SIZE(0..MAX)) OF VamExtension
}
VamParameters ::= SEQUENCE {
activeProfile VruProfileId,
physicalProperties VruPhysicalProperties,
dyanmicProperties VruDynamicProperties,
...
}
VruProfileId ::= ENUMERATED {
pedestrian(1), lowSpeedTwoWheel(2), fullSpeedTwoWheel(3), animal(4), ...
}
VruPhysicalProperties ::= CHOICE {
singleVruPhysInfo SingleVruPhysicalInfo,
clusterPhysInfo VruClusterPhysicalInfo,
...
}
SingleVruPhysicalInfo ::= SEQUENCE {
referencePoint ReferencePosition,
orientation Heading,
clusterJoinInfo ClusterJoinInfo OPTIONAL,
clusterExitInfo StationID OPTIONAL,
...
}
ClusterJoinInfo ::= SEQUENCE {
clusterId StationID,
countdown INTEGER(0..7),
...
}
VruClusterPhysicalInfo ::= SEQUENCE {
referencePoint ReferencePosition, -- middle of front edge of cluster
heading HeadingValue, -- direction of perp. line through referencePoint
width VruClusterSideLength, -- width (with referencePoint in the
-- middle) in units of 10 cm
length VruClusterSideLength, -- length (from referencePoint to rear of
-- cluster) in units of 10 cm
number INTEGER(0..255), -- 0 means unknown
...
}
VruClusterSideLength ::= INTEGER {tenCentimeters(1), outOfRange(61), unavailable(62)} (1..62)
-- none of these fields are OPTIONAL as each of the types below has an "unknown" value, which
-- should be used if the value isn't provided.
VruDynamicProperties ::= SEQUENCE {
heading Heading,
speed Speed,
longitudinalAcceleration LongitudinalAcceleration,
laterialAcceleration LateralAcceleration,
verticalAcceleration VerticalAcceleration,
yawRate YawRate,
pastLocations PathHistory,
predictedLocations PathHistory,
...
}
VamExtension ::= CHOICE {
dummy NULL,
...
}
END