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.

Dependents:   HTTPClient_Cellular_HelloWorld Cellular_HelloMQTT MbedSmartRestMain Car_Bon_car_module ... more

This library is intended to be used with u-blox products such as the C027 or a shield with u-blox cellular and GPS modules like the cellular and positioning shield from Embedded Artist.

For 2G/GSM and 3G/UMTS you need to:

  • have a SIM card and know its PIN number
  • need to know you network operators APN setting These setting should be passed to the connect or init and join functions. You can also extend the APN database in MDMAPN.h.

For CDMA products you need to make sure that you have provisioned and activated the modem with either Sprint or Verizon.

Committer:
mazgch
Date:
Wed May 14 09:12:47 2014 +0000
Revision:
70:0a87d256cd24
Parent:
42:6786401ba18c
Child:
93:2b5478693c20
serial tx isr should now work on all platforms, moved some code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazgch 0:cb2d45baaca3 1 #pragma once
mazgch 0:cb2d45baaca3 2
mazgch 2:b6012cd91657 3 #include "mbed.h"
mazgch 0:cb2d45baaca3 4 #include "Pipe.h"
mazgch 0:cb2d45baaca3 5
mazgch 42:6786401ba18c 6 #define _SerialPipeBase SerialBase //!< base class used by this class
mazgch 15:5eda64e5b9d1 7
mazgch 42:6786401ba18c 8 /** Buffered serial interface (rtos capable/interrupt driven)
mazgch 42:6786401ba18c 9 */
mazgch 15:5eda64e5b9d1 10 class SerialPipe : public _SerialPipeBase
mazgch 0:cb2d45baaca3 11 {
mazgch 9:e7a5959ffae1 12 public:
mazgch 42:6786401ba18c 13 /** Constructor
mazgch 42:6786401ba18c 14 \param tx the trasmitting pin
mazgch 42:6786401ba18c 15 \param rx the receiving pin
mazgch 42:6786401ba18c 16 \param rxSize the size of the receiving buffer
mazgch 42:6786401ba18c 17 \param txSize the size of the transmitting buffer
mazgch 42:6786401ba18c 18 */
mazgch 15:5eda64e5b9d1 19 SerialPipe(PinName tx, PinName rx, int rxSize = 128, int txSize = 128);
mazgch 42:6786401ba18c 20
mazgch 42:6786401ba18c 21 /** Destructor
mazgch 42:6786401ba18c 22 */
mazgch 42:6786401ba18c 23 ~SerialPipe(void);
mazgch 42:6786401ba18c 24
mazgch 9:e7a5959ffae1 25 // tx channel
mazgch 42:6786401ba18c 26 //----------------------------------------------------
mazgch 42:6786401ba18c 27
mazgch 42:6786401ba18c 28 /** check if writable
mazgch 42:6786401ba18c 29 return the number of free bytes
mazgch 42:6786401ba18c 30 */
mazgch 13:e2446fcdc246 31 int writeable(void);
mazgch 42:6786401ba18c 32
mazgch 42:6786401ba18c 33 /** send a character (blocking)
mazgch 42:6786401ba18c 34 \param c the character to send
mazgch 42:6786401ba18c 35 \return c
mazgch 42:6786401ba18c 36 */
mazgch 42:6786401ba18c 37 int putc(int c);
mazgch 42:6786401ba18c 38
mazgch 42:6786401ba18c 39 /** send a buffer
mazgch 42:6786401ba18c 40 \param buffer the buffer to send
mazgch 42:6786401ba18c 41 \param length the size of the buffer to send
mazgch 42:6786401ba18c 42 \param blocking, if true this function will block
mazgch 42:6786401ba18c 43 until all bytes placed in the buffer.
mazgch 42:6786401ba18c 44 \return the number of bytes written
mazgch 42:6786401ba18c 45 */
mazgch 15:5eda64e5b9d1 46 int put(const void* buffer, int length, bool blocking);
mazgch 42:6786401ba18c 47
mazgch 9:e7a5959ffae1 48 // rx channel
mazgch 42:6786401ba18c 49 //----------------------------------------------------
mazgch 42:6786401ba18c 50
mazgch 42:6786401ba18c 51 /** check if readable
mazgch 42:6786401ba18c 52 \return the size available in the buffer.
mazgch 42:6786401ba18c 53 */
mazgch 9:e7a5959ffae1 54 int readable(void);
mazgch 42:6786401ba18c 55
mazgch 42:6786401ba18c 56 /** receive one character from the serial port (blocking)
mazgch 42:6786401ba18c 57 \param the character received
mazgch 42:6786401ba18c 58 */
mazgch 42:6786401ba18c 59 int getc(void);
mazgch 42:6786401ba18c 60
mazgch 42:6786401ba18c 61 /** read a buffer from the serial port
mazgch 42:6786401ba18c 62 \param pointer to the buffer to read.
mazgch 42:6786401ba18c 63 \param length number of bytes to read
mazgch 42:6786401ba18c 64 \param blocking true if all bytes shall be read. false if only the available bytes.
mazgch 42:6786401ba18c 65 \return the number of bytes read.
mazgch 42:6786401ba18c 66 */
mazgch 15:5eda64e5b9d1 67 int get(void* buffer, int length, bool blocking);
mazgch 42:6786401ba18c 68
mazgch 13:e2446fcdc246 69 protected:
mazgch 42:6786401ba18c 70 //! receive interrupt routine
mazgch 9:e7a5959ffae1 71 void rxIrqBuf(void);
mazgch 42:6786401ba18c 72 //! transmit interrupt woutine
mazgch 9:e7a5959ffae1 73 void txIrqBuf(void);
mazgch 42:6786401ba18c 74 //! start transmission helper
mazgch 13:e2446fcdc246 75 void txStart(void);
mazgch 70:0a87d256cd24 76 //! move bytes to hardware
mazgch 70:0a87d256cd24 77 void txCopy(void);
mazgch 42:6786401ba18c 78 Pipe<char> _pipeRx; //!< receive pipe
mazgch 42:6786401ba18c 79 Pipe<char> _pipeTx; //!< transmit pipe
mazgch 9:e7a5959ffae1 80 };