firmware/src/gps/NMEAGPS.h

43 lines
1.1 KiB
C
Raw Normal View History

2020-05-05 00:39:57 +00:00
#pragma once
#include "../concurrency/PeriodicTask.h"
2020-05-05 00:39:57 +00:00
#include "GPS.h"
#include "Observer.h"
#include "TinyGPS++.h"
/**
* A gps class thatreads from a NMEA GPS stream (and FIXME - eventually keeps the gps powered down except when reading)
2020-05-05 00:39:57 +00:00
*
* When new data is available it will notify observers.
*/
class NMEAGPS : public GPS
2020-05-05 00:39:57 +00:00
{
TinyGPSPlus reader;
2020-05-05 00:39:57 +00:00
public:
2020-09-25 16:14:00 +00:00
virtual bool setup();
2020-10-01 16:11:54 +00:00
protected:
/** Subclasses should look for serial rx characters here and feed it to their GPS parser
*
* Return true if we received a valid message from the GPS
*/
virtual bool whileIdle();
/**
* Perform any processing that should be done only while the GPS is awake and looking for a fix.
* Override this method to check for new locations
*
* @return true if we've acquired a time
*/
virtual bool lookForTime();
/**
* Perform any processing that should be done only while the GPS is awake and looking for a fix.
* Override this method to check for new locations
*
* @return true if we've acquired a new location
*/
virtual bool lookForLocation();
2020-05-05 00:39:57 +00:00
};