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
io/MTSBufferedIO.h@41:81d035fb0b6a, 2013-12-19 (annotated)
- Committer:
- sgodinez
- Date:
- Thu Dec 19 21:16:30 2013 +0000
- Revision:
- 41:81d035fb0b6a
- Parent:
- 17:2d7c4ea7491b
- Child:
- 43:3cacf019ed7d
Added echo client test
Who changed what in which revision?
User | Revision | Line number | New 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 | |
sgodinez | 41:81d035fb0b6a | 13 | int write(const char* data, int length); |
jengbrecht | 0:563b70517320 | 14 | int write(char data); |
sgodinez | 17:2d7c4ea7491b | 15 | int writeable(); |
jengbrecht | 0:563b70517320 | 16 | int read(char* data, int length); |
sgodinez | 17:2d7c4ea7491b | 17 | int read(char& data); |
sgodinez | 17:2d7c4ea7491b | 18 | int readable(); |
jengbrecht | 0:563b70517320 | 19 | |
jengbrecht | 0:563b70517320 | 20 | template<typename T> |
jengbrecht | 0:563b70517320 | 21 | void attach(T *tptr, void(T::*mptr)(void), int threshold, Vars::RelationalOperator op, Serial::IrqType type); |
jengbrecht | 0:563b70517320 | 22 | |
jengbrecht | 0:563b70517320 | 23 | void attach(void(*fptr)(void), int threshold, Vars::RelationalOperator op, Serial::IrqType type); |
jengbrecht | 0:563b70517320 | 24 | |
jengbrecht | 0:563b70517320 | 25 | bool txEmpty(); |
jengbrecht | 0:563b70517320 | 26 | bool rxEmpty(); |
jengbrecht | 0:563b70517320 | 27 | bool txFull(); |
jengbrecht | 0:563b70517320 | 28 | bool rxFull(); |
jengbrecht | 0:563b70517320 | 29 | void txClear(); |
jengbrecht | 0:563b70517320 | 30 | void rxClear(); |
jengbrecht | 0:563b70517320 | 31 | int txAvailable(); |
jengbrecht | 0:563b70517320 | 32 | int rxAvailable(); |
jengbrecht | 0:563b70517320 | 33 | int txCapacity(); |
jengbrecht | 0:563b70517320 | 34 | int rxCapacity(); |
jengbrecht | 0:563b70517320 | 35 | |
jengbrecht | 0:563b70517320 | 36 | virtual void handleWrite() = 0; |
jengbrecht | 0:563b70517320 | 37 | virtual void handleRead() = 0; |
jengbrecht | 0:563b70517320 | 38 | |
jengbrecht | 0:563b70517320 | 39 | protected: |
jengbrecht | 0:563b70517320 | 40 | MTSCircularBuffer* txBuffer; |
jengbrecht | 0:563b70517320 | 41 | MTSCircularBuffer* rxBuffer; |
jengbrecht | 0:563b70517320 | 42 | }; |
jengbrecht | 0:563b70517320 | 43 | |
jengbrecht | 0:563b70517320 | 44 | #endif /* MTSBUFFEREDIO_H */ |