A library for talking to Multi-Tech's Cellular SocketModem Devices.

Dependents:   M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more

Committer:
jengbrecht
Date:
Mon Dec 09 15:29:35 2013 +0000
Revision:
0:563b70517320
Child:
17:2d7c4ea7491b
Initial Commit Library!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jengbrecht 0:563b70517320 1 #ifndef MTSBUFFEREDIO_H
jengbrecht 0:563b70517320 2 #define MTSBUFFEREDIO_H
jengbrecht 0:563b70517320 3
jengbrecht 0:563b70517320 4 #include "mbed.h"
jengbrecht 0:563b70517320 5 #include "MTSCircularBuffer.h"
jengbrecht 0:563b70517320 6
jengbrecht 0:563b70517320 7 class MTSBufferedIO
jengbrecht 0:563b70517320 8 {
jengbrecht 0:563b70517320 9 public:
jengbrecht 0:563b70517320 10 MTSBufferedIO(int txBufferSize = 128, int rxBufferSize = 128);
jengbrecht 0:563b70517320 11 ~MTSBufferedIO();
jengbrecht 0:563b70517320 12
jengbrecht 0:563b70517320 13 int write(char* data, int length);
jengbrecht 0:563b70517320 14 int write(char data);
jengbrecht 0:563b70517320 15 int read(char* data, int length);
jengbrecht 0:563b70517320 16 int read();
jengbrecht 0:563b70517320 17
jengbrecht 0:563b70517320 18 template<typename T>
jengbrecht 0:563b70517320 19 void attach(T *tptr, void(T::*mptr)(void), int threshold, Vars::RelationalOperator op, Serial::IrqType type);
jengbrecht 0:563b70517320 20
jengbrecht 0:563b70517320 21 void attach(void(*fptr)(void), int threshold, Vars::RelationalOperator op, Serial::IrqType type);
jengbrecht 0:563b70517320 22
jengbrecht 0:563b70517320 23 bool txEmpty();
jengbrecht 0:563b70517320 24 bool rxEmpty();
jengbrecht 0:563b70517320 25 bool txFull();
jengbrecht 0:563b70517320 26 bool rxFull();
jengbrecht 0:563b70517320 27 void txClear();
jengbrecht 0:563b70517320 28 void rxClear();
jengbrecht 0:563b70517320 29 int txAvailable();
jengbrecht 0:563b70517320 30 int rxAvailable();
jengbrecht 0:563b70517320 31 int txCapacity();
jengbrecht 0:563b70517320 32 int rxCapacity();
jengbrecht 0:563b70517320 33
jengbrecht 0:563b70517320 34 virtual void handleWrite() = 0;
jengbrecht 0:563b70517320 35 virtual void handleRead() = 0;
jengbrecht 0:563b70517320 36
jengbrecht 0:563b70517320 37 protected:
jengbrecht 0:563b70517320 38 MTSCircularBuffer* txBuffer;
jengbrecht 0:563b70517320 39 MTSCircularBuffer* rxBuffer;
jengbrecht 0:563b70517320 40 };
jengbrecht 0:563b70517320 41
jengbrecht 0:563b70517320 42 #endif /* MTSBUFFEREDIO_H */