Commit Graph

17716 Commits

Author SHA1 Message Date
Andrew Tridgell
935c9167ab AP_Avoidance: added semaphore 2018-08-25 15:44:36 +10:00
Andrew Tridgell
9897bf6127 AP_AHRS: support locked access to AHRS data 2018-08-25 15:44:36 +10:00
Andrew Tridgell
0aeceb22d9 AP_Common: added #pragma once to Semaphores.h 2018-08-25 15:44:36 +10:00
Andrew Tridgell
dc20e2baed HAL_ChibiOS: support recursive semaphores 2018-08-25 15:44:36 +10:00
Andrew Tridgell
edeab9d152 HAL_SITL: support HAL_Semaphore_Recursive 2018-08-25 15:44:36 +10:00
Andrew Tridgell
1397c85f8e HAL_PX4: added Semaphore_Recursive 2018-08-25 15:44:36 +10:00
Andrew Tridgell
b347027e13 HAL_Linux: added Semaphore_Recursive 2018-08-25 15:44:36 +10:00
Andrew Tridgell
55dfefb2d6 AP_HAL: added HAL_Semaphore_Recursive 2018-08-25 15:44:36 +10:00
Patrick José Pereira
ab31fcb8f4 AP_HAL_SITL: Makes scheduler compile under Mac OS
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-08-25 11:25:17 +10:00
pierre-louis.k
bf274cd9db AP_Proximity: Change min and max range to support both 60m and 600Hz 2018-08-25 10:22:11 +09:00
Mateusz Sadowski
08332102fe AP_Proximity: Fix sensor order on TeraRanger Tower Evo 2018-08-25 10:22:11 +09:00
Mateusz Sadowski
4b8b8347f2 AP_Proximity: Correctly handle TeraRanger Tower Evo initialization 2018-08-25 10:22:11 +09:00
Mateusz Sadowski
f1b550647d AP_Proximity: Change TeraRanger Tower Evo sequence mode to Tower 2018-08-25 10:22:11 +09:00
Mateusz Sadowski
2ca567f409 AP_Proximity: Add support for TeraRanger Tower Evo 2018-08-25 10:22:11 +09:00
Andrew Tridgell
db9a8f16ed HAL_ChibiOS: enable terrain on Pixracer, minpx-v2 and mini-pix 2018-08-24 19:43:27 +10:00
Andrew Tridgell
3fd25ad548 AP_Baro: added HAL_BARO_ALLOW_INIT_NO_BARO 2018-08-23 13:29:59 +10:00
Andrew Tridgell
5526dac4fc HAL_ChibiOS: probe all i2c baros for revo-mini
this ensures we build this functionality in CI
2018-08-23 13:29:59 +10:00
Andrew Tridgell
1439b1a730 AP_Baro: added option to probe any i2c baro using GND_PROBE_EXT
This adds a hwdef.dat define HAL_PROBE_EXTERNAL_I2C_BAROS. When set,
we get a new parameter GND_PROBE_EXT that is a bitmask of i2c
barometers to look for.

This allows boards that have no builtin baro to work without
rebuilding
2018-08-23 13:29:59 +10:00
Andrew Tridgell
f937589810 AP_Baro: fixed BMP085 probe 2018-08-23 13:29:59 +10:00
Michael du Breuil
8850e4b9a1 SRV_Channel: Remove the trim_all interface, constrain failsafes to non motor outputs 2018-08-23 13:19:08 +10:00
Andrew Tridgell
912e4f16ec AP_Common: added #pragma once 2018-08-23 08:21:48 +10:00
Andrew Tridgell
b2cc992e0c AP_Baro: convert to use WITH_SEMAPHORE() 2018-08-23 08:21:48 +10:00
Peter Barker
3251e43f03 AP_Radio: adjust for namespacing of interrupt names 2018-08-21 20:34:01 +09:00
Peter Barker
d9f393f42e AP_RSSI: convert to HAL attach_interrupt
AP_RSSI: add error reporting for attaching of interrupts

AP_RSSI: use detach_interrupt method
2018-08-21 20:34:01 +09:00
Peter Barker
f2b8c9e501 RC_Channel: improve debug when failing to initialise RC channel 2018-08-21 20:34:01 +09:00
Peter Barker
2209e4a697 AP_HAL_ChibiOS: new HAL functor-based methods
AP_HAL_ChibiOS: adjust for irq-type enumeration change

AP_HAL_ChibiOS: implement attach-AP_HAL::Proc to interrupt interface
2018-08-21 20:34:01 +09:00
Peter Barker
d366842d15 AP_WheelEncoder: move to using HAL's attach_interrupt methods
AP_WheelEncoder: add error reporting for attaching of interrupts

AP_WheelEncoder: use detach_interrupt method

AP_WheelEncoder: correct initialisation of wheelencoder instances

AP_WheelEncoder: make update_phase_and_error_count non-static

AP_WheelEncoder: use (uint8_t)-1 in place of 255
2018-08-21 20:34:01 +09:00
Peter Barker
20027bad17 AP_RPM: attach_interrupt now takes a functor
AP_RPM: move PX4 IRQ handling into AP_HAL_PX4

AP_RPM: correct RPM sensor initialisation

The initialisation code used the type from the wrong configuration
parameters (if the first rpm sensor wasn't configured then the sensing
for the second sensor would use the type from the first).

The packing of drivers[...] was done in a non-sparse manner - i.e. if a
sensor wasn't detected then it would not take up space in the array.
The PX4 PWM backend relies on the instance number (offset in the drivers
array) corresponding to the parameters, so making this sparse is
required.

The main detection block fills in drivers based on the number of
instances detected so far, but the nullptr check checks based on the
number of detected backends.  If the second instance wasn't configured we
wouldn't attempt to configure a third.

AP_RPM: add error reporting for attaching of interrupts

AP_RPM: use detach_interrupt method

AP_RPM: use (uint8_t)-1 in place of 255
2018-08-21 20:34:01 +09:00
Peter Barker
9b9ec4db40 AP_HAL_Empty: attach_interrupt now takes a functor
AP_HAL_Empty: add type-safety for interrupt types
2018-08-21 20:34:01 +09:00
Peter Barker
5180e025bb AP_HAL_SITL: attach_interrupt now takes a functor
AP_HAL_SITL: add type-safety for interrupt types
2018-08-21 20:34:01 +09:00
Peter Barker
a7b79f7693 AP_HAL_VRBrain: attach_interrupt now takes a functor
AP_HAL_VRBRAIN: add type-safety for interrupt types
2018-08-21 20:34:01 +09:00
Peter Barker
8d5a9ead48 AP_HAL_Linux: attach_interrupt now takes a functor
AP_HAL_Linux: add type-safety for interrupt types
2018-08-21 20:34:01 +09:00
Peter Barker
4767666a2d AP_HAL_PX4: implement attach_interrupt 2018-08-21 20:34:01 +09:00
Peter Barker
74263f8412 AP_HAL: add attach_interrupt that takes a functor, not a AP_HAL::Proc
AP_HAL: add type-safety for interrupt types

AP_HAL: remove interrupt-low and interrupt-high, and interrupt-none

It is possible that the radio needs very tight timings - do not force
the use of the functor interface

AP_HAL: add detach_interrupt method
2018-08-21 20:34:01 +09:00
Peter Barker
c846a13d12 AP_HAL: functor: add != override 2018-08-21 20:34:01 +09:00
Peter Barker
a09154c45b AP_WheelEncoder: correct check for wheelencoder-max-instances 2018-08-21 20:34:01 +09:00
Peter Barker
21201b8816 AP_WheelEncoder: do not permit copies 2018-08-21 20:34:01 +09:00
Peter Barker
45ac3e6bb2 AP_BoardConfig: correct grammar in @DisplayName 2018-08-21 20:34:01 +09:00
Randy Mackay
f536c53fa6 AP_MotorsMatrix: minor format fix 2018-08-21 13:34:07 +09:00
Michael du Breuil
588d1898cd AP_ServoRelayEvents: More robust check if a channel is available 2018-08-20 21:31:06 -07:00
Peter Barker
df836ec70c AP_Notify: tidy and remove code duplications
Saves 60 bytes, too
2018-08-21 10:59:33 +10:00
Peter Barker
6daa241235 DataFlash: add sanity check for WritePrioritisedBlock size 2018-08-21 10:57:43 +10:00
Peter Barker
32bc1860de AP_Mission: starts_with_takeoff_cmd skips past mav_cmd_nav_delay 2018-08-20 14:15:40 +09:00
Peter Barker
9af11d79d1 AP_Mission: remove pointless else clauses 2018-08-20 14:15:40 +09:00
Andrew Tridgell
83f293305f AP_OSD: raise thread stack size to 1024
based on testing in SITL
2018-08-20 13:49:14 +10:00
Andrew Tridgell
836176297d HAL_SITL: added stack checking to SITL 2018-08-20 13:49:14 +10:00
Peter Barker
0a7399ae7d AC_PrecLand: use AHRS singleton, remove pointless initialisations 2018-08-17 21:14:57 +09:00
Peter Barker
898a46fe0e AP_Winch: undefine PASS_TO_BACKEND convenience function 2018-08-17 21:14:57 +09:00
Andrew Tridgell
60ec695f55 AP_TECS: set default pitch max to 15 2018-08-17 20:42:29 +10:00
Andrew Tridgell
7c57fb0c31 AP_L1_Control: lower default L1 period 2018-08-17 20:42:27 +10:00
Andrew Tridgell
9e2933df89 APM_Control: raised default PID gains for roll/pitch 2018-08-17 20:42:25 +10:00
Hwurzburg
53a28cdf18 AP_OSD: Adding efficiency and climb efficiency
and new font characters
2018-08-17 16:33:53 +10:00
Peter Barker
e4d3ed7e39 RC_Channel: move handling of sprayer and gripper in from Copter 2018-08-17 15:33:35 +09:00
Peter Barker
4223d933d2 AC_Sprayer: add singleton 2018-08-17 15:33:35 +09:00
Andrew Tridgell
5988c3258f GCS_MAVLink: use Semaphore.h 2018-08-16 12:40:10 +10:00
Andrew Tridgell
5ac15714fd AP_Common: moved WITH_SEMAPHORE to Semaphore.h 2018-08-16 12:40:10 +10:00
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