support library for C027 helper functions for Buffer Pipes, Buffered Serial Port (rtos capable) and GPS parsing. It includes modem APIs for USSD, SMS and Sockets.

Fork of C027_Support by u-blox

Revision:
3:c7cd4887560d
Parent:
2:b6012cd91657
Child:
4:c959dd4c5fe8
diff -r b6012cd91657 -r c7cd4887560d GPS.h
--- 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;