Commit Graph

17660 Commits

Author SHA1 Message Date
Andrew Tridgell
d3af854949 HAL_ChibiOS: fixed bootloader build 2018-08-16 12:40:10 +10:00
Andrew Tridgell
a26e534654 GCS_MAVLink: use WITH_SEMAPHORE()
this is a suggestion from Peter, will need some discussion
2018-08-16 12:40:10 +10:00
Andrew Tridgell
6f058e8c0d AP_Common: added WithSemaphore class 2018-08-16 12:40:10 +10:00
Andrew Tridgell
048a52ebc0 GCS_MAVLink: make mavlink send from multiple threads safe
this takes a lock to prevent interleaving of mavlink msgs from
multiple threads
2018-08-16 12:40:10 +10:00
Andrew Tridgell
5de49aa5aa GCS_MAVLink: flush parameters on reboot 2018-08-16 12:40:10 +10:00
Andrew Tridgell
f1e10b0a8f HAL_Linux: make uart writes thread safe 2018-08-16 12:40:10 +10:00
Andrew Tridgell
b2b56c3e46 HAL_VRBRAIN: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
5d3b17db6b HAL_SITL: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
fe93113240 HAL_PX4: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
f005e60066 HAL_Linux: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
dabdb969f6 HAL_ChibiOS: added support for HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
0a73c3492d AP_HAL: support HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Andrew Tridgell
4d662a913a AP_Param: use background parameter save
this moves both the storage scan and the save code out of the main
thread and into the IO thread. It means that if we have more than 30
parameters saves in very rapid succession while armed that we can lose
parameter changes, but that is extremely unlikely.

This fixes an issue where parameter saves in flight can cause
considerable scheduling problems, sometimes several milliseconds
2018-08-16 12:40:10 +10:00
Hwurzburg
7c79175309 AP_OSD: add flytime item 2018-08-16 12:00:50 +10:00
Andrew Tridgell
a0ce604721 AP_Stats: make singleton and add flighttime accessor 2018-08-16 12:00:50 +10:00
Hwurzburg
5f72c9040e AP_OSD: Adding flight distance and summary panels for OSD 2018-08-16 12:00:50 +10:00
Alexander Malishev
eec34fc47d AP_OSD: add waypoint and xtrack_error items 2018-08-16 10:26:34 +10:00
vierfuffzig
aae1054a94 AP_OSD: add hdop display 2018-08-16 09:39:02 +10:00
Peter Barker
fa7ba7ddbc DataFlash: force messagewriters to completion
Setting a dataflash-file buffer size of less than or equal to 2kiB would
cause the startup-messagewriter to never push any messages other than
FMT out to the logs.

This is a combination of the return values of
critical_message_reserved_space and
non_messagewriter_message_reserved_space

This patch forces the startup messages out to the logs by ignoring the
space constraints every 100ms
2018-08-15 12:40:33 +10:00
Peter Barker
fa5757f618 AP_Math: fix float-equals warnings 2018-08-15 12:16:49 +10:00
Alexander Malishev
05099b8b8b HAL_ChibiOS: restore default dataflash buffer size
This fix log corruption in copter
2018-08-15 10:15:09 +10:00
Andrew Tridgell
71988b49a4 AP_RSSI: allow override of RSSI pin 2018-08-15 09:51:30 +10:00
Andrew Tridgell
c3cf8f5435 AP_Math: fixed a bug in segment_intersection()
we could get an intercept point beyond the end of the segment
2018-08-14 19:41:45 +10:00
Peter Barker
626467db14 AP_Math: add tests for line intersection 2018-08-14 19:41:45 +10:00
Francisco Ferreira
1b46104a98 AP_HAL_ChibiOS: fix warning when STDOUT is defined
../../libraries/AP_HAL_ChibiOS/UARTDriver.cpp:118:12: warning: 'int hal_console_vprintf(const char*, va_list)' defined but not used [-Wunused-function]
 static int hal_console_vprintf(const char *fmt, va_list arg)
            ^
2018-08-14 10:17:38 +10:00
Francisco Ferreira
62a4f08e12 AP_Arming: fix system check 2018-08-14 10:17:38 +10:00
mirkix
c33b692f53 AP_HAL_ChibiOS: fix CubeYellow build 2018-08-14 06:26:22 +10:00
Lucas De Marchi
5068f2e8fd AP_HAL_Linux: fix log after tonealarm thread removal
../../libraries/AP_HAL_Linux/Scheduler.cpp: In member function ‘void Linux::Scheduler::_debug_stack()’:
../../libraries/AP_HAL_Linux/Scheduler.cpp:127:47: warning: format ‘%zu’ expects a matching ‘size_t’ argument [-Wformat=]
                 _uart_thread.get_stack_usage());
                                               ^
2018-08-12 20:29:35 -07:00
Francisco Ferreira
f69638f24f
AP_UAVCAN: add configuration of hardware filters 2018-08-12 13:35:04 +01:00
Francisco Ferreira
3cb8421aa6
AP_UAVCAN: reorganize header and code
Also a bit more cleanup
2018-08-12 13:35:04 +01:00
Francisco Ferreira
ee8e2923ae
AP_UAVCAN: cleanup code 2018-08-12 13:35:04 +01:00
Francisco Ferreira
8c382b6904
AP_UAVCAN: adapt to new CANProtocol interface
This includes creating own thread

Also adapts example
2018-08-12 13:35:03 +01:00
Francisco Ferreira
126f1379d3
AP_UAVCAN: fix bug introduced in #7863 2018-08-12 13:35:03 +01:00
Francisco Ferreira
7e8abc92fe
AP_UAVCAN: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:03 +01:00
Francisco Ferreira
861e1a0a54
SRV_Channel: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:03 +01:00
Francisco Ferreira
3b61a31bb4
AP_Notify: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:03 +01:00
Francisco Ferreira
f468602baf
AP_Notify: revert wrong commit 228058e089
Also change the order of logical OR so that led_write in UAVCAN_RGB_LED is called for all UAVCAN instances and not only first one
2018-08-12 13:35:03 +01:00
Francisco Ferreira
b29369eb82
AP_GPS: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:03 +01:00
Francisco Ferreira
317e8e0296
AP_Compass: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:03 +01:00
Francisco Ferreira
31b8a051cc
AP_BattMonitor: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:02 +01:00
Francisco Ferreira
8e6692744f
AP_BattMonitor: fix warning in UAVCAN driver
../../libraries/AP_BattMonitor/AP_BattMonitor_UAVCAN.cpp: In member function ‘virtual void AP_BattMonitor_UAVCAN::init()’:
../../libraries/AP_BattMonitor/AP_BattMonitor_UAVCAN.cpp:15:123: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘AP_Int32 {aka AP_ParamT<int, (ap_var_type)3u>}’ [-Wformat=]
 #define debug_bm_uavcan(level, fmt, args...) do { if ((level) <= AP_BoardConfig_CAN::get_can_debug()) { printf(fmt, ##args); }} while (0)
                                                                                                                           ^
../../libraries/AP_BattMonitor/AP_BattMonitor_UAVCAN.cpp:36:33: note: in expansion of macro ‘debug_bm_uavcan’
                                 debug_bm_uavcan(2, "UAVCAN BattMonitor BatteryInfo registered id: %d\n\r", _params._serial_number);
2018-08-12 13:35:02 +01:00
Francisco Ferreira
9489ec9e7c
AP_Baro: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:02 +01:00
Francisco Ferreira
5efde5fa8b
AP_HAL_VRBRAIN: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:02 +01:00
Francisco Ferreira
9766ca44d4
AP_HAL_PX4: adapt to changes in AP_BoardConfig_CAN 2018-08-12 13:35:02 +01:00
Francisco Ferreira
b7a3e1ae77
AP_BoardConfig_CAN: put debug code behind compile-time flag
And disable it by default
2018-08-12 13:35:02 +01:00
Francisco Ferreira
4b4ba66987
AP_BoardConfig_CAN: add singleton and do naming cleanup
Also added more getter methods
2018-08-12 13:35:02 +01:00
Francisco Ferreira
1cfb38b4ee
AP_BoardConfig_CAN: adapt to new CANProtocol interface 2018-08-12 13:35:02 +01:00
Francisco Ferreira
350d03800f
AP_HAL_SITL: remove unused CAN header 2018-08-12 13:35:01 +01:00
Francisco Ferreira
9204ca898b
AP_HAL_VRBRAIN: remove CAN thread management 2018-08-12 13:35:01 +01:00
Francisco Ferreira
68ada13f28
AP_HAL_PX4: remove CAN thread management 2018-08-12 13:35:01 +01:00
Francisco Ferreira
1d7f3e48a4
AP_HAL_Linux: remove CAN thread management
Also fix comment
2018-08-12 13:35:01 +01:00
Francisco Ferreira
7278af05e0
AP_HAL_ChibiOS: remove CAN thread management 2018-08-12 13:35:01 +01:00
Francisco Ferreira
0645a5b11a
AP_HAL: introduce a CANProtocol interface and remove HAL CAN thread management 2018-08-12 13:35:01 +01:00
Francisco Ferreira
e1bf89f32d
AP_HAL_ChibiOS: fix CAN manager initialization 2018-08-12 13:35:01 +01:00
Peter Barker
5ad1dee284 AP_Notify: make LED blink at constant rate in Rover 2018-08-09 11:57:05 +10:00
Michael du Breuil
83d01c8b7d GCS_MAVLink: Use ARRAY_SIZE to avoid a magic value 2018-08-09 11:53:05 +10:00
Michael du Breuil
6469a985d7 DataFlash: Fix allocating extra values for RC logging 2018-08-09 11:53:05 +10:00
Michael du Breuil
e7ebea55d2 RC_Channel: Fix possible user induced out of bounds write
CID 308348
2018-08-09 10:27:10 +10:00
Andrew Tridgell
385f735799 HAL_ChibiOS: avoid 64 bit maths in AP_HAL::micros()
this saves a few cycles
2018-08-08 21:24:49 +10:00
fnoop
bfceb5dd32 AC_PrecLand: Improve logging
Add unit/multiplier of new fields to log structure
Fix new log structure
2018-08-08 10:23:26 +09:00
Michael du Breuil
f2b4e06a1a AP_Airspeed: Add 5"H2O DLVR differential sensor driver 2018-08-08 09:07:17 +10:00
Michael du Breuil
d568767164 AP_Math: Add conversion between inches of water to pascals 2018-08-08 09:07:17 +10:00
Andrew Tridgell
c9a830bf3f AP_Notify: support both NCP5623 addresses 2018-08-08 07:11:50 +10:00
Andrew Tridgell
935165a8f8 AP_Notify: tidy up NCP5623 driver 2018-08-08 07:11:50 +10:00
caijie
a98d892dec AP_Notify: Add RGB LED driver for NCP5623 2018-08-08 07:11:50 +10:00
Andrew Tridgell
301884f7a6 AP_RCProtocol: fixed coverity error in SUMD
CID308356
2018-08-07 13:22:08 +10:00
Andrew Tridgell
d1334fab73 AP_ROMFS: fixed error handling in tinflate
coverity CID308327
2018-08-07 13:22:08 +10:00
Michael du Breuil
4aff747b28 AP_RCProtocol: Fix out of bounds write, CID 308323 and 308333 2018-08-07 12:11:49 +10:00
Andrew Tridgell
3ed7c060df AP_Compass: address review comments 2018-08-07 10:00:10 +10:00
Jonathan Challinger
cefd998177 AP_Compass: add expected DEV_ID parameters 2018-08-07 10:00:10 +10:00
Jonathan Challinger
878e84a015 AP_Compass: correct edge case where checks pass when saved dev_id != detected dev_id 2018-08-07 10:00:10 +10:00
Michael du Breuil
ee9cc28fda AP_NavEKF2: Utilize the GPS drivers estimate for lag 2018-08-07 09:55:26 +10:00
Michael du Breuil
1a406dacfc AP_GPS: Ensure a lag value is always provided
The value may not be the optimal value for the driver, but we should
always try to provide a value for the caller
2018-08-07 09:55:26 +10:00
Michael du Breuil
21dfe02c6e GCS_MAVLink: always send an idea of battery voltage as part of
BATTERY_STATUS
2018-08-07 09:52:45 +10:00
Peter Barker
e4ff937c96 RC_Channel: remove min-max-configured pre-arm checks
These are really, really expensive to run while your RC isn't
configured.

We now have a split between inputs (RC) and servos (SRV), so these
aren't as critical as they were.  We also have range checks to ensure
they're roughly good enough to fly with.
2018-08-07 09:45:09 +10:00
Peter Barker
eaefdcfac2 AP_Arming: remove min-max-configured pre-arm checks 2018-08-07 09:45:09 +10:00
Peter Barker
87e7cc7ef0 RC_Channels: zero all channels before populating
Fix for CID 308365
2018-08-07 09:12:43 +10:00
vierfuffzig
bc52d430f9 Chibios add bootloader for mini-pix 2018-08-07 07:09:39 +10:00
Andrew Tridgell
f0fba01138 AP_Stats: use set_and_save_ifchanged()
if the board has no GPS then the values usually don't change
2018-08-06 21:46:06 +10:00
Randy Mackay
1c18d06aa3 AR_AttitudeControl: move unnecessary else 2018-08-06 11:30:22 +09:00
Randy Mackay
9b60e0844b AR_AttitudeControl: add get_desired_pitch accessor 2018-08-06 11:30:22 +09:00
Andrew Tridgell
846418e5e9 HAL_ChibiOS: raise timer thread priority
needs to be above main for guaranteed DShot and oneshot output periods
2018-08-06 11:41:42 +10:00
Randy Mackay
c88926f227 Compass: remove accumulate from example sketch 2018-08-06 11:05:34 +10:00
Randy Mackay
99b54935db Compass: remove accumulate
this method is a noop on all backends
2018-08-06 11:05:34 +10:00
Peter Barker
f2b1387c1c RC_Channel: add AUTOTUNE to init_aux_function routine
Also, cark it in SITL if we fail to initialise an aux function
2018-08-05 07:52:28 +10:00
Andrew Tridgell
53fbdc3750 AP_BLHeli: pass motor mask to serial_setup_output() 2018-08-04 19:29:13 +10:00
Andrew Tridgell
3df2a1c228 HAL_ChibiOS: fixed dshot bad frames
adding a pre-bit on the DMAR, and ensuring that all groups are setup
for DMA together fixes the remaining bad frames reports in BLHeli32
2018-08-04 19:29:13 +10:00
Andrew Tridgell
1fe6c7b497 AP_HAL: added chanmask to serial_setup_output() 2018-08-04 19:29:13 +10:00
Andrew Tridgell
946b4db0e6 HAL_ChibiOS: set min dshot separation to 100usec
this fixes a problem with BLHeli32 not recognising dshot
2018-08-04 19:29:13 +10:00
Andrew Tridgell
476a40c906 AP_BLHeli: improved reliability of pass-thru support
this uses a connection cache to prevent re-connecting to an ESC when
not needed, and allows for pass-thru comms on any port, using
SERVO_BLH_PORT parameter
2018-08-04 19:29:13 +10:00
Andrew Tridgell
22ba9a0aea HAL_ChibiOS: fixed timeout of serial read bytes
this allows for fast timeout of serial read bytes in BLHeli pass-thru
2018-08-04 19:29:13 +10:00
Andrew Tridgell
df643d8499 GCS_MAVLink: allow uninstall of alt protocol handler 2018-08-04 19:29:13 +10:00
Andrew Tridgell
769c99d4d7 AP_Baro: added register checking on BMP280
this follows a log which seems to show an in-flight register
corruption on a MatekF405
2018-08-04 16:44:08 +10:00
Lucas De Marchi
88df4d127e AP_Common: remove ARRAY_SIZE_SIMPLE
Now this is basically ARRAY_SIZE, so remove it.
2018-08-04 15:31:55 +10:00
Lucas De Marchi
668c941717 Global: use new version of ARRAY_SIZE 2018-08-04 15:31:55 +10:00
Lucas De Marchi
57ee0e29f6 AP_Common: simplify ARRAY_SIZE
This rolls back to the simpler version of ARRAY_SIZE. The more complex
one helps catching bugs when we use pointers when we are expecting an
array, but can't stand arrays with 0 elements.  I'm not aware of bugs it
actually caught on ArduPilot, although it did for me in other projects.

I think this is better than having a separate "_SIMPLE" version of the
macro and spread its usage... the trend is just to use the simpler
version anyway.
2018-08-04 15:31:55 +10:00
Peter Barker
049f61c943 AP_Camera: populate camera singleton 2018-08-04 11:34:41 +10:00
utkinpol
2912e732b4 HAL_ChibiOS: updated for KakuteF7 2018-08-04 08:24:49 +10:00
Andrew Tridgell
64c8ca514c HAL_ChibiOS: fixed attach_interrupt check
we can't have two handlers on the same pad
2018-08-03 13:44:59 +10:00
Andrew Tridgell
4e6ac85057 HAL_ChibiOS: use 32 bit time intervals
this makes for smaller and faster code. We really don't need 64 bit
intervals as long sleeps are done with a loop.
2018-08-03 13:44:59 +10:00