Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: M2X_dev axeda_wrapper_dev MTS_M2x_Example1 MTS_Cellular_Connect_Example ... more
io/MTSBufferedIO.h@17:2d7c4ea7491b, 2013-12-16 (annotated)
- Committer:
- sgodinez
- Date:
- Mon Dec 16 20:00:20 2013 +0000
- Revision:
- 17:2d7c4ea7491b
- Parent:
- 0:563b70517320
- Child:
- 36:bb6b293c7495
- Child:
- 39:6e94520a3217
- Child:
- 41:81d035fb0b6a
TCP send / receive working. close() still requires some finesse when other end disconnects.
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 | |
jengbrecht | 0:563b70517320 | 13 | int write(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 */ |