Commit Graph

460 Commits

Author SHA1 Message Date
Andrew Tridgell a15cf3192d AP_Logger: save crash_dump.bin to sdcard on boot
on each boot write crash_dump.bin to the microSD if it is available
this makes it easier for users to send in their crash dumps, and less
likely they will overwrite it with a fw update
2022-06-06 14:50:40 +10:00
Andrew Tridgell c02aef8a50 AP_Logger: allow for new log msgs in Replay
this makes replay tuning and code testing much easier as up to 10 new
log messages can be added in the replay code
2022-06-01 17:07:41 +10:00
Randy Mackay 5b40808ee8 AP_Logger: error subsystem added for dead reckon failsafe 2022-05-25 20:05:21 +09:00
Andy Piper ccbe62589e AP_Logger: add W25Q128 variant 2022-05-24 10:32:34 +10:00
Iampete1 48b3549158 AP_Logger: RCOUT only log if there is a valid output channel 2022-05-22 12:07:37 +10:00
Iampete1 8110b9ac2d AP_Logger: add loging of servo out 15 to 32 2022-05-22 12:07:37 +10:00
Peter Barker 3cb104f537 AP_Logger: log airspeed primary changes 2022-05-17 10:27:57 +10:00
murata 6102e094be AP_Logger: Console output can be disabled 2022-05-17 09:53:06 +10:00
Tamas Nepusz f91ea8a0dd AP_Logger: make LogStructure non-packed to fix compilation of SITL on Apple M1 2022-05-11 07:54:06 +10:00
Andrew Tridgell 43a947f390 AP_Logger: fixed a bug in wrapped log count
fixes #20687
2022-05-06 06:56:33 +10:00
Peter Barker 750fd2c820 AP_Logger: tidy includes 2022-05-03 09:14:58 +10:00
Andrew Tridgell ed1a5c086b AP_Logger: removed annoying message on missing logs 2022-04-19 11:45:26 +10:00
Andrew Tridgell 93b55e367e AP_Logger: fixed log listing with gap, and EKF error on log list
this fixes two issues:

The first issue that if we are missing a log file in the middle of the
list then it was not possible to download recent logs, as we get the
incorrect value for total number of logs. This happened for me with
107 logs, with log62 missing from the microSD. It would only show 45
available logs, so the most recent logs could not be downloaded.

The second issue is that get_num_logs() was very slow if there were a
lot of log files in a directory. This would cause EKF errors and ESC
resets. Using a opendir/readdir loop is much faster (approx 10x faster
in my testing with 107 logs on a MatekH743).
2022-04-19 11:45:26 +10:00
xianglunkai f7f053191a AP_Logger: must set default fd = -1 2022-04-19 10:00:32 +10:00
Peter Barker e5c40d0e54 AP_Logger: move logging of Beacon into Beacon library 2022-04-13 16:22:19 +10:00
Peter Barker 795427e574 AP_Logger: move logging of Proximity into Proximity library 2022-04-13 16:22:19 +10:00
Peter Barker 23f2055330 AP_Logger: move logging of RPM into RPM library 2022-04-13 16:22:19 +10:00
Peter Barker 0c32eeca2e AP_Logger: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker b80cc9a610 AP_Logger: remove old, unused log metadata for MON 2022-04-06 21:54:15 +10:00
Peter Barker a546bc797c AP_Logger: source IDs and structs from HAL_ChibiOS 2022-04-06 21:54:15 +10:00
Iampete1 0a0178988d AP_Logger: add 1e-9 log multiplyer 2022-04-06 17:22:30 +10:00
Andrew Tridgell 06b6632f30 AP_Logger: fixed @SYS file logging
the key fix is the reset of the fd to -1. Without that fix we only
ever log @SYS/uarts.txt

The timing change is needed to get the files out in a reasonable
time. The function is actually getting called at 100Hz or less, not
1kHz (measured on MatekH743 copter at 400Hz). So we need to run it
faster to get the files logged in a reasonable time
2022-04-06 07:46:29 +10:00
Andrew Tridgell a01ca35939 AP_Logger: increase stack of log_io thread by 256
This was seem on omnibusf4pro, it is a bit too close:

  log_io PRI= 59 sp=0x20015CC0 STACK=144/1656
2022-04-01 19:56:30 +11:00
Andrew Tridgell ee6a7f21ec AP_Logger: added terrain correction logging field 2022-03-28 16:01:21 +11:00
Iampete1 1435fdcf97 AP_Logger: log structure: update airspeed heath probability feild name 2022-03-02 16:14:50 +11:00
Andrew Tridgell e715972264 AP_Logger: reduce the stack log frequency
10Hz is plenty
2022-02-22 12:17:17 +11:00
Peter Barker 67b86867f2 AP_Logger: add LogMessage documentation for PIDN and PIDE 2022-02-17 10:53:41 +11:00
Andy Piper 4f785b4aaa AP_Logger: add @SYS/timers.txt to logged files 2022-02-16 15:28:04 +11:00
Peter Barker 85b4ee289e AP_Logger: log VER - ArduPilot version information 2022-02-09 18:32:38 +11:00
Peter Barker 189c4cc4c7 AP_Logger: add missing documentation for RCI2 message 2022-02-01 22:45:19 +11:00
Andrew Tridgell 94c117fe62 AP_Logger: log original fw string if available 2022-01-19 08:07:45 +11:00
Iampete1 cf1202ae65 AP_Logger: add MOTB message 2022-01-18 10:18:10 +11:00
Mark Whitehorn 5f7f1cff2b AP_Logger: fix _RATEMAX parameter descriptions 2022-01-12 10:15:45 +11:00
Peter Barker fc46fe71f0 AP_Logger: fix memory leak logging files at startup 2022-01-11 14:18:14 +11:00
Andy Piper 835e0be245 AP_Logger: support Winbond W25X32 for KakuteH7Mini 2022-01-11 10:58:55 +11:00
Pierre Kancir a01bd33f69 AP_Logger: fix size compare warning
df_PageSize is uint32_t
2022-01-06 09:13:54 +11:00
Pierre Kancir 7a8cef877b AP_Logger: fix implicit instanciation order, base class first 2022-01-06 09:13:54 +11:00
Pierre Kancir 89e5e7f5c5 AP_Logger: fix clang-tidy warning about non correct check
strncmp return both positive and negative value, therefore is it better to implicitly compare to 0
2022-01-06 09:13:54 +11:00
Pierre Kancir 4add35355e AP_Logger: use nullptr 2022-01-06 09:13:54 +11:00
Iampete1 cee0503812 AP_Logger: add video stab log structure 2022-01-05 19:56:03 +11:00
Pierre Kancir f50f8c7a2a AP_Logger: fix memory leak 2022-01-05 18:07:30 +11:00
Lucas De Marchi 83f20ac66a AP_Logger: fix build with mavlink debug enabled 2022-01-04 07:25:28 -08:00
Lucas De Marchi 1ab005dc99 AP_Logger: use stderr for debug
Make AP_Logger_MAVLink use stderr, so it's easier to follow the debug
outputs without mixing with normal output.  And this is also what
AP_Logger is using.
2022-01-04 07:25:28 -08:00
Shiv Tyagi 3533e1e0ed AP_Logger: remove AP_Logger_SITL
We now use jedec dataflash simulator for this purpose. Hence, we should remove these files and all references to HAL_LOGGING_SITL_ENABLED

Co-Authored-By: Divyateja Pasupuleti <divyateja2004@gmail.com>
2021-12-25 09:14:31 +11:00
Peter Barker 600b085cf3 AP_Logger: correct constraint of maximum message ID 2021-12-21 10:42:18 +11:00
Peter Barker 168f278959 AP_Logger: reallocate 32 IDs from vehicles to main message area
ArduPlane uses ~18 messages and the list is relatively static, so this
should be a reasonable reallocation.

We're using a lot of Log_Write(...) to create messages dynamically - but
that requires IDs and we only left space for about 18 before this patch

More space is left to ease future use of IDs in some libraries
2021-12-21 10:42:18 +11:00
Andrew Tridgell 045daaf191 AP_Logger: speed up logging of crash_dump.bin
dump 450k crash log in about 1 minute
2021-12-15 08:01:38 +11:00
Andrew Tridgell 6f34fa7919 AP_Logger: allow for logged files over 32k in size
crash_dump.bin can be large
2021-12-15 08:01:38 +11:00
Peter Barker 66d8be825f AP_Logger: move LogOriginType into AP_AHRS
only used to log the origins by the AHRS library
2021-12-07 11:31:44 +11:00
Peter Barker f848fa3a86 AP_Logger: turn dataflash logging off by default 2021-11-24 13:23:40 +11:00
Peter Barker bd33267fd3 AP_Logger: do not use dataflash on SITL 2021-11-23 11:24:46 +11:00
Peter Barker ea03d4e44b AP_Logger: eliminate HAL_LOGGING_DATAFLASH
This define didn't add anything over HAL_LOGGING_DATAFLASH_ENABLED - and
predates it.
2021-11-23 11:24:46 +11:00
Iampete1 7b0f059968 AP_Logger: file content: log only file name if directory won't fit 2021-11-17 19:16:46 +11:00
Iampete1 09dfcdb574 AP_Logger: add scripting log structures 2021-11-17 19:16:46 +11:00
Iampete1 f32f14b19c AP_Logger: log_file_content: copy filename 2021-11-17 19:16:46 +11:00
Peter Barker e95aedd748 AP_Logger: tidy construction of backends 2021-11-09 10:18:10 +11:00
Andrew Tridgell e8926f8518 AP_Logger: avoid all opens of log files in main thread
this fixes a problem with sdcards where file open is very slow. It can
trigger a watchdog if it is slow enough. Peter and I hit this issue on
a pixracer today with a new sd card
2021-11-01 20:32:38 +11:00
Buzz d4e2828540 AP_Logger: esp32 takes longer to init its SD card after boot.
see libraries/AP_HAL_ESP32/README.md for more.

Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
Andrew Tridgell 0be1017843 AP_Logger: support logging of files contents
this allows us to see key internal data in log files
2021-10-30 16:44:00 +11:00
Andrew Tridgell 1559f7aa2d AP_Logger: added stack logging 2021-10-12 16:04:06 +11:00
Andrew Tridgell f148c3fc44 AP_Logger: fixed stuck logging with LOG_DISARMED=1
this prevents a stuck write closing logging when LOG_DISARMED=1
2021-09-28 10:47:48 +10:00
Peter Barker 143f23db89 AP_Logger: move SBP logging structures into AP_GPS 2021-09-28 10:45:51 +10:00
Leonard Hall 087a2b92c3 AP_Logger: Update PSC logging to include desired 2021-09-23 20:07:52 +09:00
Peter Barker fec9d4850d AP_Logger: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Iampete1 f80fedff9c AP_Logger: add function to set longer log persist 2021-09-08 18:26:40 +10:00
Iampete1 a47eeb3fed AP_Logger: log transfer: add error message if armed 2021-09-08 17:38:48 +10:00
Peter Barker 13a7b60279 AP_Logger: log source sysid/compid in MAVC
For field length purposed had tor remove Current and autocontinue which we don't care about
anyway.
2021-09-07 11:06:08 +10:00
nkruzan 0a236bc13d AP_Vehicle: log internal error and report bitmask to GCS
AP_Vehicle.cpp: cast parameter bitmask as (unsigned) per Peter B.

rework per Peter B.

Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>
remove unnecessary send_internal_error_statustext function

remove Write_InternalError function
2021-08-31 15:54:02 +10:00
Peter Barker de9f8a9320 AP_Logger: specify frames on PSC fields 2021-08-31 09:09:02 +10:00
Michael du Breuil e3109e4b29 AP_Logger: Use actual MAVLink constant
This isn't a functional change, it just improves the readibility of the
file
2021-08-25 18:52:21 +10:00
Andrew Tridgell 0f59e1ebb8 AP_Logger: log MCU temperature and voltage 2021-08-25 07:11:31 +10:00
Andrew Tridgell 872cae6063 AP_Logger: fixed rate limiting of WriteV messages 2021-08-18 10:20:03 +10:00
Pierre Kancir 99456ba1f8 AP_Logger: fix MAVLink logger random failure on SITL
rand() return an int
2021-08-12 13:55:22 +10:00
bugobliterator 6bbfe35c73 AP_Logger: do not use AP_Scheduler for AP_Periph builds 2021-08-12 07:57:12 +10:00
Peter Barker 110d48e6fa AP_Logger: add events for changing EKF data source set changes 2021-08-11 19:28:28 +09:00
Peter Hall 2a58e7097f AP_Logger: LogStructure: add AIS 2021-08-10 08:11:18 +09:00
bugobliterator 7832f81a84 AP_Logger: change class name from SITL::SITL to SITL::SIM 2021-08-05 07:25:31 +10:00
Andrew Tridgell d0969a4476 AP_Logger: added RATEMAX for mavlink and block backends 2021-08-03 10:23:36 +10:00
Andrew Tridgell 4dfe750d71 AP_Logger: handle instance types in rate limiting 2021-08-03 10:23:36 +10:00
Andrew Tridgell 575c76bdd0 AP_Logger: pack LogStructure to save some flash space
prevent padding between records
2021-08-03 10:23:36 +10:00
Andrew Tridgell 662f7a0191 AP_Logger: added LOG_FILE_RATEMAX parameter
this allows for a global "maximum rate in Hz for streaming messages"
setting
2021-08-03 10:23:36 +10:00
Peter Barker b1bd699a73 AP_Logger: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
Hwurzburg df0c9a42cb AP_Logger: Add Link Quality reporting to RC protocols 2021-07-16 13:27:38 +10:00
Siddharth Purohit 503a676e44 AP_Logger: omit code that breaks build for herepro 2021-07-02 08:50:16 +10:00
Andrew Tridgell 421faa0ada AP_Logger: fixed log creation on forced arm
when we force arm we need to ask the IO thread to create the log, not
create it ourselves
2021-07-01 15:30:11 +10:00
Peter Barker dd8af14e57 AP_Logger: remove @Values from param metadata where @Bitmask exists 2021-06-23 18:37:34 +10:00
Iampete1 188cf71ee2 AP_Logger: add Wh units 2021-06-22 09:19:40 +10:00
Andrew Tridgell ece3cf5241 AP_Logging: update EKF while waiting for log open
this prevents the EKF getting unhappy when we arm
2021-06-21 20:15:17 +10:00
Peter Barker 151fe6facf AP_Logger: rearrange PrepForArming stuff 2021-06-15 16:42:02 +10:00
Andrew Tridgell 806fdd9389 AP_Logger: moved log file open to logger thread
this prevents a watchdog if the filesystem takes a long time to
respond to a file open
2021-06-15 16:42:02 +10:00
Andrew Tridgell 1279772d92 AP_Logger: disallow log creation in main thread when armed
this fixes an issue where the sd card fails in flight and then
re-mounts. When that happens the logging backend can trigger a new log
open. That causes filesystem operations in the main thread while
flying. That can cause long delays or even a watchdog.

Thanks to Giacomo for noticing this on his flying wing
2021-06-09 15:08:28 +10:00
Peter Barker b681dc940a AP_Logger: add support for AP_Logger into AP_Periph 2021-06-08 09:57:55 +10:00
Andrew Tridgell 50e7c81f46 AP_Logger: removed perf counters 2021-06-07 14:29:27 +10:00
Peter Barker 00041737d2 AP_Logger: move from HAL_NO_LOGGING to HAL_LOGGING_ENABLED 2021-05-19 17:38:47 +10:00
Peter Barker f30ad1d2dc AP_Logger: log which RC channels are being overridden 2021-05-15 14:49:20 +10:00
Dr.-Ing. Amilcar do Carmo Lucas c323ee4f56 AP_Logger: improve unit names in comments.
added Ampere hours unit in LOG_ESC_MSG
log ESC volts, amps and consumption as floats
update ESC log file structures
consumption in mAh
Correct the current_tot unit,
motor_temp unit and error_rate unit in comments (<amilcar.lucas@iav.de>)
move ESC_Telem logging to the AP_ESC_Telem class (<amilcar.lucas@iav.de>)
correct log structure (<amilcar.lucas@iav.de>)
2021-05-12 17:01:11 +10:00
Andrew Tridgell 8fcb03350b AP_Logger: minimal fix for allowing log listing while logging
this prevents loss of log data when listing logs on file backend
2021-05-01 19:21:48 +10:00
Josh Henderson c8b8ff3380 AP_Logger: Privatize AC_Avoidance Logging 2021-05-01 19:21:17 +10:00
Josh Henderson ac57950575 AP_Logger: move GYR & ACC log structs to AP_InertialSensor 2021-05-01 14:15:58 +10:00
Josh Henderson 859fc73ba3 AP_Logger: Privatize AP_InertialSensor Logging 2021-04-29 19:19:12 +10:00