C027_SupportTest_xively_locationで使用しているC027用ライブラリ

Fork of C027_Support by u-blox

Embed: (wiki syntax)

« Back to documentation index

GPSParser Class Reference

basic gps parser class More...

#include <GPS.h>

Inherited by GPSI2C, and GPSSerial.

Public Types

enum  { WAIT = -1, NOT_FOUND = 0 }

Public Member Functions

virtual bool init (PinName pn)=0
 Power on / Wake up the gps.
virtual int getMessage (char *buf, int len)=0
 Get a line from the physical interface.
virtual int send (const char *buf, int len)
 send a buffer
virtual int sendNmea (const char *buf, int len)
 send a NMEA message, this function just takes the payload and calculates and adds checksum.
virtual int sendUbx (unsigned char cls, unsigned char id, const void *buf=NULL, int len=0)
 send a UBX message, this function just takes the payload and calculates and adds checksum.
void powerOff (void)
 Power off the gps, it can be again woken up by an edge on the serial port on the external interrupt pin.

Static Public Member Functions

static const char * findNmeaItemPos (int ix, const char *start, const char *end)
 get the first character of a NMEA field
static bool getNmeaItem (int ix, char *buf, int len, double &val)
 extract a double value from a buffer containing a NMEA message
static bool getNmeaItem (int ix, char *buf, int len, int &val, int base)
 extract a interger value from a buffer containing a NMEA message
static bool getNmeaItem (int ix, char *buf, int len, char &val)
 extract a char value from a buffer containing a NMEA message
static bool getNmeaAngle (int ix, char *buf, int len, double &val)
 extract a latitude/longitude value from a buffer containing a NMEA message

Protected Member Functions

virtual int _send (const void *buf, int len)=0
 Write bytes to the physical interface.

Static Protected Member Functions

static int _getMessage (Pipe< char > *pipe, char *buf, int len)
 Get a line from the physical interface.
static int _parseNmea (Pipe< char > *pipe, int len)
 Check if the current offset of the pipe contains a NMEA message.
static int _parseUbx (Pipe< char > *pipe, int len)
 Check if the current offset of the pipe contains a UBX message.

Static Protected Attributes

static const char toHex [16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }
 num to hex conversion

Detailed Description

basic gps parser class

Definition at line 15 of file GPS.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
WAIT 

wait for more incoming data (the start of a message was found, or no data available)

NOT_FOUND 

a parser concluded the the current offset of the pipe doe not contain a valid message

Definition at line 22 of file GPS.h.


Member Function Documentation

int _getMessage ( Pipe< char > *  pipe,
char *  buf,
int  len 
) [static, protected]

Get a line from the physical interface.

Parameters:
pipethe receiveing pipe to parse messages
bufthe buffer to store it
lensize of the buffer
Returns:
type and length if something was found, WAIT if not enough data is available NOT_FOUND if nothing was found

Definition at line 15 of file GPS.cpp.

int _parseNmea ( Pipe< char > *  pipe,
int  len 
) [static, protected]

Check if the current offset of the pipe contains a NMEA message.

Parameters:
pipethe receiveing pipe to parse messages
lennumer of bytes to parse at maximum
Returns:
length if something was found (including the NMEA frame) WAIT if not enough data is available NOT_FOUND if nothing was found

Definition at line 53 of file GPS.cpp.

int _parseUbx ( Pipe< char > *  pipe,
int  len 
) [static, protected]

Check if the current offset of the pipe contains a UBX message.

Parameters:
pipethe receiveing pipe to parse messages
lennumer of bytes to parse at maximum
Returns:
length if something was found (including the UBX frame) WAIT if not enough data is available NOT_FOUND if nothing was found

Definition at line 82 of file GPS.cpp.

virtual int _send ( const void *  buf,
int  len 
) [protected, pure virtual]

Write bytes to the physical interface.

This function needs to be implemented by the inherited class.

Parameters:
bufthe buffer to write
lensize of the buffer to write
Returns:
bytes written

Implemented in GPSSerial, and GPSI2C.

const char * findNmeaItemPos ( int  ix,
const char *  start,
const char *  end 
) [static]

get the first character of a NMEA field

Parameters:
ixthe index of the field to find
startthe start of the buffer
endthe end of the buffer
Returns:
the pointer to the first character of the field.

Definition at line 158 of file GPS.cpp.

virtual int getMessage ( char *  buf,
int  len 
) [pure virtual]

Get a line from the physical interface.

This fucntion needs to be implemented in the inherited class.

Parameters:
bufthe buffer to store it
lensize of the buffer
Returns:
type and length if something was found, WAIT if not enough data is available NOT_FOUND if nothing was found

Implemented in GPSSerial, and GPSI2C.

bool getNmeaAngle ( int  ix,
char *  buf,
int  len,
double &  val 
) [static]

extract a latitude/longitude value from a buffer containing a NMEA message

Parameters:
ixthe index of the field to extract (will extract ix and ix + 1)
bufthe NMEA message
lenthe size of the NMEA message
valthe extracted latitude or longitude
Returns:
true if successful, false otherwise

Definition at line 217 of file GPS.cpp.

bool getNmeaItem ( int  ix,
char *  buf,
int  len,
int &  val,
int  base 
) [static]

extract a interger value from a buffer containing a NMEA message

Parameters:
ixthe index of the field to extract
bufthe NMEA message
lenthe size of the NMEA message
valthe extracted value
basethe numeric base to be used (e.g. 8, 10 or 16)
Returns:
true if successful, false otherwise

Definition at line 186 of file GPS.cpp.

bool getNmeaItem ( int  ix,
char *  buf,
int  len,
double &  val 
) [static]

extract a double value from a buffer containing a NMEA message

Parameters:
ixthe index of the field to extract
bufthe NMEA message
lenthe size of the NMEA message
valthe extracted value
Returns:
true if successful, false otherwise

Definition at line 174 of file GPS.cpp.

bool getNmeaItem ( int  ix,
char *  buf,
int  len,
char &  val 
) [static]

extract a char value from a buffer containing a NMEA message

Parameters:
ixthe index of the field to extract
bufthe NMEA message
lenthe size of the NMEA message
valthe extracted value
Returns:
true if successful, false otherwise

Definition at line 197 of file GPS.cpp.

virtual bool init ( PinName  pn ) [pure virtual]

Power on / Wake up the gps.

Implemented in GPSSerial, and GPSI2C.

void powerOff ( void   )

Power off the gps, it can be again woken up by an edge on the serial port on the external interrupt pin.

Definition at line 8 of file GPS.cpp.

int send ( const char *  buf,
int  len 
) [virtual]

send a buffer

Parameters:
bufthe buffer to write
lensize of the buffer to write
Returns:
bytes written

Reimplemented in GPSI2C.

Definition at line 112 of file GPS.cpp.

int sendNmea ( const char *  buf,
int  len 
) [virtual]

send a NMEA message, this function just takes the payload and calculates and adds checksum.

($ and *XX
will be added)

Parameters:
bufthe message payload to write
lensize of the message payload to write
Returns:
total bytes written

Reimplemented in GPSI2C.

Definition at line 117 of file GPS.cpp.

int sendUbx ( unsigned char  cls,
unsigned char  id,
const void *  buf = NULL,
int  len = 0 
) [virtual]

send a UBX message, this function just takes the payload and calculates and adds checksum.

Parameters:
clsthe UBX class id
idthe UBX message id
bufthe message payload to write
lensize of the message payload to write
Returns:
total bytes written

Reimplemented in GPSI2C.

Definition at line 133 of file GPS.cpp.


Field Documentation

const char toHex = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' } [static, protected]

num to hex conversion

Definition at line 158 of file GPS.h.