Replay: tear down threads before exitting
NKQ is a generated name - don't copy it across to output
Stop whinging about presence of NKF6 and friends; we know these generated names are not going to be present in modern logs
memcpy rather than strncpy within log_FMT
Correct strings vs optionally-terminated structure entries in sanity checks
Call AP_Param::load_all() to start the parameter saving thread. AP_Compass' init() method now saves parameters (compass reordering), and because we're disarmed we will block until the parameter is pushed onto the to-save queue; if there's no thread popping off that list we block indefinitely.
Remove duplicate definitions of various singleton objects.
Replay: write out GPS message to output log
Useful for diagnosis, but also because we struggle to find a time base
without this and the pymavlink tools take forever to work
Replay: set COMPASS_DEV_ID and COMPASS_PRIO1_ID so EKF gets mag data
Replay: avoid use of system clock; use stopped-clock only
Replay: constraint to emitting output for single core only
Tools: Replay: ignore setting of LOG_DISARMED
Otherwise log files that come in with LOG_DISARMED false don't get any
significant output
Tools: Replay: apply user parameters after any PARM message
Tools: Replay: emit timestamp when EKF is force-started
Tools: Replay: use stderr for what it's good for
Tools: Replay: force log disarmed
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
dataflash logs have been self-describing since 2013. Replay now uses the descriptions supplied in the dataflash log to understand the format of any particular message.
This change should allow fields to be added to messages with no impact on Replay.