Own fork of C027_Support
Dependents: MbedSmartRestMain MbedSmartRestMain
Fork of C027_Support by
Diff: GPS.h
- Revision:
- 3:c7cd4887560d
- Parent:
- 2:b6012cd91657
- Child:
- 4:c959dd4c5fe8
--- a/GPS.h Fri Oct 25 08:47:22 2013 +0000 +++ b/GPS.h Fri Oct 25 09:45:55 2013 +0000 @@ -17,8 +17,8 @@ #define PROTOCOL(x) (x & 0xFF0000) virtual int getMessage(char* buf, int len) = 0; - virtual int putNmea(const char* buf, int len) = 0; - virtual int putUbx(const unsigned char cls, unsigned char id, unsigned char* buf, int len) = 0; + virtual int sendNmea(const char* buf, int len) = 0; + virtual int sendUbx(unsigned char cls, unsigned char id, const void* buf, 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); @@ -28,8 +28,7 @@ static int _getMessage(Pipe<char>* pipe, char* buf, int len); static int _parseNmea(Pipe<char>* pipe, int len); static int _parseUbx(Pipe<char>* pipe, int len); - static int _putNmea(Stream* stream, const char* buf, int len); - static int _putUbx(Stream* stream, const unsigned char cls, unsigned char id, unsigned char* buf, int len); + virtual int send(const void* buf, int len) = 0; static const char toHex[16]; }; @@ -40,13 +39,10 @@ virtual ~GPSSerial(void); virtual int getMessage(char* buf, int len); - virtual int putNmea(const char* buf, int len) - { return _putNmea(this, buf, len); } - virtual int putUbx(const unsigned char cls, unsigned char id, unsigned char* buf, int len) - { return _putUbx(this, cls, id, buf, len); } protected: void serialRxIrq(void); - virtual char next(void) { return _pipe.next(); } + virtual char next(void); + virtual int send(const void* buf, int len); Pipe<char> _pipe; }; @@ -57,16 +53,13 @@ bool detect(void); virtual int getMessage(char* buf, int len); - // - virtual int putNmea(const char* buf, int len) - { return 0/*_putNmea(NULL, buf, len)*/; } - virtual int putUbx(const unsigned char cls, unsigned char id, unsigned char* buf, int len) - { return 0/*_putUbx(NULL, cls, id, buf, len)*/; } + virtual int sendNmea(const char* buf, int len); + virtual int sendUbx(unsigned char cls, unsigned char id, const void* buf, int len); protected: - virtual char next(void) { return _pipe.next(); } - int _get(char* buf, int len); // read the NMEA or UBX stream - int _put(const char* buf, int len); // Write the NMEA or UBX stream - + virtual char next(void); + virtual int send(const void* buf, int len); + int _get(char* buf, int len); // read the NMEA or UBX stream + Pipe<char> _pipe; bool found; static const char REGLEN;