C027 support

Fork of C027_Support by u-blox

Committer:
mazgch
Date:
Mon Mar 24 07:38:05 2014 +0000
Revision:
19:2b5d097ca15d
Parent:
18:e5697801df29
Child:
21:c4d64830bf02
prepare for native C027 platform support; add api to get lat/lon; better separation of mdm libarary from serial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazgch 17:296d94a006b4 1 #pragma once
mazgch 17:296d94a006b4 2
mazgch 17:296d94a006b4 3 #include "mbed.h"
mazgch 18:e5697801df29 4 #include "Pipe.h"
mazgch 18:e5697801df29 5 #include "SerialPipe.h"
mazgch 17:296d94a006b4 6
mazgch 19:2b5d097ca15d 7 #ifdef TARGET_UBLOX_C027
mazgch 19:2b5d097ca15d 8 // if we detect the C027 platform we will assign the
mazgch 19:2b5d097ca15d 9 // default pinname and baudrate in the constructor
mazgch 19:2b5d097ca15d 10 // this helper macro will be used.
mazgch 19:2b5d097ca15d 11 #define _C027DEFAULT(name) = name
mazgch 19:2b5d097ca15d 12 #else
mazgch 19:2b5d097ca15d 13 #define _C027DEFAULT(name)
mazgch 19:2b5d097ca15d 14 #endif
mazgch 18:e5697801df29 15
mazgch 18:e5697801df29 16 class MDMParser
mazgch 18:e5697801df29 17 {
mazgch 18:e5697801df29 18 public:
mazgch 18:e5697801df29 19 #define WAIT -1
mazgch 18:e5697801df29 20 #define NOT_FOUND 0
mazgch 18:e5697801df29 21
mazgch 18:e5697801df29 22 #define LENGTH(x) (x & 0x00FFFF)
mazgch 18:e5697801df29 23 // #define PROTOCOL(x) (x & 0xFF0000)
mazgch 18:e5697801df29 24 virtual int getLine(char* buf, int len) = 0;
mazgch 18:e5697801df29 25 virtual int getResp(char* buf, int len) = 0;
mazgch 18:e5697801df29 26 virtual int send(const char* buf, int len);
mazgch 18:e5697801df29 27
mazgch 18:e5697801df29 28 protected:
mazgch 18:e5697801df29 29 static int _getLine(Pipe<char>* pipe, char* buffer, int length);
mazgch 18:e5697801df29 30 static int _getResp(Pipe<char>* pipe, char* buffer, int length);
mazgch 18:e5697801df29 31 virtual int _send(const void* buf, int len) = 0;
mazgch 18:e5697801df29 32 };
mazgch 18:e5697801df29 33
mazgch 18:e5697801df29 34 // -----------------------------------------------------------------------
mazgch 18:e5697801df29 35
mazgch 18:e5697801df29 36 class MDMSerial : public SerialPipe, public MDMParser
mazgch 17:296d94a006b4 37 {
mazgch 17:296d94a006b4 38 public:
mazgch 19:2b5d097ca15d 39 MDMSerial(PinName tx _C027DEFAULT(MDMTXD),
mazgch 19:2b5d097ca15d 40 PinName rx _C027DEFAULT(MDMRXD),
mazgch 19:2b5d097ca15d 41 int baudrate _C027DEFAULT(MDMBAUD),
mazgch 19:2b5d097ca15d 42 #if DEVICE_SERIAL_FC
mazgch 19:2b5d097ca15d 43 PinName rts _C027DEFAULT(MDMRTS),
mazgch 19:2b5d097ca15d 44 PinName cts _C027DEFAULT(MDMCTS),
mazgch 19:2b5d097ca15d 45 #endif
mazgch 19:2b5d097ca15d 46 int rxSize = 256 ,
mazgch 19:2b5d097ca15d 47 int txSize = 256 );
mazgch 18:e5697801df29 48 virtual int getLine(char* buffer, int length);
mazgch 18:e5697801df29 49 virtual int getResp(char* buffer, int length);
mazgch 18:e5697801df29 50 protected:
mazgch 18:e5697801df29 51 virtual int _send(const void* buf, int len);
mazgch 17:296d94a006b4 52 };
mazgch 18:e5697801df29 53
mazgch 18:e5697801df29 54 // -----------------------------------------------------------------------
mazgch 18:e5697801df29 55
mazgch 18:e5697801df29 56 #define HAVE_MDMUSB
mazgch 18:e5697801df29 57 #ifdef HAVE_MDMUSB
mazgch 18:e5697801df29 58 class MDMUsb : /*public UsbSerial,*/ public MDMParser
mazgch 18:e5697801df29 59 {
mazgch 18:e5697801df29 60 public:
mazgch 18:e5697801df29 61 MDMUsb(void);
mazgch 18:e5697801df29 62 virtual int getLine(char* buffer, int length);
mazgch 18:e5697801df29 63 virtual int getResp(char* buffer, int length);
mazgch 18:e5697801df29 64 protected:
mazgch 18:e5697801df29 65 virtual int _send(const void* buf, int len);
mazgch 18:e5697801df29 66 };
mazgch 18:e5697801df29 67 #endif
mazgch 18:e5697801df29 68
mazgch 18:e5697801df29 69