Commit Graph

233 Commits

Author SHA1 Message Date
Gustavo Jose de Sousa f426e2c681 Replay: build: use separate library
There are checks for APM_BUILD_Replay in the source code, so Replay tools needs
a separate static library.
2016-06-30 12:55:18 -03:00
Paul Riseborough 094dd9d769 Replay: Fix bug preventing use of IMT data during replay 2016-06-28 14:20:13 +10:00
Peter Barker eefdc32f51 Replay: print message when gap perceived in log 2016-06-07 14:00:14 +10:00
Peter Barker f6c7a73170 Replay: command line option to disable FP exceptions 2016-06-07 12:45:38 +10:00
Andrew Tridgell 1e44251d35 Replay: include a minimal set of FMT messages at start of log 2016-05-26 10:10:27 +10:00
Andrew Tridgell 366d95f45e Replay: fixed FMT messages in replay output 2016-05-26 09:40:21 +10:00
Gustavo Jose de Sousa 844222870c waf: boards: bind get_board() to configure and build contexts
A convenience, since we don't expect the board to change for a given
configuration.
2016-05-25 17:47:00 -03:00
Andrew Tridgell 736c162d21 Replay: added --param-file option 2016-05-25 20:46:18 +10:00
Andrew Tridgell 600c23f3bf Replay: use SCHED_LOOP_RATE for loop rate if available 2016-05-25 10:45:46 +10:00
Paul Riseborough b1e9207c0f Replay: extend ekf fault status reporting coverage 2016-05-21 15:13:51 +10:00
Andrew Tridgell 4116f80901 Replay: added --no-params option 2016-05-16 17:22:11 +10:00
Lucas De Marchi cb0ffc0e07 Replay: fix build error due to missing noreturn
Add noreturn attribute to field_not_found(). This function always call
abort() if the field was not found. The compiler may not know about it
and may think some variables are used uninitialized:

../../Tools/Replay/LR_MsgHandler.cpp: In member function ‘void LR_MsgHandler_GPA_Base::update_from_msg_gpa(uint8_t, uint8_t*)’:
../../Tools/Replay/LR_MsgHandler.cpp:212:24: error: ‘sacc’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
     gps.setHIL_Accuracy(gps_offset, vdop*0.01f, hacc*0.01f, vacc*0.01f, sacc*0.01f, have_vertical_velocity, sample_ms);
                        ^

Instead of just initializing the variable (which is pointless in this case),
teach the compiler that this function never returns so require_field() works
properly.
2016-05-10 16:15:41 -03:00
dgrat 76362caee0 AP_Math: Replace wrap_* functions with template versions 2016-05-10 11:41:26 -03:00
Andrew Tridgell 84d45cce40 Replay: fixed log rate detection 2016-05-10 15:40:48 +10:00
Andrew Tridgell 276f5dd3f1 Replay: use a larger LOG_FILE_BUFSIZE for Replay 2016-05-09 13:58:37 +10:00
Andrew Tridgell 248ce2e0e6 Replay: enable LOG_REPLAY in replay 2016-05-09 12:48:30 +10:00
Andrew Tridgell dbe9091d58 Replay: set last sample time for GPS 2016-05-07 18:27:23 +10:00
Andrew Tridgell 7abaa75653 Replay: added --logmatch option
match logging rate to input log
2016-05-07 18:27:22 +10:00
Andrew Tridgell c2aeb058cd Replay: mark GPA as generated 2016-05-07 18:27:22 +10:00
Andrew Tridgell 468f020b51 Replay: cope with GPS ground couse in degrees 2016-05-07 18:27:21 +10:00
Andrew Tridgell 2bcd3c48f0 Replay: use baro last update time if available 2016-05-07 18:27:21 +10:00
Andrew Tridgell 0571f86c17 Replay: handle float ground speed in GPS 2016-05-07 18:27:21 +10:00
Andrew Tridgell d116071054 Replay: use new setHIL API for baro 2016-05-07 18:27:20 +10:00
Andrew Tridgell 827551c99f Replay: added replay of GPS speed accuracy 2016-05-07 18:27:20 +10:00
Andrew Tridgell 772acf056b Replay: fixed overriding of parameters
bug was later PARM messages in log
2016-05-07 18:27:19 +10:00
Andrew Tridgell 295c65277d Replay: restore exact timestamp in HIL 2016-05-07 18:27:19 +10:00
Andrew Tridgell 315d3854db Replay: improved log rate detection 2016-05-07 18:27:19 +10:00
Andrew Tridgell b31e896ef3 Replay: closer to goal of bit-accurate replay 2016-05-07 18:27:18 +10:00
Andrew Tridgell 640a04a1ee Replay: fixed to handle IMT copter logs 2016-05-07 18:27:17 +10:00
Andrew Tridgell 909a46a33b Replay: pass delta angle time if available 2016-04-26 15:50:59 +10:00
Andrew Tridgell f367180f47 Replay: support 2 IMU EKF2 2016-04-26 14:39:44 +10:00
Peter Barker c869516a0b Replay: abort if field type not known; understand double 2016-04-26 14:20:11 +10:00
Gustavo Jose de Sousa b251d14778 waf: ardupilotwaf: allow multiple program groups for program
The program_dir defaults to the first group's name. That feature will be useful
for "copter" build command, which will build all frame types.
2016-03-26 15:43:08 -03:00
Lucas De Marchi 36336e17b3 Tools: replace header guard with pragma once 2016-03-16 18:40:45 +11:00
Gustavo Jose de Sousa 7ba3df8c80 Tools: waf: build Replay only for linux boards
Other boards (like PX4 ones) aren't supported yet.
2016-03-14 11:54:31 -03:00
Gustavo Jose de Sousa 5699bf04d0 waf: rename parameter blddestdir to program_group
It's a good idea to consolidate the idea that all programs belong to a group
that has it's own directory.
2016-02-01 14:08:32 -02:00
Gustavo Jose de Sousa a2d2661765 waf: use methods from bld instead of ardupilotwaf for the remaining 2016-01-22 20:10:29 -02:00
Gustavo Jose de Sousa a35c0d48b0 waf: ardupilotwaf: rename program to ap_program
Make the rename so that there is no name clashes when defining it as a taskgen
method.
2016-01-22 20:10:28 -02:00
Gustavo Jose de Sousa ad0f2080c6 waf: reorganize destination of binaries in Tools
It makes more sense for Hello to be an example and for CPUInfo and Replay to be
placed inside a `build/<board>/tools/` directory.
2016-01-15 16:46:41 -02:00
bugobliterator 065c67af57 Replay: fix replay 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 26ced77ebc Replay: fixes for AP_Scheduler change 2015-12-27 14:57:28 +09:00
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