mirror of https://github.com/ArduPilot/ardupilot
GPS: add stub settings for nav_setting in the other GPS drivers
only Ublox supports nav_setting so far
This commit is contained in:
parent
926dfbc0e9
commit
0542539fc9
|
@ -25,12 +25,12 @@ AP_GPS_406::AP_GPS_406(Stream *s) : AP_GPS_SIRF(s)
|
|||
}
|
||||
|
||||
// Public Methods ////////////////////////////////////////////////////////////////////
|
||||
void AP_GPS_406::init(void)
|
||||
void AP_GPS_406::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
_change_to_sirf_protocol(); // Changes to SIRF protocol and sets baud rate
|
||||
_configure_gps(); // Function to configure GPS, to output only the desired msg's
|
||||
|
||||
AP_GPS_SIRF::init(); // let the superclass do anything it might need here
|
||||
AP_GPS_SIRF::init(nav_setting); // let the superclass do anything it might need here
|
||||
|
||||
idleTimeout = 1200;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ class AP_GPS_406 : public AP_GPS_SIRF
|
|||
public:
|
||||
// Methods
|
||||
AP_GPS_406(Stream *port);
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
|
||||
private:
|
||||
void _change_to_sirf_protocol(void);
|
||||
|
|
|
@ -34,10 +34,11 @@ AP_GPS_Auto::AP_GPS_Auto(FastSerial *s, GPS **gps) :
|
|||
// Do nothing at init time - it may be too early to try detecting the GPS
|
||||
//
|
||||
void
|
||||
AP_GPS_Auto::init(void)
|
||||
AP_GPS_Auto::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
idleTimeout = 1200;
|
||||
if (callback == NULL) callback = delay;
|
||||
_nav_setting = nav_setting;
|
||||
}
|
||||
|
||||
// Called the first time that a client tries to kick the GPS to update.
|
||||
|
@ -70,7 +71,7 @@ AP_GPS_Auto::read(void)
|
|||
if (NULL != (gps = _detect())) {
|
||||
|
||||
// configure the detected GPS and give it a chance to listen to its device
|
||||
gps->init();
|
||||
gps->init(_nav_setting);
|
||||
then = millis();
|
||||
while ((millis() - then) < 1200) {
|
||||
// if we get a successful update from the GPS, we are done
|
||||
|
|
|
@ -24,7 +24,7 @@ public:
|
|||
AP_GPS_Auto(FastSerial *s, GPS **gps);
|
||||
|
||||
/// Dummy init routine, does nothing
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
|
||||
/// Detect and initialise the attached GPS unit. Updates the
|
||||
/// pointer passed into the constructor when a GPS is detected.
|
||||
|
@ -47,5 +47,6 @@ private:
|
|||
static const prog_char _ublox_set_binary[];
|
||||
static const prog_char _sirf_set_binary[];
|
||||
|
||||
enum GPS_Engine_Setting _nav_setting;
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -24,7 +24,7 @@ AP_GPS_HIL::AP_GPS_HIL(Stream *s) : GPS(s)
|
|||
}
|
||||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void AP_GPS_HIL::init(void)
|
||||
void AP_GPS_HIL::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
idleTimeout = 1200;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
class AP_GPS_HIL : public GPS {
|
||||
public:
|
||||
AP_GPS_HIL(Stream *s);
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
virtual bool read(void);
|
||||
|
||||
/**
|
||||
|
|
|
@ -43,7 +43,7 @@ AP_GPS_IMU::AP_GPS_IMU(Stream *s) : GPS(s)
|
|||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void
|
||||
AP_GPS_IMU::init(void)
|
||||
AP_GPS_IMU::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
// we expect the stream to already be open at the corret bitrate
|
||||
idleTimeout = 1200;
|
||||
|
|
|
@ -11,7 +11,7 @@ public:
|
|||
|
||||
// Methods
|
||||
AP_GPS_IMU(Stream *s);
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting);
|
||||
virtual bool read(void);
|
||||
|
||||
// Properties
|
||||
|
|
|
@ -21,7 +21,7 @@ AP_GPS_MTK::AP_GPS_MTK(Stream *s) : GPS(s)
|
|||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void
|
||||
AP_GPS_MTK::init(void)
|
||||
AP_GPS_MTK::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
_port->flush();
|
||||
// initialize serial port for binary protocol use
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
class AP_GPS_MTK : public GPS {
|
||||
public:
|
||||
AP_GPS_MTK(Stream *s);
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
virtual bool read(void);
|
||||
|
||||
private:
|
||||
|
|
|
@ -26,7 +26,7 @@ AP_GPS_MTK16::AP_GPS_MTK16(Stream *s) : GPS(s)
|
|||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void
|
||||
AP_GPS_MTK16::init(void)
|
||||
AP_GPS_MTK16::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
_port->flush();
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
class AP_GPS_MTK16 : public GPS {
|
||||
public:
|
||||
AP_GPS_MTK16(Stream *s);
|
||||
virtual void init(void);
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
virtual bool read(void);
|
||||
|
||||
private:
|
||||
|
|
|
@ -97,7 +97,7 @@ AP_GPS_NMEA::AP_GPS_NMEA(Stream *s) :
|
|||
}
|
||||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void AP_GPS_NMEA::init(void)
|
||||
void AP_GPS_NMEA::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
BetterStream *bs = (BetterStream *)_port;
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ public:
|
|||
/// Perform a (re)initialisation of the GPS; sends the
|
||||
/// protocol configuration messages.
|
||||
///
|
||||
virtual void init();
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
|
||||
/// Checks the serial receive buffer for characters,
|
||||
/// attempts to parse NMEA data and updates internal state
|
||||
|
|
|
@ -9,7 +9,7 @@ class AP_GPS_None : public GPS
|
|||
{
|
||||
public:
|
||||
AP_GPS_None(Stream *s) : GPS(s) {}
|
||||
virtual void init(void) {};
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE) {};
|
||||
virtual bool read(void) {
|
||||
return false;
|
||||
};
|
||||
|
|
|
@ -30,7 +30,7 @@ AP_GPS_SIRF::AP_GPS_SIRF(Stream *s) : GPS(s)
|
|||
|
||||
// Public Methods //////////////////////////////////////////////////////////////
|
||||
void
|
||||
AP_GPS_SIRF::init(void)
|
||||
AP_GPS_SIRF::init(enum GPS_Engine_Setting nav_setting)
|
||||
{
|
||||
_port->flush();
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class AP_GPS_SIRF : public GPS {
|
|||
public:
|
||||
AP_GPS_SIRF(Stream *s);
|
||||
|
||||
virtual void init();
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE);
|
||||
virtual bool read();
|
||||
|
||||
private:
|
||||
|
|
|
@ -19,7 +19,7 @@ class AP_GPS_Shim : public GPS
|
|||
public:
|
||||
AP_GPS_Shim() : GPS(NULL) {}
|
||||
|
||||
virtual void init(void) {};
|
||||
virtual void init(enum GPS_Engine_Setting nav_setting = GPS_ENGINE_NONE) {};
|
||||
virtual bool read(void) {
|
||||
bool updated = _updated;
|
||||
_updated = false;
|
||||
|
|
|
@ -35,7 +35,7 @@ GPS::update(void)
|
|||
Debug("gps read timeout %lu %lu", (unsigned long)tnow, (unsigned long)_idleTimer);
|
||||
_status = NO_GPS;
|
||||
|
||||
init();
|
||||
init(_nav_setting);
|
||||
// reset the idle timer
|
||||
_idleTimer = tnow;
|
||||
}
|
||||
|
|
|
@ -36,6 +36,18 @@ public:
|
|||
GPS_OK = 2 ///< Receiving valid messages and locked
|
||||
};
|
||||
|
||||
// GPS navigation engine settings. Not all GPS receivers support
|
||||
// this
|
||||
enum GPS_Engine_Setting {
|
||||
GPS_ENGINE_NONE = -1,
|
||||
GPS_ENGINE_PEDESTRIAN = 3,
|
||||
GPS_ENGINE_AUTOMOTIVE = 4,
|
||||
GPS_ENGINE_SEA = 5,
|
||||
GPS_ENGINE_AIRBORNE_1G = 6,
|
||||
GPS_ENGINE_AIRBORNE_2G = 7,
|
||||
GPS_ENGINE_AIRBORNE_4G = 8
|
||||
};
|
||||
|
||||
/// Query GPS status
|
||||
///
|
||||
/// The 'valid message' status indicates that a recognised message was
|
||||
|
@ -72,7 +84,7 @@ public:
|
|||
///
|
||||
/// Must be implemented by the GPS driver.
|
||||
///
|
||||
virtual void init(void) = 0;
|
||||
virtual void init(enum GPS_Engine_Setting engine_setting = GPS_ENGINE_NONE) = 0;
|
||||
|
||||
// Properties
|
||||
uint32_t time; ///< GPS time (milliseconds from epoch)
|
||||
|
@ -166,6 +178,8 @@ protected:
|
|||
/// Time epoch code for the gps in use
|
||||
GPS_Time_Epoch _epoch;
|
||||
|
||||
enum GPS_Engine_Setting _nav_setting;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue