C027_Support library plus AT Comand for dialing.
Fork of C027_Support_New by
Revision 11:b084552b03fe, committed 2013-11-14
- Comitter:
- mazgch
- Date:
- Thu Nov 14 15:52:36 2013 +0000
- Parent:
- 10:3f1c13a8763d
- Child:
- 12:684b31d5482b
- Commit message:
- update api
Changed in this revision
--- a/GPS.cpp Thu Nov 14 12:57:21 2013 +0000 +++ b/GPS.cpp Thu Nov 14 15:52:36 2013 +0000 @@ -119,7 +119,7 @@ return i; } -int GPSParser::sendUbx(unsigned char cls, unsigned char id, const void* buf, int len) +int GPSParser::sendUbx(unsigned char cls, unsigned char id, const void* buf /*= NULL*/, int len /*= 0*/) { char head[6] = { 0xB5, 0x62, cls, id, len >> 0, len >> 8 }; char crc[2]; @@ -134,7 +134,7 @@ for (i = 0; i < len; i ++) { ca += ((char*)buf)[i]; - cb += ca; + cb += ca; } i = _send(head, sizeof(head)); i += _send(buf, len); @@ -272,7 +272,7 @@ if (len) { if (!I2C::write(GPSADR,®STREAM,sizeof(REGSTREAM),true)) - sent = _send(buf, len); + sent = send(buf, len); found = (len == sent); stop(); } @@ -282,26 +282,20 @@ int GPSI2C::sendNmea(const char* buf, int len) { int sent = 0; - if (len) - { - if (!I2C::write(GPSADR,®STREAM,sizeof(REGSTREAM),true)) - sent = GPSParser::sendNmea(buf, len); - found = (len == sent); - stop(); - } + if (!I2C::write(GPSADR,®STREAM,sizeof(REGSTREAM),true)) + sent = GPSParser::sendNmea(buf, len); + found = (len == sent); + stop(); return sent; } int GPSI2C::sendUbx(unsigned char cls, unsigned char id, const void* buf, int len) { int sent = 0; - if (len) - { - if (!I2C::write(GPSADR,®STREAM,sizeof(REGSTREAM),true)) - sent = GPSParser::sendUbx(cls, id, buf, len); - found = (len == sent); - stop(); - } + if (!I2C::write(GPSADR,®STREAM,sizeof(REGSTREAM),true)) + sent = GPSParser::sendUbx(cls, id, buf, len); + found = (len == sent); + stop(); return sent; }
--- a/GPS.h Thu Nov 14 12:57:21 2013 +0000 +++ b/GPS.h Thu Nov 14 15:52:36 2013 +0000 @@ -22,7 +22,7 @@ virtual int getMessage(char* buf, int len) = 0; virtual 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, int len); + virtual int sendUbx(unsigned char cls, unsigned char id, const void* buf = NULL, int len = 0); static const char* findNmeaItemPos(int ix, const char* start, const char* end); static bool getNmeaItem(int ix, char* buf, int len, double& val); @@ -58,7 +58,7 @@ virtual int getMessage(char* buf, int len); virtual 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, int len); + virtual int sendUbx(unsigned char cls, unsigned char id, const void* buf = NULL, int len = 0); protected: virtual char next(void); bool writeable(void) { return true; }
--- a/SerialPipe.cpp Thu Nov 14 12:57:21 2013 +0000 +++ b/SerialPipe.cpp Thu Nov 14 15:52:36 2013 +0000 @@ -16,26 +16,29 @@ } // tx channel -int SerialPipe::put(const char* b, int s, bool t) +int SerialPipe::put(const char* b, int n, bool t) { - int c = 0; - while (s && t) + int c = n; + while (c && t) { - c += _pipeTx.put(b, s, false); - b ++; - s --; + int i = _pipeTx.put(b, c, false); + b += i; + c -= i; // give a chance to start tx __disable_irq(); txIrqBuf(); __enable_irq(); } - return c; + return (n - c); } void SerialPipe::txIrqBuf(void) { while (serial_writable(&_serial) && _pipeTx.readable()) - serial_putc(&_serial, _pipeTx.getc()); + { + char ch = _pipeTx.getc(); + serial_putc(&_serial, ch); + } } // rx channel