Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: C027Interface C027Interface C027_SupportTest
Fork of C027_Support 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
