Andrew Tridgell
bedee31f61
AP_Baro: fixed semaphore and thread usage in baro drivers
2016-11-09 17:08:02 +11:00
Andrew Tridgell
72c2e3a4d5
AP_Baro: select in-tree vs PX4 drivers at runtime
2016-11-09 17:07:58 +11:00
murata
c808ee2f49
Global: To nullptr from NULL.
...
RC_Channel: To nullptr from NULL.
AC_Fence: To nullptr from NULL.
AC_Avoidance: To nullptr from NULL.
AC_PrecLand: To nullptr from NULL.
DataFlash: To nullptr from NULL.
SITL: To nullptr from NULL.
GCS_MAVLink: To nullptr from NULL.
DataFlash: To nullptr from NULL.
AP_Compass: To nullptr from NULL.
Global: To nullptr from NULL.
Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
Peter Barker
dbecb1bc25
AP_Baro: add missing parameter metadata
2016-10-27 09:15:03 -07:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Lucas De Marchi
ae53920e5b
build: don't build examples with old build system
...
We currently check examples are buildable with waf which doesn't need
the libraries to be specified in a make.inc file. Having the makefiles
there is misleading since people try to build and realize the build is
broken.
2016-10-11 13:03:08 +11:00
Andy Little
0d113b265c
Examples: fix examples for px4
...
The change to use AP_BoardConfig messed up the examples. Here are some
updated but there are plenty more to do.
2016-10-04 12:50:47 -03:00
Lucas De Marchi
e217faacab
AP_Baro: MS56XX: cosmetic changes to members
...
- reorder and document members.
- remove tentative of vertical alignement
- like was done for accumulated values, move the calibration
values to a struct
2016-07-30 00:55:28 -03:00
Lucas De Marchi
f7b453359d
AP_Baro: MS56XX: convert to threaded bus
...
This converts MS56XX to use the thread started by SPI/I2C instead of
using the timer thread. This also fixes a possible starvation of the
main thread:
1) INS driver registers itself to be sampled on timer thread
2) MS56XX registers itself to be sampled on timer thread
3) Main thread waits for a sample from INS with
ins.wait_for_sample()
4) timer thread is waiting on update from MS56XX and consequently
the main thread is waiting on an I2C/SPI transfer
Besides this starvation there's another one due to reuse of the timer
lock in order to pump values from the timer thread to the main thread. A
call to the update() method when we have a sample available would need
to wait on any other driver holding the timer lock.
Now there's a lock just to pass the new values from the bus thread to
the main thread with a very tiny critical region, not waiting on any
bus transfers and/or syscalls.
2016-07-30 00:55:28 -03:00
Lucas De Marchi
929348ff75
AP_Baro: MS5611: always use timer thread
...
Remove support to run MS5611 on main thread since we shouldn't be doing
I2C transactions there and we are moving to "thread per bus"
nonetheless.
2016-07-30 00:55:28 -03:00
Tom Pittenger
84ce499a0d
AP_Baro: remove zero-init in constructor
2016-07-11 22:11:34 -07:00
Tom Pittenger
1d81df8144
Revert "AP_Baro: coverity scan - variables not initialized in constructor"
...
This reverts commit 8d2872d3ab
.
2016-07-11 22:02:41 -07:00
Tom Pittenger
8d2872d3ab
AP_Baro: coverity scan - variables not initialized in constructor
2016-07-05 13:32:06 -07:00
Tom Pittenger
f1f58e2026
AP_Baro: created baro drift offset accessor
2016-05-13 17:22:11 -07:00
Tom Pittenger
d55050e5e3
AP_Baro: slow down the LPF for slewing to a new GND_ALT_OFFSET
...
Instead of a couple seconds, make it about 15sec. This makes TECS happy by not glitching the height demand as much. When applied too fast the TECS height demand causes a large single oscillation as it chases the filter lag.
2016-05-13 17:15:53 -07:00
Tom Pittenger
37ee3b44d2
AP_Baro: add accessor for baro drift
2016-05-13 17:15:41 -07:00
Lucas De Marchi
3c7d80a270
AP_Baro: BMP085: use a moving average of 10 samples in BMP085
...
Instead of depending on the frequency accumulate() is called, use
AverageIntegralFilter with 10 samples. The data obtained by BMP085 is
too noisy with any value of OVERSAMPLING so use twice the number of
samples as currently used. Besides that now we are sure there's always
10 samples used in the average.
2016-05-10 14:24:59 -03:00
Lucas De Marchi
8da5275b03
AP_Baro: BMP085: don't average temperature in BMP085
...
The temperature readings is not subject to white noise so there's no
point in averaging its reading. Moreover since for a normal 50Hz
accumulate() / 10Hz update() it would read temperature only once per
update(), it's pointless to keep averaging and introducing rounding
error.
The temperature doesn't need to be checked as frequent as pressure, too.
The datasheet even suggests on section 3.3, page 10 to enable standard
mode and read the temperature at 1Hz. Here we reduce it to 2Hz
(considering the accumulate() function being called at 50Hz).
2016-05-10 14:24:59 -03:00
Lucas De Marchi
c5c52076ca
AP_Baro: BMP085: rename private member
2016-05-10 14:24:58 -03:00
Lucas De Marchi
e40b88aa70
AP_Baro: BMP085: use DigitalSource interface in BMP085
...
Use the DigitalSource interface rather than going through the "static"
interface hal.gpio provides
2016-05-10 14:24:58 -03:00
Lucas De Marchi
56fa1b6214
AP_Baro: BMP085: change oversampling in BMP085 without EOC
...
If we don't have EOC pin and assuming the accumulate() function is
called at 50Hz (or higher) we would take very few samples to accumulate
before the update is called. That's because since we have to wait 26ms
to get a sample and we calling accumulate() every 20ms, half of the
times it will return without getting anything. So we will
be using 2 or 3 samples only to average.
If we don't have EOC, use OVERSAMPLING=2 which gives us more noise, but
that we can filter out by using measurements to average. When we have
EOC we don't need it because most of the time the conversion will take
less than 20ms: I'm getting 16ms on most of them while bench-testing.
2016-05-10 14:24:58 -03:00
Lucas De Marchi
37e2f6c52e
AP_Baro: BMP085: allow to easily change oversampling in BMP085
...
This way it's possible to easily change it if a board requires.
2016-05-10 14:24:58 -03:00
Andrew Tridgell
8b7bf5cf7a
AP_Baro: allow setHIL to set last update time
2016-05-07 18:27:21 +10:00
Andrew Tridgell
0b71652afc
AP_Baro; allow for exact replay of baro data
2016-05-07 18:27:20 +10:00
Andrew Tridgell
8a987bf67d
AP_Baro: removed filtering of baro data in HIL/SITL
...
this was just causing lag in replay and doesn't actually help in SITL
2016-05-07 18:27:18 +10:00
Don Gagne
cae7ea0d13
Add @Volatile, @ReadOnly support
2016-03-17 10:58:05 +11:00
Andrew Tridgell
0a72c2bbd5
AP_Baro: prevent bad ground pressure from making a board unbootable
2016-02-23 16:34:06 +11:00
Lucas De Marchi
f1ade970a3
AP_Baro: MS5611: Use AP_HAL::Device abstraction
...
This allows to share almost all the I2C/SPI code and remove the
AP_Serial abstraction since that is now handled by AP_HAL itself.
2016-02-16 19:49:09 -02:00
Lucas De Marchi
b05954660a
AP_Baro: BMP085: use I2CDevice interface
2016-02-16 19:49:09 -02:00
Tom Pittenger
f435c5ee50
AP_Baro: tolerate GND_ALT_OFFSET step inputs
...
large inputs make the EKF angry, this will allow the param update to slew over a few seconds
2016-02-08 21:13:58 -08:00
Lucas De Marchi
56e4de0bdd
AP_Baro: MS56XX: remove initialization to 0 from constructor
2016-02-01 14:18:50 -02:00
Lucas De Marchi
9d5fb97819
Global: rename enum SPIDevice to SPIDeviceType
...
Free the SPIDevice name so to have a consistent name for I2C/SPI device
classes.
2016-02-01 14:18:50 -02:00
Gustavo Jose de Sousa
c2e3f05dbf
waf: ardupilotwaf: prefix build context methods with ap_
...
It helps to distinguish between things from waf and things from ardupilotwaf.
2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa
3d22490397
waf: examples: use methods from bld instead of ardupilotwaf
2016-01-22 20:10:29 -02:00
Julien BERAUD
d15097f3fc
AP_Baro_MS5611: Support for timesliced timers
...
fallback if current scheduler doesn't support it
2016-01-18 16:57:48 -02:00
Gustavo Jose de Sousa
d281067bcc
waf: make example binaries be placed in 'examples' dir
...
This commit makes examples' wscripts use ardupilotwaf.example() instead of
ardupilot.program().
2016-01-15 16:46:41 -02:00
Jonathan Challinger
dcfc95fadf
AP_Baro: fix example build
2015-12-29 10:46:35 -08:00
Lucas De Marchi
a096703b06
Global: don't link with AP_Progmem
...
AP_Progmem is not used anymore.
2015-12-27 15:58:12 -02:00
Andrew Tridgell
ff44a63007
AP_Baro: added QURT driver
2015-12-27 16:21:25 +11:00
Andrew Tridgell
1f4e503d91
AP_Baro: added qflight driver
2015-12-27 16:12:27 +11:00
Andrew Tridgell
ef83f39029
AP_Baro: renamed _C* vars to avoid conflict with qurt
2015-12-20 17:55:39 +11:00
Lucas De Marchi
5b1769cd2b
AP_Baro: remove unused AP_ADC_AnalogSource
2015-12-03 13:32:42 +11:00
Caio Marcelo de Oliveira Filho
6e7b73610d
waf: add waf support
2015-12-03 07:54:30 +11:00
Lucas De Marchi
8eee888b3e
AP_Baro: BMP085: move data-ready macro to a method
2015-12-02 10:40:50 +11:00
Lucas De Marchi
c5e97129c1
AP_Baro: BMP085: follow coding style
...
- Spacing changes and variable renames to follow coding style
- No need to initialize variables to 0, it's already done by our
global new operator.
2015-12-02 10:40:50 +11:00
Lucas De Marchi
81a298c9c8
AP_Baro: reduce header scope
...
We don't need to expose to other libraries how each backend is
implemented. AP_Baro.h is the main header, included by other libraries.
Instead of including each backend in the main header, move them to where
they are needed. Additionally standardize the order and how we include
the headers.
The advantages are:
- Internals of each backend is not exposed outside of the
library
- Faster incremental builds since we don't need to recompile
whoever includes AP_Baro.h because a backend changed
2015-12-02 10:40:50 +11:00
Lucas De Marchi
30f631de8f
AP_Baro: MS5637: fix CRC check
...
The configuration of MS5637 is different from MS5611 in 2 ways:
- The PROM is of 112 bytes rather than 128
- The CRC is located in the first MSB of the first word, not the
last one
For CRC calculation we also need to zero out the last (missing) word.
This renames _check_crc() to _read_prom(), which returns false when the
PROM doesn't contain valid data. It also makes it virtual so MS5637 can
override it. This also moves the PROM read to be all in the same place
rather than split between the CRC field and coefficient fields. Finally
calculate_crc() is renamed to crc4() to be shorter and add info on what
it does.
2015-12-02 10:38:09 +11:00
José Roberto de Souza
7457588d7c
AP_Baro: Move initialisation code from MS56XX constructor to init()
...
On MS5637 we will need to override the method to read and calculate the
PROM's crc. Thus we need a 2-phase init.
It also makes the constructor of AP_Baro_MS56XX protected since only the
derived classes should instantiate the base one.
2015-12-02 10:38:09 +11:00
José Roberto de Souza
29791c9cec
AP_Baro: Make _check_crc more readable
2015-12-02 10:38:09 +11:00
Caio Marcelo de Oliveira Filho
8cce3067f4
AP_Baro: examples use millis/micros/panic functions
2015-11-20 12:29:38 +09:00
Caio Marcelo de Oliveira Filho
5a280838f8
AP_Baro: use millis/micros/panic functions
2015-11-20 12:29:31 +09:00
Lucas De Marchi
977f6aaf15
AP_Baro: MS5611: remove empty statement
2015-11-11 13:48:48 +11:00
Lucas De Marchi
94d01934f7
AP_Baro: MS5611: reduce OSR to 1024
...
This is the same change as done in PX4:
This reduces self-heating of the sensor which reduces the amount
of altitude change when warming up. Apparently some individual
sensors are severely affected by this.
Unfortunately it raises the noise level, but Paul is confident
it won't be a significant issue.
2015-11-11 13:48:48 +11:00
Andrew Tridgell
840c9e65bb
AP_Baro: don't notify the GCS of new pressure reference too often
2015-11-09 14:34:07 +11:00
Peter Barker
1b13315092
AP_Baro: notify GCS of calibration
2015-11-09 09:23:20 +11:00
Lucas De Marchi
8eef58a8c2
AP_Baro: remove check for AVR CPUs
...
Remove the checks for HAL_CPU_CLASS > HAL_CPU_CLASS_16 and
HAL_CPU_CLASS >= HAL_CPU_CLASS_75. Corresponding dead code will be
removed on separate commits.
2015-11-04 12:14:14 +11:00
Lucas De Marchi
4bd8b2ae35
AP_Baro: remove checks for HAL_BOARD_APM2 and HAL_BOARD_APM1
2015-11-04 12:14:11 +11:00
Lucas De Marchi
831d8acca5
Remove use of PROGMEM
...
Now variables don't have to be declared with PROGMEM anymore, so remove
them. This was automated with:
git grep -l -z PROGMEM | xargs -0 sed -i 's/ PROGMEM / /g'
git grep -l -z PROGMEM | xargs -0 sed -i 's/PROGMEM//g'
The 2 commands were done so we don't leave behind spurious spaces.
AVR-specific places were not changed.
2015-10-30 14:35:16 +09:00
Lucas De Marchi
2c38e31c93
Remove use of PSTR
...
The PSTR is already define as a NOP for all supported platforms. It's
only needed for AVR so here we remove all the uses throughout the
codebase.
This was automated with a simple python script so it also converts
places which spans to multiple lines, removing the matching parentheses.
AVR-specific places were not changed.
2015-10-30 14:35:04 +09:00
Lucas De Marchi
386547427d
AP_Baro: support MS5611 on second i2c bus
2015-10-22 12:04:52 +11:00
wsilva32
da9118fbd0
AP_Baro: average SITL baro measurements using update()
2015-10-21 10:25:08 +11:00
Lucas De Marchi
4d3229daa2
AP_Baro: remove check for HAL_CPU_CLASS
...
We don't support HAL_CPU_CLASS <= HAL_CPU_CLASS_16 anymore. This makes
BARO_MAX_INSTANCES and BARO_MAX_DRIVERS constant for all supported
boards.
2015-10-21 10:05:18 +11:00
Caio Marcelo de Oliveira Filho
24178c3e10
AP_Baro: remove unnecessary includes in example
2015-10-21 09:16:10 +11:00
Caio Marcelo de Oliveira Filho
ec52df991c
build: compile only the HAL files needed by the board
...
Instead of requiring every program to specify the HAL related modules,
let the build system do it (in practice everything we compiled depended
on HAL anyway). This allow including only the necessary files in the
compilation.
2015-10-21 09:16:07 +11:00
Caio Marcelo de Oliveira Filho
2e464a53c2
AP_HAL: make code not depend on concrete HAL implementations
...
The switching between different AP_HAL was happening by giving different
definitions of AP_HAL_BOARD_DRIVER, and the programs would use it to
instantiate.
A program or library code would have to explicitly include (and depend)
on the concrete implementation of the HAL, even when using it only via
interface.
The proposed change move this dependency to be link time. There is a
AP_HAL::get_HAL() function that is used by the client code. Each
implementation of HAL provides its own definition of this function,
returning the appropriate concrete instance.
Since this replaces the job of AP_HAL_BOARD_DRIVER, the definition was
removed.
The static variables for PX4 and VRBRAIN were named differently to avoid
shadowing the extern symbol 'hal'.
2015-10-21 09:16:07 +11:00
José Roberto de Souza
c53e9d1ff0
AP_Baro: Fix typo
2015-10-16 10:05:03 +11:00
José Roberto de Souza
9a98eb35fc
AP_Baro: Add MS5637 over I2C to init()
2015-10-16 10:05:03 +11:00
José Roberto de Souza
c373ce34d1
AP_Baro: MS56XX: Some minor fixes
2015-10-16 10:05:03 +11:00
José Roberto de Souza
d9931b5f34
AP_Baro: Add support to MS5637
...
As AVR2560 is not supported anymore and do integer operations is
usually faster than float-point the _calculate() implementation was
done using only integer operations and as more close to what
datasheet says.
2015-10-16 10:05:03 +11:00
raspilot
831bb554e7
AP_Baro_MS5611: suspend timer when init to prevent other SPI drivers grabbing the bus.
2015-10-02 09:54:55 +10:00
mirkix
ba4db34c83
AP_Baro: Prevent busy waiting
2015-10-02 09:49:12 +10:00
Julien BERAUD
3b5d73b1fe
AP_Baro_MS5611: Fix state machine in case of error
...
If there is a read error, reading from the adc will return 0 but moreover,
we need to re-initiate a read or else we are stuck forever.
From MS5611-01BA03 datasheet, p. 10, CONVERSION SEQUENCE:
"After the conversion, using ADC read command the result is clocked out with the MSB first.
If the conversion is not executed before the ADC read command, or the ADC read command is
repeated, it will give 0 as the output result."
2015-09-23 09:19:22 +10:00
Andrew Tridgell
a5462fec0b
AP_Baro: allow selection of primary barometer and add 3rd baro
...
this is useful for external I2C barometers on a PH2
2015-09-14 14:27:41 +10:00
Gustavo Jose de Sousa
bcd5dff774
AP_Baro: MS56XX: do not change change state on error
...
If we have an error in the SPI or I2C transaction we should not change
the state. Otherwise we might read a temperature when the sensor is
reporting pressure and vice-versa.
2015-09-01 20:26:06 +10:00
Gustavo Jose de Sousa
1f29e18375
AP_Baro: make AP_SerialBus::write() return success or failure for MS56XX
2015-09-01 20:26:05 +10:00
Tom Pittenger
749c0c190f
AP_Baro - fix BARO_ALT_OFFSET param
...
This param seems to have been un-implemented. This is putting it back in. Adds a meter offset to the calculated altitude form the baro sensors.
Also changes it from int8 to float
2015-08-26 13:16:05 +10:00
Gustavo Jose de Sousa
f18802bc46
AP_Baro: standardize inclusion of libaries headers
...
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.
2015-08-11 16:28:42 +10:00
Grant Morphett
312184dd13
AP_Baro: coverity fixes - add param init in constructor
2015-07-30 12:37:08 +10:00
Randy Mackay
5732a6a144
Baro: update climb rate only if healthy
2015-07-29 16:32:49 +09:00
Julien BERAUD
d407737434
AP_Baro: added MS5607 support
2015-07-10 16:46:29 +10:00
Andrew Tridgell
282efe2d57
AP_Baro: fixed example to run accumulate at 50Hz
2015-07-10 09:59:35 +10:00
Andrew Tridgell
4368f922a3
AP_Baro: convert example from .pde to .cpp
2015-06-01 16:58:10 +10:00
Lucas De Marchi
df5652fa87
AP_Baro: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
ziltoid2
23787cf695
AP_Baro: use ground_temperature instead of calibration_temperature for alt calculation
2015-05-20 11:42:21 +10:00
Andrew Tridgell
48fb7f8159
AP_BARO: revert AP_Math class change
2015-05-05 13:27:05 +10:00
Tom Pittenger
0b29848277
AP_Baro: compiler warnings: apply is_zero(float) or is_equal(float)
2015-05-05 13:26:56 +10:00
Andrew Tridgell
7d9d594283
AP_Baro: fix for HAL_SITL rename
2015-05-05 09:45:55 +10:00
Randy Mackay
55298a4c73
Baro: fix example sketch
2015-05-02 17:25:44 +09:00
Randy Mackay
1b381b5675
Baro: get_air_density_ratio gets div-by-zero check
2015-04-29 14:36:20 +09:00
Jonathan Challinger
f381ef93e8
AP_Baro: add get_air_density_ratio
2015-04-29 14:36:10 +09:00
Tom Pittenger
4191c44bbd
Baro: fix compile warning re member init order
2015-04-24 14:15:11 +09:00
Andrew Tridgell
2e9d2e6449
AP_Baro: load only HIL backend for hil_mode
2015-03-13 22:52:55 +11:00
Andrew Tridgell
d040318014
AP_Baro: removed unused define
2015-03-13 18:46:17 +11:00
Randy Mackay
4e7d92094c
Baro: remove glitch detection
2015-03-13 16:40:29 +09:00
Andrew Tridgell
1f70b34cbc
AP_Baro: fixed baro startup on PXF cape
2015-03-13 13:48:41 +11:00
Andrew Tridgell
beeb9173ea
AP_Baro: change for new PX4 paths
2015-02-14 12:25:43 +11:00
Andrew Tridgell
ac3dd87790
AP_Baro: added hil_mode support
2015-02-10 09:53:30 +11:00
Randy Mackay
bb4204c045
Baro: fix example sketch
2015-01-28 17:15:37 +09:00
Randy Mackay
c93e7a69a7
Baro: init external_temperature in constructor
2015-01-12 13:56:35 +09:00
Andrew Tridgell
b1d8df3d54
AP_Baro: only allow calibrated sensors to be used
2015-01-09 12:59:01 +11:00
Andrew Tridgell
3320dfd7fa
AP_Baro: fixed ms5611 spelling error
2015-01-09 11:59:49 +11:00
Andrew Tridgell
0a8677b3e2
AP_Baro: fixed build after rebase with all_healthy()
2015-01-09 11:51:52 +11:00
Andrew Tridgell
1c2a6deaaf
AP_Baro: added all_healthy() method
2015-01-09 11:51:51 +11:00
Andrew Tridgell
8359c082ca
AP_Baro: fixed baro on NavIO
...
don't use the 1kHz timer as it conflicts with other I2C devices
2015-01-09 11:51:51 +11:00
Andrew Tridgell
197c09fcd8
AP_Baro: added num_instances() API
2015-01-09 11:50:56 +11:00
Andrew Tridgell
f1891cea1f
AP_Baro: BMP085 driver done, but untested
2015-01-09 11:50:54 +11:00
Andrew Tridgell
5bb57a31f7
AP_Baro: split into frontend/backend
...
this allows for support of multiple sensors on a board
2015-01-09 11:50:54 +11:00
Staroselskii Georgii
43c88c37eb
AP_Baro: fixed MS5611 initialisation in order to get rid off conflicts with other I2C devices
2015-01-07 08:41:13 +11:00
Randy Mackay
ddda0d52ce
Baro: reorder declaration to fix compiler warning
...
No functional change
2014-12-11 13:06:24 +09:00
Andrew Tridgell
e45522f51d
AP_Baro: fixed example build
2014-11-28 10:40:43 +11:00
Andrew Tridgell
d404cc6542
AP_Baro: add set_external_temperature()
...
this allows the use of an external temperature sensor for calibration
purposes, such as the sensor built in to the digital airspeed sensor.
The main affect this has is on the EAS2TAS calculation
The get_calibration_temperature() is used to choose either an external
temperature or an internal one. If an internal one is used then it is
clamped at no higher than 25 degrees C, to prevent hot electronics
on startup affecting altitude scaling and EAS2TAS
2014-11-12 13:36:01 +11:00
Andrew Tridgell
8b794602d1
AP_Baro: make get_temperature() a const function
2014-11-12 13:36:01 +11:00
Randy Mackay
67690553c5
BaroGlitch: add reset method
2014-11-09 13:34:15 -08:00
Randy Mackay
3a81732721
Baro: minor param description updates
2014-10-14 12:42:27 +09:00
Andrew Tridgell
5280d8936d
AP_Baro: remove usage of hrt_absolute_time()
...
use a single time base in all code
2014-08-20 08:41:15 +10:00
Andrew Tridgell
d01fa3bfbd
AP_Baro: prevent reading the MS5611 too fast
...
setup the timer start after we've started the conversion to prevent
reading faster than the MS5611 is able to produce values
2014-08-19 21:16:13 +10:00
Randy Mackay
fd5dee96e4
BaroGlitch: check baro health after alt calculation
...
Also correct type of distance_cm internal variable
2014-08-14 16:03:33 +09:00
Randy Mackay
424a65663a
Baro: init members to resolve compiler warning
2014-08-14 16:03:30 +09:00
Randy Mackay
53b073148b
BaroGlitch: use baro healthy()
2014-08-14 16:03:21 +09:00
Randy Mackay
78b1bf8282
Baro: example sketch to use healthy() function
2014-08-14 16:03:15 +09:00
Randy Mackay
76634ee8c3
Baro_PX4: use healthy flag
2014-08-14 16:03:12 +09:00
Randy Mackay
d29fe51cb3
Baro_VRBrain: use healthy flag
2014-08-14 16:03:09 +09:00
Randy Mackay
24db492131
Baro_MS5611: use healthy flag
2014-08-14 16:03:06 +09:00
Randy Mackay
72f6985bd8
Baro_HIL: use healthy flag
2014-08-14 16:03:04 +09:00
Randy Mackay
fdb38dec5f
Baro_BMP085: use healthy flag
2014-08-14 16:03:02 +09:00
Randy Mackay
330d883f97
Baro: add altitude sanity check
...
healthy flag made protected
healthy accessor fn added which also check latest calculated altitude
was ok
2014-08-14 16:02:59 +09:00
Randy Mackay
e9fbea9497
Baro: make get_altitude_difference const
2014-08-14 16:02:55 +09:00
Randy Mackay
af28b74944
Baro_BMP085: init members to resolve compiler warnings
2014-08-14 11:27:29 +09:00
Andrew Tridgell
a400cbc922
AP_Baro: fixed example build
2014-08-13 21:46:14 +10:00
Mikhail Avkhimenia
83bbee491c
AP_Baro_MS5611: add address switch for Navio board
2014-08-12 22:09:29 +10:00
Randy Mackay
5d4e019397
BaroGlitch: increase max accel to 15m/s/s
2014-08-09 15:47:52 +09:00
Andrew Tridgell
6ebff35fe2
AP_Baro: don't include I2C MS5611 on APM1 either
2014-08-03 17:17:20 +10:00
Randy Mackay
fe24721218
BaroGlitch: increase default ok distance to 5m
...
When taking off some copters hove a sudden baro altitude dip of 4m
2014-08-02 11:43:06 +09:00
Randy Mackay
c68d4fdfcb
BaroGlitch: init members to resolve compiler warning
2014-08-01 14:07:34 +09:00
Randy Mackay
728da12441
BaroGlitch: remove debug
2014-07-29 22:05:09 +09:00
Andrew Tridgell
c538cc0665
AP_Baro: fixed example build
2014-07-29 21:04:26 +10:00
Randy Mackay
2289b98d34
Baro_Glitch: initial version of baro glitch protection
...
Based on GPS Glitch protection library
2014-07-28 22:16:12 +09:00
Andrew Tridgell
a458f1bf5f
AP_Baro: minor improvements to Baro HIL code health check
2014-07-24 21:46:06 +10:00
Andrew Tridgell
2b3d17d955
AP_Baro: fixed APM1 build
2014-07-14 09:50:17 +10:00
Andrew Tridgell
be02f0c34f
AP_Baro: work around occasional 0 values from MS5611
...
this was seen on the PXF board. It isn't yet known why it happens
2014-07-14 09:44:36 +10:00
Andrew Tridgell
b0ab2671cd
AP_Baro: removed old device specific example code
...
not needed any more
2014-07-14 09:44:36 +10:00
Andrew Tridgell
028e2e34f1
AP_Baro: added generic baro test sketch
2014-07-14 09:44:36 +10:00
Andrew Tridgell
f73ec95c39
AP_Baro_MS5611: added PROM CRC checking
...
disabled on APM2 to save flash space
2014-07-14 09:44:35 +10:00
Víctor Mayoral Vilches
8a85f8d6d2
AP_Baro_MS5611_test: Add HAL specific code.
2014-07-14 09:29:53 +10:00
Víctor Mayoral Vilches
de58df6371
AP_Baro_MS5611_test: Add block for APM2-code
2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
9797867067
AP_Baro_MS5611: Fix the test code so that compiles.
...
Add HAL_BOARD_LINUX and HAL_BOARD_ERLE compatibility.
2014-07-14 09:02:47 +10:00
Andrew Tridgell
74c3b404ee
AP_Baro: avoid some float conversion warnings
2014-07-08 20:26:54 +10:00
Andrew Tridgell
e118984c26
AP_Baro: save some flash and memory on APM2
...
we don't need the I2C MS5611 driver
2014-07-08 14:21:42 +10:00
Andrew Tridgell
3705c90b8e
AP_Baro: fix for HAL_GPIO_*
2014-06-02 10:42:36 +10:00
Andrew Tridgell
41dd280739
AP_Baro: expose get_altitude_difference()
...
this is useful for pressure altitude calculations
2014-04-11 16:34:02 +10:00
Emile Castelnuovo
f4784fe6a1
AP_Baro: new files for VRBRAIN board
2014-04-08 16:19:19 +10:00
Andrew Tridgell
d3d71d597c
AP_Baro: fixed example build
2014-03-19 12:14:05 +09:00
Andrew Tridgell
63234d4c22
AP_Baro: fixed linux build of BMP085 driver
2014-03-07 09:33:43 +11:00
Andrew Tridgell
b2bd81f262
AP_Baro: added alternative setHIL interface
...
uses pressure and temperature for better log replay
2014-02-18 09:25:07 +11:00
Andrew Tridgell
3af38a778d
AP_Baro: fixed example build
2014-02-15 06:40:15 +11:00
Randy Mackay
bb715424ee
Baro: fix BMP085 example sketch
2014-02-15 06:09:08 +11:00
Andrew Tridgell
6964529124
AP_Baro: _calculate can be private
2014-02-15 05:48:24 +11:00
Andrew Tridgell
2cd781997f
AP_Baro: changed HIL driver to use floats and better handle starup
2014-02-15 05:48:18 +11:00
Andrew Tridgell
5e3c4441dc
AP_Baro: use HAL_CPU_CLASS in baro driver
2013-12-31 10:28:37 +11:00
Andrew Tridgell
42eba615b4
AP_Baro: fixed example build
2013-12-17 11:51:37 +11:00
Andrew Tridgell
6c2e392d5d
AP_Baro: fixed BMP085 examples build in autotest
2013-11-23 18:50:55 +11:00
Andrew Tridgell
8a65a729f3
AP_Baro: start MS5611 at high speed
2013-11-07 12:48:17 +11:00
Tobias
7855d242c7
AP_Baro: add time-unit comment
2013-10-27 13:39:23 +09:00
Andrew Tridgell
3393a5c99e
AP_Baro: prevent a race condition in the SITL baro driver
2013-10-17 17:22:19 +11:00
Andrew Tridgell
d60a68fd9c
AP_Baro: check baro at exactly 100Hz
...
prevent waits for samples
2013-10-13 11:02:53 +09:00
Andrew Tridgell
6fa55d101f
AP_Baro: fixed I2C semaphore handling for BMP085 driver
2013-10-08 11:50:54 +11:00
Andrew Tridgell
487caea3a5
AP_Baro: added update_calibration() method
...
used for auto baro calibration when disarmed
2013-10-05 18:44:00 +10:00
Andrew Tridgell
c04d9b0c03
AP_Baro: updates for AP_HAL::MemberProc
2013-09-30 21:06:42 +10:00
Andrew Tridgell
8a699f6189
AP_Baro: enable BMP085 on Linux
2013-09-28 22:04:15 +10:00
Andrew Tridgell
20b1131059
AP_Baro: use new scheduler API
2013-09-28 21:24:03 +10:00
Mike McCauley
e3c20f06ac
AP_Baro: Chnages to flymaple port.
...
Flymaple has no EOC pin
2013-09-24 13:33:25 +10:00
Andrew Tridgell
fc119d9b80
AP_Baro: cleaned up temperature and pressure units
...
thanks to Mike McCauley for pointing this out
2013-09-21 21:30:41 +10:00
Andrew Tridgell
97b7130bb9
libraries: update license header to GPLv3
...
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10:00
Andrew Tridgell
517c44bbaa
AP_Baro: fixed example build
2013-08-30 13:01:36 +10:00
Andrew Tridgell
395739dded
AP_Baro: simplify PX4 driver
...
we can now rely on queueing in NuttX driver
2013-08-30 13:01:34 +10:00
Andrew Tridgell
5607c89df0
AP_Baro: use fabs() not abs()
...
thanks to Randy for spotting this
2013-08-30 13:01:33 +10:00
Paul Riseborough
ba009e55e3
AP_Baro : Fixed bug in temperature units in AP_Baro_HIL
2013-07-22 12:50:02 +10:00
Andrew Tridgell
ebebee4f06
AP_Baro: extend the atmospheric model to higher altitudes
2013-07-22 12:50:02 +10:00
Andrew Tridgell
0c6725f289
AP_Baro: improved the accuracy of the barometer model
2013-07-22 12:50:01 +10:00
Andrew Tridgell
0f72401d8d
AP_Baro: added GND_ALT_OFFSET parameter
...
used for automatic barometric adjustment by a ground station equipped
with a barometer
2013-07-10 14:38:57 +10:00
Paul Riseborough
7bdb098e77
AP_Baro: added get_EAS2TAS()
...
this provides the scaling factor between equivalent and true airspeed
based on altitude
2013-07-04 16:56:56 +10:00
Andrew Tridgell
61361dac9b
AP_Baro: added units to baro documentation
2013-07-04 16:56:56 +10:00
Paul Riseborough
3b98bbd159
AP_Baro: more precise altitude calculation on PX4
...
if not using an AVR CPU then use a more computationally expensive
altitude calculation, which is more precise at higher altitudes
2013-07-04 16:56:56 +10:00
Randy Mackay
aa2b10f044
AP_Baro: TEMP parameter comment fix
2013-06-18 11:28:36 +09:00
Andrew Tridgell
ed93f80ba9
AP_Baro: fixed example build
2013-05-08 16:45:07 +10:00
Andrew Tridgell
26bf636541
AP_Baro: fixed a build warning
2013-05-02 21:31:04 +10:00
Andrew Tridgell
7cec3caf19
AP_Baro: cleaned up setHIL method
...
move pressure calculation into library
2013-05-02 15:26:38 +10:00
Andrew Tridgell
c6c1fce2f1
AP_Baro: removed HIL constructor
...
this wasn't calling the parent class
2013-05-02 15:16:52 +10:00
Andrew Tridgell
2d089174cd
AP_Baro: rename AP_Baro_BMP085_HIL to AP_Baro_HIL
...
there is nothing specific to the BMP085 in it
2013-05-02 15:08:42 +10:00
Andrew Tridgell
d7ec985029
AP_Baro_PX4: fixed baro driver to run at full rate
...
we were skipping samples due to a timer handling bug. It now checks
for new samples at 100Hz
2013-05-01 08:54:53 +10:00
Janne Mäntyharju
7a04fe9915
AP_Baro: Fixed build for APM2 Beta hardware
2013-04-16 11:24:38 +10:00
Andrew Tridgell
f0469a21f2
AP_Baro: fixed timestamp on baro for PX4
...
milliseconds not microseconds
2013-01-22 21:22:01 +11:00
Andrew Tridgell
b9b3ef91a1
AP_Baro: added timer to PX4 driver
...
this gives us more samples when main sketch is reading slowly
2013-01-21 18:20:05 +11:00
Andrew Tridgell
6a5421a361
AP_Baro: ask for maximum poll rate for PX4
2013-01-21 08:27:02 +11:00
Andrew Tridgell
74f7b0f218
AP_Baro: added accumulate method to PX4 driver, and fixed scaling
2013-01-20 22:13:21 +11:00
James Bielman
4fa7bb1486
Add AVR compatibility header for missing math.h definitions.
...
- Define float versions of math functions to the double versions
on AVR (eg. #define sinf sin).
- These macros appear to be missing in older versions of avr-libs.
- Include AP_Math.h rather than math.h to get these definitions.
2013-01-16 13:52:17 +11:00
James Bielman
5631f865b2
Update floating point calculations to use floats instead of doubles.
...
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Andrew Tridgell
2fe4656a50
Merge pull request #4 from GaloisInc/master
...
Thanks Pat!
2013-01-10 17:24:59 -08:00
James Bielman
25d078e2bd
AP_Baro_MS5611: Don't panic if taking semaphore fails during init.
...
- The MPU6000 holds on to the I2C semaphore for quite some time during
init, which caused a panic when the MS5611 is also on I2C.
2013-01-10 14:22:41 -08:00
Andrew Tridgell
2c603a0960
AP_Baro: only build BMP085 driver on APM1
2013-01-10 21:01:07 +11:00
Andrew Tridgell
8cb0ed364a
AP_Baro: read 4 pressure values for every temperature value on BMP085
2013-01-09 23:44:26 +11:00
Andrew Tridgell
1ce1fa3864
AP_Baro: update example to use accumulate()
2013-01-09 23:06:24 +11:00
Andrew Tridgell
8ceabc97f1
AP_Baro: added accumulate() function
...
this allows us to read the BMP085 much faster
2013-01-09 23:05:17 +11:00
Andrew Tridgell
9b972af307
AP_Baro: skip timer if we don't get the SPI semaphore
2013-01-09 20:27:48 +11:00
James Bielman
eca1417858
AP_HAL: Add semaphores to I2C driver.
...
- Guard I2C transactions with this semaphore in the MS5611 and
HMC5843 drivers.
2013-01-04 15:43:43 -08:00
Andrew Tridgell
c15bf95e19
AP_Baro: fixed example build on AVR
2013-01-04 22:45:02 +11:00
Andrew Tridgell
aa64a41512
AP_Baro: removed debug line
2013-01-04 22:26:51 +11:00
Andrew Tridgell
4fe7ad6267
AP_Baro: added averaging to PX4 baro driver
2013-01-04 21:08:20 +11:00
Andrew Tridgell
dbcaa4cf3c
AP_Baro: average over multiple samples in PX4 baro driver
2013-01-04 20:11:30 +11:00
Andrew Tridgell
2ac6541526
AP_Baro: added PX4 barometer driver
2013-01-04 14:58:24 +11:00
James Bielman
d84ba8ef59
Use HAL suspend/resume timer procs rather than atomic.
...
- Preparation for removing begin/end atomic.
2013-01-03 17:33:13 -08:00
Pat Hickey
5d91f342bb
AP_Baro_MS5611: uses new semaphore lib
2013-01-03 13:48:07 -08:00
James Bielman
264db3670e
AP_Baro: Add CONFIG_MS5611_SERIAL option to choose between SPI and I2C.
...
- Update ArduCopter and ArduPlane modules to pass the correct serial
driver to the MS5611 driver.
- Update barometer examples, assuming SPI.
2013-01-03 13:48:06 -08:00
James Bielman
5753ae5692
AP_Baro: Add I2C support to MS5611 driver.
2013-01-03 13:48:06 -08:00
Andrew Tridgell
374af1cd14
build: change from Arduino.mk to apm.mk
2013-01-02 17:29:37 +11:00
Andrew Tridgell
c5ba33d39a
AP_Baro: fixed MS5611 semaphore handling
2012-12-21 19:33:57 +11:00
Andrew Tridgell
3aa39da6cd
AP_Baro: removed some debug code
2012-12-20 14:53:23 +11:00
Andrew Tridgell
a1187519a8
AP_HAL: use AP_HAL_BOARD_DRIVER in remaining test sketches
2012-12-20 14:52:37 +11:00
Andrew Tridgell
c15eb97c8d
AP_Baro: fixed example build
2012-12-20 14:52:36 +11:00
Pat Hickey
eb530b86e8
move Arduino.mk to /mk/Arduino.mk
2012-12-20 14:52:35 +11:00
Pat Hickey
107ab1a694
AP_Baro: translated to SPI transactions
2012-12-20 14:52:32 +11:00
Pat Hickey
d92e8045c1
AP_Baro: uses scheduler panic
2012-12-20 14:52:31 +11:00
Pat Hickey
2c2279722b
AP_Baro_MS5611: use scheduler panic
2012-12-20 14:52:31 +11:00
Andrew Tridgell
7d27e420ae
AP_HAL: remove unnecessary Arduino.h includes
2012-12-20 14:52:30 +11:00
Andrew Tridgell
4a54ffb523
Baro: use local include to reduce boilerplate
2012-12-20 14:52:30 +11:00
Andrew Tridgell
dbd9814327
AP_Baro: get rid of apm2_hardware parameter in init
2012-12-20 14:51:38 +11:00
Andrew Tridgell
cafeaf91d6
AP_Baro: updates for new AP_Param API
2012-12-20 14:51:38 +11:00
Pat Hickey
475da4eca4
CONFIG_HAL_BOARD - test sketches fixed up, build all passes
2012-12-20 14:51:37 +11:00
Andrew Tridgell
2ea243e45b
AP_Baro: removed unused code
2012-12-20 14:51:37 +11:00
Pat Hickey
bfd03ab40c
AP_Baro: robust spi device
2012-12-20 14:51:35 +11:00
Pat Hickey
60f7788be4
AP_Baro: robust calibration
2012-12-20 14:51:35 +11:00
Pat Hickey
eaa0a990a4
AP_Baro: MS5611 robust semaphores
2012-12-20 14:51:35 +11:00
Pat Hickey
52925b655f
AP_Baro: MS5611 uses delay in busy wait
2012-12-20 14:51:35 +11:00
Pat Hickey
c1114168e4
AP_Baro tests rebase fixups
2012-12-20 14:51:29 +11:00
Pat Hickey
a4f1f6a5db
AP_Progmem: fix dependencies for all sketches touched by AP_HAL_AVR
2012-12-20 14:51:28 +11:00
Pat Hickey
668caa4a2e
Fix calls to AP_HAL::Scheduler::register_timer_process
2012-12-20 14:51:27 +11:00
Pat Hickey
5d40074e4e
AP_Baro: port to AP_HAL
2012-12-20 14:51:26 +11:00
Pat Hickey
3f1d9d7f69
AP_Param: #include <AP_Param.h> fixups for libraries & sketches
...
* I mostly went through with grep and added an #include <AP_Param.h> below
every #include <AP_Common.h>. Not all of these example sketches might
strictly need AP_Param.
2012-12-20 14:51:19 +11:00
Andrew Tridgell
3552f3f9c5
AP_Baro: fixed example build
2012-11-24 21:07:41 +11:00
Andrew Tridgell
e331634bc5
AP_Baro: switch to SREG = oldSREG pattern for interrupt mask/restore
2012-11-20 22:31:17 +11:00
rmackay9
56f88821e9
AP_AHRS: fix example sketch
...
AP_Airspeed: fix example sketch
AP_Baro: fix example sketch
AP_Declination: fix example sketch
AP_Math: fix example sketch
2012-11-08 00:08:18 +09:00
rmackay9
1c7118a2d1
AP_Baro: added get_last_update which returns the time the barometer sensor was last read
2012-11-07 19:21:25 +09:00
Andrew Tridgell
e5846bd965
AP_Baro: removed _sync_access check
...
this isn't needed as the common variables are already protected by
cli()/sei()
2012-09-20 17:34:33 +10:00
uncrustify
4cd6657f70
uncrustify libraries/AP_Baro/AP_Baro_BMP085_hil.h
2012-08-21 19:19:51 -07:00
uncrustify
fa90f0b80f
uncrustify libraries/AP_Baro/AP_Baro.h
2012-08-21 19:00:51 -07:00
uncrustify
1196285266
uncrustify libraries/AP_Baro/AP_Baro_MS5611.h
2012-08-21 19:00:50 -07:00
uncrustify
cfcef93e16
uncrustify libraries/AP_Baro/AP_Baro_BMP085.h
2012-08-21 19:00:50 -07:00
uncrustify
5a99d6b697
uncrustify libraries/AP_Baro/AP_Baro_BMP085.cpp
2012-08-21 19:00:18 -07:00
uncrustify
b0003c020f
uncrustify libraries/AP_Baro/AP_Baro_MS5611.cpp
2012-08-21 19:00:18 -07:00
uncrustify
b39411e8d4
uncrustify libraries/AP_Baro/AP_Baro_BMP085_hil.cpp
2012-08-21 19:00:18 -07:00