Jurica Resetar / Mbed OS aconnoGnss

Fork of gnss by u-blox

Embed: (wiki syntax)

« Back to documentation index

GnssI2C Class Reference

GNSS class which uses a i2c as physical interface. More...

#include <gnss.h>

Inherits GnssParser.

Public Types

enum  { WAIT = -1, NOT_FOUND = 0 }

Public Member Functions

 GnssI2C (PinName sda GNSS_IF(=NC,=NC), PinName scl GNSS_IF(=NC,=NC), unsigned char i2cAdr GNSS_IF(=(66<< 1),=(66<< 1)), int rxSize=256)
 Constructor.
virtual ~GnssI2C (void)
 Destructor.
virtual bool init (PinName pn=GNSS_IF(NC, NC))
 Helper function to probe the i2c device.
virtual int getMessage (char *buf, int len)
 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 an NMEA message, this function just takes the payload and calculates and adds checksum ($ and *XX
will be added).
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 GNSS, 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

bool writeable (void)
 Check if the port is writeable (like SerialPipe)
bool putc (int c)
 Write a character (like SerialPipe).
virtual int _send (const void *buf, int len)
 Write bytes to the physical interface.
int _get (char *buf, int len)
 Read bytes from the physical interface.
void _powerOn (void)
 Power on the GNSS module.

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.

Protected Attributes

Pipe< char > _pipe
 the rx pipe.
unsigned char _i2cAdr
 the i2c address.
DigitalInOut * _gnssEnable
 IO pin that enables GNSS.

Static Protected Attributes

static const char REGLEN = 0xFD
 the length i2c register address.
static const char REGSTREAM = 0xFF
 the stream i2c register address.
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

GNSS class which uses a i2c as physical interface.

Definition at line 250 of file gnss.h.


Member Enumeration Documentation

anonymous enum [inherited]
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 58 of file gnss.h.


Constructor & Destructor Documentation

GnssI2C ( PinName sda   GNSS_IF=NC,=NC,
PinName scl   GNSS_IF=NC,=NC,
unsigned char i2cAdr   GNSS_IF=(66<< 1),=(66<< 1),
int  rxSize = 256 
)

Constructor.

Parameters:
sdais the I2C SDA pin (between CPU and GNSS).
sclis the I2C SCL pin (CPU to GNSS).
adrthe I2C address of the GNSS set to (66<<1).
rxSizethe size of the serial rx buffer.
~GnssI2C ( void   ) [virtual]

Destructor.

Definition at line 346 of file gnss.cpp.


Member Function Documentation

int _get ( char *  buf,
int  len 
) [protected]

Read bytes from the physical interface.

Parameters:
bufthe buffer to read into.
lensize of the read buffer .
Returns:
bytes read.

Definition at line 407 of file gnss.cpp.

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

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 63 of file gnss.cpp.

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

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 101 of file gnss.cpp.

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

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 130 of file gnss.cpp.

void _powerOn ( void   ) [protected, inherited]

Power on the GNSS module.

Definition at line 55 of file gnss.cpp.

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

Write bytes to the physical interface.

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

Implements GnssParser.

Definition at line 428 of file gnss.cpp.

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

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 206 of file gnss.cpp.

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

Get a line from the physical interface.

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.

Implements GnssParser.

Definition at line 365 of file gnss.cpp.

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

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 265 of file gnss.cpp.

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

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 245 of file gnss.cpp.

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

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 234 of file gnss.cpp.

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

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 222 of file gnss.cpp.

bool init ( PinName  pn = GNSS_IF( NC, NC ) ) [virtual]

Helper function to probe the i2c device.

Parameters:
pnthe power-on pin for the chip.
Returns:
true if successfully detected the GNSS chip.

Implements GnssParser.

Definition at line 351 of file gnss.cpp.

void powerOff ( void   ) [inherited]

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

Definition at line 48 of file gnss.cpp.

bool putc ( int  c ) [protected]

Write a character (like SerialPipe).

Parameters:
cthe character to write.
Returns:
true if succesffully written .

Definition at line 318 of file gnss.h.

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 from GnssParser.

Definition at line 377 of file gnss.cpp.

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

Send an 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 from GnssParser.

Definition at line 389 of file gnss.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 from GnssParser.

Definition at line 398 of file gnss.cpp.

bool writeable ( void   ) [protected]

Check if the port is writeable (like SerialPipe)

Returns:
true if writeable

Definition at line 312 of file gnss.h.


Field Documentation

DigitalInOut* _gnssEnable [protected, inherited]

IO pin that enables GNSS.

Definition at line 199 of file gnss.h.

unsigned char _i2cAdr [protected]

the i2c address.

Definition at line 335 of file gnss.h.

Pipe<char> _pipe [protected]

the rx pipe.

Definition at line 334 of file gnss.h.

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

num to hex conversion

Definition at line 198 of file gnss.h.

const char REGLEN = 0xFD [static, protected]

the length i2c register address.

Definition at line 336 of file gnss.h.

const char REGSTREAM = 0xFF [static, protected]

the stream i2c register address.

Definition at line 337 of file gnss.h.