allsensors
Fork of C027_Support by
GPSI2C Class Reference
gps class which uses a i2c as physical interface. More...
#include <GPS.h>
Inherits GPSParser.
Public Types | |
enum | { WAIT = -1, NOT_FOUND = 0 } |
Public Member Functions | |
GPSI2C (PinName sda GPS_IF(=GPSSDA,=D14), PinName scl GPS_IF(=GPSSCL,=D15), unsigned char i2cAdr GPS_IF(=GPSADR,=(66<< 1)), int rxSize=256) | |
Constructor. | |
virtual | ~GPSI2C (void) |
Destructor. | |
virtual bool | init (PinName pn=GPS_IF(GPSINT, 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 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 | |
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. | |
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 | |
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
gps class which uses a i2c as physical interface.
Definition at line 208 of file GPS.h.
Member Enumeration Documentation
anonymous enum [inherited] |
Constructor & Destructor Documentation
GPSI2C | ( | PinName sda | GPS_IF=GPSSDA,=D14, |
PinName scl | GPS_IF=GPSSCL,=D15, | ||
unsigned char i2cAdr | GPS_IF=GPSADR,=(66<< 1), | ||
int | rxSize = 256 |
||
) |
Constructor.
- Parameters:
-
sda is the I2C SDA pin (between CPU and GPS) scl is the I2C SCL pin (CPU to GPS) adr the I2C address of the GPS set to (66<<1) rxSize the size of the serial rx buffer
Member Function Documentation
int _get | ( | char * | buf, |
int | len | ||
) | [protected] |
int _getMessage | ( | Pipe< char > * | pipe, |
char * | buf, | ||
int | len | ||
) | [static, protected, inherited] |
int _parseNmea | ( | Pipe< char > * | pipe, |
int | len | ||
) | [static, protected, inherited] |
Check if the current offset of the pipe contains a NMEA message.
- Parameters:
-
pipe the receiveing pipe to parse messages len numer 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
int _parseUbx | ( | Pipe< char > * | pipe, |
int | len | ||
) | [static, protected, inherited] |
Check if the current offset of the pipe contains a UBX message.
- Parameters:
-
pipe the receiveing pipe to parse messages len numer 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
int _send | ( | const void * | buf, |
int | len | ||
) | [protected, virtual] |
const char * findNmeaItemPos | ( | int | ix, |
const char * | start, | ||
const char * | end | ||
) | [static, inherited] |
int getMessage | ( | char * | buf, |
int | len | ||
) | [virtual] |
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:
-
ix the index of the field to extract (will extract ix and ix + 1) buf the NMEA message len the size of the NMEA message val the extracted latitude or longitude
- Returns:
- true if successful, false otherwise
bool getNmeaItem | ( | int | ix, |
char * | buf, | ||
int | len, | ||
char & | val | ||
) | [static, inherited] |
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:
-
ix the index of the field to extract buf the NMEA message len the size of the NMEA message val the extracted value base the numeric base to be used (e.g. 8, 10 or 16)
- Returns:
- true if successful, false otherwise
bool getNmeaItem | ( | int | ix, |
char * | buf, | ||
int | len, | ||
double & | val | ||
) | [static, inherited] |
bool init | ( | PinName | pn = GPS_IF( GPSINT, NC ) ) |
[virtual] |
void powerOff | ( | void | ) | [inherited] |
bool putc | ( | int | c ) | [protected] |
Write a character (like SerialPipe)
- Parameters:
-
c the character to write
- Returns:
- true if succesffully written
int send | ( | const char * | buf, |
int | len | ||
) | [virtual] |
int sendNmea | ( | const char * | buf, |
int | len | ||
) | [virtual] |
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:
-
cls the UBX class id id the UBX message id buf the message payload to write len size of the message payload to write
- Returns:
- total bytes written
Reimplemented from GPSParser.
bool writeable | ( | void | ) | [protected] |
check if the port is writeable (like SerialPipe)
- Returns:
- true if writeable
Field Documentation
const char REGLEN = 0xFD [static, protected] |
const char REGSTREAM = 0xFF [static, protected] |
Generated on Wed Jul 13 2022 00:19:01 by 1.7.2