Code for autonomous rover for Sparkfun AVC. DataBus won 3rd in 2012 and the same code was used on Troubled Child, a 1986 Jeep Grand Wagoneer to win 1st in 2014.

Dependencies:   mbed Watchdog SDFileSystem DigoleSerialDisp

Committer:
shimniok
Date:
Mon May 27 13:26:03 2013 +0000
Revision:
0:a6a169de725f
Child:
2:fbc6e3cf3ed8
Working version with priorities set and update time display

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimniok 0:a6a169de725f 1 #ifndef __SIRF3_H__
shimniok 0:a6a169de725f 2 #define __SIRF3_H__
shimniok 0:a6a169de725f 3
shimniok 0:a6a169de725f 4 #include "mbed.h"
shimniok 0:a6a169de725f 5 #include "GPS.h"
shimniok 0:a6a169de725f 6 #include "TinyGPS.h"
shimniok 0:a6a169de725f 7
shimniok 0:a6a169de725f 8 class Sirf3: public GPS {
shimniok 0:a6a169de725f 9 public:
shimniok 0:a6a169de725f 10 /**
shimniok 0:a6a169de725f 11 * create a new SiRF III interface
shimniok 0:a6a169de725f 12 */
shimniok 0:a6a169de725f 13 Sirf3(PinName tx, PinName rx);
shimniok 0:a6a169de725f 14
shimniok 0:a6a169de725f 15 /**
shimniok 0:a6a169de725f 16 * Initalize everything necessary for the GPS to collect the required data
shimniok 0:a6a169de725f 17 */
shimniok 0:a6a169de725f 18 virtual void init(void);
shimniok 0:a6a169de725f 19
shimniok 0:a6a169de725f 20 /**
shimniok 0:a6a169de725f 21 * Set baud rate
shimniok 0:a6a169de725f 22 */
shimniok 0:a6a169de725f 23 virtual void setBaud(int baud);
shimniok 0:a6a169de725f 24
shimniok 0:a6a169de725f 25 /**
shimniok 0:a6a169de725f 26 * return serial object
shimniok 0:a6a169de725f 27 */
shimniok 0:a6a169de725f 28 virtual Serial *getSerial(void);
shimniok 0:a6a169de725f 29
shimniok 0:a6a169de725f 30 /**
shimniok 0:a6a169de725f 31 * Disable serial data collection
shimniok 0:a6a169de725f 32 */
shimniok 0:a6a169de725f 33 virtual void disable(void);
shimniok 0:a6a169de725f 34
shimniok 0:a6a169de725f 35 /**
shimniok 0:a6a169de725f 36 * Enable serial data collection
shimniok 0:a6a169de725f 37 */
shimniok 0:a6a169de725f 38 virtual void enable(void);
shimniok 0:a6a169de725f 39
shimniok 0:a6a169de725f 40 /**
shimniok 0:a6a169de725f 41 * Enable verbose messages for debugging
shimniok 0:a6a169de725f 42 */
shimniok 0:a6a169de725f 43 virtual void enableVerbose(void);
shimniok 0:a6a169de725f 44
shimniok 0:a6a169de725f 45 /**
shimniok 0:a6a169de725f 46 * Disable verbose messages for debugging
shimniok 0:a6a169de725f 47 */
shimniok 0:a6a169de725f 48 virtual void disableVerbose(void);
shimniok 0:a6a169de725f 49
shimniok 0:a6a169de725f 50 /**
shimniok 0:a6a169de725f 51 * get latitude
shimniok 0:a6a169de725f 52 */
shimniok 0:a6a169de725f 53 virtual double latitude(void);
shimniok 0:a6a169de725f 54
shimniok 0:a6a169de725f 55 /**
shimniok 0:a6a169de725f 56 * get longitude
shimniok 0:a6a169de725f 57 */
shimniok 0:a6a169de725f 58 virtual double longitude(void);
shimniok 0:a6a169de725f 59
shimniok 0:a6a169de725f 60 /**
shimniok 0:a6a169de725f 61 * Get Horizontal Dilution of Precision
shimniok 0:a6a169de725f 62 * @return float horizontal dilution of precision
shimniok 0:a6a169de725f 63 */
shimniok 0:a6a169de725f 64 virtual float hdop(void);
shimniok 0:a6a169de725f 65
shimniok 0:a6a169de725f 66 /**
shimniok 0:a6a169de725f 67 * get count of active satellites
shimniok 0:a6a169de725f 68 */
shimniok 0:a6a169de725f 69 virtual int sat_count(void);
shimniok 0:a6a169de725f 70
shimniok 0:a6a169de725f 71 /**
shimniok 0:a6a169de725f 72 * get speed in m/s
shimniok 0:a6a169de725f 73 */
shimniok 0:a6a169de725f 74 virtual float speed_mps(void);
shimniok 0:a6a169de725f 75
shimniok 0:a6a169de725f 76 /**
shimniok 0:a6a169de725f 77 * get heading in degrees
shimniok 0:a6a169de725f 78 */
shimniok 0:a6a169de725f 79 virtual float heading_deg(void);
shimniok 0:a6a169de725f 80
shimniok 0:a6a169de725f 81 /**
shimniok 0:a6a169de725f 82 * determine if data is available to be used
shimniok 0:a6a169de725f 83 */
shimniok 0:a6a169de725f 84 virtual bool available(void);
shimniok 0:a6a169de725f 85
shimniok 0:a6a169de725f 86 /**
shimniok 0:a6a169de725f 87 * reset the data available flag
shimniok 0:a6a169de725f 88 */
shimniok 0:a6a169de725f 89 virtual void reset_available(void);
shimniok 0:a6a169de725f 90
shimniok 0:a6a169de725f 91 private:
shimniok 0:a6a169de725f 92 void recv_handler(void);
shimniok 0:a6a169de725f 93 void gsaMessage(bool enable);
shimniok 0:a6a169de725f 94 void gsvMessage(bool enable);
shimniok 0:a6a169de725f 95 Serial serial;
shimniok 0:a6a169de725f 96 TinyGPS nmea;
shimniok 0:a6a169de725f 97 };
shimniok 0:a6a169de725f 98
shimniok 0:a6a169de725f 99 #endif