Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Ardupilot
GitHub Repository: Ardupilot/ardupilot
Path: blob/master/libraries/AP_DAL/LogStructure.h
9460 views
1
#pragma once
2
3
#include <AP_Logger/LogStructure.h>
4
#include <AP_Math/vector3.h>
5
#include <AP_Math/vector2.h>
6
#include <AP_Math/matrix3.h>
7
#include <AP_Math/quaternion.h>
8
9
#define LOG_IDS_FROM_DAL \
10
LOG_RFRH_MSG, \
11
LOG_RFRF_MSG, \
12
LOG_REV2_MSG, \
13
LOG_RSO2_MSG, \
14
LOG_RWA2_MSG, \
15
LOG_REV3_MSG, \
16
LOG_RSO3_MSG, \
17
LOG_RWA3_MSG, \
18
LOG_REY3_MSG, \
19
LOG_RFRN_MSG, \
20
LOG_RISH_MSG, \
21
LOG_RISI_MSG, \
22
LOG_RBRH_MSG, \
23
LOG_RBRI_MSG, \
24
LOG_RRNH_MSG, \
25
LOG_RRNI_MSG, \
26
LOG_RGPH_MSG, \
27
LOG_RGPI_MSG, \
28
LOG_RGPJ_MSG, \
29
LOG_RASH_MSG, \
30
LOG_RASI_MSG, \
31
LOG_RBCH_MSG, \
32
LOG_RBCI_MSG, \
33
LOG_RVOH_MSG, \
34
LOG_RMGH_MSG, \
35
LOG_RMGI_MSG, \
36
LOG_ROFH_MSG, \
37
LOG_REPH_MSG, \
38
LOG_RSLL_MSG, \
39
LOG_REVH_MSG, \
40
LOG_RWOH_MSG, \
41
LOG_RBOH_MSG, \
42
LOG_RTER_MSG
43
44
// @LoggerMessage: RFRH
45
// @Description: Replay FRame Header
46
// @Field: TimeUS: Time since system startup
47
// @Field: TF: Time flying
48
struct log_RFRH {
49
uint64_t time_us;
50
uint32_t time_flying_ms;
51
uint8_t _end;
52
};
53
54
// @LoggerMessage: RFRF
55
// @Description: Replay FRame data - Finished frame
56
// @Field: FTypes: accumulated method calls made during frame
57
// @FieldBitmaskEnum: FTypes: AP_DAL::FrameType
58
// @Field: Slow: true if we are not keeping up with IMU loop rate
59
struct log_RFRF {
60
uint8_t frame_types;
61
uint8_t core_slow;
62
uint8_t _end;
63
};
64
65
// @LoggerMessage: RFRN
66
// @Description: Replay FRame - aNother frame header
67
// @Field: HLat: home latitude
68
// @Field: HLon: home latitude
69
// @Field: HAlt: home altitude AMSL
70
// @Field: E2T: EAS to TAS factor
71
// @Field: AM: available memory
72
// @Field: TX: AHRS trim X
73
// @Field: TY: AHRS trim Y
74
// @Field: TZ: AHRS trim Z
75
// @Field: VC: AHRS Vehicle Class
76
// @Field: EKT: configured EKF type
77
// @FieldValueEnum: EKT: AP_DAL::EKFType
78
// @Field: Flags: bitmask of boolean state
79
// @FieldBitmaskEnum: Flags: AP_DAL::RFRNFlags
80
struct log_RFRN {
81
int32_t lat;
82
int32_t lng;
83
int32_t alt;
84
float EAS2TAS;
85
uint32_t available_memory;
86
Vector3f ahrs_trim;
87
uint8_t vehicle_class;
88
uint8_t ekf_type;
89
uint8_t armed:1;
90
uint8_t unused:1; // was get_compass_is_null
91
uint8_t fly_forward:1;
92
uint8_t ahrs_airspeed_sensor_enabled:1;
93
uint8_t opticalflow_enabled:1;
94
uint8_t wheelencoder_enabled:1;
95
uint8_t takeoff_expected:1;
96
uint8_t touchdown_expected:1;
97
uint8_t _end;
98
};
99
100
// @LoggerMessage: RISH
101
// @Description: Replay Inertial Sensor header
102
// @Field: LR: INS loop rate
103
// @Field: PG: primary gyro index
104
// @Field: PA: primary accel index
105
// @Field: LD: INS loop-delta-t
106
// @Field: AC: accel count
107
// @Field: GC: gyro count
108
struct log_RISH {
109
uint16_t loop_rate_hz;
110
uint8_t first_usable_gyro;
111
uint8_t first_usable_accel;
112
float loop_delta_t;
113
uint8_t accel_count;
114
uint8_t gyro_count;
115
uint8_t _end;
116
};
117
118
// @LoggerMessage: RISI
119
// @Description: Replay Inertial Sensor instance data
120
// @Field: DVX: x-axis delta-velocity
121
// @Field: DVY: y-axis delta-velocity
122
// @Field: DVZ: z-axis delta-velocity
123
// @Field: DAX: x-axis delta-angle
124
// @Field: DAY: y-axis delta-angle
125
// @Field: DAZ: z-axis delta-angle
126
// @Field: DVDT: delta-velocity-delta-time
127
// @Field: DADT: delta-angle-delta-time
128
// @Field: Flags: use-accel, use-gyro, delta-vel-valid, delta-accel-valid
129
// @Field: I: IMU instance
130
struct log_RISI {
131
Vector3f delta_velocity;
132
Vector3f delta_angle;
133
float delta_velocity_dt;
134
float delta_angle_dt;
135
uint8_t use_accel:1;
136
uint8_t use_gyro:1;
137
uint8_t get_delta_velocity_ret:1;
138
uint8_t get_delta_angle_ret:1;
139
uint8_t instance;
140
uint8_t _end;
141
};
142
143
// @LoggerMessage: REV2
144
// @Description: Replay Event (EKF2)
145
// @Field: Event: external event injected into EKF
146
// @FieldValueEnum: Event: AP_DAL::Event
147
struct log_REV2 {
148
uint8_t event;
149
uint8_t _end;
150
};
151
152
// @LoggerMessage: RSO2
153
// @Description: Replay Set Origin event (EKF2)
154
// @Field: Lat: origin latitude
155
// @Field: Lon: origin longitude
156
// @Field: Alt: origin altitude
157
struct log_RSO2 {
158
int32_t lat;
159
int32_t lng;
160
int32_t alt;
161
uint8_t _end;
162
};
163
164
// @LoggerMessage: RWA2
165
// @Description: Replay set-default-airspeed event (EKF2)
166
// @Field: Airspeed: default airspeed
167
// @Field: uncertainty: uncertainty in default airspeed
168
struct log_RWA2 {
169
float airspeed;
170
float uncertainty;
171
uint8_t _end;
172
};
173
174
// same structures for EKF3
175
// @LoggerMessage: REV3
176
// @Description: Replay Event (EKF3)
177
// @Field: Event: external event injected into EKF
178
// @FieldValueEnum: Event: AP_DAL::Event
179
#define log_REV3 log_REV2
180
181
// @LoggerMessage: RSO3
182
// @Description: Replay Set Origin event (EKF3)
183
// @Field: Lat: origin latitude
184
// @Field: Lon: origin longitude
185
// @Field: Alt: origin altitude
186
#define log_RSO3 log_RSO2
187
188
// @LoggerMessage: RWA3
189
// @Description: Replay set-default-airspeed event (EKF3)
190
// @Field: Airspeed: default airspeed
191
// @Field: Uncertainty: uncertainty in default airspeed
192
#define log_RWA3 log_RWA2
193
194
// @LoggerMessage: REY3
195
// @Description: Replay Euler Yaw event
196
// @Field: yawangle: externally supplied yaw angle
197
// @Field: yawangleerr: error in externally supplied yaw angle
198
// @Field: timestamp_ms: timestamp associated with yaw angle and yaw angle error
199
// @Field: type: number that needs documenting
200
struct log_REY3 {
201
float yawangle;
202
float yawangleerr;
203
uint32_t timestamp_ms;
204
uint8_t type;
205
uint8_t _end;
206
};
207
208
// @LoggerMessage: RBRH
209
// @Description: Replay Data Barometer Header
210
// @Field: Primary: primary barometer instance number
211
// @Field: NumInst: number of barometer sensors
212
struct log_RBRH {
213
uint8_t primary;
214
uint8_t num_instances;
215
uint8_t _end;
216
};
217
218
// @LoggerMessage: RBRI
219
// @Description: Replay Data Barometer Instance
220
// @Field: LastUpdate: timestamp of barometer data
221
// @Field: Alt: barometer altitude estimate
222
// @Field: H: barometer sensor health indication
223
// @Field: I: barometer instance number
224
struct log_RBRI {
225
uint32_t last_update_ms;
226
float altitude; // from get_altitude
227
bool healthy;
228
uint8_t instance;
229
uint8_t _end;
230
};
231
232
// @LoggerMessage: RRNH
233
// @Description: Replay Data Rangefinder Header
234
// @Field: GCl: rangefinder ground clearance for downward-facing rangefinders
235
// @Field: MaxD: rangefinder maximum distance for downward-facing rangefinders
236
// @Field: NumSensors: number of rangefinder instances
237
struct log_RRNH {
238
// this is rotation-pitch-270!
239
float ground_clearance;
240
float max_distance;
241
uint8_t num_sensors;
242
uint8_t _end;
243
};
244
245
// @LoggerMessage: RRNI
246
// @Description: Replay Data Rangefinder Instance
247
// @Field: PX: rangefinder body-frame offset, X-axis
248
// @Field: PY: rangefinder body-frame offset, Y-axis
249
// @Field: PZ: rangefinder body-frame offset, Z-axis
250
// @Field: Dist: Measured rangefinder distance
251
// @Field: Orient: orientation
252
// @Field: Status: status
253
// @Field: I: rangefinder instance number
254
struct log_RRNI {
255
Vector3f pos_offset;
256
float distance;
257
uint8_t orientation;
258
uint8_t status;
259
uint8_t instance;
260
uint8_t _end;
261
};
262
263
// @LoggerMessage: RGPH
264
// @Description: Replay Data GPS Header
265
// @Field: NumInst: number of GPS sensors
266
// @Field: Primary: instance number of primary sensor
267
struct log_RGPH {
268
uint8_t num_sensors;
269
uint8_t primary_sensor;
270
uint8_t _end;
271
};
272
273
// @LoggerMessage: RGPI
274
// @Description: Replay Data GPS Instance, infrequently changing data
275
// @Field: OX: antenna body-frame offset, X-axis
276
// @Field: OY: antenna body-frame offset, Y-axis
277
// @Field: OZ: antenna body-frame offset, Z-axis
278
// @Field: Lg: GPS time lag
279
// @Field: Flags: various GPS flags
280
// @FieldBits: Flags: have_vertical_velocity,horizontal_accuracy_returncode,vertical_accuracy_returncode,get_lag_returncode,speed_accuracy_returncode,gps_yaw_deg_returncode
281
// @Field: Stat: GPS fix status
282
// @Field: NSats: number of satellites GPS is using
283
// @Field: I: GPS sensor instance number
284
struct log_RGPI {
285
Vector3f antenna_offset;
286
float lag_sec;
287
uint8_t have_vertical_velocity:1;
288
uint8_t horizontal_accuracy_returncode:1;
289
uint8_t vertical_accuracy_returncode:1;
290
uint8_t get_lag_returncode:1;
291
uint8_t speed_accuracy_returncode:1;
292
uint8_t gps_yaw_deg_returncode:1;
293
uint8_t status;
294
uint8_t num_sats;
295
uint8_t instance;
296
uint8_t _end;
297
};
298
299
// @LoggerMessage: RGPJ
300
// @Description: Replay Data GPS Instance - rapidly changing data
301
// @Field: TS: GPS data timestamp
302
// @Field: VX: GPS velocity, North
303
// @Field: VY: GPS velocity, East
304
// @Field: VZ: GPS velocity, Down
305
// @Field: SA: speed accuracy
306
// @Field: Y: GPS yaw
307
// @Field: YA: GPS yaw accuracy
308
// @Field: YT: timestamp of GPS yaw estimate
309
// @Field: Lat: latitude
310
// @Field: Lon: longitude
311
// @Field: Alt: altitude
312
// @Field: HA: horizontal accuracy
313
// @Field: VA: vertical accuracy
314
// @Field: HD: HDOP
315
// @Field: I: GPS sensor instance number
316
struct log_RGPJ {
317
uint32_t last_message_time_ms;
318
Vector3f velocity;
319
float sacc;
320
float yaw_deg;
321
float yaw_accuracy_deg;
322
uint32_t yaw_deg_time_ms;
323
int32_t lat;
324
int32_t lng;
325
int32_t alt;
326
float hacc;
327
float vacc;
328
uint16_t hdop;
329
uint8_t instance;
330
uint8_t _end;
331
};
332
333
// @LoggerMessage: RASH
334
// @Description: Replay Airspeed Sensor Header
335
// @Field: Primary: airspeed instance number
336
// @Field: NumInst: number of airspeed instances
337
struct log_RASH {
338
uint8_t num_sensors;
339
uint8_t primary;
340
uint8_t _end;
341
};
342
343
// @LoggerMessage: RASI
344
// @Description: Replay Airspeed Sensor Instance data
345
// @Field: pd: measured airspeed
346
// @Field: UpdateMS: timestamp of measured airspeed
347
// @Field: H: indicator of airspeed sensor health
348
// @Field: Use: true if airspeed is configured to be used
349
// @Field: I: airspeed instance number
350
struct log_RASI {
351
float airspeed;
352
uint32_t last_update_ms;
353
bool healthy;
354
bool use;
355
uint8_t instance;
356
uint8_t _end;
357
};
358
359
// @LoggerMessage: RMGH
360
// @Description: Replay Data Magnetometer Header
361
// @Field: Dec: vehicle declination
362
// @Field: Avail: true if the compass library is marking itself as available
363
// @Field: NumInst: number of compass instances
364
// @Field: AutoDec: true if compass autodeclination is enabled
365
// @Field: NumEna: number of enabled compass instances
366
// @Field: LOE: true if compass learning of offsets is enabled
367
// @Field: C: true if compasses are consistent
368
// @Field: FUsable: index of first usable compass
369
struct log_RMGH {
370
float declination;
371
bool available;
372
uint8_t count;
373
bool auto_declination_enabled;
374
uint8_t num_enabled;
375
bool learn_offsets_enabled;
376
bool consistent;
377
uint8_t first_usable;
378
uint8_t _end;
379
};
380
381
// @LoggerMessage: RMGI
382
// @Description: Replay Data Magnetometer Instance
383
// @Field: LU: last update time for magnetometer data
384
// @Field: OX: mag sensor offset, X-axis
385
// @Field: OY: mag sensor offset, Y-axis
386
// @Field: OZ: mag sensor offset, Z-axis
387
// @Field: FX: field strength, X-axis
388
// @Field: FY: field strength, Y-axis
389
// @Field: FZ: field strength, Z-axis
390
// @Field: UFY: true if compass is being used for yaw
391
// @Field: H: sensor health
392
// @Field: HSF: compass has scale factor
393
// @Field: I: magnetometer instance number
394
struct log_RMGI {
395
uint32_t last_update_usec;
396
Vector3f offsets;
397
Vector3f field;
398
bool use_for_yaw;
399
bool healthy;
400
bool have_scale_factor;
401
uint8_t instance;
402
uint8_t _end;
403
};
404
405
// @LoggerMessage: RBCH
406
// @Description: Replay Data Beacon Header
407
// @Field: PX: zero, unused
408
// @Field: PY: zero, unused
409
// @Field: PZ: zero, unused
410
// @Field: AE: zero, unused
411
// @Field: OLat: origin latitude
412
// @Field: OLng: origin longitude
413
// @Field: OAlt: origin altitude
414
// @Field: Flags: vehicle_position_ned_returncode,get_origin_returncode,enabled
415
// @Field: NumInst: number of beacons
416
struct log_RBCH {
417
Vector3f vehicle_position_ned;
418
float accuracy_estimate;
419
int32_t origin_lat;
420
int32_t origin_lng;
421
int32_t origin_alt;
422
uint8_t get_vehicle_position_ned_returncode:1;
423
uint8_t get_origin_returncode:1;
424
uint8_t enabled:1;
425
uint8_t count;
426
uint8_t _end;
427
};
428
429
// @LoggerMessage: RBCI
430
// @Description: Replay Data Beacon Instance
431
// @Field: LU: last update from this beacon instance
432
// @Field: PX: beacon distance from origin, X-axis
433
// @Field: PY: beacon distance from origin, Y-axis
434
// @Field: PZ: beacon distance from origin, Z-axis
435
// @Field: Dist: distance to beacon
436
// @Field: H: beacon data health
437
// @Field: I: beacon instance number
438
struct log_RBCI {
439
uint32_t last_update_ms;
440
Vector3f position;
441
float distance;
442
uint8_t healthy;
443
uint8_t instance;
444
uint8_t _end;
445
};
446
447
// @LoggerMessage: RVOH
448
// @Description: Replay Data Visual Odometry data
449
// @Field: OX: offset, x-axis
450
// @Field: OY: offset, y-axis
451
// @Field: OZ: offset, z-axis
452
// @Field: Del: data delay
453
// @Field: H: sensor health
454
// @Field: Ena: sensor enabled
455
struct log_RVOH {
456
Vector3f pos_offset;
457
uint32_t delay_ms;
458
uint8_t healthy;
459
bool enabled;
460
uint8_t _end;
461
};
462
463
// @LoggerMessage: ROFH
464
// @Description: Replay optical flow data
465
// @Field: FX: raw flow rate, X-axis
466
// @Field: FY: raw flow rate, Y-axis
467
// @Field: GX: gyro rate, X-axis
468
// @Field: GY: gyro rate, Y-axis
469
// @Field: Tms: measurement timestamp
470
// @Field: PX:gyro rate, X-axis
471
// @Field: PY: body-frame offset, Y-axis
472
// @Field: PZ: body-frame offset, Z-axis
473
// @Field: HgtOvr: sensor height override
474
// @Field: Qual: flow quality measurement
475
struct log_ROFH {
476
Vector2f rawFlowRates;
477
Vector2f rawGyroRates;
478
uint32_t msecFlowMeas;
479
Vector3f posOffset;
480
float heightOverride;
481
uint8_t rawFlowQuality;
482
uint8_t _end;
483
};
484
485
// @LoggerMessage: REPH
486
// @Description: Replay external position data
487
// @Field: PX: external position estimate, X-axis
488
// @Field: PY: external position estimate, Y-axis
489
// @Field: PZ: external position estimate, Z-axis
490
// @Field: Q1: external attitude quaternion
491
// @Field: Q2: external attitude quaternion
492
// @Field: Q3: external attitude quaternion
493
// @Field: Q4: external attitude quaternion
494
// @Field: PEr: external position error estimate
495
// @Field: AEr: external attitude error estimate
496
// @Field: TS: timestamp on external error estimate
497
// @Field: RT: timestamp of last external reset
498
// @Field: D: delay on external data
499
struct log_REPH {
500
Vector3f pos;
501
Quaternion quat;
502
float posErr;
503
float angErr;
504
uint32_t timeStamp_ms;
505
uint32_t resetTime_ms;
506
uint16_t delay_ms;
507
uint8_t _end;
508
};
509
510
// @LoggerMessage: RSLL
511
// @Description: Replay Set Lat Lng event
512
// @Field: Lat: latitude
513
// @Field: Lng: longitude
514
// @Field: PosAccSD: position accuracy, 1-StD
515
// @Field: TS: timestamp of latitude/longitude
516
struct log_RSLL {
517
int32_t lat; // WGS-84 latitude in 1E-7 degrees
518
int32_t lng; // WGS-84 longitude in 1E7 degrees
519
float posAccSD; // horizontal position 1 STD uncertainty (m)
520
uint32_t timestamp_ms;
521
uint8_t _end;
522
};
523
524
// @LoggerMessage: REVH
525
// @Description: Replay external velocity data
526
// @Field: VX: external velocity estimate, X-axis
527
// @Field: VY: external velocity estimate, Y-axis
528
// @Field: VZ: external velocity estimate, Z-axis
529
// @Field: Er: error in velocity estimate
530
// @Field: TS: timestamp of velocity estimate
531
// @Field: D: delay in external velocity data
532
struct log_REVH {
533
Vector3f vel;
534
float err;
535
uint32_t timeStamp_ms;
536
uint16_t delay_ms;
537
uint8_t _end;
538
};
539
540
// @LoggerMessage: RWOH
541
// @Description: Replay wheel odometry data
542
// @Field: DA: delta-angle
543
// @Field: DT: delta-time
544
// @Field: TS: data timestamp
545
// @Field: PX: sensor body-frame offset, x-axis
546
// @Field: PY: sensor body-frame offset, y-axis
547
// @Field: PZ: sensor body-frame offset, z-axis
548
// @Field: R: wheel radius
549
struct log_RWOH {
550
float delAng;
551
float delTime;
552
uint32_t timeStamp_ms;
553
Vector3f posOffset;
554
float radius;
555
uint8_t _end;
556
};
557
558
// @LoggerMessage: RBOH
559
// @Description: Replay body odometry data
560
// @Field: Q: data quality measure
561
// @Field: DPX: delta-position-X
562
// @Field: DPY: delta-position-Y
563
// @Field: DPZ: delta-position-Z
564
// @Field: DAX: delta-angle-X
565
// @Field: DAY: delta-angle-Y
566
// @Field: DAZ: delta-angle-Z
567
// @Field: DT: delta-time
568
// @Field: TS: data timestamp
569
// @Field: OX: zero, unused
570
// @Field: OY: zero, unused
571
// @Field: OZ: zero, unused
572
// @Field: D: zero, unused
573
struct log_RBOH {
574
float quality;
575
Vector3f delPos;
576
Vector3f delAng;
577
float delTime;
578
uint32_t timeStamp_ms;
579
Vector3f posOffset;
580
uint16_t delay_ms;
581
uint8_t _end;
582
};
583
584
// @LoggerMessage: RTER
585
// @Description: Replay Terrain SRTM Altitude
586
// @Field: Alt: altitude above origin in meters
587
struct log_RTER {
588
float alt_m;
589
uint8_t _end;
590
};
591
592
#define RLOG_SIZE(sname) 3+offsetof(struct log_ ##sname,_end)
593
594
#define LOG_STRUCTURE_FROM_DAL \
595
{ LOG_RFRH_MSG, RLOG_SIZE(RFRH), \
596
"RFRH", "QI", "TimeUS,TF", "s-", "F-" }, \
597
{ LOG_RFRF_MSG, RLOG_SIZE(RFRF), \
598
"RFRF", "BB", "FTypes,Slow", "--", "--" }, \
599
{ LOG_RFRN_MSG, RLOG_SIZE(RFRN), \
600
"RFRN", "IIIfIfffBBB", "HLat,HLon,HAlt,E2T,AM,TX,TY,TZ,VC,EKT,Flags", "DUm-bddd---", "GGB--------" }, \
601
{ LOG_REV2_MSG, RLOG_SIZE(REV2), \
602
"REV2", "B", "Event", "-", "-" }, \
603
{ LOG_RSO2_MSG, RLOG_SIZE(RSO2), \
604
"RSO2", "III", "Lat,Lon,Alt", "DUm", "GGB" }, \
605
{ LOG_RWA2_MSG, RLOG_SIZE(RWA2), \
606
"RWA2", "ff", "Airspeed,uncertainty", "nn", "00" }, \
607
{ LOG_REV3_MSG, RLOG_SIZE(REV3), \
608
"REV3", "B", "Event", "-", "-" }, \
609
{ LOG_RSO3_MSG, RLOG_SIZE(RSO3), \
610
"RSO3", "III", "Lat,Lon,Alt", "DUm", "GGB" }, \
611
{ LOG_RWA3_MSG, RLOG_SIZE(RWA3), \
612
"RWA3", "ff", "Airspeed,Uncertainty", "nn", "00" }, \
613
{ LOG_REY3_MSG, RLOG_SIZE(REY3), \
614
"REY3", "ffIB", "yawangle,yawangleerr,timestamp_ms,type", "???-", "???-" }, \
615
{ LOG_RISH_MSG, RLOG_SIZE(RISH), \
616
"RISH", "HBBfBB", "LR,PG,PA,LD,AC,GC", "------", "------" }, \
617
{ LOG_RISI_MSG, RLOG_SIZE(RISI), \
618
"RISI", "ffffffffBB", "DVX,DVY,DVZ,DAX,DAY,DAZ,DVDT,DADT,Flags,I", "---------#", "----------" }, \
619
{ LOG_RASH_MSG, RLOG_SIZE(RASH), \
620
"RASH", "BB", "Primary,NumInst", "--", "--" }, \
621
{ LOG_RASI_MSG, RLOG_SIZE(RASI), \
622
"RASI", "fIBBB", "pd,UpdateMS,H,Use,I", "----#", "-----" }, \
623
{ LOG_RBRH_MSG, RLOG_SIZE(RBRH), \
624
"RBRH", "BB", "Primary,NumInst", "--", "--" }, \
625
{ LOG_RBRI_MSG, RLOG_SIZE(RBRI), \
626
"RBRI", "IfBB", "LastUpdate,Alt,H,I", "---#", "----" }, \
627
{ LOG_RRNH_MSG, RLOG_SIZE(RRNH), \
628
"RRNH", "ffB", "GCl,MaxD,NumSensors", "mm-", "00-" }, \
629
{ LOG_RRNI_MSG, RLOG_SIZE(RRNI), \
630
"RRNI", "ffffBBB", "PX,PY,PZ,Dist,Orient,Status,I", "---m--#", "---0---" }, \
631
{ LOG_RGPH_MSG, RLOG_SIZE(RGPH), \
632
"RGPH", "BB", "NumInst,Primary", "--", "--" }, \
633
{ LOG_RGPI_MSG, RLOG_SIZE(RGPI), \
634
"RGPI", "ffffBBBB", "OX,OY,OZ,Lg,Flags,Stat,NSats,I", "-------#", "--------" }, \
635
{ LOG_RGPJ_MSG, RLOG_SIZE(RGPJ), \
636
"RGPJ", "IffffffIiiiffHB", "TS,VX,VY,VZ,SA,Y,YA,YT,Lat,Lon,Alt,HA,VA,HD,I", "--------------#", "---------------" }, \
637
{ LOG_RMGH_MSG, RLOG_SIZE(RMGH), \
638
"RMGH", "fBBBBBBB", "Dec,Avail,NumInst,AutoDec,NumEna,LOE,C,FUsable", "--------", "--------" }, \
639
{ LOG_RMGI_MSG, RLOG_SIZE(RMGI), \
640
"RMGI", "IffffffBBBB", "LU,OX,OY,OZ,FX,FY,FZ,UFY,H,HSF,I", "----------#", "-----------" }, \
641
{ LOG_RBCH_MSG, RLOG_SIZE(RBCH), \
642
"RBCH", "ffffiiiBB", "PX,PY,PZ,AE,OLat,OLng,OAlt,Flags,NumInst", "---------", "---------" }, \
643
{ LOG_RBCI_MSG, RLOG_SIZE(RBCI), \
644
"RBCI", "IffffBB", "LU,PX,PY,PZ,Dist,H,I", "smmmm-#", "?0000--" }, \
645
{ LOG_RVOH_MSG, RLOG_SIZE(RVOH), \
646
"RVOH", "fffIBB", "OX,OY,OZ,Del,H,Ena", "------", "------" }, \
647
{ LOG_ROFH_MSG, RLOG_SIZE(ROFH), \
648
"ROFH", "ffffIffffB", "FX,FY,GX,GY,Tms,PX,PY,PZ,HgtOvr,Qual", "----------", "----------" }, \
649
{ LOG_REPH_MSG, RLOG_SIZE(REPH), \
650
"REPH", "fffffffffIIH", "PX,PY,PZ,Q1,Q2,Q3,Q4,PEr,AEr,TS,RT,D", "------------", "------------" }, \
651
{ LOG_RSLL_MSG, RLOG_SIZE(RSLL), \
652
"RSLL", "IIfI", "Lat,Lng,PosAccSD,TS", "DU--", "GG--" }, \
653
{ LOG_REVH_MSG, RLOG_SIZE(REVH), \
654
"REVH", "ffffIH", "VX,VY,VZ,Er,TS,D", "------", "------" }, \
655
{ LOG_RWOH_MSG, RLOG_SIZE(RWOH), \
656
"RWOH", "ffIffff", "DA,DT,TS,PX,PY,PZ,R", "-------", "-------" }, \
657
{ LOG_RBOH_MSG, RLOG_SIZE(RBOH), \
658
"RBOH", "ffffffffIfffH", "Q,DPX,DPY,DPZ,DAX,DAY,DAZ,DT,TS,OX,OY,OZ,D", "-------------", "-------------" }, \
659
{ LOG_RTER_MSG, RLOG_SIZE(RTER), \
660
"RTER", "f", "Alt", "m", "0" },
661
662