Commit Graph

29236 Commits

Author SHA1 Message Date
Peter Barker
c829b109bf AP_Vehicle: 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
e1dd53eb17 AP_TECS: 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
ce312a3750 AP_Scripting: 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
df60565769 AP_Mission: 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
dd589934cc APM_Control: 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
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
8ec0eed749 AP_Landing: 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
6a97056736 AP_Camera: 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
d73cd7d0e3 AC_WPNav: 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
e5e4dee708 AC_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.
2022-04-08 19:18:38 +10:00
Peter Barker
66f0a0f42b AC_AutoTune: 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
c1e776fc46 AC_AttitudeControl: 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
Andy Piper
e0adbb978e AP_HAL_ChibiOS: fix dshot timeout bug where the elapsed pulse is longer than the send time
dshot timeouts should be no longer than the pulse interval
use correct timestamp for dmar send time
2022-04-07 07:21:21 +10:00
Peter Barker
b80cc9a610 AP_Logger: remove old, unused log metadata for MON 2022-04-06 21:54:15 +10:00
Peter Barker
00de10d796 AP_HAL_ChibiOS: use structure for writing out WDOG,MON message 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
Peter Barker
adf9c21d48 AP_NavEKF3: remove instance id from EK3 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-06 17:36:05 +10:00
Peter Barker
b762aac6ce AP_AHRS: remove instance id from EK3 external interface
Removes passing of instance id in interfaces where -1 was the only value
ever passed in
2022-04-06 17:36:05 +10:00
Peter Barker
c2112565b5 AP_GPS: remove redundant _blend_mask check
filling in of these values is already gated by checking the mask
2022-04-06 17:31:42 +10:00
Peter Barker
4332ed8f36 AP_GPS: use sq function for squaring numbers 2022-04-06 17:31:42 +10:00
Iampete1
2589fa1b3b AP_GPS: UBlox: add TIM-TM2 logging 2022-04-06 17:22:30 +10:00
Iampete1
0a0178988d AP_Logger: add 1e-9 log multiplyer 2022-04-06 17:22:30 +10:00
Peter Barker
717edae9ef hwdef: fix redefinition of Solo values in CubeSolo/CubeGreen-Solo
adding fmuv3 into the list of firmwares we might run on Solo was a late
addition to the recent PRs.  It was forgotten that the inheritance would
cause a redefition failure
2022-04-06 16:38:23 +10:00
Andrew Tridgell
37d8feb928 hwdef: disable GPS drivers on low flash boards
only leave uBlox enabled on boards that are running out of flash
2022-04-06 14:14:07 +10:00
Andrew Tridgell
c9bbfd94c0 hwdef: set AUTOBUILD_TARGETS None on eval boards 2022-04-06 14:13:44 +10:00
李孟晓
2d37bc9c78 AP_HAL_ChibiOS: CUAV-Nora: add usart3 support 2022-04-06 11:04:08 +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
Peter Barker
d2c3c578c2 hwdef: add hwdef for CubeOrange-SimOnHardware 2022-04-05 18:10:14 +10:00
Andrew Tridgell
392e80001f HAL_ChibiOS: fixed H7 flash storage
this fixes the flash re-init problem when flash storage fills on
H7. It was caused by rejecting writes where one or more of the 32 byte
chunks was not all 0xff but was equal to the current data. That
happens when writing to the sector header in AP_FlashStorage

it also moves the interrupt disable inside the loop to allow for
other interrupts to run between blocks
2022-04-05 17:46:52 +10:00
Andrew Tridgell
093acc1577 HAL_ChibiOS: use 16 byte lines for flash storage on H7
this halves the number of flash writes needed, and makes flash storage
twice as space efficient on H7

On H7 we need to write 32 bytes at a time to flash, which corresponds
to 30 bytes of data in AP_FlashStorage. By using a 16 byte storage
line we don't waste as much space
2022-04-05 17:46:52 +10:00
Andrew Tridgell
055ee6ba82 HAL_ChibiOS: increase monitor thread stack by 512
this is needed to ensure that the log writes of MON and WDOG don't
overflow monitor thread stack
2022-04-05 17:46:52 +10:00
Andrew Tridgell
1b6620b42f HAL_ChibiOS: added expected delays on flash writes
this prevents a long loop internal error on disarm after a large
amount of flash writes when armed on a board with flash storage
2022-04-05 17:46:52 +10:00
Andrew Tridgell
a0c867bce7 HAL_ChibiOS: disable interrupts during flash operations
we have now shown that interrupts being enabled during flash
operations can cause the infamous "68ms" bug, or watchdog when using a
32 bit timer on boards using flash for storage

The issue is quite repeatable with a load of a very large waypoint
file (over 500 waypoints) using "wp ftpload" in MAVProxy. This puts a
huge load on flash storage.

Our current working theory is that while doing flash writes for
storage on dual-bank we block access to only one bank, so if another
thread uses a timeout function with a short timeout while the flash
write is happening and chVTDoTickI calls code which crosses the flash
bank boundary then it can cause chVTDoTickI to violate the assumption
that no more than CH_CFG_ST_DELTA ticks pass while it is calculating
the value to set in the system timer. In that case we get a delay of a
full timer wrap, which is 68ms on boards with 16 bit timer and 70
minutes on boards with 32 bit timer
2022-04-05 17:46:52 +10:00
Andrew Tridgell
f6f6521b28 Revert "hwdef: changed MatekH743 to a 32 bit timer"
This reverts commit 7dc5911572.
2022-04-05 17:46:52 +10:00
Andrew Tridgell
5ef9c5aaa5 HAL_ChibiOS: constrain more timer timeouts 2022-04-05 17:46:52 +10:00
Andrew Tridgell
4c977eb7a0 HAL_ChibiOS: prevent long timeouts in DShot
this prevents bad calculated timeouts in DShot. The timeout would
sometimes come out as 0xFFFFFFFF, which led to an assert and could
block the thread

This fix is meant to be minimilistic to allow it to be merged easily
into 4.2. A better fix would fix all the uint32_t wrap handling in
DShot
2022-04-05 17:46:52 +10:00
Andrew Tridgell
a95b429acc AP_Math: added unsigned versions of constrain functions
sometimes it really does matter that we use constrain_uint32() instead
of constrain_int32(). For example, if we have a value like 0xFFFFFFFF
then the result will be very different

we should use unsigned constrain when dealing with unsigned values
2022-04-05 17:46:52 +10:00
Henry Wurzburg
82235163a2 AP_Scripting: remove original aerobatics example to avoid confusion 2022-04-05 10:12:13 +10:00
Henry Wurzburg
fa81f7813c AP_Airspeed: correct metadata for params for non-Plane vehicles 2022-04-05 09:58:10 +10:00
Lokesh Ramina
11b3eccf66 AP_Periph: Hwdef CarbonixL496 update
Modification of CarbonixL496 to add more features.
Features:
To use internal clock of MCU, Oscillator value is set to 0.
LED pin changed from PA13 to PA15
Enabled  JTAG
Add interface to GPS and ADSB.
2022-04-05 09:57:02 +10:00
Nicholas Kruzan
d42a287db0 AP_HAL_ESP32: partitions.csv - increase app partition to 3M 2022-04-05 08:41:11 +10:00
Nicholas Kruzan
c3e071579d AP_Filesystem: AP_Filesystem_ESP32 allow_absolute_paths in ::open() 2022-04-05 08:40:26 +10:00
Andrew Tridgell
1c5a954b24 HAL_ChibiOS: incorrect class of class in uart TX timeout
need to call chEvtGetAndClearEventsI() as we are in a system lock
state
2022-04-04 16:59:38 +10:00
Peter Barker
fd666dc4f1 AP_AHRS: subtract accel bias from correct ins accel instance
In the case that you have INS_USE indicating IMUs should be used, but
EK3_IMU_MASK leaving some IMUs unused, we subtract the bias from the
wrong INS data
2022-04-03 11:41:09 +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
Mirko Denecke
c1e0e9c305 AP_HAL_ChibiOS: fix ms5611 probe for NucleoH743 2022-03-31 16:31:13 +11:00
Randy Mackay
0dd9a8028b AR_WPNav: integrate scurve snap 2022-03-30 15:34:14 +09:00
Randy Mackay
c233f114bd AR_PosControl: fixup logging to record desired and target velocity and acceleration 2022-03-30 15:34:14 +09:00
Randy Mackay
74df1c0b22 AR_PosControl: reduce default I term to zero 2022-03-30 15:34:14 +09:00
Randy Mackay
995ff30cd6 AC_Avoid: enable slide behaviour for rover 2022-03-30 15:34:14 +09:00