PID: 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.
This commit is contained in:
Peter Barker 2022-03-04 14:29:48 +11:00 committed by Peter Barker
parent c829b109bf
commit a10ed0e87f
1 changed files with 3 additions and 3 deletions

View File

@ -4,7 +4,7 @@
#include <AP_Common/AP_Common.h>
#include <AP_Param/AP_Param.h>
#include <AP_Logger/AP_Logger.h>
#include <AC_PID/AC_PID.h> // for AP_PIDInfo
#include <stdlib.h>
#include <cmath>
@ -98,7 +98,7 @@ public:
static const struct AP_Param::GroupInfo var_info[];
const AP_Logger::PID_Info& get_pid_info(void) const { return _pid_info; }
const AP_PIDInfo& get_pid_info(void) const { return _pid_info; }
private:
AP_Float _kp;
@ -113,7 +113,7 @@ private:
float _get_pid(float error, uint16_t dt, float scaler);
AP_Logger::PID_Info _pid_info {};
AP_PIDInfo _pid_info {};
/// Low pass filter cut frequency for derivative calculation.
///