-
Notifications
You must be signed in to change notification settings - Fork 97
/
Copy pathsystem.ksy
371 lines (350 loc) · 10.8 KB
/
system.ksy
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
# Copyright (C) 2015-2023 Swift Navigation Inc.
# Contact: https://support.swiftnav.com
#
# This source is subject to the license found in the file 'LICENSE' which must
# be distributed together with this source. All other rights reserved.
#
# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
#
# Standardized system messages from Swift Navigation devices.
#
# Automatically generated from spec/yaml/swiftnav/sbp/system.yaml with generate.py.
# Do not modify by hand!
meta:
id: system
endian: le
imports: [ ]
types:
msg_startup:
doc: |
The system start-up message is sent once on system start-up. It notifies
the host or other attached devices that the system has started and is
now ready to respond to commands or configuration requests.
seq:
- id: cause
doc: |
Cause of startup
type: u1
- id: startup_type
doc: |
Startup type
type: u1
- id: reserved
doc: |
Reserved
type: u2
msg_dgnss_status:
doc: |
This message provides information about the receipt of Differential
corrections. It is expected to be sent with each receipt of a complete
corrections packet.
seq:
- id: flags
doc: |
Status flags
type: u1
- id: latency
doc: |
Latency of observation receipt
type: u2
- id: num_signals
doc: |
Number of signals from base station
type: u1
- id: source
doc: |
Corrections source string
type: str
encoding: ascii
size-eos: true
msg_heartbeat:
doc: |
The heartbeat message is sent periodically to inform the host or other
attached devices that the system is running. It is used to monitor
system malfunctions. It also contains status flags that indicate to the
host the status of the system and whether it is operating correctly.
Currently, the expected heartbeat interval is 1 sec.
The system error flag is used to indicate that an error has occurred in
the system. To determine the source of the error, the remaining error
flags should be inspected.
seq:
- id: flags
doc: |
Status flags
type: u4
sub_system_report:
doc: |
Report the general and specific state of a subsystem. If the generic
state is reported as initializing, the specific state should be ignored.
seq:
- id: component
doc: |
Identity of reporting subsystem
type: u2
- id: generic
doc: |
Generic form status report
type: u1
- id: specific
doc: |
Subsystem specific status code
type: u1
msg_status_report:
doc: |
The status report is sent periodically to inform the host or other
attached devices that the system is running. It is used to monitor
system malfunctions. It contains status reports that indicate to the
host the status of each subsystem and whether it is operating correctly.
Interpretation of the subsystem specific status code is product
dependent, but if the generic status code is initializing, it should be
ignored. Refer to product documentation for details.
seq:
- id: reporting_system
doc: |
Identity of reporting system
type: u2
- id: sbp_version
doc: |
SBP protocol version
type: u2
- id: sequence
doc: |
Increments on each status report sent
type: u4
- id: uptime
doc: |
Number of seconds since system start-up
type: u4
- id: status
doc: |
Reported status of individual subsystems
type: sub_system_report
repeat: eos
status_journal_item:
doc: |
Reports the uptime and the state of a subsystem via generic and specific
status codes. If the generic state is reported as initializing, the
specific state should be ignored.
seq:
- id: uptime
doc: |
Milliseconds since system startup
type: u4
- id: report
type: sub_system_report
msg_status_journal:
doc: |
The status journal message contains past status reports (see
MSG_STATUS_REPORT) and functions as a error/event storage for telemetry
purposes.
seq:
- id: reporting_system
doc: |
Identity of reporting system
type: u2
- id: sbp_version
doc: |
SBP protocol version
type: u2
- id: total_status_reports
doc: |
Total number of status reports sent since system startup
type: u4
- id: sequence_descriptor
doc: |
Index and number of messages in this sequence. First nibble is the
size of the sequence (n), second nibble is the zero-indexed counter
(ith packet of n)
type: u1
- id: journal
doc: |
Status journal
type: status_journal_item
repeat: eos
msg_ins_status:
doc: |
The INS status message describes the state of the operation and
initialization of the inertial navigation system.
seq:
- id: flags
doc: |
Status flags
type: u4
msg_csac_telemetry:
doc: |
The CSAC telemetry message has an implementation defined telemetry
string from a device. It is not produced or available on general Swift
Products. It is intended to be a low rate message for status purposes.
seq:
- id: id
doc: |
Index representing the type of telemetry in use. It is
implementation defined.
type: u1
- id: telemetry
doc: |
Comma separated list of values as defined by the index
type: str
encoding: ascii
size-eos: true
msg_csac_telemetry_labels:
doc: |
The CSAC telemetry message provides labels for each member of the string
produced by MSG_CSAC_TELEMETRY. It should be provided by a device at a
lower rate than the MSG_CSAC_TELEMETRY.
seq:
- id: id
doc: |
Index representing the type of telemetry in use. It is
implementation defined.
type: u1
- id: telemetry_labels
doc: |
Comma separated list of telemetry field values
type: str
encoding: ascii
size-eos: true
msg_ins_updates:
doc: |
The INS update status message contains information about executed and
rejected INS updates. This message is expected to be extended in the
future as new types of measurements are being added.
seq:
- id: tow
doc: |
GPS Time of Week
type: u4
- id: gnsspos
doc: |
GNSS position update status flags
type: u1
- id: gnssvel
doc: |
GNSS velocity update status flags
type: u1
- id: wheelticks
doc: |
Wheelticks update status flags
type: u1
- id: speed
doc: |
Wheelticks update status flags
type: u1
- id: nhc
doc: |
NHC update status flags
type: u1
- id: zerovel
doc: |
Zero velocity update status flags
type: u1
msg_gnss_time_offset:
doc: |
The GNSS time offset message contains the information that is needed to
translate messages tagged with a local timestamp (e.g. IMU or wheeltick
messages) to GNSS time for the sender producing this message.
seq:
- id: weeks
doc: |
Weeks portion of the time offset
type: s2
- id: milliseconds
doc: |
Milliseconds portion of the time offset
type: s4
- id: microseconds
doc: |
Microseconds portion of the time offset
type: s2
- id: flags
doc: |
Status flags
type: u1
msg_pps_time:
doc: |
The PPS time message contains the value of the sender's local time in
microseconds at the moment a pulse is detected on the PPS input. This is
to be used for synchronisation of sensor data sampled with a local
timestamp (e.g. IMU or wheeltick messages) where GNSS time is unknown to
the sender.
The local time used to timestamp the PPS pulse must be generated by the
same clock which is used to timestamp the IMU/wheel sensor data and
should follow the same roll-over rules (i.e. it should roll over to zero
after 604800 seconds). A separate MSG_PPS_TIME message should be sent
for each source of sensor data which uses local timestamping. The
sender ID for each of these MSG_PPS_TIME messages should match the
sender ID of the respective sensor data.
seq:
- id: time
doc: |
Local time in microseconds
type: u8
- id: flags
doc: |
Status flags
type: u1
msg_sensor_aid_event:
doc: |
This diagnostic message contains state and update status information for
all sensors that are being used by the fusion engine. This message will
be generated asynchronously to the solution messages and will be emitted
anytime a sensor update is being processed.
seq:
- id: time
doc: |
Update timestamp in milliseconds.
type: u4
- id: sensor_type
doc: |
Sensor type
type: u1
- id: sensor_id
doc: |
Sensor identifier
type: u2
- id: sensor_state
doc: |
Reserved for future use
type: u1
- id: n_available_meas
doc: |
Number of available measurements in this epoch
type: u1
- id: n_attempted_meas
doc: |
Number of attempted measurements in this epoch
type: u1
- id: n_accepted_meas
doc: |
Number of accepted measurements in this epoch
type: u1
- id: flags
doc: |
Reserved for future use
type: u4
msg_group_meta:
doc: |
This leading message lists the time metadata of the Solution Group. It
also lists the atomic contents (i.e. types of messages included) of the
Solution Group.
seq:
- id: group_id
doc: |
Id of the Msgs Group, 0 is Unknown, 1 is Bestpos, 2 is Gnss
type: u1
- id: flags
doc: |
Status flags (reserved)
type: u1
- id: n_group_msgs
doc: |
Size of list group_msgs
type: u1
- id: group_msgs
doc: |
An in-order list of message types included in the Solution Group,
including GROUP_META itself
type: u2
repeat: eos