You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/architecture/trace_file_formats.adoc
+19-19Lines changed: 19 additions & 19 deletions
Original file line number
Diff line number
Diff line change
@@ -46,13 +46,13 @@ Therefore, it can be used with any or an empty profile field in the MCAP header
46
46
The following rules apply to OSI multi channel trace files:
47
47
48
48
- The file extension to be used is `.mcap`.
49
-
- The file must be a valid MCAP file according to the https://mcap.dev/spec[MCAP format specification] version `0x30`.
50
-
- The file must be an indexed MCAP file, including chunk index records in the summary section, with all message records written into chunk records.
51
-
- Chunk records must either be uncompressed or compressed using either the `zstd` or `lz4` compression algorithms.
52
-
- The file must contain a meta-data record with the OSI trace file meta-data defined in section <<sec-osi-trace-file-multi-global-meta-data>>.
49
+
- The file shall be a valid MCAP file according to the https://mcap.dev/spec[MCAP format specification] version `0x30`.
50
+
- The file shall be an indexed MCAP file, including chunk index records in the summary section, with all message records written into chunk records.
51
+
- Chunk records shall either be uncompressed or compressed using either the `zstd` or `lz4` compression algorithms.
52
+
- The file shall contain a meta-data record with the OSI trace file meta-data defined in section <<sec-osi-trace-file-multi-global-meta-data>>.
53
53
This meta-data record identifies the file as an OSI multi channel trace file.
54
-
- The file must contain a schema record in the summary section for each top-level message type that is used in one or more OSI channels with the OSI message schema as defined in section <<sec-osi-trace-file-multi-schema-record>>.
55
-
- The file must contain at least one OSI message stream in a channel as defined in section <<sec-osi-trace-file-multi-channel>>.
54
+
- The file shall contain a schema record in the summary section for each top-level message type that is used in one or more OSI channels with the OSI message schema as defined in section <<sec-osi-trace-file-multi-schema-record>>.
55
+
- The file shall contain at least one OSI message stream in a channel as defined in section <<sec-osi-trace-file-multi-channel>>.
56
56
- The file may contain additional non-OSI message streams in other channels.
57
57
58
58
NOTE: All OSI and non-OSI message streams stored in the same file share a common time base.
@@ -61,7 +61,7 @@ Storing of unrelated message streams in one trace file is therefore not generall
61
61
[#sec-osi-trace-file-multi-global-meta-data]
62
62
=== Multi channel trace file global meta-data
63
63
64
-
The file must contain exactly one meta-data record with the `name` field being `net.asam.osi.trace` and the following mandatory `metadata` entries:
64
+
The file shall contain exactly one meta-data record with the `name` field being `net.asam.osi.trace` and the following mandatory `metadata` entries:
65
65
66
66
`version`::
67
67
The semantic version number of the OSI release that this OSI trace file conforms to.
@@ -89,15 +89,15 @@ The `net.asam.osi.trace` meta-data record may also contain the following recomme
89
89
90
90
`zero_time`::
91
91
The point in real or simulated calendar time corresponding to time 0 in all timestamps in the trace file.
92
-
Must be provided as a full ISO8601 formatted date time string, including timezone data, conforming to the https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp[XML Schema dateTimeStamp] lexical space.
93
-
Values must match the following regular expression:
92
+
This shall be provided as a full ISO8601 formatted date time string, including timezone data, conforming to the https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp[XML Schema dateTimeStamp] lexical space.
93
+
Values shall match the following regular expression:
NOTE: Even in pure simulation use cases there is usually a relationship to a simulated calendar time, as on-board components and environment simulation have necessary relationships to a simulated calendar time (for example, the embedded `HostVehicleData` will carry relevant simulated calendar time information, for localization and other purposes).
97
97
98
98
`creation_time`::
99
99
The point in real calendar time when the recording of the data in the trace file was started, e.g. when the recording system began writing the data to a file.
100
-
Must be provided as a full ISO8601 formatted date time string, including timezone data, conforming to the https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp[XML Schema dateTimeStamp] lexical space.
100
+
This shall be provided as a full ISO8601 formatted date time string, including timezone data, conforming to the https://www.w3.org/TR/xmlschema11-2/#dateTimeStamp[XML Schema dateTimeStamp] lexical space.
101
101
102
102
`description`::
103
103
A human-readable description of the data contained in the multi channel trace file.
@@ -114,10 +114,10 @@ It is strongly recommended to follow reverse domain name notation for custom met
114
114
[#sec-osi-trace-file-multi-schema-record]
115
115
=== OSI message schema
116
116
117
-
For each OSI top-level message type that is used in one or more OSI channels, the OSI multi channel trace file must contain a corresponding schema record in the summary section.
118
-
Note that if multiple versions of the OSI schema are used in the same trace file, a schema record must be included for each version, with different schema IDs.
117
+
For each OSI top-level message type that is used in one or more OSI channels, the OSI multi channel trace file shall contain a corresponding schema record in the summary section.
118
+
Note that if multiple versions of the OSI schema are used in the same trace file, a schema record shall be included for each version, with different schema IDs.
119
119
120
-
The schema record must contain the following fields:
120
+
The schema record shall contain the following fields:
121
121
122
122
`id`::
123
123
A file-wide unique non-zero identifier for the schema record.
@@ -132,7 +132,7 @@ The value `protobuf`.
132
132
`data`::
133
133
A binary FileDescriptorSet as produced by `protoc --include_imports --descriptor_set_out`.
134
134
135
-
The schema record must be stored in the summary section of the trace file, and must be referenced by the OSI channels that use the schema.
135
+
The schema record shall be stored in the summary section of the trace file, and shall be referenced by the OSI channels that use the schema.
136
136
137
137
[#sec-osi-trace-file-multi-channel]
138
138
=== OSI channel
@@ -141,7 +141,7 @@ An OSI channel is a data stream within the OSI multi channel trace file that con
141
141
Note that this specification does not allow the storage of non-top-level OSI messages in OSI channels, as they cannot be reliably associated with other OSI data streams without additional context (e.g. due to the absence of a timestamp field or lack of attribution).
142
142
It is still possible to store them like any other related data in non-OSI channels, however this usage is unlikely to be portable.
143
143
144
-
Each OSI channel must be described by a channel record in the summary section of the trace file with the following fields:
144
+
Each OSI channel shall be described by a channel record in the summary section of the trace file with the following fields:
145
145
146
146
`id`::
147
147
A file-wide unique identifier for the channel.
@@ -177,11 +177,11 @@ The following recommended entries are defined by {THIS_STANDARD}:
177
177
`net.asam.osi.trace.channel.description`:::
178
178
A human-readable description of the channel.
179
179
180
-
The channel record must be stored in the summary section of the trace file, and must be referenced by the OSI message records that are part of the channel.
180
+
The channel record shall be stored in the summary section of the trace file, and shall be referenced by the OSI message records that are part of the channel.
181
181
182
-
All messages in an OSI channel must be stored in chunk records in the data section of the trace file.
182
+
All messages in an OSI channel shall be stored in chunk records in the data section of the trace file.
183
183
184
-
Each message record in a chunk record must contain the following fields:
184
+
Each message record in a chunk record shall contain the following fields:
185
185
186
186
`channel_id`::
187
187
The ID of the channel that the message belongs to.
@@ -200,7 +200,7 @@ Only if recreation of the message stream with actual message transmission times
200
200
`publish_time`::
201
201
The timestamp taken from the timestamp field of the stored OSI top-level message.
202
202
The field is in nanoseconds, with the epoch being the epoch of the OSI Timestamp data type.
203
-
If top-level messages that do not contain a timestamp field are stored in the trace file, the `publish_time` field must be set to the time when the message was enqueued for addition to the trace file.
203
+
If top-level messages that do not contain a timestamp field are stored in the trace file, the `publish_time` field shall be set to the time when the message was enqueued for addition to the trace file.
0 commit comments