| 1269 | kakl | 1 | /*! \file nmea.h \brief NMEA protocol function library. */ | 
      
        |  |  | 2 | //***************************************************************************** | 
      
        |  |  | 3 | // | 
      
        |  |  | 4 | // File Name	: 'nmea.h' | 
      
        |  |  | 5 | // Title		: NMEA protocol function library | 
      
        |  |  | 6 | // Author		: Pascal Stang - Copyright (C) 2002 | 
      
        |  |  | 7 | // Created		: 2002.08.27 | 
      
        |  |  | 8 | // Revised		: 2002.08.27 | 
      
        |  |  | 9 | // Version		: 0.1 | 
      
        |  |  | 10 | // Target MCU	: Atmel AVR Series | 
      
        |  |  | 11 | // Editor Tabs	: 4 | 
      
        |  |  | 12 | // | 
      
        |  |  | 13 | // NOTE: This code is currently below version 1.0, and therefore is considered | 
      
        |  |  | 14 | // to be lacking in some functionality or documentation, or may not be fully | 
      
        |  |  | 15 | // tested.  Nonetheless, you can expect most functions to work. | 
      
        |  |  | 16 | // | 
      
        |  |  | 17 | ///	\ingroup driver_hw | 
      
        |  |  | 18 | /// \defgroup nmea NMEA Packet Interface for GPS Receivers (nmea.c) | 
      
        |  |  | 19 | /// \code #include "nmea.h" \endcode | 
      
        |  |  | 20 | /// \par Overview | 
      
        |  |  | 21 | ///		This library parses and decodes the standard NMEA data stream from a | 
      
        |  |  | 22 | /// GPS and stores the position, velocity, and time solutions in the gps.c | 
      
        |  |  | 23 | /// library. | 
      
        |  |  | 24 | // | 
      
        |  |  | 25 | // This code is distributed under the GNU Public License | 
      
        |  |  | 26 | //		which can be found at http://www.gnu.org/licenses/gpl.txt | 
      
        |  |  | 27 | // | 
      
        |  |  | 28 | //***************************************************************************** | 
      
        |  |  | 29 |  | 
      
        |  |  | 30 | #ifndef NMEA_H | 
      
        |  |  | 31 | #define NMEA_H | 
      
        |  |  | 32 |  | 
      
        |  |  | 33 | #include "global.h" | 
      
        |  |  | 34 | #include "buffer.h" | 
      
        |  |  | 35 |  | 
      
        |  |  | 36 | // constants/macros/typdefs | 
      
        |  |  | 37 | #define NMEA_BUFFERSIZE		80 | 
      
        |  |  | 38 |  | 
      
        |  |  | 39 | // Message Codes | 
      
        |  |  | 40 | #define NMEA_NODATA		0	// No data. Packet not available, bad, or not decoded | 
      
        |  |  | 41 | #define NMEA_GPGGA		1	// Global Positioning System Fix Data | 
      
        |  |  | 42 | #define NMEA_GPVTG		2	// Course over ground and ground speed | 
      
        |  |  | 43 | #define NMEA_GPGLL		3	// Geographic position - latitude/longitude | 
      
        |  |  | 44 | #define NMEA_GPGSV		4	// GPS satellites in view | 
      
        |  |  | 45 | #define NMEA_GPGSA		5	// GPS DOP and active satellites | 
      
        |  |  | 46 | #define NMEA_GPRMC		6	// Recommended minimum specific GPS data | 
      
        |  |  | 47 | #define NMEA_UNKNOWN	0xFF// Packet received but not known | 
      
        |  |  | 48 |  | 
      
        |  |  | 49 | // Debugging | 
      
        |  |  | 50 | //#define NMEA_DEBUG_PKT	///< define to enable debug of all NMEA messages | 
      
        |  |  | 51 | //#define NMEA_DEBUG_GGA	///< define to enable debug of GGA messages | 
      
        |  |  | 52 | //#define NMEA_DEBUG_VTG	///< define to enable debug of VTG messages | 
      
        |  |  | 53 |  | 
      
        |  |  | 54 | // functions | 
      
        |  |  | 55 | void nmeaInit(void); | 
      
        |  |  | 56 | u08* nmeaGetPacketBuffer(void); | 
      
        |  |  | 57 | u08 nmeaProcess(cBuffer* rxBuffer); | 
      
        |  |  | 58 | void nmeaProcessGPGGA(u08* packet); | 
      
        |  |  | 59 | void nmeaProcessGPVTG(u08* packet); | 
      
        |  |  | 60 |  | 
      
        |  |  | 61 | #endif |