Support for LISA-N101
Fork of C027_Support by
This is a variant of the C027 driver code for the C027N version, i.e. the one with the Neul/Huawei/u-blox Cellular Internet of Things module on board. The AT command interface for this module is entirely different to the AT interface for the other u-blox modules, hence this fork of the driver. Work is underway to rearchitect the original C027 driver so that a merge can be done.
Diff: GPS.h
- Revision:
- 9:e7a5959ffae1
- Parent:
- 4:c959dd4c5fe8
- Child:
- 11:b084552b03fe
--- a/GPS.h Sat Nov 09 13:31:49 2013 +0000 +++ b/GPS.h Sun Nov 10 16:39:42 2013 +0000 @@ -5,6 +5,9 @@ #include "SerialPipe.h" #include "C027_PinNames.h" +#define RX_SIZE 256 +#define TX_SIZE 128 + class GPSParser { public: @@ -33,24 +36,23 @@ static const char toHex[16]; }; -class GPSSerial : public Serial, public GPSParser +class GPSSerial : public SerialPipe, public GPSParser { public: - GPSSerial(PinName tx = GPSTXD, PinName rx = GPSRXD, int baudrate = GPSBAUD); - virtual ~GPSSerial(void); + GPSSerial(PinName tx = GPSTXD, PinName rx = GPSRXD, int baudrate = GPSBAUD, + int rxSize = RX_SIZE, int txSize = TX_SIZE); virtual int getMessage(char* buf, int len); protected: - void serialRxIrq(void); virtual char next(void); virtual int _send(const void* buf, int len); - Pipe<char> _pipe; }; class GPSI2C : public I2C, public GPSParser { public: - GPSI2C(PinName sda = GPSSDA, PinName scl = GPSSCL); + GPSI2C(PinName sda = GPSSDA, PinName scl = GPSSCL, + int rxSize = RX_SIZE); bool detect(void); virtual int getMessage(char* buf, int len); @@ -59,6 +61,8 @@ virtual int sendUbx(unsigned char cls, unsigned char id, const void* buf, int len); protected: virtual char next(void); + bool writeable(void) { return true; } + bool putc(int c) { char ch = c; return send(&ch, 1); } virtual int _send(const void* buf, int len); int _get(char* buf, int len); // read the NMEA or UBX stream