Commit Graph

213 Commits

Author SHA1 Message Date
Jonathan Challinger 2293070a5b AP_GPS: Add uBlox accuracy metrics interface and logging 2014-11-06 07:38:41 +11:00
Jonathan Challinger 6848897999 AP_GPS: Add agcCnt to UBX1 message 2014-10-29 08:18:04 +11:00
Andrew Tridgell 15470bd81b AP_GPS: added GPS_MIN_ELEV parameter
allows setting of satellite elevation mask in degrees
2014-09-04 14:46:10 +10:00
Andrew Tridgell 840a4dee1e AP_GPS: added GPS_SBAS_MODE parameter
allows SBAS to be enabled/disabled
2014-09-04 14:46:10 +10:00
Andrew Tridgell 60e501d5ab AP_GPS: moved UBX log headers to DataFlash
headers were not always being written
2014-08-19 10:08:15 +10:00
Jonathan Challinger 0bb7b8e938 AP_GPS: Fix bug that causes permanent lag if we miss a message 2014-04-29 15:35:46 +10:00
Andrew Tridgell b0fd94f18e AP_GPS: initialise a variable in uBlox driver 2014-04-23 18:15:53 +10:00
Andrew Tridgell 5a7afbf2cd AP_GPS: prevent writing GPS log headings multiple times 2014-04-20 21:44:14 +10:00
Andrew Tridgell 21c205a57e AP_GPS: cope with different MON-HW message size in u-Blox Neo7 2014-04-03 10:55:05 +11:00
Andrew Tridgell 8779ffe088 AP_GPS: flush pending config strings when uBlox starts 2014-04-01 06:38:25 +11:00
Andrew Tridgell 368daf89f1 AP_GPS: new GPS API
This is a complete rewrite of the GPS driver structure, with a static
main driver and separate backend drivers. This will allow proper
support for multiple GPSes, and will allow parameters to be set on the
GPS object
2014-04-01 06:38:23 +11:00
Andrew Tridgell 2dd92832dc AP_GPS: support multiple AP_GPS_Auto drivers
move all static variables into a dynamically allocated structure in
the AUTO driver which gets freed when we have found a GPS type
2014-04-01 06:38:23 +11:00
Andrew Tridgell 5630bb1ef6 AP_GPS: added detailed hardware status logging for uBlox
this gives us noise, jamming and RF information from the uBlox
protocol. This will hopefully allow a more detailed investigation of
antenna choices and RF interference
2014-03-24 12:02:37 +11:00
Andrew Tridgell ff73773de4 AP_GPS: try harder to get 5Hz updates from a uBlox
check for getting at least one 5Hz update every 15s
2013-11-05 15:18:25 +11:00
Andrew Tridgell 744819cec8 AP_GPS: added fake time to fake GPS lock 2013-10-24 14:22:48 +11:00
Andrew Tridgell 6f5ac1d553 AP_GPS: added support for GPS time in week/millisec
also adds time_epoch_usec() for MAVLink SYSTEM_TIME
2013-10-24 14:22:47 +11:00
Andrew Tridgell 25d3e5b7e9 AP_GPS: changed fake GPS fix to have a latitude/longitude
Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-10-11 16:06:35 +11:00
Andrew Tridgell 7a9ed0a5a1 AP_GPS: fixed warning 2013-10-03 12:21:08 +10:00
Andrew Tridgell 5489097476 AP_GPS: update the UBLOX rates async from the start
this saves a bit of startup time
2013-10-03 12:21:07 +10:00
Andrew Tridgell cee8a017ab AP_GPS: added UBLOX_FAKE_3DLOCK debugging option
useful when unable to get 3D lock
2013-10-03 12:21:07 +10:00
Andrew Tridgell 34f7f88190 AP_GPS: check for corret GPS solution rates in flight and fix
if the GPS is giving us data at less than 300ms intervals then re-send
the configuration messages to try to kick it into the right rates

Pair-Programmed-With: Randy Mackay <rmackay9@yahoo.com>
2013-10-03 12:21:07 +10:00
Andrew Tridgell 5484b97419 AP_GPS: reset _fix_count to 0 on nav settings update
this makes it run every 20s exactly
2013-09-04 13:18:00 +10:00
Andrew Tridgell 879d44f930 AP_GPS: use the mask bits to only set dynamic model
this ensures we don't try to change any other CFG_NAV5 settings
2013-09-04 13:17:20 +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 7dbb898264 AP_GPS: switch fields to add units suffix
altitude -> altitude_cm
ground_speed -> ground_speed_cm
ground_course -> ground_course_cd

this helps prevent unit mixups
2013-07-10 14:04:22 +10:00
Andrew Tridgell edfebc1f29 AP_GPS: fixed indent-tabs-mode 2013-05-30 09:52:21 +10:00
Andrew Tridgell b3ec5187f2 AP_GPS: fixed uninitialied variable bugs found with valgrind 2013-04-17 23:02:13 +10:00
Andrew Tridgell a5c3051929 AP_GPS: fixed initialisation error in uBlox driver
found with valgrind
2013-04-12 14:25:46 +10:00
Randy Mackay 93f7e61b66 UBLOX GPS: fix MSG_SOL typo
"status" was used instead of "solution"
2013-03-27 11:42:05 +09:00
Randy Mackay 27309a553f GPS: fixes after review
Ensure 3D fix before returning velocity_down
UBLOX: restore check of fix_status as part of determining 2D or 3D fix
SIRF: add missing brackets on fix type check
2013-03-27 11:41:54 +09:00
Randy Mackay d7454bb09e GPS: add 2D fix type 2013-03-27 11:41:39 +09:00
Andrew Tridgell 3f6eb87f23 AP_GPS: fixed uBlox Debug() macro 2013-03-20 15:42:07 +11:00
Andrew Tridgell 252d11ccfa AP_GPS: initialise _step to zero in all drivers
new() does not zero-fill memory
2013-01-12 16:04:23 +11:00
Andrew Tridgell f93a7d50eb AP_GPS: fixed debug code 2013-01-07 11:06:53 +11:00
Andrew Tridgell f7e5f88199 AP_GPS: make UBLOX driver a bit more robust 2013-01-05 20:39:31 +11:00
Andrew Tridgell 18db7b2efd GPS: move _port setting to init()
this is needed to avoid constructor ordering dependencies
2012-12-20 14:52:32 +11:00
Pat Hickey 9ed023aeb4 AP_GPS: Builds under AP_HAL. Not tested. 2012-12-20 14:51:25 +11:00
Andrew Tridgell 984b1086cb AP_GPS_UBLOX: ask for nav settings every 20 seconds
this ensures we don't run with the wrong nav settings on a uBlox if
we get a bad checksum on the initial nav settings message
2012-11-05 14:58:40 +11:00
Andrew Tridgell 59b44816ec GPS: replaced the GPS auto-detect mechanism
the old mechanism wasted most of the input bytes, and chewed a lot of
CPU, making it impractical to do GPS detection for a GPS attached
after startup

The new code is async, and detects a GPS by looking for a fully formed
packet with the right checksum for each GPS type
2012-09-17 14:45:47 +10:00
uncrustify 6c885df832 uncrustify libraries/AP_GPS/AP_GPS_UBLOX.cpp 2012-08-21 19:19:52 -07:00
rmackay9 8a29f47ce0 AP_GPS: replaced "int" with "int16_t" and "long" with "int32_t" 2012-08-18 16:35:38 +09:00
Andrew Tridgell 2d47bd0386 GPS: support getting raw velocity values from a UBlox
this may give better velocity numbers than the value from COG
2012-08-15 20:06:35 +10:00
Andrew Tridgell 819b6459b2 GPS-UBlox: removed duplicate config messages
these were left over from debugging
2012-07-19 15:23:15 +10:00
Andrew Tridgell 70f18289c5 GPS: fixed auto-config of UBlox setup with no UBX messages
if a UBlox is configured for NMEA only, with no UBX messages at all
then it would never trigger the GPS_AUTO detection. This adds a UBX
config message to the init strings that enables the NAV_SOL message
2012-06-15 15:53:27 +10:00
Andrew Tridgell 514be604a5 GPS: added auto-configuration of UBlox GPS
the Ublox will now auto-configure for 5Hz with just the messages we
want. It also supports setting the navigation engine type
2012-06-10 16:34:13 +10:00
Andrew Tridgell 296e651b30 GPS: fixed the UBLOX parser to handle unknown messages
the parser was broken in several ways:

 1) when it received an unknown message it didn't update the ck_a and ck_b fields, so it
    thought the message had a bad checksum, which meant it got out of protocol sync

 2) the read() method would return false if the last message from the GPS was of an unknown type. 
    So we relied on the last msg always being one that we understand and want

 3) the parser considered any valid UBLOX message to be 'new data', whereas we only actually get 
    a new fix when we get box a new position and velned message

 4) the total message size per update is more than 128 bytes, but the serial port was opened 
    with only a 128 byte buffer, so we got corruption regularly
2012-06-08 16:42:02 +10:00
Andrew Tridgell 0f0cbce22f GPS: fixed a race condition in the ublox driver
the status update comes as a separate message from the lat/lon
2012-06-04 14:47:58 +10:00
James Goppert 14d27b1e4c Cleaned up AP_GPS formatting. 2011-10-28 14:52:50 -04:00
deweibel@gmail.com 8d7e7ff58e revert gps lib to 2602
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2608 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-06-21 01:38:31 +00:00
deweibel@gmail.com 5b9e7eff9d clean up idleTimeout
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2606 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-06-21 01:20:39 +00:00
deweibel@gmail.com b53b749fc7 Fix initialization of idleTimeout
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2602 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-06-20 21:11:45 +00:00
deweibel@gmail.com 20cdf7c698 Add hDOP for ublox gps driver
git-svn-id: https://arducopter.googlecode.com/svn/trunk@2241 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-05-11 02:54:43 +00:00
deweibel e620eb1326 Change MediaTek timestamps to millisecond Time of Day
Add epoch method to return timestamp epoch.

git-svn-id: https://arducopter.googlecode.com/svn/trunk@1589 f9c3cf11-9bcb-44bc-f272-b75c42450872
2011-02-01 23:50:36 +00:00
DrZiplok@gmail.com 8da4a29d58 Add support for the DIYD MTK v1.6 firmware
Nuke AP_GPS_IMU, as nothing is using it anymore.
Simplify the handling of no GPS/no fix detection.
Fix prototypes for ::init and ::read.
Update AP_GPS_Auto and corresponding example, nearly ready for primetime.
Use uint8_t rather than byte.
Strip some _error() calls to save space.  More could still go.



git-svn-id: https://arducopter.googlecode.com/svn/trunk@1246 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-24 06:35:09 +00:00
james.goppert aa115aea68 AP_GPS libs now recover from disconnect or failed initialization.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@1188 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-12-19 13:24:29 +00:00
DrZiplok@gmail.com 0a94520682 Add support for automatically detecting the connected GPS and configuring accordingly.
Note that this is currently disabled as changes need to be made to APM to support it.

Tested with MTK, u-blox and SiRF GPS'.

git-svn-id: https://arducopter.googlecode.com/svn/trunk@671 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-10-17 06:06:04 +00:00
paulbmather@gmail.com 079dd3c617 Changes to accommodate blinking lights and loss of GPS commands. Tested with NMEA, uBlox, Sirf and MTK. Does not function correctly with rmack's changes to APM_Compass posted 10/17/2010 (I don't know why).
git-svn-id: https://arducopter.googlecode.com/svn/trunk@669 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-10-17 04:07:46 +00:00
DrZiplok@gmail.com c981b7d0b0 Rework the u-blox driver.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@422 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-09-06 22:31:18 +00:00
DrZiplok@gmail.com 7e345e027c Push server-native line endings.
git-svn-id: https://arducopter.googlecode.com/svn/trunk@418 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-09-06 20:16:50 +00:00
DrZiplok@gmail.com 96a80f1c66 Cleanup.
Teach AP_GPS about FastSerial (in the few places it needs to know) and about Stream everywhere else.

Do some minor code cleanup.

Tested with Mega and uBlox.  Some issues (e.g. reporting 0 satelites) remain.



git-svn-id: https://arducopter.googlecode.com/svn/trunk@404 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-09-06 09:20:44 +00:00
jasonshort 4f02edac51 New GPS Lib
git-svn-id: https://arducopter.googlecode.com/svn/trunk@342 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-08-29 22:08:33 +00:00
jasonshort 241b710001 updates - Ublox now working
git-svn-id: https://arducopter.googlecode.com/svn/trunk@313 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-08-25 17:32:55 +00:00
jasonshort 2c6e096a3b New Libraries
git-svn-id: https://arducopter.googlecode.com/svn/trunk@286 f9c3cf11-9bcb-44bc-f272-b75c42450872
2010-08-24 04:13:27 +00:00