2016-02-17 21:25:53 -04:00
# pragma once
2015-11-05 19:50:54 -04:00
2020-11-05 19:26:16 -04:00
# include <AP_Common/AP_Common.h>
2019-06-04 03:38:51 -03:00
// if you add any new types, units or multipliers, please update README.md
2015-11-05 19:50:54 -04:00
/*
2019-06-04 03:28:01 -03:00
Format characters in the format string for binary log messages
a : int16_t [ 32 ]
b : int8_t
B : uint8_t
h : int16_t
H : uint16_t
i : int32_t
I : uint32_t
f : float
d : double
n : char [ 4 ]
N : char [ 16 ]
Z : char [ 64 ]
c : int16_t * 100
C : uint16_t * 100
e : int32_t * 100
E : uint32_t * 100
L : int32_t latitude / longitude
M : uint8_t flight mode
q : int64_t
Q : uint64_t
2015-11-05 19:50:54 -04:00
*/
2015-12-07 20:51:46 -04:00
struct UnitStructure {
const char ID ;
2018-02-22 05:38:58 -04:00
const char * unit ;
2015-12-07 20:51:46 -04:00
} ;
struct MultiplierStructure {
const char ID ;
const double multiplier ;
} ;
// all units here should be base units
// This does mean battery capacity is here as "amp*second"
2017-09-17 18:47:11 -03:00
// Please keep the names consistent with Tools/autotest/param_metadata/param.py:33
2015-12-07 20:51:46 -04:00
const struct UnitStructure log_Units [ ] = {
2017-09-17 18:47:11 -03:00
{ ' - ' , " " } , // no units e.g. Pi, or a string
{ ' ? ' , " UNKNOWN " } , // Units which haven't been worked out yet....
{ ' A ' , " A " } , // Ampere
2021-03-17 05:35:40 -03:00
{ ' a ' , " Ah " } , // Ampere hours
2017-09-17 18:47:11 -03:00
{ ' d ' , " deg " } , // of the angular variety, -180 to 180
{ ' b ' , " B " } , // bytes
{ ' k ' , " deg/s " } , // degrees per second. Degrees are NOT SI, but is some situations more user-friendly than radians
{ ' D ' , " deglatitude " } , // degrees of latitude
{ ' e ' , " deg/s/s " } , // degrees per second per second. Degrees are NOT SI, but is some situations more user-friendly than radians
{ ' E ' , " rad/s " } , // radians per second
{ ' G ' , " Gauss " } , // Gauss is not an SI unit, but 1 tesla = 10000 gauss so a simple replacement is not possible here
{ ' h ' , " degheading " } , // 0.? to 359.?
{ ' i ' , " A.s " } , // Ampere second
2017-12-05 05:54:11 -04:00
{ ' J ' , " W.s " } , // Joule (Watt second)
2017-09-17 18:47:11 -03:00
// { 'l', "l" }, // litres
{ ' L ' , " rad/s/s " } , // radians per second per second
{ ' m ' , " m " } , // metres
{ ' n ' , " m/s " } , // metres per second
// { 'N', "N" }, // Newton
{ ' o ' , " m/s/s " } , // metres per second per second
{ ' O ' , " degC " } , // degrees Celsius. Not SI, but Kelvin is too cumbersome for most users
2018-02-05 19:31:43 -04:00
{ ' % ' , " % " } , // percent
2017-09-17 18:47:11 -03:00
{ ' S ' , " satellites " } , // number of satellites
{ ' s ' , " s " } , // seconds
{ ' q ' , " rpm " } , // rounds per minute. Not SI, but sometimes more intuitive than Hertz
{ ' r ' , " rad " } , // radians
{ ' U ' , " deglongitude " } , // degrees of longitude
{ ' u ' , " ppm " } , // pulses per minute
{ ' v ' , " V " } , // Volt
{ ' P ' , " Pa " } , // Pascal
{ ' w ' , " Ohm " } , // Ohm
2021-06-03 19:57:18 -03:00
{ ' W ' , " Watt " } , // Watt
{ ' X ' , " W.h " } , // Watt hour
2018-10-14 01:45:42 -03:00
{ ' Y ' , " us " } , // pulse width modulation in microseconds
2019-02-06 22:15:41 -04:00
{ ' z ' , " Hz " } , // Hertz
{ ' # ' , " instance " } // (e.g.)Sensor instance number
2015-12-07 20:51:46 -04:00
} ;
// this multiplier information applies to the raw value present in the
// log. Any adjustment implied by the format field (e.g. the "centi"
// in "centidegrees" is *IGNORED* for the purposes of scaling.
// Essentially "format" simply tells you the C-type, and format-type h
// (int16_t) is equivalent to format-type c (int16_t*100)
// tl;dr a GCS shouldn't/mustn't infer any scaling from the unit name
const struct MultiplierStructure log_Multipliers [ ] = {
2018-01-24 19:20:12 -04:00
{ ' - ' , 0 } , // no multiplier e.g. a string
{ ' ? ' , 1 } , // multipliers which haven't been worked out yet....
2018-02-22 05:38:58 -04:00
// <leave a gap here, just in case....>
2015-12-07 20:51:46 -04:00
{ ' 2 ' , 1e2 } ,
{ ' 1 ' , 1e1 } ,
{ ' 0 ' , 1e0 } ,
{ ' A ' , 1e-1 } ,
{ ' B ' , 1e-2 } ,
{ ' C ' , 1e-3 } ,
{ ' D ' , 1e-4 } ,
{ ' E ' , 1e-5 } ,
{ ' F ' , 1e-6 } ,
{ ' G ' , 1e-7 } ,
// <leave a gap here, just in case....>
2017-09-17 18:47:11 -03:00
{ ' ! ' , 3.6 } , // (ampere*second => milliampere*hour) and (km/h => m/s)
2017-12-05 05:54:11 -04:00
{ ' / ' , 3600 } , // (ampere*second => ampere*hour)
2015-12-07 20:51:46 -04:00
} ;
2019-06-04 03:28:01 -03:00
/*
unfortunately these need to be macros because of a limitation of
named member structure initialisation in g + +
*/
# define LOG_PACKET_HEADER uint8_t head1, head2, msgid;
# define LOG_PACKET_HEADER_INIT(id) head1 : HEAD_BYTE1, head2 : HEAD_BYTE2, msgid : id
# define LOG_PACKET_HEADER_LEN 3 // bytes required for LOG_PACKET_HEADER
// once the logging code is all converted we will remove these from
// this header
# define HEAD_BYTE1 0xA3 // Decimal 163
# define HEAD_BYTE2 0x95 // Decimal 149
2020-11-05 19:26:16 -04:00
# include <AP_DAL/LogStructure.h>
# include <AP_NavEKF2/LogStructure.h>
# include <AP_NavEKF3/LogStructure.h>
2021-02-09 19:08:38 -04:00
# include <AP_GPS/LogStructure.h>
2021-02-17 18:34:13 -04:00
# include <AP_NavEKF/LogStructure.h>
2021-01-11 21:43:14 -04:00
# include <AP_BattMonitor/LogStructure.h>
2021-02-09 15:05:03 -04:00
# include <AP_InertialSensor/LogStructure.h>
2021-01-08 23:45:38 -04:00
# include <AP_AHRS/LogStructure.h>
2021-01-22 15:51:48 -04:00
# include <AP_Camera/LogStructure.h>
2021-02-02 00:08:50 -04:00
# include <AP_Baro/LogStructure.h>
2021-02-02 22:12:58 -04:00
# include <AP_VisualOdom/LogStructure.h>
2021-04-12 07:40:50 -03:00
# include <AC_PrecLand/LogStructure.h>
2021-01-22 03:24:54 -04:00
# include <AC_Avoidance/LogStructure.h>
2021-03-17 05:35:40 -03:00
# include <AP_ESC_Telem/LogStructure.h>
2020-03-19 13:18:25 -03:00
# include <AP_AIS/LogStructure.h>
2021-01-08 23:45:38 -04:00
2019-06-04 03:28:01 -03:00
// structure used to define logging format
2021-07-28 03:29:11 -03:00
struct PACKED LogStructure {
2019-06-04 03:28:01 -03:00
uint8_t msg_type ;
uint8_t msg_len ;
const char * name ;
const char * format ;
const char * labels ;
const char * units ;
const char * multipliers ;
2021-07-27 05:47:45 -03:00
bool streaming ; // can be rate limited
2019-06-04 03:28:01 -03:00
} ;
// maximum lengths of fields in LogStructure, including trailing nulls
static const uint8_t LS_NAME_SIZE = 5 ;
static const uint8_t LS_FORMAT_SIZE = 17 ;
static const uint8_t LS_LABELS_SIZE = 65 ;
static const uint8_t LS_UNITS_SIZE = 17 ;
static const uint8_t LS_MULTIPLIERS_SIZE = 17 ;
/*
log structures common to all vehicle types
*/
struct PACKED log_Format {
LOG_PACKET_HEADER ;
uint8_t type ;
uint8_t length ;
char name [ 4 ] ;
char format [ 16 ] ;
char labels [ 64 ] ;
} ;
struct PACKED log_Unit {
LOG_PACKET_HEADER ;
uint64_t time_us ;
char type ;
char unit [ 64 ] ; // you know, this might be overkill...
} ;
struct PACKED log_Format_Multiplier {
LOG_PACKET_HEADER ;
uint64_t time_us ;
char type ;
double multiplier ;
} ;
struct PACKED log_Format_Units {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t format_type ;
char units [ 16 ] ;
char multipliers [ 16 ] ;
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_Parameter {
LOG_PACKET_HEADER ;
uint64_t time_us ;
char name [ 16 ] ;
float value ;
} ;
2017-08-25 04:18:26 -03:00
struct PACKED log_DSF {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint32_t dropped ;
uint16_t blocks ;
uint32_t bytes ;
uint32_t buf_space_min ;
uint32_t buf_space_max ;
uint32_t buf_space_avg ;
} ;
2019-02-01 07:29:43 -04:00
struct PACKED log_Event {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t id ;
} ;
2019-03-24 22:04:59 -03:00
struct PACKED log_Error {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t sub_system ;
uint8_t error_code ;
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_Message {
LOG_PACKET_HEADER ;
uint64_t time_us ;
char msg [ 64 ] ;
} ;
struct PACKED log_RCIN {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint16_t chan1 ;
uint16_t chan2 ;
uint16_t chan3 ;
uint16_t chan4 ;
uint16_t chan5 ;
uint16_t chan6 ;
uint16_t chan7 ;
uint16_t chan8 ;
uint16_t chan9 ;
uint16_t chan10 ;
uint16_t chan11 ;
uint16_t chan12 ;
uint16_t chan13 ;
uint16_t chan14 ;
} ;
2020-08-19 05:56:50 -03:00
struct PACKED log_RCIN2 {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint16_t chan15 ;
uint16_t chan16 ;
2021-05-15 00:45:43 -03:00
uint16_t override_mask ;
2020-08-19 05:56:50 -03:00
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_RCOUT {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint16_t chan1 ;
uint16_t chan2 ;
uint16_t chan3 ;
uint16_t chan4 ;
uint16_t chan5 ;
uint16_t chan6 ;
uint16_t chan7 ;
uint16_t chan8 ;
uint16_t chan9 ;
uint16_t chan10 ;
uint16_t chan11 ;
uint16_t chan12 ;
2016-06-06 00:42:03 -03:00
uint16_t chan13 ;
uint16_t chan14 ;
2015-11-05 19:50:54 -04:00
} ;
2019-02-06 22:30:09 -04:00
struct PACKED log_MAV {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t chan ;
uint16_t packet_tx_count ;
uint16_t packet_rx_success_count ;
uint16_t packet_rx_drop_count ;
2020-02-20 01:13:50 -04:00
uint8_t flags ;
2020-03-23 23:15:03 -03:00
uint16_t stream_slowdown_ms ;
2020-04-14 19:54:22 -03:00
uint16_t times_full ;
2019-02-06 22:30:09 -04:00
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_RSSI {
LOG_PACKET_HEADER ;
uint64_t time_us ;
float RXRSSI ;
2021-07-13 13:03:00 -03:00
float RXLQ ;
2015-11-05 19:50:54 -04:00
} ;
2018-09-02 09:27:58 -03:00
struct PACKED log_Optflow {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t surface_quality ;
float flow_x ;
float flow_y ;
float body_x ;
float body_y ;
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_POWR {
LOG_PACKET_HEADER ;
uint64_t time_us ;
2016-06-02 17:55:05 -03:00
float Vcc ;
float Vservo ;
2015-11-05 19:50:54 -04:00
uint16_t flags ;
2020-07-19 21:34:43 -03:00
uint16_t accumulated_flags ;
2018-04-12 20:49:48 -03:00
uint8_t safety_and_arm ;
2021-08-22 22:39:48 -03:00
float MCU_temp ;
float MCU_voltage ;
float MCU_voltage_min ;
float MCU_voltage_max ;
2015-11-05 19:50:54 -04:00
} ;
struct PACKED log_Cmd {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint16_t command_total ;
uint16_t sequence ;
uint16_t command ;
float param1 ;
float param2 ;
float param3 ;
float param4 ;
2018-11-24 23:10:07 -04:00
int32_t latitude ;
int32_t longitude ;
2015-11-05 19:50:54 -04:00
float altitude ;
2018-03-15 15:39:51 -03:00
uint8_t frame ;
2015-11-05 19:50:54 -04:00
} ;
2019-08-22 22:21:39 -03:00
struct PACKED log_MAVLink_Command {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t target_system ;
uint8_t target_component ;
2021-09-04 03:40:38 -03:00
uint8_t source_system ;
uint8_t source_component ;
2019-08-22 22:21:39 -03:00
uint8_t frame ;
uint16_t command ;
float param1 ;
float param2 ;
float param3 ;
float param4 ;
int32_t x ;
int32_t y ;
float z ;
uint8_t result ;
bool was_command_long ;
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_Radio {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t rssi ;
uint8_t remrssi ;
uint8_t txbuf ;
uint8_t noise ;
uint8_t remnoise ;
uint16_t rxerrors ;
uint16_t fixed ;
} ;
struct PACKED log_PID {
LOG_PACKET_HEADER ;
uint64_t time_us ;
2019-06-27 06:31:52 -03:00
float target ;
2018-08-08 01:11:43 -03:00
float actual ;
2019-06-27 06:31:52 -03:00
float error ;
2015-11-05 19:50:54 -04:00
float P ;
float I ;
float D ;
float FF ;
2020-05-10 04:16:23 -03:00
float Dmod ;
2021-04-04 06:49:09 -03:00
float slew_rate ;
2021-01-02 14:02:46 -04:00
uint8_t limit ;
2015-11-05 19:50:54 -04:00
} ;
2019-02-05 01:00:28 -04:00
struct PACKED log_WheelEncoder {
LOG_PACKET_HEADER ;
uint64_t time_us ;
float distance_0 ;
uint8_t quality_0 ;
float distance_1 ;
uint8_t quality_1 ;
} ;
2019-02-23 15:31:20 -04:00
struct PACKED log_ADSB {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint32_t ICAO_address ;
int32_t lat ;
int32_t lng ;
int32_t alt ;
uint16_t heading ;
uint16_t hor_velocity ;
int16_t ver_velocity ;
uint16_t squawk ;
} ;
2020-11-01 21:46:43 -04:00
struct PACKED log_MAG {
2015-11-05 19:50:54 -04:00
LOG_PACKET_HEADER ;
uint64_t time_us ;
2020-11-01 21:46:43 -04:00
uint8_t instance ;
2015-11-05 19:50:54 -04:00
int16_t mag_x ;
int16_t mag_y ;
int16_t mag_z ;
int16_t offset_x ;
int16_t offset_y ;
int16_t offset_z ;
int16_t motor_offset_x ;
int16_t motor_offset_y ;
int16_t motor_offset_z ;
uint8_t health ;
2016-05-04 04:10:25 -03:00
uint32_t SUS ;
2015-11-05 19:50:54 -04:00
} ;
struct PACKED log_Mode {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t mode ;
uint8_t mode_num ;
2016-01-25 19:45:27 -04:00
uint8_t mode_reason ;
2015-11-05 19:50:54 -04:00
} ;
/*
rangefinder - support for 4 sensors
*/
struct PACKED log_RFND {
LOG_PACKET_HEADER ;
uint64_t time_us ;
2019-05-29 21:28:17 -03:00
uint8_t instance ;
uint16_t dist ;
uint8_t status ;
uint8_t orient ;
2015-11-05 19:50:54 -04:00
} ;
/*
terrain log structure
*/
struct PACKED log_TERRAIN {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t status ;
int32_t lat ;
int32_t lng ;
uint16_t spacing ;
float terrain_height ;
float current_height ;
uint16_t pending ;
uint16_t loaded ;
} ;
2020-01-04 00:25:55 -04:00
struct PACKED log_CSRV {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t id ;
float position ;
float force ;
float speed ;
uint8_t power_pct ;
} ;
2020-11-18 18:52:49 -04:00
struct PACKED log_ARSP {
2015-11-05 19:50:54 -04:00
LOG_PACKET_HEADER ;
uint64_t time_us ;
2020-11-18 18:52:49 -04:00
uint8_t instance ;
2015-11-05 19:50:54 -04:00
float airspeed ;
float diffpressure ;
int16_t temperature ;
float rawpressure ;
float offset ;
2016-05-12 18:50:57 -03:00
bool use ;
2017-11-03 07:28:20 -03:00
bool healthy ;
2019-02-03 11:06:55 -04:00
float health_prob ;
2017-11-03 07:28:20 -03:00
uint8_t primary ;
2015-11-05 19:50:54 -04:00
} ;
2019-02-11 04:38:01 -04:00
struct PACKED log_MAV_Stats {
2015-11-10 02:34:31 -04:00
LOG_PACKET_HEADER ;
2020-04-03 22:37:36 -03:00
uint64_t timestamp ;
2015-11-10 02:34:31 -04:00
uint32_t seqno ;
uint32_t dropped ;
uint32_t retries ;
uint32_t resends ;
uint8_t state_free_avg ;
uint8_t state_free_min ;
uint8_t state_free_max ;
uint8_t state_pending_avg ;
uint8_t state_pending_min ;
uint8_t state_pending_max ;
uint8_t state_sent_avg ;
uint8_t state_sent_min ;
uint8_t state_sent_max ;
// uint8_t state_retry_avg;
// uint8_t state_retry_min;
// uint8_t state_retry_max;
} ;
2015-11-05 19:50:54 -04:00
struct PACKED log_RPM {
LOG_PACKET_HEADER ;
uint64_t time_us ;
float rpm1 ;
float rpm2 ;
} ;
2016-07-03 23:14:26 -03:00
struct PACKED log_Rally {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t total ;
uint8_t sequence ;
int32_t latitude ;
int32_t longitude ;
int16_t altitude ;
} ;
2017-04-18 11:43:03 -03:00
struct PACKED log_Beacon {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t health ;
uint8_t count ;
float dist0 ;
float dist1 ;
float dist2 ;
float dist3 ;
float posx ;
float posy ;
float posz ;
} ;
2017-07-14 14:00:13 -03:00
// proximity sensor logging
struct PACKED log_Proximity {
LOG_PACKET_HEADER ;
uint64_t time_us ;
2021-02-12 04:31:30 -04:00
uint8_t instance ;
2017-07-14 14:00:13 -03:00
uint8_t health ;
float dist0 ;
float dist45 ;
float dist90 ;
float dist135 ;
float dist180 ;
float dist225 ;
float dist270 ;
float dist315 ;
float distup ;
float closest_angle ;
float closest_dist ;
} ;
2021-02-12 04:31:30 -04:00
struct PACKED log_Proximity_raw {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t instance ;
float raw_dist0 ;
float raw_dist45 ;
float raw_dist90 ;
float raw_dist135 ;
float raw_dist180 ;
float raw_dist225 ;
float raw_dist270 ;
float raw_dist315 ;
} ;
2017-07-14 14:00:13 -03:00
2017-11-15 23:20:17 -04:00
struct PACKED log_Performance {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint16_t num_long_running ;
uint16_t num_loops ;
uint32_t max_time ;
uint32_t mem_avail ;
2018-02-15 11:58:48 -04:00
uint16_t load ;
2020-10-09 15:55:03 -03:00
uint16_t internal_error_last_line ;
2018-08-07 07:00:10 -03:00
uint32_t internal_errors ;
2019-06-03 01:17:02 -03:00
uint32_t internal_error_count ;
2019-05-16 04:57:54 -03:00
uint32_t spi_count ;
uint32_t i2c_count ;
2019-08-25 04:47:09 -03:00
uint32_t i2c_isr_count ;
2019-09-17 05:13:44 -03:00
uint32_t extra_loop_us ;
2017-11-15 23:20:17 -04:00
} ;
2017-07-26 14:09:33 -03:00
struct PACKED log_SRTL {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t active ;
uint16_t num_points ;
uint16_t max_points ;
uint8_t action ;
float N ;
float E ;
float D ;
} ;
2017-10-12 19:26:43 -03:00
struct PACKED log_DSTL {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t stage ;
float target_heading ;
int32_t target_lat ;
int32_t target_lng ;
int32_t target_alt ;
int16_t crosstrack_error ;
int16_t travel_distance ;
float l1_i ;
int32_t loiter_sum_cd ;
float desired ;
float P ;
float I ;
float D ;
} ;
2019-05-03 08:25:08 -03:00
struct PACKED log_Arm_Disarm {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t arm_state ;
2020-02-11 21:25:28 -04:00
uint32_t arm_checks ;
2020-01-07 01:04:31 -04:00
uint8_t forced ;
uint8_t method ;
2019-05-03 08:25:08 -03:00
} ;
2015-11-09 18:10:46 -04:00
2020-07-24 02:59:41 -03:00
struct PACKED log_Winch {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t healthy ;
uint8_t thread_end ;
uint8_t moving ;
uint8_t clutch ;
uint8_t mode ;
float desired_length ;
float length ;
float desired_rate ;
uint16_t tension ;
float voltage ;
int8_t temp ;
} ;
2021-09-21 23:41:15 -03:00
// position controller North axis logging
struct PACKED log_PSCN {
2020-09-09 04:16:39 -03:00
LOG_PACKET_HEADER ;
uint64_t time_us ;
2021-09-21 23:41:15 -03:00
float pos_target ;
float pos ;
float vel_desired ;
float vel_target ;
float vel ;
float accel_desired ;
float accel_target ;
float accel ;
2020-09-09 04:16:39 -03:00
} ;
2021-09-21 23:41:15 -03:00
// position controller East axis logging
struct PACKED log_PSCE {
2021-01-29 00:42:26 -04:00
LOG_PACKET_HEADER ;
uint64_t time_us ;
2021-09-21 23:41:15 -03:00
float pos_target ;
float pos ;
float vel_desired ;
float vel_target ;
float vel ;
float accel_desired ;
float accel_target ;
float accel ;
} ;
// position controller Down axis logging
struct PACKED log_PSCD {
LOG_PACKET_HEADER ;
uint64_t time_us ;
float pos_target ;
float pos ;
float vel_desired ;
float vel_target ;
float vel ;
float accel_desired ;
float accel_target ;
float accel ;
2021-01-29 00:42:26 -04:00
} ;
2021-09-06 01:46:19 -03:00
// thread stack usage
struct PACKED log_STAK {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t thread_id ;
uint8_t priority ;
uint16_t stack_total ;
uint16_t stack_free ;
char name [ 16 ] ;
} ;
2021-10-28 03:31:51 -03:00
struct PACKED log_File {
LOG_PACKET_HEADER ;
char filename [ 16 ] ;
2021-12-01 06:10:57 -04:00
uint32_t offset ;
uint8_t length ;
2021-10-28 03:31:51 -03:00
char data [ 64 ] ;
} ;
2021-11-13 13:43:14 -04:00
struct PACKED log_Scripting {
LOG_PACKET_HEADER ;
uint64_t time_us ;
char name [ 16 ] ;
uint32_t run_time ;
int32_t total_mem ;
int32_t run_mem ;
} ;
2021-12-21 16:53:24 -04:00
struct PACKED log_MotBatt {
LOG_PACKET_HEADER ;
uint64_t time_us ;
float lift_max ;
float bat_volt ;
float th_limit ;
float th_average_max ;
uint8_t mot_fail_flags ;
} ;
2022-02-01 20:46:06 -04:00
struct PACKED log_VER {
LOG_PACKET_HEADER ;
uint64_t time_us ;
uint8_t board_type ;
uint16_t board_subtype ;
uint8_t major ;
uint8_t minor ;
uint8_t patch ;
uint8_t fw_type ;
uint32_t git_hash ;
char fw_string [ 64 ] ;
uint16_t _APJ_BOARD_ID ;
} ;
2015-12-07 20:51:46 -04:00
// FMT messages define all message formats other than FMT
// UNIT messages define units which can be referenced by FMTU messages
// FMTU messages associate types (e.g. centimeters/second/second) to FMT message fields
2021-04-04 06:49:09 -03:00
# define PID_LABELS "TimeUS,Tar,Act,Err,P,I,D,FF,Dmod,SRate,Limit"
# define PID_FMT "QfffffffffB"
# define PID_UNITS "s----------"
# define PID_MULTS "F----------"
2017-04-05 03:37:34 -03:00
2020-04-12 04:19:56 -03:00
// @LoggerMessage: ADSB
// @Description: Automatic Dependant Serveillance - Broadcast detected vehicle information
// @Field: TimeUS: Time since system startup
// @Field: ICAO_address: Transponder address
// @Field: Lat: Vehicle latitude
// @Field: Lng: Vehicle longitude
// @Field: Alt: Vehicle altitude
// @Field: Heading: Vehicle heading
// @Field: Hor_vel: Vehicle horizontal velocity
// @Field: Ver_vel: Vehicle vertical velocity
// @Field: Squark: Transponder squawk code
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @LoggerMessage: ARM
// @Description: Arming status changes
// @Field: TimeUS: Time since system startup
// @Field: ArmState: true if vehicle is now armed
// @Field: ArmChecks: arming bitmask at time of arming
// @Field: Forced: true if arm/disarm was forced
// @Field: Method: method used for arming
2020-11-18 18:52:49 -04:00
// @LoggerMessage: ARSP
2020-04-05 07:50:34 -03:00
// @Description: Airspeed sensor data
// @Field: TimeUS: Time since system startup
2020-11-18 18:52:49 -04:00
// @Field: I: Airspeed sensor instance number
2020-04-05 07:50:34 -03:00
// @Field: Airspeed: Current airspeed
// @Field: DiffPress: Pressure difference between static and dynamic port
// @Field: Temp: Temperature used for calculation
// @Field: RawPress: Raw pressure less offset
// @Field: Offset: Offset from parameter
// @Field: U: True if sensor is being used
2020-11-23 23:26:03 -04:00
// @Field: H: True if sensor is healthy
2020-04-07 04:35:05 -03:00
// @Field: Hfp: Probability sensor has failed
2020-04-05 07:50:34 -03:00
// @Field: Pri: True if sensor is the primary sensor
2020-04-12 04:19:56 -03:00
// @LoggerMessage: BCN
2020-12-17 08:40:55 -04:00
// @Description: Beacon information
2020-04-12 04:19:56 -03:00
// @Field: TimeUS: Time since system startup
// @Field: Health: True if beacon sensor is healthy
// @Field: Cnt: Number of beacons being used
// @Field: D0: Distance to first beacon
// @Field: D1: Distance to second beacon
// @Field: D2: Distance to third beacon
2020-12-17 08:40:55 -04:00
// @Field: D3: Distance to fourth beacon
2020-04-12 04:19:56 -03:00
// @Field: PosX: Calculated beacon position, x-axis
// @Field: PosY: Calculated beacon position, y-axis
// @Field: PosZ: Calculated beacon position, z-axis
2020-04-05 07:50:34 -03:00
// @LoggerMessage: CMD
// @Description: Executed mission command information
// @Field: TimeUS: Time since system startup
// @Field: CTot: Total number of mission commands
// @Field: CNum: This command's offset in mission
// @Field: CId: Command type
// @Field: Prm1: Parameter 1
// @Field: Prm2: Parameter 2
// @Field: Prm3: Parameter 3
// @Field: Prm4: Parameter 4
// @Field: Lat: Command latitude
// @Field: Lng: Command longitude
// @Field: Alt: Command altitude
// @Field: Frame: Frame used for position
// @LoggerMessage: CSRV
// @Description: Servo feedback data
// @Field: TimeUS: Time since system startup
// @Field: Id: Servo number this data relates to
// @Field: Pos: Current servo position
2020-04-07 04:35:05 -03:00
// @Field: Force: Force being applied
2020-04-05 07:50:34 -03:00
// @Field: Speed: Current servo movement speed
// @Field: Pow: Amount of rated power being applied
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @LoggerMessage: DMS
// @Description: DataFlash-Over-MAVLink statistics
2020-04-04 21:16:28 -03:00
// @Field: TimeUS: Time since system startup
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @Field: N: Current block number
// @Field: Dp: Number of times we rejected a write to the backend
// @Field: RT: Number of blocks sent from the retry queue
// @Field: RS: Number of resends of unacknowledged data made
// @Field: Fa: Average number of blocks on the free list
// @Field: Fmn: Minimum number of blocks on the free list
// @Field: Fmx: Maximum number of blocks on the free list
// @Field: Pa: Average number of blocks on the pending list
// @Field: Pmn: Minimum number of blocks on the pending list
// @Field: Pmx: Maximum number of blocks on the pending list
// @Field: Sa: Average number of blocks on the sent list
// @Field: Smn: Minimum number of blocks on the sent list
// @Field: Smx: Maximum number of blocks on the sent list
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: DSF
// @Description: Onboard logging statistics
// @Field: TimeUS: Time since system startup
// @Field: Dp: Number of times we rejected a write to the backend
// @Field: Blk: Current block number
// @Field: Bytes: Current write offset
// @Field: FMn: Minimum free space in write buffer in last time period
// @Field: FMx: Maximum free space in write buffer in last time period
// @Field: FAv: Average free space in write buffer in last time period
2020-04-06 23:56:14 -03:00
// @LoggerMessage: DSTL
// @Description: Deepstall Landing data
// @Field: TimeUS: Time since system startup
// @Field: Stg: Deepstall landing stage
// @Field: THdg: Target heading
// @Field: Lat: Landing point latitude
// @Field: Lng: Landing point longitude
// @Field: Alt: Landing point altitude
// @Field: XT: Crosstrack error
// @Field: Travel: Expected travel distance vehicle will travel from this point
// @Field: L1I: L1 controller crosstrack integrator value
// @Field: Loiter: wind estimate loiter angle flown
// @Field: Des: Deepstall steering PID desired value
// @Field: P: Deepstall steering PID Proportional response component
// @Field: I: Deepstall steering PID Integral response component
// @Field: D: Deepstall steering PID Derivative response component
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: ERR
// @Description: Specifically coded error messages
// @Field: TimeUS: Time since system startup
2020-04-07 04:35:05 -03:00
// @Field: Subsys: Subsystem in which the error occurred
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @Field: ECode: Subsystem-specific error code
// @LoggerMessage: EV
// @Description: Specifically coded event messages
// @Field: TimeUS: Time since system startup
// @Field: Id: Event identifier
2019-10-18 00:07:06 -03:00
// @LoggerMessage: FMT
// @Description: Message defining the format of messages in this file
// @URL: https://ardupilot.org/dev/docs/code-overview-adding-a-new-log-message.html
2020-03-20 23:44:24 -03:00
// @Field: Type: unique-to-this-log identifier for message being defined
// @Field: Length: the number of bytes taken up by this message (including all headers)
// @Field: Name: name of the message being defined
// @Field: Format: character string defining the C-storage-type of the fields in this message
// @Field: Columns: the labels of the message being defined
2019-10-18 00:07:06 -03:00
2020-03-25 09:33:03 -03:00
// @LoggerMessage: FMTU
// @Description: Message defining units and multipliers used for fields of other messages
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-25 09:33:03 -03:00
// @Field: FmtType: numeric reference to associated FMT message
// @Field: UnitIds: each character refers to a UNIT message. The unit at an offset corresponds to the field at the same offset in FMT.Format
// @Field: MultIds: each character refers to a MULT message. The multiplier at an offset corresponds to the field at the same offset in FMT.Format
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: LGR
// @Description: Landing gear information
// @Field: TimeUS: Time since system startup
// @Field: LandingGear: Current landing gear state
// @Field: WeightOnWheels: True if there is weight on wheels
2020-11-01 21:46:43 -04:00
// @LoggerMessage: MAG
2020-03-19 23:57:40 -03:00
// @Description: Information received from compasses
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-11-01 21:46:43 -04:00
// @Field: I: magnetometer sensor instance number
2020-03-19 23:57:40 -03:00
// @Field: MagX: magnetic field strength in body frame
// @Field: MagY: magnetic field strength in body frame
// @Field: MagZ: magnetic field strength in body frame
// @Field: OfsX: magnetic field offset in body frame
// @Field: OfsY: magnetic field offset in body frame
// @Field: OfsZ: magnetic field offset in body frame
2020-11-01 21:46:43 -04:00
// @Field: MOX: motor interference magnetic field offset in body frame
// @Field: MOY: motor interference magnetic field offset in body frame
// @Field: MOZ: motor interference magnetic field offset in body frame
2020-03-19 23:57:40 -03:00
// @Field: Health: true if the compass is considered healthy
// @Field: S: time measurement was taken
2020-03-31 18:37:53 -03:00
// @LoggerMessage: MAV
// @Description: GCS MAVLink link statistics
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-31 18:37:53 -03:00
// @Field: chan: mavlink channel number
// @Field: txp: transmitted packet count
// @Field: rxp: received packet count
// @Field: rxdp: perceived number of packets we never received
// @Field: flags: compact representation of some stage of the channel
// @Field: ss: stream slowdown is the number of ms being added to each message to fit within bandwidth
2020-04-14 19:54:22 -03:00
// @Field: tf: times buffer was full when a message was going to be sent
2020-03-31 18:37:53 -03:00
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @LoggerMessage: MAVC
// @Description: MAVLink command we have just executed
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @Field: TS: target system for command
// @Field: TC: target component for command
2021-09-04 03:40:38 -03:00
// @Field: SS: target system for command
// @Field: SC: target component for command
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @Field: Fr: command frame
// @Field: Cmd: mavlink command enum value
// @Field: P1: first parameter from mavlink packet
// @Field: P2: second parameter from mavlink packet
// @Field: P3: third parameter from mavlink packet
// @Field: P4: fourth parameter from mavlink packet
// @Field: X: X coordinate from mavlink packet
// @Field: Y: Y coordinate from mavlink packet
// @Field: Z: Z coordinate from mavlink packet
// @Field: Res: command result being returned from autopilot
// @Field: WL: true if this command arrived via a COMMAND_LONG rather than COMMAND_INT
2020-03-19 23:57:40 -03:00
// @LoggerMessage: MODE
// @Description: vehicle control mode information
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-19 23:57:40 -03:00
// @Field: Mode: vehicle-specific mode number
// @Field: ModeNum: alias for Mode
// @Field: Rsn: reason for entering this mode; enumeration value
2020-03-17 22:13:16 -03:00
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: MON
// @Description: Main loop stuck data
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @Field: LDelay: Time main loop has been stuck for
// @Field: Task: Current scheduler task number
// @Field: IErr: Internal error mask; which internal errors have been detected
// @Field: IErrCnt: Internal error count; how many internal errors have been detected
2020-04-29 21:40:46 -03:00
// @Field: IErrLn: Line on which internal error ocurred
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @Field: MavMsg: Id of the last mavlink message processed
// @Field: MavCmd: Id of the last mavlink command processed
// @Field: SemLine: Line number of semaphore most recently taken
// @Field: SPICnt: Number of SPI transactions processed
// @Field: I2CCnt: Number of i2c transactions processed
2020-04-02 20:07:46 -03:00
// @LoggerMessage: MSG
// @Description: Textual messages
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-04-02 20:07:46 -03:00
// @Field: Message: message text
2020-03-25 09:33:03 -03:00
// @LoggerMessage: MULT
// @Description: Message mapping from single character to numeric multiplier
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-25 09:33:03 -03:00
// @Field: Id: character referenced by FMTU
// @Field: Mult: numeric multiplier
2020-04-05 07:50:34 -03:00
// @LoggerMessage: OF
// @Description: Optical flow sensor data
// @Field: TimeUS: Time since system startup
// @Field: Qual: Estimated sensor data quality
// @Field: flowX: Sensor flow rate, X-axis
// @Field: flowY: Sensor flow rate,Y-axis
// @Field: bodyX: derived velocity, X-axis
// @Field: bodyY: derived velocity, Y-axis
2020-03-31 18:37:53 -03:00
// @LoggerMessage: PARM
// @Description: parameter value
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-31 18:37:53 -03:00
// @Field: Name: parameter name
2020-12-17 08:40:55 -04:00
// @Field: Value: parameter value
2020-03-31 18:37:53 -03:00
2022-02-16 03:29:43 -04:00
// @LoggerMessage: PIDR,PIDP,PIDY,PIDA,PIDS,PIDN,PIDE
2020-07-21 12:08:01 -03:00
// @Description: Proportional/Integral/Derivative gain values for Roll/Pitch/Yaw/Altitude/Steering
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-19 23:57:40 -03:00
// @Field: Tar: desired value
// @Field: Act: achieved value
// @Field: Err: error between target and achieved
2020-03-21 10:03:33 -03:00
// @Field: P: proportional part of PID
2020-03-19 23:57:40 -03:00
// @Field: I: integral part of PID
2020-03-21 10:03:33 -03:00
// @Field: D: derivative part of PID
2020-03-19 23:57:40 -03:00
// @Field: FF: controller feed-forward portion of response
2020-05-10 04:16:23 -03:00
// @Field: Dmod: scaler applied to D gain to reduce limit cycling
2021-04-04 06:49:09 -03:00
// @Field: SRate: slew rate used in slew limiter
// @Field: Limit: 1 if I term is limited due to output saturation
2020-03-19 23:57:40 -03:00
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @LoggerMessage: PM
// @Description: autopilot system performance and general data dumping ground
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @Field: NLon: Number of long loops detected
// @Field: NLoop: Number of measurement loops for this message
// @Field: MaxT: Maximum loop time
// @Field: Mem: Free memory available
// @Field: Load: System processor load
// @Field: IntE: Internal error mask; which internal errors have been detected
2020-10-09 15:55:03 -03:00
// @Field: ErrL: Internal error line number; last line number on which a internal error was detected
// @Field: ErrC: Internal error count; how many internal errors have been detected
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
// @Field: SPIC: Number of SPI transactions processed
// @Field: I2CC: Number of i2c transactions processed
// @Field: I2CI: Number of i2c interrupts serviced
2020-10-09 15:55:03 -03:00
// @Field: Ex: number of microseconds being added to each loop to address scheduler overruns
AP_Logger: add documentation for ACC1,ACC2,ACC3,DMS,GPA,GPA2,GPS2,GYR1,GYR2,GYR3,MAVC,PM
2020-04-03 22:32:14 -03:00
2020-04-05 07:50:34 -03:00
// @LoggerMessage: POWR
// @Description: System power information
// @Field: TimeUS: Time since system startup
// @Field: Vcc: Flight board voltage
// @Field: VServo: Servo rail voltage
// @Field: Flags: System power flags
2020-07-19 21:34:43 -03:00
// @Field: AccFlags: Accumulated System power flags; all flags which have ever been set
2020-04-05 07:50:34 -03:00
// @Field: Safety: Hardware Safety Switch status
2021-08-22 22:39:48 -03:00
// @Field: MTemp: MCU Temperature
// @Field: MVolt: MCU Voltage
// @Field: MVmin: MCU Voltage min
// @Field: MVmax: MCU Voltage max
2020-04-05 07:50:34 -03:00
2020-04-12 04:19:56 -03:00
// @LoggerMessage: PRX
2021-02-12 04:31:30 -04:00
// @Description: Proximity Filtered sensor data
2020-04-12 04:19:56 -03:00
// @Field: TimeUS: Time since system startup
2021-02-12 04:31:30 -04:00
// @Field: Layer: Pitch(instance) at which the obstacle is at. 0th layer {-75,-45} degrees. 1st layer {-45,-15} degrees. 2nd layer {-15, 15} degrees. 3rd layer {15, 45} degrees. 4th layer {45,75} degrees. Minimum distance in each layer will be logged.
// @Field: He: True if proximity sensor is healthy
2020-04-12 04:19:56 -03:00
// @Field: D0: Nearest object in sector surrounding 0-degrees
// @Field: D45: Nearest object in sector surrounding 45-degrees
// @Field: D90: Nearest object in sector surrounding 90-degrees
// @Field: D135: Nearest object in sector surrounding 135-degrees
// @Field: D180: Nearest object in sector surrounding 180-degrees
// @Field: D225: Nearest object in sector surrounding 225-degrees
// @Field: D270: Nearest object in sector surrounding 270-degrees
// @Field: D315: Nearest object in sector surrounding 315-degrees
// @Field: DUp: Nearest object in upwards direction
// @Field: CAn: Angle to closest object
// @Field: CDis: Distance to closest object
2021-02-12 04:31:30 -04:00
// @LoggerMessage: PRXR
// @Description: Proximity Raw sensor data
// @Field: TimeUS: Time since system startup
// @Field: Layer: Pitch(instance) at which the obstacle is at. 0th layer {-75,-45} degrees. 1st layer {-45,-15} degrees. 2nd layer {-15, 15} degrees. 3rd layer {15, 45} degrees. 4th layer {45,75} degrees. Minimum distance in each layer will be logged.
// @Field: D0: Nearest object in sector surrounding 0-degrees
// @Field: D45: Nearest object in sector surrounding 45-degrees
// @Field: D90: Nearest object in sector surrounding 90-degrees
// @Field: D135: Nearest object in sector surrounding 135-degrees
// @Field: D180: Nearest object in sector surrounding 180-degrees
// @Field: D225: Nearest object in sector surrounding 225-degrees
// @Field: D270: Nearest object in sector surrounding 270-degrees
// @Field: D315: Nearest object in sector surrounding 315-degrees
2020-04-02 20:07:46 -03:00
// @LoggerMessage: RAD
// @Description: Telemetry radio statistics
// @Field: TimeUS: Time since system startup
// @Field: RSSI: RSSI
// @Field: RemRSSI: RSSI reported from remote radio
// @Field: TxBuf: number of bytes in radio ready to be sent
// @Field: Noise: local noise floor
// @Field: RemNoise: local noise floor reported from remote radio
// @Field: RxErrors: damaged packet count
// @Field: Fixed: fixed damaged packet count
// @LoggerMessage: RALY
// @Description: Rally point information
// @Field: TimeUS: Time since system startup
// @Field: Tot: total number of rally points onboard
// @Field: Seq: this rally point's sequence number
// @Field: Lat: latitude of rally point
// @Field: Lng: longitude of rally point
// @Field: Alt: altitude of rally point
2022-02-01 05:42:31 -04:00
// @LoggerMessage: RCI2
// @Description: (More) RC input channels to vehicle
// @Field: TimeUS: Time since system startup
// @Field: C15: channel 15 input
// @Field: C16: channel 16 input
// @Field: OMask: bitmask of RC channels being overridden by mavlink input
2020-03-19 23:57:40 -03:00
// @LoggerMessage: RCIN
// @Description: RC input channels to vehicle
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-19 23:57:40 -03:00
// @Field: C1: channel 1 input
// @Field: C2: channel 2 input
// @Field: C3: channel 3 input
// @Field: C4: channel 4 input
// @Field: C5: channel 5 input
// @Field: C6: channel 6 input
// @Field: C7: channel 7 input
// @Field: C8: channel 8 input
// @Field: C9: channel 9 input
// @Field: C10: channel 10 input
// @Field: C11: channel 11 input
// @Field: C12: channel 12 input
// @Field: C13: channel 13 input
// @Field: C14: channel 14 input
// @LoggerMessage: RCOU
// @Description: Servo channel output values
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-19 23:57:40 -03:00
// @Field: C1: channel 1 output
// @Field: C2: channel 2 output
// @Field: C3: channel 3 output
// @Field: C4: channel 4 output
// @Field: C5: channel 5 output
// @Field: C6: channel 6 output
// @Field: C7: channel 7 output
// @Field: C8: channel 8 output
// @Field: C9: channel 9 output
// @Field: C10: channel 10 output
// @Field: C11: channel 11 output
// @Field: C12: channel 12 output
// @Field: C13: channel 13 output
// @Field: C14: channel 14 output
2020-04-02 20:07:46 -03:00
// @LoggerMessage: RFND
// @Description: Rangefinder sensor information
// @Field: TimeUS: Time since system startup
// @Field: Instance: rangefinder instance number this data is from
// @Field: Dist: Reported distance from sensor
// @Field: Stat: Sensor state
// @Field: Orient: Sensor orientation
// @LoggerMessage: RPM
// @Description: Data from RPM sensors
// @Field: TimeUS: Time since system startup
// @Field: rpm1: First sensor's data
// @Field: rpm2: Second sensor's data
// @LoggerMessage: RSSI
// @Description: Received Signal Strength Indicator for RC receiver
// @Field: TimeUS: Time since system startup
// @Field: RXRSSI: RSSI
2021-07-13 13:03:00 -03:00
// @Field: RXLQ: RX Link Quality
2020-04-02 20:07:46 -03:00
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: SIM
// @Description: SITL simulator state
// @Field: TimeUS: Time since system startup
// @Field: Roll: Simulated roll
// @Field: Pitch: Simulated pitch
// @Field: Yaw: Simulated yaw
// @Field: Alt: Simulated altitude
// @Field: Lat: Simulated latitude
// @Field: Lng: Simulated longitude
// @Field: Q1: Attitude quaternion component 1
// @Field: Q2: Attitude quaternion component 2
// @Field: Q3: Attitude quaternion component 3
// @Field: Q4: Attitude quaternion component 4
2020-03-25 09:33:03 -03:00
// @LoggerMessage: SRTL
// @Description: SmartRTL statistics
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-25 09:33:03 -03:00
// @Field: Active: true if SmartRTL could be used right now
// @Field: NumPts: number of points currently in use
// @Field: MaxPts: maximum number of points that could be used
// @Field: Action: most recent internal action taken by SRTL library
// @Field: N: point associated with most recent action (North component)
// @Field: E: point associated with most recent action (East component)
// @Field: D: point associated with most recent action (Down component)
2020-04-05 07:50:34 -03:00
// @LoggerMessage: TERR
// @Description: Terrain database infomration
// @Field: TimeUS: Time since system startup
// @Field: Status: Terrain database status
// @Field: Lat: Current vehicle latitude
// @Field: Lng: Current vehicle longitude
// @Field: Spacing: terrain Tile spacing
// @Field: TerrH: current Terrain height
// @Field: CHeight: Vehicle height above terrain
// @Field: Pending: Number of tile requests outstanding
// @Field: Loaded: Number of tiles in memory
AP_Logger: add documentation for more log messages
ERR,DSF,EV,SIM,ORGN,POS,LGR,MON,TSYN,IMU,IMUT
2020-03-21 09:21:59 -03:00
// @LoggerMessage: TSYN
// @Description: Time synchronisation response information
// @Field: TimeUS: Time since system startup
// @Field: SysID: system ID this data is for
// @Field: RTT: round trip time for this system
2020-03-25 09:33:03 -03:00
// @LoggerMessage: UNIT
// @Description: Message mapping from single character to SI unit
2020-04-07 04:35:05 -03:00
// @Field: TimeUS: Time since system startup
2020-03-25 09:33:03 -03:00
// @Field: Id: character referenced by FMTU
// @Field: Label: Unit - SI where available
2020-04-12 04:19:56 -03:00
// @LoggerMessage: WENC
// @Description: Wheel encoder measurements
// @Field: TimeUS: Time since system startup
// @Field: Dist0: First wheel distance travelled
// @Field: Qual0: Quality measurement of Dist0
// @Field: Dist1: Second wheel distance travelled
// @Field: Qual1: Quality measurement of Dist1
2020-07-24 02:59:41 -03:00
// @LoggerMessage: WINC
// @Description: Winch
// @Field: TimeUS: Time since system startup
// @Field: Heal: Healthy
// @Field: ThEnd: Reached end of thread
// @Field: Mov: Motor is moving
// @Field: Clut: Clutch is engaged (motor can move freely)
// @Field: Mode: 0 is Relaxed, 1 is Position Control, 2 is Rate Control
// @Field: DLen: Desired Length
// @Field: Len: Estimated Length
// @Field: DRate: Desired Rate
// @Field: Tens: Tension on line
// @Field: Vcc: Voltage to Motor
// @Field: Temp: Motor temperature
2021-09-21 23:41:15 -03:00
// @LoggerMessage: PSCN
// @Description: Position Control North
// @Field: TimeUS: Time since system startup
// @Field: TPN: Target position relative to EKF origin
// @Field: PN: Position relative to EKF origin
// @Field: DVN: Desired velocity North
// @Field: TVN: Target velocity North
// @Field: VN: Velocity North
// @Field: DAN: Desired acceleration North
// @Field: TAN: Target acceleration North
// @Field: AN: Acceleration North
// @LoggerMessage: PSCE
// @Description: Position Control East
2020-09-09 04:16:39 -03:00
// @Field: TimeUS: Time since system startup
2021-09-21 23:41:15 -03:00
// @Field: TPE: Target position relative to EKF origin
// @Field: PE: Position relative to EKF origin
// @Field: DVE: Desired velocity East
// @Field: TVE: Target velocity East
// @Field: VE: Velocity East
// @Field: DAE: Desired acceleration East
// @Field: TAE: Target acceleration East
// @Field: AE: Acceleration East
// @LoggerMessage: PSCD
// @Description: Position Control Down
2021-01-29 00:42:26 -04:00
// @Field: TimeUS: Time since system startup
2021-09-21 23:41:15 -03:00
// @Field: TPD: Target position relative to EKF origin
// @Field: PD: Position relative to EKF origin
// @Field: DVD: Desired velocity Down
// @Field: TVD: Target velocity Down
// @Field: VD: Velocity Down
// @Field: DAD: Desired acceleration Down
// @Field: TAD: Target acceleration Down
// @Field: AD: Acceleration Down
2021-01-29 00:42:26 -04:00
2021-09-06 01:46:19 -03:00
// @LoggerMessage: STAK
// @Description: Stack information
// @Field: TimeUS: Time since system startup
// @Field: Id: thread ID
// @Field: Pri: thread priority
// @Field: Total: total stack
// @Field: Free: free stack
// @Field: Name: thread name
2021-11-13 13:43:14 -04:00
// @LoggerMessage: SCR
// @Description: Scripting runtime stats
// @Field: TimeUS: Time since system startup
// @Field: Name: script name
// @Field: Runtime: run time
// @Field: Total_mem: total memory useage
// @Field: Run_mem: run memory usage
2021-12-21 16:53:24 -04:00
// @LoggerMessage: MOTB
// @Description: Motor mixer information
// @Field: TimeUS: Time since system startup
// @Field: LiftMax: Maximum motor compensation gain
// @Field: BatVolt: Ratio betwen detected battery voltage and maximum battery voltage
// @Field: ThLimit: Throttle limit set due to battery current limitations
// @Field: ThrAvMx: Maximum average throttle that can be used to maintain attitude controll, derived from throttle mix params
// @Field: FailFlags: bit 0 motor failed, bit 1 motors balanced, should be 2 in normal flight
2015-11-05 19:50:54 -04:00
// messages for all boards
2021-09-25 02:21:43 -03:00
# define LOG_COMMON_STRUCTURES \
2015-11-05 19:50:54 -04:00
{ LOG_FORMAT_MSG , sizeof ( log_Format ) , \
2015-12-07 20:51:46 -04:00
" FMT " , " BBnNZ " , " Type,Length,Name,Format,Columns " , " -b--- " , " ----- " } , \
{ LOG_UNIT_MSG , sizeof ( log_Unit ) , \
" UNIT " , " QbZ " , " TimeUS,Id,Label " , " s-- " , " F-- " } , \
{ LOG_FORMAT_UNITS_MSG , sizeof ( log_Format_Units ) , \
" FMTU " , " QBNN " , " TimeUS,FmtType,UnitIds,MultIds " , " s--- " , " F--- " } , \
{ LOG_MULT_MSG , sizeof ( log_Format_Multiplier ) , \
" MULT " , " Qbd " , " TimeUS,Id,Mult " , " s-- " , " F-- " } , \
2015-11-05 19:50:54 -04:00
{ LOG_PARAMETER_MSG , sizeof ( log_Parameter ) , \
2015-12-07 20:51:46 -04:00
" PARM " , " QNf " , " TimeUS,Name,Value " , " s-- " , " F-- " } , \
2021-02-09 19:08:38 -04:00
LOG_STRUCTURE_FROM_GPS \
2015-11-05 19:50:54 -04:00
{ LOG_MESSAGE_MSG , sizeof ( log_Message ) , \
2015-12-07 20:51:46 -04:00
" MSG " , " QZ " , " TimeUS,Message " , " s- " , " F- " } , \
2015-11-05 19:50:54 -04:00
{ LOG_RCIN_MSG , sizeof ( log_RCIN ) , \
2021-07-27 05:47:45 -03:00
" RCIN " , " QHHHHHHHHHHHHHH " , " TimeUS,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 " , " sYYYYYYYYYYYYYY " , " F-------------- " , true } , \
2020-08-19 05:56:50 -03:00
{ LOG_RCIN2_MSG , sizeof ( log_RCIN2 ) , \
2021-07-27 05:47:45 -03:00
" RCI2 " , " QHHH " , " TimeUS,C15,C16,OMask " , " sYY- " , " F--- " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_RCOUT_MSG , sizeof ( log_RCOUT ) , \
2021-07-27 05:47:45 -03:00
" RCOU " , " QHHHHHHHHHHHHHH " , " TimeUS,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 " , " sYYYYYYYYYYYYYY " , " F-------------- " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_RSSI_MSG , sizeof ( log_RSSI ) , \
2021-07-27 05:47:45 -03:00
" RSSI " , " Qff " , " TimeUS,RXRSSI,RXLQ " , " s-- " , " F-- " , true } , \
2021-02-02 00:08:50 -04:00
LOG_STRUCTURE_FROM_BARO \
2021-04-12 07:40:50 -03:00
LOG_STRUCTURE_FROM_PRECLAND \
2015-11-05 19:50:54 -04:00
{ LOG_POWR_MSG , sizeof ( log_POWR ) , \
2021-08-22 22:39:48 -03:00
" POWR " , " QffHHBffff " , " TimeUS,Vcc,VServo,Flags,AccFlags,Safety,MTemp,MVolt,MVmin,MVmax " , " svv---Ovvv " , " F00---0000 " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_CMD_MSG , sizeof ( log_Cmd ) , \
2018-11-24 23:10:07 -04:00
" CMD " , " QHHHffffLLfB " , " TimeUS,CTot,CNum,CId,Prm1,Prm2,Prm3,Prm4,Lat,Lng,Alt,Frame " , " s-------DUm- " , " F-------GG0- " } , \
2019-08-22 22:21:39 -03:00
{ LOG_MAVLINK_COMMAND_MSG , sizeof ( log_MAVLink_Command ) , \
2021-09-04 03:40:38 -03:00
" MAVC " , " QBBBBBHffffiifBB " , " TimeUS,TS,TC,SS,SC,Fr,Cmd,P1,P2,P3,P4,X,Y,Z,Res,WL " , " s--------------- " , " F--------------- " } , \
2015-11-05 19:50:54 -04:00
{ LOG_RADIO_MSG , sizeof ( log_Radio ) , \
2021-07-27 05:47:45 -03:00
" RAD " , " QBBBBBHH " , " TimeUS,RSSI,RemRSSI,TxBuf,Noise,RemNoise,RxErrors,Fixed " , " s------- " , " F------- " , true } , \
2021-01-22 15:51:48 -04:00
LOG_STRUCTURE_FROM_CAMERA \
2021-07-27 05:47:45 -03:00
{ LOG_ARSP_MSG , sizeof ( log_ARSP ) , " ARSP " , " QBffcffBBfB " , " TimeUS,I,Airspeed,DiffPress,Temp,RawPress,Offset,U,H,Hfp,Pri " , " s#nPOPP---- " , " F-00B00---- " , true } , \
2021-01-11 21:43:14 -04:00
LOG_STRUCTURE_FROM_BATTMONITOR \
2020-11-01 21:46:43 -04:00
{ LOG_MAG_MSG , sizeof ( log_MAG ) , \
2021-07-27 05:47:45 -03:00
" MAG " , " QBhhhhhhhhhBI " , " TimeUS,I,MagX,MagY,MagZ,OfsX,OfsY,OfsZ,MOX,MOY,MOZ,Health,S " , " s#GGGGGGGGG-s " , " F-CCCCCCCCC-F " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_MODE_MSG , sizeof ( log_Mode ) , \
2015-12-07 20:51:46 -04:00
" MODE " , " QMBB " , " TimeUS,Mode,ModeNum,Rsn " , " s--- " , " F--- " } , \
2015-11-05 19:50:54 -04:00
{ LOG_RFND_MSG , sizeof ( log_RFND ) , \
2021-07-27 05:47:45 -03:00
" RFND " , " QBCBB " , " TimeUS,Instance,Dist,Stat,Orient " , " s#m-- " , " F-B-- " , true } , \
2019-02-11 04:38:01 -04:00
{ LOG_MAV_STATS , sizeof ( log_MAV_Stats ) , \
2020-04-03 22:37:36 -03:00
" DMS " , " QIIIIBBBBBBBBB " , " TimeUS,N,Dp,RT,RS,Fa,Fmn,Fmx,Pa,Pmn,Pmx,Sa,Smn,Smx " , " s------------- " , " F------------- " } , \
2017-04-18 11:43:03 -03:00
{ LOG_BEACON_MSG , sizeof ( log_Beacon ) , \
2021-07-27 05:47:45 -03:00
" BCN " , " QBBfffffff " , " TimeUS,Health,Cnt,D0,D1,D2,D3,PosX,PosY,PosZ " , " s--mmmmmmm " , " F--0000000 " , true } , \
2017-07-14 14:00:13 -03:00
{ LOG_PROXIMITY_MSG , sizeof ( log_Proximity ) , \
2021-07-27 05:47:45 -03:00
" PRX " , " QBBfffffffffff " , " TimeUS,Layer,He,D0,D45,D90,D135,D180,D225,D270,D315,DUp,CAn,CDis " , " s#-mmmmmmmmmhm " , " F--00000000000 " , true } , \
2021-02-12 04:31:30 -04:00
{ LOG_RAW_PROXIMITY_MSG , sizeof ( log_Proximity_raw ) , \
2021-07-27 05:47:45 -03:00
" PRXR " , " QBffffffff " , " TimeUS,Layer,D0,D45,D90,D135,D180,D225,D270,D315 " , " s#mmmmmmmm " , " F-00000000 " , true } , \
2017-11-15 23:20:17 -04:00
{ LOG_PERFORMANCE_MSG , sizeof ( log_Performance ) , \
2020-10-09 15:55:03 -03:00
" PM " , " QHHIIHHIIIIII " , " TimeUS,NLon,NLoop,MaxT,Mem,Load,ErrL,IntE,ErrC,SPIC,I2CC,I2CI,Ex " , " s---b%------s " , " F---0A------F " } , \
2017-07-26 14:09:33 -03:00
{ LOG_SRTL_MSG , sizeof ( log_SRTL ) , \
2019-06-08 01:59:04 -03:00
" SRTL " , " QBHHBfff " , " TimeUS,Active,NumPts,MaxPts,Action,N,E,D " , " s----mmm " , " F----000 " } , \
2021-01-22 03:24:54 -04:00
LOG_STRUCTURE_FROM_AVOIDANCE \
2015-11-05 19:50:54 -04:00
{ LOG_SIMSTATE_MSG , sizeof ( log_AHRS ) , \
2021-07-27 05:47:45 -03:00
" SIM " , " QccCfLLffff " , " TimeUS,Roll,Pitch,Yaw,Alt,Lat,Lng,Q1,Q2,Q3,Q4 " , " sddhmDU???? " , " FBBB0GG???? " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_TERRAIN_MSG , sizeof ( log_TERRAIN ) , \
2021-07-27 05:47:45 -03:00
" TERR " , " QBLLHffHH " , " TimeUS,Status,Lat,Lng,Spacing,TerrH,CHeight,Pending,Loaded " , " s-DU-mm-- " , " F-GG-00-- " , true } , \
2021-03-17 05:35:40 -03:00
LOG_STRUCTURE_FROM_ESC_TELEM \
2020-01-04 00:25:55 -04:00
{ LOG_CSRV_MSG , sizeof ( log_CSRV ) , \
2021-07-27 05:47:45 -03:00
" CSRV " , " QBfffB " , " TimeUS,Id,Pos,Force,Speed,Pow " , " s#---% " , " F-0000 " , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_PIDR_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDR " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_PIDP_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDP " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_PIDY_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDY " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_PIDA_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDA " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2015-11-05 19:50:54 -04:00
{ LOG_PIDS_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDS " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2020-01-04 02:17:32 -04:00
{ LOG_PIDN_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDN " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2020-01-04 02:17:32 -04:00
{ LOG_PIDE_MSG , sizeof ( log_PID ) , \
2021-07-27 05:47:45 -03:00
" PIDE " , PID_FMT , PID_LABELS , PID_UNITS , PID_MULTS , true } , \
2017-10-12 19:26:43 -03:00
{ LOG_DSTL_MSG , sizeof ( log_DSTL ) , \
2021-07-27 05:47:45 -03:00
" DSTL " , " QBfLLeccfeffff " , " TimeUS,Stg,THdg,Lat,Lng,Alt,XT,Travel,L1I,Loiter,Des,P,I,D " , " s??DUm-------- " , " F??000-------- " , true } , \
2021-02-09 15:05:03 -04:00
LOG_STRUCTURE_FROM_INERTIALSENSOR \
2020-11-05 19:26:16 -04:00
LOG_STRUCTURE_FROM_DAL \
LOG_STRUCTURE_FROM_NAVEKF2 \
LOG_STRUCTURE_FROM_NAVEKF3 \
2021-02-17 18:34:13 -04:00
LOG_STRUCTURE_FROM_NAVEKF \
2021-01-08 23:45:38 -04:00
LOG_STRUCTURE_FROM_AHRS \
2017-08-25 04:18:26 -03:00
{ LOG_DF_FILE_STATS , sizeof ( log_DSF ) , \
2018-08-07 07:22:21 -03:00
" DSF " , " QIHIIII " , " TimeUS,Dp,Blk,Bytes,FMn,FMx,FAv " , " s--b--- " , " F--0--- " } , \
2015-11-05 19:50:54 -04:00
{ LOG_RPM_MSG , sizeof ( log_RPM ) , \
2021-07-27 05:47:45 -03:00
" RPM " , " Qff " , " TimeUS,rpm1,rpm2 " , " sqq " , " F00 " , true } , \
2016-07-03 23:14:26 -03:00
{ LOG_RALLY_MSG , sizeof ( log_Rally ) , \
2018-03-01 01:45:18 -04:00
" RALY " , " QBBLLh " , " TimeUS,Tot,Seq,Lat,Lng,Alt " , " s--DUm " , " F--GGB " } , \
2019-02-06 22:30:09 -04:00
{ LOG_MAV_MSG , sizeof ( log_MAV ) , \
2020-04-14 19:54:22 -03:00
" MAV " , " QBHHHBHH " , " TimeUS,chan,txp,rxp,rxdp,flags,ss,tf " , " s#----s- " , " F-000-C- " } , \
2021-02-02 22:12:58 -04:00
LOG_STRUCTURE_FROM_VISUALODOM \
2018-09-02 09:27:58 -03:00
{ LOG_OPTFLOW_MSG , sizeof ( log_Optflow ) , \
2021-07-27 05:47:45 -03:00
" OF " , " QBffff " , " TimeUS,Qual,flowX,flowY,bodyX,bodyY " , " s-EEnn " , " F-0000 " , true } , \
2019-02-05 01:00:28 -04:00
{ LOG_WHEELENCODER_MSG , sizeof ( log_WheelEncoder ) , \
2021-07-27 05:47:45 -03:00
" WENC " , " Qfbfb " , " TimeUS,Dist0,Qual0,Dist1,Qual1 " , " sm-m- " , " F0-0- " , true } , \
2019-02-23 15:31:20 -04:00
{ LOG_ADSB_MSG , sizeof ( log_ADSB ) , \
2019-12-09 05:10:39 -04:00
" ADSB " , " QIiiiHHhH " , " TimeUS,ICAO_address,Lat,Lng,Alt,Heading,Hor_vel,Ver_vel,Squark " , " s-DUmhnn- " , " F-GGCBCC- " } , \
{ LOG_EVENT_MSG , sizeof ( log_Event ) , \
" EV " , " QB " , " TimeUS,Id " , " s- " , " F- " } , \
{ LOG_ARM_DISARM_MSG , sizeof ( log_Arm_Disarm ) , \
2020-02-11 21:25:28 -04:00
" ARM " , " QBIBB " , " TimeUS,ArmState,ArmChecks,Forced,Method " , " s---- " , " F---- " } , \
2019-12-09 05:10:39 -04:00
{ LOG_ERROR_MSG , sizeof ( log_Error ) , \
2020-07-24 02:59:41 -03:00
" ERR " , " QBB " , " TimeUS,Subsys,ECode " , " s-- " , " F-- " } , \
{ LOG_WINCH_MSG , sizeof ( log_Winch ) , \
2020-09-09 04:16:39 -03:00
" WINC " , " QBBBBBfffHfb " , " TimeUS,Heal,ThEnd,Mov,Clut,Mode,DLen,Len,DRate,Tens,Vcc,Temp " , " s-----mmn?vO " , " F-----000000 " } , \
2021-09-06 01:46:19 -03:00
{ LOG_PSCN_MSG , sizeof ( log_PSCN ) , \
" PSCN " , " Qffffffff " , " TimeUS,TPN,PN,DVN,TVN,VN,DAN,TAN,AN " , " smmnnnooo " , " F00000000 " } , \
{ LOG_PSCE_MSG , sizeof ( log_PSCE ) , \
" PSCE " , " Qffffffff " , " TimeUS,TPE,PE,DVE,TVE,VE,DAE,TAE,AE " , " smmnnnooo " , " F00000000 " } , \
{ LOG_PSCD_MSG , sizeof ( log_PSCD ) , \
" PSCD " , " Qffffffff " , " TimeUS,TPD,PD,DVD,TVD,VD,DAD,TAD,AD " , " smmnnnooo " , " F00000000 " } , \
{ LOG_STAK_MSG , sizeof ( log_STAK ) , \
" STAK " , " QBBHHN " , " TimeUS,Id,Pri,Total,Free,Name " , " s#---- " , " F----- " , true } , \
2021-10-28 03:31:51 -03:00
{ LOG_FILE_MSG , sizeof ( log_File ) , \
2021-12-01 06:10:57 -04:00
" FILE " , " NIBZ " , " FileName,Offset,Length,Data " , " ---- " , " ---- " } , \
2021-11-13 13:43:14 -04:00
LOG_STRUCTURE_FROM_AIS , \
{ LOG_SCRIPTING_MSG , sizeof ( log_Scripting ) , \
2021-12-21 16:53:24 -04:00
" SCR " , " QNIii " , " TimeUS,Name,Runtime,Total_mem,Run_mem " , " s-sbb " , " F-F-- " , true } , \
2022-02-01 20:46:06 -04:00
{ LOG_VER_MSG , sizeof ( log_VER ) , \
" VER " , " QBHBBBBIZH " , " TimeUS,BT,BST,Maj,Min,Pat,FWT,GH,FWS,APJ " , " s--------- " , " F--------- " , false } , \
2021-12-21 16:53:24 -04:00
{ LOG_MOTBATT_MSG , sizeof ( log_MotBatt ) , \
" MOTB " , " QffffB " , " TimeUS,LiftMax,BatVolt,ThLimit,ThrAvMx,FailFlags " , " s----- " , " F----- " , true }
2015-11-05 19:50:54 -04:00
2018-03-07 19:13:26 -04:00
// message types 0 to 63 reserved for vehicle specific use
2015-11-05 19:50:54 -04:00
// message types for common messages
2018-03-31 11:40:01 -03:00
enum LogMessages : uint8_t {
2021-12-17 21:20:41 -04:00
LOG_PARAMETER_MSG = 32 ,
2020-12-03 06:30:24 -04:00
LOG_IDS_FROM_NAVEKF2 ,
LOG_IDS_FROM_NAVEKF3 ,
2015-11-05 19:50:54 -04:00
LOG_MESSAGE_MSG ,
LOG_RCIN_MSG ,
2020-08-19 05:56:50 -03:00
LOG_RCIN2_MSG ,
2015-11-05 19:50:54 -04:00
LOG_RCOUT_MSG ,
LOG_RSSI_MSG ,
2021-02-02 00:08:50 -04:00
LOG_IDS_FROM_BARO ,
2015-11-05 19:50:54 -04:00
LOG_POWR_MSG ,
2021-01-08 23:45:38 -04:00
LOG_IDS_FROM_AHRS ,
2015-11-05 19:50:54 -04:00
LOG_SIMSTATE_MSG ,
LOG_CMD_MSG ,
2019-08-22 22:21:39 -03:00
LOG_MAVLINK_COMMAND_MSG ,
2015-11-05 19:50:54 -04:00
LOG_RADIO_MSG ,
2021-04-12 01:43:11 -03:00
LOG_ATRP_MSG ,
2021-01-22 15:51:48 -04:00
LOG_IDS_FROM_CAMERA ,
2015-11-05 19:50:54 -04:00
LOG_TERRAIN_MSG ,
2020-01-04 00:25:55 -04:00
LOG_CSRV_MSG ,
2021-03-17 05:35:40 -03:00
LOG_IDS_FROM_ESC_TELEM ,
2021-01-11 21:43:14 -04:00
LOG_IDS_FROM_BATTMONITOR ,
2020-01-15 04:00:49 -04:00
2021-02-09 19:08:38 -04:00
LOG_IDS_FROM_GPS ,
2015-11-05 19:50:54 -04:00
LOG_PIDR_MSG ,
LOG_PIDP_MSG ,
LOG_PIDY_MSG ,
LOG_PIDA_MSG ,
LOG_PIDS_MSG ,
2020-01-04 02:17:32 -04:00
LOG_PIDN_MSG ,
LOG_PIDE_MSG ,
2017-10-12 19:26:43 -03:00
LOG_DSTL_MSG ,
2021-09-25 02:21:43 -03:00
LOG_MAG_MSG ,
LOG_ARSP_MSG ,
2015-11-05 19:50:54 -04:00
LOG_RPM_MSG ,
LOG_RFND_MSG ,
2019-02-11 04:38:01 -04:00
LOG_MAV_STATS ,
2015-12-07 20:51:46 -04:00
LOG_FORMAT_UNITS_MSG ,
LOG_UNIT_MSG ,
LOG_MULT_MSG ,
2016-07-03 23:14:26 -03:00
LOG_RALLY_MSG ,
2021-12-17 21:20:41 -04:00
// LOG_MODE_MSG is used as a check for duplicates. Do not add between this and LOG_FORMAT_MSG
LOG_MODE_MSG ,
LOG_FORMAT_MSG = 128 , // this must remain #128
LOG_IDS_FROM_DAL ,
LOG_IDS_FROM_INERTIALSENSOR ,
2021-02-02 22:12:58 -04:00
LOG_IDS_FROM_VISUALODOM ,
2021-12-17 21:20:41 -04:00
LOG_IDS_FROM_AVOIDANCE ,
2017-04-18 11:43:03 -03:00
LOG_BEACON_MSG ,
2017-07-14 14:00:13 -03:00
LOG_PROXIMITY_MSG ,
2017-08-25 04:18:26 -03:00
LOG_DF_FILE_STATS ,
2017-07-26 14:09:33 -03:00
LOG_SRTL_MSG ,
2017-11-15 23:20:17 -04:00
LOG_PERFORMANCE_MSG ,
2018-09-02 09:27:58 -03:00
LOG_OPTFLOW_MSG ,
2019-02-01 07:29:43 -04:00
LOG_EVENT_MSG ,
2019-02-05 01:00:28 -04:00
LOG_WHEELENCODER_MSG ,
2019-02-06 22:30:09 -04:00
LOG_MAV_MSG ,
2019-03-24 22:04:59 -03:00
LOG_ERROR_MSG ,
2019-02-23 15:31:20 -04:00
LOG_ADSB_MSG ,
2019-05-03 08:25:08 -03:00
LOG_ARM_DISARM_MSG ,
2020-07-24 02:59:41 -03:00
LOG_WINCH_MSG ,
2021-09-21 23:41:15 -03:00
LOG_PSCN_MSG ,
LOG_PSCE_MSG ,
LOG_PSCD_MSG ,
2021-02-12 04:31:30 -04:00
LOG_RAW_PROXIMITY_MSG ,
2021-04-12 07:40:50 -03:00
LOG_IDS_FROM_PRECLAND ,
2020-03-19 13:18:25 -03:00
LOG_IDS_FROM_AIS ,
2021-09-06 01:46:19 -03:00
LOG_STAK_MSG ,
2021-10-28 03:31:51 -03:00
LOG_FILE_MSG ,
2021-11-13 13:43:14 -04:00
LOG_SCRIPTING_MSG ,
2021-12-15 15:00:05 -04:00
LOG_VIDEO_STABILISATION_MSG ,
2021-12-21 16:53:24 -04:00
LOG_MOTBATT_MSG ,
2022-02-01 20:46:06 -04:00
LOG_VER_MSG ,
2019-03-24 22:04:59 -03:00
2017-11-15 23:20:17 -04:00
_LOG_LAST_MSG_
2015-11-05 19:50:54 -04:00
} ;
2021-12-17 21:39:42 -04:00
// we reserve ID #255 for future expansion
static_assert ( _LOG_LAST_MSG_ < 255 , " Too many message formats " ) ;
2021-02-09 19:08:38 -04:00
static_assert ( LOG_MODE_MSG < 128 , " Duplicate message format IDs " ) ;