Commit Graph

650 Commits

Author SHA1 Message Date
Randy Mackay b82098ca44 AP_GPS: fix blended ground course
Thanks to jyl58 for finding this
2017-03-13 11:21:47 +09:00
Randy Mackay 3e628f30ff AP_GPS: fix blending when accuracy reported as 1mm
Thanks to Michael DuBreuil for suggesting the fix
2017-03-13 11:31:51 +11:00
Randy Mackay 2002827de3 AP_GPS: rename pre-arm blending health check 2017-03-13 11:31:51 +11:00
Randy Mackay e9c881c668 AP_GPS: stop blending if too many blending failures 2017-03-13 11:31:51 +11:00
Randy Mackay b7ad8da9b9 AP_GPS: minor bracketing fix
This silences a warning from eclipse
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay 5de64273ec AP_GPS: more efficient initialisation of blending arrays 2017-03-13 11:31:51 +11:00
Randy Mackay 81b20e971b AP_GPS_UBLOX: use get_rate_ms accessor 2017-03-13 11:31:51 +11:00
Randy Mackay ef1399a52f AP_GPS: fixups after peer review
This includes these changes:
RATE_MS, RATE_MS2 parameter description Range minimum reduced to 50
_blend_health_counter is reset to 0 if blending is disabled
GPS_MAX_RECEIVERS is replaced with GPS_BLENDED_INSTANCE where appropriate
simplify all_consistent functions check of number of receivers
calc_blended_weights fix for initial check of how many receivers we have
remove unnecessary setting of GPS last time when blending fails
remove RebootRequired from AUTO_SWITCH param description
2017-03-13 11:31:51 +11:00
Randy Mackay 729ce34ce3 AP_GPS: add all_consistent and blend health for use as pre-arm check 2017-03-13 11:31:51 +11:00
Randy Mackay 72dfe1127f AP_GPS: protect parameters from being accessed externally
backends become friends so they can continue to access parameters held in frontend
get_rate_ms made private because only used by frontend
Also moved static arrays higher in cpp file
2017-03-13 11:31:51 +11:00
Randy Mackay 3172657f26 AP_GPS: move constructor and complex accessors to cpp file
These functions are slightly long and make the .h file hard to read.  Also saves a small amount of flash space.
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay 0066022a7f AP_GPS: check for valid instance in highest_supported_status
highest_supported_status will always return FIX_3D for blended or invalid instance
setHIL_Accuracy checks instance is 2 or less
send_mavlink_gps2_raw uses num_instances variable directly to avoid confusion with num_sensors
2017-03-13 11:31:51 +11:00
Randy Mackay e764f0d5d0 AP_GPS: sanity check update rate
Also minor spelling and parameter documentation fix
2017-03-13 11:31:51 +11:00
priseborough 6b26bdd454 AP_GPS: Add option to blend multiple GPS receivers
Fix pre-existing bug in hard switch logic
Update GPS_AUTO_SWITCH description
protect against zero accuracy estimates returned by GPS drivers
2017-03-13 11:31:51 +11:00
Randy Mackay cd379b0e86 AP_GPS: move time_epoch calcs into proper file
The frontend implementation was in the backend file
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay a79474dcbc AP_GPS: minor comment fix
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay 201504dbae AP_GPS: remove unused get_antenna_offsets()
callers always specify an instance
2017-03-13 11:31:51 +11:00
Randy Mackay 2d0258b6a2 AP_GPS: remove unused highest_supported_status(void) 2017-03-13 11:31:51 +11:00
Randy Mackay ac86c7999b AP_GPS_MAV: set have_accuracy as boolean 2017-03-13 11:31:51 +11:00
Michael Oborne e4ff445ea7 AP_GPS_GSOF-NOVA: fix last_gps_time_ms 2017-03-09 10:41:48 -08:00
Michael du Breuil 398ff823c0 AP_GPS: Always consider ublox as configured in sitl 2017-03-07 12:43:30 +11:00
Michael du Breuil 44bcd74a57 AP_GPS: Remove dead SBF code
CID 125035
2017-03-06 15:24:22 +00:00
Michael du Breuil 7b483a1460 AP_GPS: Ublox, always quickly set the rates until we have fetched the version 2017-02-23 07:33:58 +11:00
Andrew Tridgell 3ce7e4b322 AP_GPS: fixed fake uBlox with PVT message support 2017-02-21 06:09:33 +11:00
Lucas De Marchi 9f09442548 AP_GPS: rename UNIX_OFFSET
To keep consistency with other constants and make clear the unit.
2017-02-11 01:34:09 -08:00
murata 30151c8253 Global: Define MSEC_PER_SEC, MSEC_PER_WEEK, SEC_PER_WEEK and UNIX_OFFSET. 2017-02-11 01:34:09 -08:00
Lucas De Marchi 747f15b514 AP_GPS: add casts to consider literals as doubles
Since we pass -fsingle-precision-constant to the compiler, add casts to
make literals real doubles.
2017-02-06 09:27:22 -08:00
murata b77941c4f2 AP_GPS: Delete unnecessary code. 2017-02-03 15:11:27 +09:00
Andrew Tridgell c0cc2faefd AP_GPS: disable esoteric GPS types on FMUv2 2017-01-29 16:31:06 +11:00
Francisco Ferreira 7ea0baefb1
AP_GPS: re-fix SBP fix status 2017-01-28 17:43:58 +00:00
Francisco Ferreira 512bd08326
AP_GPS: fix SBP supported status 2017-01-28 17:29:48 +00:00
priseborough 6d53ab7b76 AP_GPS: minor comment change 2017-01-27 16:57:42 +09:00
priseborough 4a490d522e AP_GPS: use standard unit descriptor for milliseconds 2017-01-27 16:57:42 +09:00
priseborough be0096e812 AP_GPS: Allow the user to specify the GPS time delay
If the user sets a non-zero value of the delay it will be used in preference over the default value for that GPS type.
If the GPS type is unknown and the parameter is set to zero, then a default delay of 1 sample period will be used (eg 200ms for 5Hz).
2017-01-27 16:57:42 +09:00
Andrew Tridgell bdc0630ccf AP_GPS: added all_configured() function
used for EKF to tell if gps_lag is valid
2017-01-27 16:57:42 +09:00
Andrew Tridgell 5d18f3a453 AP_GPS: added backend specific get_lag() function
the ublox7 and 8 seem to produce lower lag, around 120ms. Separately
we should also look at running these at 10Hz and see if that helps.
2017-01-27 16:57:42 +09:00
murata 3200f24106 AP_GPS: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Francisco Ferreira 1fc0dbe0bd
AP_GPS: fix GSOF highest supported status 2017-01-26 00:04:32 +00:00
Michael Oborne 8e9f382240 AP_GPS_GSOF: update for new GPS_FIX's 2017-01-26 00:04:19 +00:00
Michael du Breuil 0cf41c9288 AP_GPS: Force ublox baud rate if we are allowed to config the GPS 2017-01-26 07:48:22 +09:00
Michael du Breuil 855d91145a AP_GPS: ublox - fix incorrect step ordering 2017-01-25 03:44:57 +00:00
Michael du Breuil 1c1e6e9398 AP_GPS: Support more fix types 2017-01-25 03:44:42 +00:00
Michael Oborne d05b0d5885 AP_GPS_UBLOX: add pvt message support 2017-01-25 03:34:26 +00:00
Francisco Ferreira d472fbde0c
AP_GPS: fix PX4 GPS driver leap seconds 2017-01-21 21:59:36 +00:00
Michael du Breuil c696137a42 AP_GPS: Update the number of leapseconds 2017-01-18 18:07:26 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas b7f32e216d AP_GPS: update parameter descriptions 2017-01-09 13:32:28 +09:00
Dr.-Ing. Amilcar Do Carmo Lucas 9aaeb6fe1a AP_GPS: Add missing GPS Types 2017-01-06 21:24:42 +00:00
Dr.-Ing. Amilcar Do Carmo Lucas 8419045aea Spell in comments 2017-01-06 10:57:39 -08:00
murata fd153f2861 AP_GPS: Change search method of GPS type to switch statement.
AP_GPS: Correct the tab code to white space.
2016-12-21 10:31:43 +09:00
priseborough 453ced4a38 AP_GPS: remove unused EKF1 include 2016-12-19 08:07:11 +11:00
Randy Mackay b296bc1d00 GPS: MAV driver fix for sanity checks of cog, sat count 2016-12-08 15:52:26 +09:00
Randy Mackay 8118222946 GPS: MAV driver fix for GPS_INPUT altitude 2016-12-08 15:52:26 +09:00
Randy Mackay 9e62f12dd7 GPS: MAV driver gets support for HIL_GPS message 2016-12-08 15:52:26 +09:00
Michael du Breuil d97861d685 AP_GPS: Ublox: Skip SBAS request if we don't want to alter it 2016-11-21 14:15:19 +09:00
Michael Oborne c62050dc1b AP_GPS_SBF: fix accuracy reported by driver 2016-11-12 16:42:35 +09:00
Holger Steinhaus 5b66062f85 AP_GPS_PX4: unsubscribe on driver destruction. 2016-11-07 08:00:57 -03: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
Michael Oborne c5f8d8a695 AP_GPS_SBF: change reported altitude from geoid to MSL 2016-11-01 13:06:59 +09:00
Randy Mackay aeb1de08f5 AP_GPS: fix MAV compile error 2016-10-29 16:45:00 +09:00
Randy Mackay 9290ee65cc AP_GPS: MAV driver uses existing baud rates
GPS_INPUT messages can arrive through any mavlink serial port so we shouldn't be modifying any port's baud rates.
2016-10-29 14:33:44 +09:00
Peter Barker 7b75a4ec09 AP_GPS: add missing parameter metadata 2016-10-27 09:15:03 -07:00
Andrew Tridgell af332cb336 AP_GPS: use const reference 2016-10-27 15:05:58 +11:00
priseborough 1dec6dd9b0 AP_GPS: Update parameter documentation
Add brief description of body frame conventions.
2016-10-27 14:54:45 +11:00
priseborough b51c9dea6c AP_GPS: Add parameters defining antenna offset in body frame 2016-10-27 14:54:41 +11:00
murata 762a66c9e5 AP_GPS_SBF: Adjust the initial value of HDOP 2016-10-26 09:54:59 +11: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
Peter Barker 6e72c899d1 AP_GPS: AP_GPS_GSOF: remove unused variable 2016-10-24 08:57:56 -02:00
Peter Barker e17a71c6cc AP_GPS: AP_GPS_NOVA: remove unused variables 2016-10-24 08:57:55 -02:00
Randy Mackay e6e6e36da7 AP_GPS_MAV: fix hdop conversion 2016-10-18 20:24:55 +09: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
Andrew Tridgell 9caf44b494 AP_GPS: update drivers for changed inject_data() API
need 16 bit length
2016-10-11 11:00:35 +11:00
Andrew Tridgell 500df1edf2 AP_GPS: support GPS_RTCM_DATA fragmented MAVLink message
support re-assembly of RTCM data packets
2016-10-11 11:00:35 +11:00
Michael du Breuil cf5e79f80e AP_GPS: ublox support user controlled rate updates
Also corrects accepting bad nav rates as configured, and fixes a incorrect
index as to which GPS is being updated
2016-10-11 10:44:51 +11:00
Michael du Breuil 86c2b1d84a AP_GPS: u-blox Remove 5Hz warning
The warnings test case is better covered by the rest of the driver
while it is performing the normal settings audit.
2016-10-11 10:44:51 +11:00
Michael du Breuil 3e3f539a6a AP_GPS: Raise target baud of u-blox devices
A knockon effect is that we need less config strings as raw logging
on u-blox will use the same baud rates
2016-10-11 10:44:50 +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
Michael du Breuil 9c4b3ec1e1 AP_GPS: Fix incorrect incrementing of last_baud rate
This is a revert of 7c3b8dceb which tried to start at index 0 of the
array of baudrates, however because of the way last_baud is used
this lead to a GPS always being reported as being 1 index off which
lead to users getting reports of baud rates that their GPS wasn't
configured for

Also renames last_baud to be current_baud as that is how it's
actuallly used and should reduce future confusion

And fixed some tabs/vs space issues around where the last_baud rate
was incremented.
2016-09-25 08:50:47 -07:00
Michael Oborne 11c376588d AP_GPS_NOVA: support tersus/novatel/comnav gps 2016-09-20 10:53:49 +10:00
Matthew Brener 06388b0417 Global: Fix typos 2016-09-17 00:36:36 -03:00
Randy Mackay 38b3d3ff3a AP_GPS_MAV: initialise location while handling_msg
This reduces a covarity warning but it likely not really an issue because we always initialise newly allocated memory to zero anyway
2016-09-01 12:01:14 +09:00
Lee Hicks 51e8d8a294 AP_GPS: Don't send config blob to GPS unless AUTO_CONFIG=1
All GPS types will recieve startup up blob config. For
some recievers this will cause them to hang. This commit
only allows sending of blobs if AUTO_CONFIG=1. Fixes #2622
2016-08-16 10:56:37 +10:00
Lee Hicks 7c3b8dceb9 AP_GPS: Fixed GPS serial speeds starting at 1 instead of 0
The counting of this will increment the counter before
selecting the baud speed, skipping the first baud rate.
2016-08-16 10:56:36 +10:00
Lee Hicks 3dd4f30460 AP_GPS: Adding 19200 as serial speed for GPS
APM supports baud speeds of 19200, but GPS baud rates
don't support it. This commit adds it to follow APM supported
baud rates.
2016-08-16 10:56:36 +10:00
Holger Steinhaus cc4fafc3e4 AP_GPS_PX4: fixed GPS epoch calculations 2016-08-02 11:20:48 +10:00
Randy Mackay 6e224158f1 AP_GPS_MAV: use GPS_INPUT_IGNORE_FLAGS 2016-07-12 15:44:46 +09:00
Randy Mackay e34aa0bc72 AP_GPS_MAV: minor formatting fixes
No functional change
2016-07-12 15:44:19 +09:00
Allan Matthew 4249f7dbe6 AP_GPS: Add GPS_MAV type and accept GPS_INPUT message 2016-07-12 15:34:27 +09:00
Gustavo Jose de Sousa 174cefa8a5 AP_GPS: use ARRAY_SUBSCRIPT instead of bytes field
That fixed compilation issues and seems more semantically correct. Using array
of length 0 fails compilation because of -Werror=array-bounds in GCC 6.1.
2016-06-23 21:02:05 -03:00
Andrew Tridgell 2239fd6a6e AP_GPS: fixed hexdigit in NMEA detector
thanks to adorus for spotting this! See issue#4255
2016-06-06 07:36:31 +10:00
Andrew Tridgell af116d238f AP_GPS: use zero length flexible arrays
this works with gcc-6.1 and also works with asan. Hopefully it will
make coverity happy too.
2016-05-25 19:55:49 +10:00
Lucas De Marchi 035937ea7e AP_GPS: add some safety checks to _parse_decimal_100() 2016-05-20 10:06:45 -03:00
Lucas De Marchi 994b2fc966 AP_GPS: add unit test for _parse_decimal_100() 2016-05-20 10:06:44 -03:00
Lucas De Marchi fc6dd97e61 AP_GPS: make _parse_decimal_100() a static function
This allows to easily write tests for it as opposed to having to
construct the entire object.
2016-05-20 10:06:44 -03:00
Bert Regelink 7379d120e1 AP_GPS: fix _parse_decimal_100() with negative numbers
_parse_decimal_100() did not parse the fractional part for negative
numbers. Furthermore, use the third decimal (when present) for proper
rounding.
2016-05-20 10:06:44 -03:00
Lucas De Marchi 39bd196481 AP_GPS: do not use flexible array in union
We actually don't want a flexible array in this union, but rather a way
to access it byte by byte. This fixes the build for gcc >= 6

In file included from ../../libraries/AP_GPS/AP_GPS.cpp:24:0:
../../libraries/AP_GPS/AP_GPS_ERB.h:93:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_ERB.cpp:22:0:
../../libraries/AP_GPS/AP_GPS_ERB.h:93:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_MTK.cpp:25:0:
../../libraries/AP_GPS/AP_GPS_MTK.h:75:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_MTK19.cpp:26:0:
../../libraries/AP_GPS/AP_GPS_MTK.h:75:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_SIRF.cpp:22:0:
../../libraries/AP_GPS/AP_GPS_SIRF.h:101:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_UBLOX.cpp:23:0:
../../libraries/AP_GPS/AP_GPS_UBLOX.h:387:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.
2016-05-16 13:50:39 -03:00
Ricardo de Almeida Gonzaga 4047fb63fc AP_GPS: Fix typos 2016-05-13 19:20:06 -03:00
dgrat 41661f815f AP_Math: Replace the pythagorous* functions with a variadic template
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
2016-05-10 11:41:26 -03:00
Andrew Tridgell 5ddb872b79 AP_GPS: allow Replay to set last sample time 2016-05-07 18:27:23 +10:00
Andrew Tridgell 428923b4b1 AP_GPS: use 3D velocity for uBlox
this makes uBlox use the 3D velocity for ground course and speed,
ensuring we use a consistent value everywhere (so same vector in EKF
as in navigation)
2016-05-07 18:27:23 +10:00
Andrew Tridgell d24bbcd1ff AP_GPS: convert vdop to cm 2016-05-07 18:27:22 +10:00