Commit Graph

241 Commits

Author SHA1 Message Date
Jonathan Challinger 07d87d8877 Replay: reflect renamed function in AP_AHRS 2015-12-18 18:08:37 +11:00
Lucas De Marchi 8f9fa568b4 Tools: remove unused AP_ADC_AnalogSource 2015-12-03 13:32:45 +11:00
Peter Barker 45d80080c3 Replay: use IMT in preference to IMU 2015-12-03 13:23:19 +11:00
Caio Marcelo de Oliveira Filho 6e7b73610d waf: add waf support 2015-12-03 07:54:30 +11:00
Lucas De Marchi 2591261af6 Global: rename min and max macros to uppercase
The problem with using min() and max() is that they conflict with some
C++ headers. Name the macros in uppercase instead. We may go case by
case later converting them to be typesafe.

Changes generated with:

	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)max(/\1MAX(/g'
	git ls-files '*.cpp' '*.h' -z | xargs -0 sed -i 's/\([^_[:alnum:]]\)min(/\1MIN(/g'
2015-12-01 16:28:09 -02:00
Caio Marcelo de Oliveira Filho 071d8e541e Replay: use millis/micros/panic functions 2015-11-20 12:26:55 +09:00
Lucas De Marchi 5244559010 Minimize AP_Progmem.h includes
Most of AP_Progmem is already gone so we can stop including it in most
of the places. The only places that need it are the ones using
pgm_read_*() APIs.

In some cases the header needed to be added in the .cpp since it was
removed from the .h to reduce scope. In those cases the headers were
also reordered.
2015-10-30 14:35:32 +09: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
Peter Barker 5da7d6eac2 Replay: set INS_GYRO_CAL to never to avoid losing samples 2015-10-23 12:37:44 +11:00
Caio Marcelo de Oliveira Filho f27f8f2f5d Tools: include SITL only for SITL board
Include board-specific files only when the board is used. Since these
should be exceptional cases, let the includer handle the ifdef instead
of putting ifdefs in every platform-specific header.

In the future we should evaluate whether the HAL for the board should
instantiate this.
2015-10-22 13:36:14 -02:00
Caio Marcelo de Oliveira Filho 49a42dc985 SITL: use a SITL namespace 2015-10-22 11:04:42 -02:00
Peter Barker e502f353c1 Replay: handle df format changes - IMT vs IMU 2015-10-22 16:28:11 +11:00
Caio Marcelo de Oliveira Filho ef615a5da1 Replay: implement HAL::Callbacks
Also removes includes for each board since they are not necessary
anymore.
2015-10-21 09:16:09 +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
Andrew Tridgell 643178fbe3 Replay: handle EKF2 replay 2015-09-23 18:56:15 +10:00
Andrew Tridgell b71678b901 Replay: fixed build with NavEKF2 2015-09-23 11:57:18 +10:00
Randy Mackay 803ca92f73 Replay: remove INS start style 2015-09-21 17:06:53 +09:00
Andrew Tridgell da2ad49276 Replay: fix for changes to AP_RangeFinder API 2015-09-08 16:46:52 +10:00
Peter Barker 43adcd39ab Replay: DataFlash needs a version string 2015-09-03 15:20:20 +10:00
Gustavo Jose de Sousa 84b5555a1a Tools: 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:41 +10:00
Peter Barker dbbc5ed816 Replay: fix double-free in MsgHandler 2015-07-10 18:56:20 +10:00
Andrew Tridgell f2106f39aa Replay: save CHEK messages when not being generated 2015-07-09 10:20:45 +10:00
Andrew Tridgell 2eb204d0ca Replay: added --downsample option 2015-07-07 15:55:41 +10:00
Andrew Tridgell dd53f5a7a1 Replay: added --nottypes option 2015-07-07 15:14:05 +10:00
Lucas De Marchi 547dbb3906 Replay: use ARRAY_SIZE macro 2015-07-07 07:56:30 +10:00
Andrew Tridgell dee1bf3da3 Replay: show smaller parameter changes 2015-07-07 07:56:17 +10:00
Andrew Tridgell bdddfae57f Replay: don't write out duplicate FMT messages
this makes replay output the same as input for when input is a replay
log
2015-07-04 22:43:54 +10:00
Andrew Tridgell 93800fb3a1 Replay: automatically find message types, and improve rate detection 2015-07-04 15:14:14 +10:00
Andrew Tridgell b20318aaeb Replay: remap msgids on pass-through to avoid conflicts
if msg IDs have changed since the log was produced they need to be
remapped
2015-07-03 09:32:05 +10:00
Andrew Tridgell bd27fed241 Replay: fixed missing import 2015-07-02 17:14:42 +10:00
Andrew Tridgell ef36d74a1c Replay: added generation of -checked logs 2015-07-02 17:05:09 +10:00
Andrew Tridgell c74d39558c Replay: initial version of CheckLogs.py 2015-07-02 17:05:09 +10:00
Andrew Tridgell 4f9ccf727a Replay: cope with bad NSats field from old logs 2015-07-02 17:05:09 +10:00
Andrew Tridgell a5abb7c698 Replay: use tabs in replay_results.txt 2015-07-02 14:28:44 +10:00
Andrew Tridgell f79ae4b749 Replay: add to replay_results.txt when run with --check 2015-07-02 14:28:44 +10:00
Andrew Tridgell b93101b1bf Replay: reduced verbosity 2015-07-01 21:11:46 +10:00
Andrew Tridgell 2c0d6c0406 Replay: fixed yaw error calculation 2015-07-01 20:44:08 +10:00
Andrew Tridgell d07b93e661 Replay: fixed writing of CHEK messages 2015-07-01 20:44:08 +10:00
Peter Barker 8bbeedb158 Replay: flush dataflash log on floating point exception 2015-06-30 16:19:22 +10:00
Andrew Tridgell 2291a8994e Replay: fixed build 2015-06-29 15:59:53 +10:00
Peter Barker 2266f118e9 Replay: DataFlash frontend/backend split 2015-06-26 16:02:50 +10:00
Andrew Tridgell f2756ecb22 Replay: added checking of solution 2015-06-26 15:55:19 +10:00
Andrew Tridgell 9016a3d3db Replay: added --chek-generate option
adds CHEK messages based on current estimates
2015-06-26 15:55:18 +10:00
Peter Barker 54efa3d727 Replay: split off a ReplayVehicle class
Like "Copter copter" and "Plane plane": "ReplayVehicle replayvehicle"
2015-06-23 09:49:13 +10:00
Andrew Tridgell 9e36e2c562 Replay: fixed handling of dual-GPS HDop field 2015-06-18 09:28:59 +10:00
Andrew Tridgell 47834759e5 Replay: fixed build warnings 2015-06-17 12:46:55 +10:00
Andrew Tridgell 31f7525a61 Replay: added --no-imt flag 2015-06-17 12:46:55 +10:00
Andrew Tridgell c7cb980498 Replay: support IMT messages 2015-06-16 09:53:55 +10:00
Peter Barker 71bc48189e Replay: remove dangling declarations from LogReader.h
These seem to have been left in after MsgHandler was factored out
2015-06-14 17:25:08 +10:00
Peter Barker f996bf4307 Replay: move LR_MsgHandlers into their own files 2015-06-14 17:17:42 +10:00
Peter Barker 7eb588e9ff Replay: use a subclasss of DataFlashFileReader to determine log rate 2015-06-14 16:47:52 +10:00
Peter Barker d41b21cd19 Replay: split off a base class for reading dataflash logs 2015-06-14 16:47:52 +10:00
Peter Barker 0b5e645075 Replay: grab reference to timestamp rather than timestamp
PARM messages would not have been updating the clock correctly
Also, random stack corruption...
2015-06-14 16:34:01 +10:00
Peter Barker 125042e1db Replay: use GetOptLong for command line parsing 2015-06-10 10:14:15 +10:00
Peter Barker f4db241bf6 Replay: avoid dataflash buffer filling up on many pass-through messages 2015-06-09 21:52:46 +10:00
Peter Barker 5fb46b0e11 Replay: fix dataflash overflow on timestamp-poor (older) logfiles 2015-06-09 21:52:45 +10:00
Andrew Tridgell b1002eae3b Replay: fixed -A0 for "arm immediately" 2015-06-03 12:31:21 +10:00
Andrew Tridgell 26e55f078a Replay: converted to .cpp files 2015-06-01 16:15:08 +10:00
Andrew Tridgell b27d0a6525 Replay: handle replay on older logs
we now pass-thru all messages except those that are being generated by
replay. We also pass-thru the FMT headers for those messages
2015-05-28 13:30:38 +10:00
Andrew Tridgell 2007d2b6eb Replay: cope with FRAM messages
use them to trigger ahrs updates
2015-05-28 13:30:37 +10:00
Peter Barker 8eafc209a9 Replay: understand and use 64-bit timestamps in Replay 2015-05-27 11:54:17 +10:00
Andrew Tridgell dc1ff9a757 Replay: added in_list() method
neaten up code
2015-05-19 20:22:46 +10:00
Andrew Tridgell 34fe39f17d Replay: force COMPASS_ORIENT to 0
we use compass.setHIL() in body frame, or must use an orientation of 0
to give the right value
2015-05-19 20:22:46 +10:00
Peter Barker 91b761cfb0 Replay: merge MessageHandler_* into MsgHandler.h/MsgHandler.cpp
These were trivial classes; having lots of these files around made
it painful to work with.
2015-05-19 20:22:45 +10:00
Andrew Tridgell f08f0ca2f9 Replay: show time of AHRS health change 2015-05-19 15:21:22 +10:00
Andrew Tridgell ba930f8cf1 Replay: removed the timestamp rounding code
this makes things worse for plane replay
2015-05-19 13:18:02 +10:00
Andrew Tridgell 52f6332fa9 Replay: pass through some message types to output log
this gives mode information in output log
2015-05-18 10:08:27 +10:00
Andrew Tridgell 7177d5df7e Replay: removed attempt to interpolate IMU data
it seems to cause more harm than good
2015-05-18 09:51:14 +10:00
Andrew Tridgell 49146a2a88 Replay: call Log_Write_POS() 2015-05-15 14:28:15 +10:00
Andrew Tridgell 56f44266d8 Replay: fixed for new compass API 2015-05-15 14:25:44 +10:00
Andrew Tridgell a356ad1c79 Replay: added MAG2 message 2015-05-15 14:25:44 +10:00
Andrew Tridgell 9f05e54d90 Replay: added support for EV message for copter arming 2015-05-15 14:25:44 +10:00
Andrew Tridgell 4e3d18bee4 Replay: added ARM message to logs, and auto ARM/DISARM 2015-05-15 14:25:43 +10:00
Andrew Tridgell 64a55c908f Replay: fixed trailing nul and don't wait for EKF to init 2015-05-11 11:19:11 +10:00
Andrew Tridgell 460489e2dc Replay: fixed cast of AP_AHRS_DCM 2015-05-11 09:41:43 +10:00
Peter Barker 32beaea48c Replay: use column labels rather than IDs in Replay.pde 2015-05-10 08:33:32 +10:00
Peter Barker f3d1242d60 Replay: update Attitude on ATT rather than AHRS2 2015-05-09 20:54:07 +10:00
Andrew Tridgell 9e02ce44ae Tools: fix for HAL_SITL rename 2015-05-05 09:45:57 +10:00
Peter Barker e1be814853 Replay: correct case for Airspeed when parsing airspeed messages 2015-05-01 09:18:49 +10:00
Peter Barker 67ba043b65 Replay: fix replay for CTUN (type=0) messages 2015-05-01 09:18:11 +10:00
Peter Barker 2b05f6e2b1 Replay: correct vehicle detection from MSG messages 2015-05-01 09:17:29 +10:00
Peter Barker db833a6473 Replay: fix null-pointer dereference when fields not present 2015-04-30 20:01:49 +10:00
Peter Barker 56a8bf5460 Replay: use the message's name rather than number to determine which message handler to use for a message 2015-04-28 21:10:16 +10:00
Peter Barker 42351edfa6 Replay: use dataflash log format messages to extract message data instead of using structs
dataflash logs have been self-describing since 2013.  Replay now uses the descriptions supplied in the dataflash log to understand the format of any particular message.

This change should allow fields to be added to messages with no impact on Replay.
2015-04-28 21:10:15 +10:00
Randy Mackay 211bdb0bb6 Replay: include AP_RangeFinder.h 2015-04-24 15:49:09 +09:00
Randy Mackay 1f58cb9980 Replay: pass range finder into ahrs constructor 2015-04-24 11:27:27 +09:00
Andrew Tridgell 8f09ee077c Replay: try to cope better with millisecond timestamps in 400Hz copter logs 2015-04-20 15:12:51 +10:00
Andrew Tridgell ea10877113 Replay: fix handling of old IMU messages 2015-03-28 10:52:37 -07:00
Andrew Tridgell 95a1ab0cab Replay: fixed build with new AP_Compass API 2015-03-13 18:46:16 +11:00
Randy Mackay 774332ea02 Replay: fixup after inertial nav and baro glitch removal 2015-03-13 16:41:08 +09:00
Jonathan Challinger c2d60ed7a8 Replay: use hal.util soft_armed state 2015-02-11 20:57:27 +11:00
Andrew Tridgell 734cc61838 Replay: fixed build 2015-02-03 09:49:15 +11:00
Randy Mackay 18af7c1437 Replay: fix compile error for Serial Manager 2015-01-29 14:05:16 +11:00
Andrew Tridgell d239d8314a Replay: fixed replay for re-organised dataflash messages 2015-01-21 14:38:37 +09:00
Andrew Tridgell ad8480d5f7 Replay: keep airspeed msgs in log 2015-01-20 09:11:07 +11:00
Andrew Tridgell 231b44fc83 Replay: fixed baro.setHIL call 2015-01-09 11:50:57 +11:00
Andrew Tridgell 488714ccba Replay: updates for new AP_Baro API 2015-01-09 11:50:55 +11:00
Andrew Tridgell 406f11423e Replay: enable array bounds checking in Replay 2015-01-09 11:05:21 +11:00
Andrew Tridgell 0d8faab48f Replay: fixed build with AHRS change 2015-01-03 14:16:34 +11:00
Andrew Tridgell 584fa9b4bf Replay: fixed format string for EKF4 2015-01-03 14:07:25 +11:00
Andrew Tridgell 9b5a2ea1d0 Replay: fixed build 2015-01-01 09:37:17 +11:00
priseborough 9c8406998b Replay: Don't log EKF optical flow data if not required 2014-12-31 13:16:10 +09:00
Andrew Tridgell 068b5a54c9 Replay: prevent float exception in log writing 2014-12-09 12:45:58 +11:00
Andrew Tridgell fa95ea91fd Replay: generate dataflash logs in Replay
this allows the calculated EKF flight path to be compared with
different parameters by using replay
2014-12-08 11:25:22 +11:00
Andrew Tridgell a3422325c7 Replay: cope with new airspeed log msg 2014-11-22 18:27:51 +11:00
Andrew Tridgell c52578426e Replay: cope with up to 3 IMUs 2014-11-16 12:31:05 +11:00
Andrew Tridgell 4e87056631 Replay: fixed build with AP_NavEKF API change 2014-10-31 10:47:57 +11:00
Jonathan Challinger 210f4397da Replay: clean up unused variables deltaGyroBias and divergeRate 2014-10-30 18:17:37 +11:00
priseborough 296dfad600 Replay : Remove unused numerical divergence metric 2014-10-30 18:17:37 +11:00
Andrew Tridgell 485397c4cb Replay: cope with old copter attitude and baro msgs 2014-10-25 11:20:26 +11:00
Andrew Tridgell d809ce51a7 Replay: convert to new AP_InertialSensor API 2014-10-24 12:10:38 +11:00
Andrew Tridgell baad65bafc Replay: update for new copter ATTITUDE message 2014-10-19 20:12:12 +11:00
Andrew Tridgell fce20b24c2 Replay: fixed printf format 2014-10-19 19:41:57 +11:00
Andrew Tridgell 6e0e56a6ef Replay: fixed loading of users parameters and parameter override
use compass.set_offsets() to avoid trying to write to storage
2014-10-15 09:17:22 +11:00
Andrew Tridgell ea889e2e00 Replay: fixed build 2014-08-13 18:46:44 +10:00
Andrew Tridgell 35b0692fd5 Replay: fixed build 2014-08-10 21:25:16 +10:00
Andrew Tridgell b89988b2df Replay: fixed build 2014-08-06 22:27:50 +10:00
Randy Mackay 61506c52dc Replay: fix example sketch 2014-07-29 15:26:05 +09:00
Andrew Tridgell 2ddfaa60b9 Replay: fixed build 2014-07-25 17:15:29 +10:00
Andrew Tridgell 4fad9b0a89 Replay: fixed build of replay tool
changes to compass API
2014-07-12 11:08:04 +10:00
priseborough deb16ac5bb Replay: Add EKF fault status logging message to EKF4 2014-05-15 21:14:21 +10:00
Andrew Tridgell 47926dc6ea Replay: fixed for changes to AP_Compass HIL API 2014-05-15 21:14:21 +10:00
Randy Mackay c3d6ed1e3e Replay: add constraint on EKF4 data packet values 2014-05-01 16:54:31 +09:00
Andrew Tridgell 2acddb9696 Replay: fixed ahrs.set_fly_forward() in Replay for copter 2014-04-27 15:37:02 +10:00
Andrew Tridgell 250deaa32f Replay: added vehicle class detection 2014-04-21 18:13:13 +10:00
Andrew Tridgell 7ca08294e7 Replay: added floating point exception checking
allows NaN errors to be caught in gdb
2014-04-21 15:37:07 +10:00
Andrew Tridgell 2295632660 Replay: added -A option to set arming time 2014-04-21 13:00:59 +10:00
Andrew Tridgell 623cbc3316 Replay: cope with too many log format msgs 2014-04-20 21:45:31 +10:00
Andrew Tridgell eaf746b7fd Replay: fixed velocity vector 2014-04-02 19:08:45 +11:00
Andrew Tridgell ec04eba61c Replay: handle multiple GPS sensors 2014-04-02 07:55:28 +11:00
priseborough 4f2a390dfa Replay : Incorporate EKF4 flash logging updates 2014-04-01 21:27:09 +11:00
Andrew Tridgell 60ad429d13 Replay: convert to new GPS API 2014-04-01 06:38:24 +11:00
Andrew Tridgell 2008f737cf Replay: fixed build with AP_Mission 2014-03-19 21:02:39 +11:00
Andrew Tridgell 330728cd80 Replay: fixed compass readings on rover 2014-03-06 21:40:08 +11:00
Andrew Tridgell 5dfd9b074e Replay: fixed for rover logs 2014-03-06 17:51:49 +11:00
Andrew Tridgell f2c79ad639 Replay: fixed -g option 2014-03-02 08:09:13 +11:00
Andrew Tridgell ecdcf70ef5 Replay: added accel and gyro mask options 2014-03-02 08:00:51 +11:00
Andrew Tridgell 3218ac8e7a Replay: added parameter handling
use parameters from log, and allow override
2014-03-01 15:15:46 +11:00
Andrew Tridgell 853271dd37 Replay: moved replay tool into Tools/Replay 2014-03-01 14:30:55 +11:00