ArduPilot configures a connected DroneCAN GPS based on its GPS Type.
Given parameter name changes, ArduPilot must be able to configure both new and old AP_Periphs, and new AP_Periphs have to cope with being configured by old ArduPilots.
this allows for redundent RTCM links (eg. WiFi and SiK links for light
show drones) without causing corruption into the GPS.
If the GPS_DRV_OPTION bit is set then we instantiate a separate RTCM3
decoder per mavlink channel, and only inject when we get a full packet
that passes the RTCM 24 bit CRC
* Instead of hard coding to COM2, allow users to set it
* The enum is confusing, so this needs a wiki entry
* Use the same port in requestBAUD
* If the user configures an invalid param, send an error
* Add values for the GSOF COM ports
* Fix bug in RS232 being port 3 instead of port 0
* Use set_default for the typical user value when the GSOF driver is run
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
when moving baseline is enabled the rover is slaved to the base for
position and velocity, adding no additional useful data. Only the yaw
comes from the rover
users with busy CAN bus often get significiantly lower GPS rates on a
moving baseline rover, preventing arming. This PR relaxes the required
frame rate as the EKF is quite happy with 3Hz yaw and the yaw is the
only data consumed from a moving baseline rover
this allows a lot more drivers to use the GPS_DRV_OPTION but to use
ellisoid height. Particularly useful for DroneCAN GPS modules
using ellisoid height instead of AMSL is useful in some specialised
application
* Zero every iteration in case GPS quality degrades or fix is lost
* Use float precision for now
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
This moves us towards being able to compile the GPS library without having the MAVLink headers available. We shouldn't need those headers when building for Periph.
If the headers are available then we ensure our values match mavlink so we can do a simple cast from one to the other
clang reports this could be a problem when compiling under some EABIs. Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h