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:
sgodinez
Date:
Mon Dec 16 20:00:20 2013 +0000
Revision:
17:2d7c4ea7491b
Parent:
2:8d3ea0dfce39
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?

UserRevisionLine numberNew contents of line
jengbrecht 0:563b70517320 1 #ifndef MTSBUFFEREDIO_CPP
jengbrecht 0:563b70517320 2 #define MTSBUFFEREDIO_CPP
jengbrecht 0:563b70517320 3
jengbrecht 0:563b70517320 4 #include "MTSBufferedIO.h"
jengbrecht 0:563b70517320 5
jengbrecht 0:563b70517320 6 MTSBufferedIO::MTSBufferedIO(int txBufferSize, int rxBufferSize)
jengbrecht 0:563b70517320 7 {
jengbrecht 0:563b70517320 8 txBuffer = new MTSCircularBuffer(txBufferSize);
jengbrecht 0:563b70517320 9 rxBuffer = new MTSCircularBuffer(rxBufferSize);
jengbrecht 0:563b70517320 10 }
jengbrecht 0:563b70517320 11
jengbrecht 0:563b70517320 12 MTSBufferedIO::~MTSBufferedIO()
jengbrecht 0:563b70517320 13 {
jengbrecht 0:563b70517320 14 delete txBuffer;
jengbrecht 0:563b70517320 15 delete rxBuffer;
jengbrecht 0:563b70517320 16 }
jengbrecht 0:563b70517320 17
jengbrecht 0:563b70517320 18 int MTSBufferedIO::write(char* data, int length)
jengbrecht 0:563b70517320 19 {
jengbrecht 0:563b70517320 20 int tmp = txBuffer->write(data, length);
jengbrecht 0:563b70517320 21 handleWrite();
jengbrecht 0:563b70517320 22 return tmp;
jengbrecht 0:563b70517320 23 }
jengbrecht 0:563b70517320 24
jengbrecht 0:563b70517320 25 int MTSBufferedIO::write(char data)
jengbrecht 0:563b70517320 26 {
jengbrecht 0:563b70517320 27 int tmp = txBuffer->write(data);
jengbrecht 0:563b70517320 28 handleWrite();
jengbrecht 0:563b70517320 29 return tmp;
jengbrecht 0:563b70517320 30 }
jengbrecht 0:563b70517320 31
sgodinez 17:2d7c4ea7491b 32 int MTSBufferedIO::writeable() {
sgodinez 17:2d7c4ea7491b 33 return txBuffer->capacity();
sgodinez 17:2d7c4ea7491b 34 }
sgodinez 17:2d7c4ea7491b 35
jengbrecht 0:563b70517320 36 int MTSBufferedIO::read(char* data, int length)
jengbrecht 0:563b70517320 37 {
jengbrecht 0:563b70517320 38 return rxBuffer->read(data, length);
jengbrecht 0:563b70517320 39 }
jengbrecht 0:563b70517320 40
sgodinez 17:2d7c4ea7491b 41 int MTSBufferedIO::read(char& data)
jengbrecht 0:563b70517320 42 {
sgodinez 17:2d7c4ea7491b 43 return rxBuffer->read(data);
sgodinez 17:2d7c4ea7491b 44 }
sgodinez 17:2d7c4ea7491b 45
sgodinez 17:2d7c4ea7491b 46 int MTSBufferedIO::readable() {
sgodinez 17:2d7c4ea7491b 47 return rxBuffer->available();
jengbrecht 0:563b70517320 48 }
jengbrecht 0:563b70517320 49
jengbrecht 0:563b70517320 50 bool MTSBufferedIO::txEmpty()
jengbrecht 0:563b70517320 51 {
jengbrecht 0:563b70517320 52 return txBuffer->isEmpty();
jengbrecht 0:563b70517320 53 }
jengbrecht 0:563b70517320 54
jengbrecht 0:563b70517320 55 bool MTSBufferedIO::rxEmpty()
jengbrecht 0:563b70517320 56 {
jengbrecht 0:563b70517320 57 return rxBuffer->isEmpty();
jengbrecht 0:563b70517320 58 }
jengbrecht 0:563b70517320 59
jengbrecht 0:563b70517320 60 bool MTSBufferedIO::txFull()
jengbrecht 0:563b70517320 61 {
jengbrecht 0:563b70517320 62 return txBuffer->isFull();
jengbrecht 0:563b70517320 63 }
jengbrecht 0:563b70517320 64
jengbrecht 0:563b70517320 65 bool MTSBufferedIO::rxFull()
jengbrecht 0:563b70517320 66 {
jengbrecht 0:563b70517320 67 return rxBuffer->isFull();
jengbrecht 0:563b70517320 68 }
jengbrecht 0:563b70517320 69
jengbrecht 0:563b70517320 70 void MTSBufferedIO::txClear()
jengbrecht 0:563b70517320 71 {
jengbrecht 0:563b70517320 72 txBuffer->clear();
jengbrecht 0:563b70517320 73 }
jengbrecht 0:563b70517320 74
jengbrecht 0:563b70517320 75 void MTSBufferedIO::rxClear()
jengbrecht 0:563b70517320 76 {
jengbrecht 0:563b70517320 77 rxBuffer->clear();
jengbrecht 0:563b70517320 78 }
jengbrecht 0:563b70517320 79
jengbrecht 0:563b70517320 80 int MTSBufferedIO::txAvailable()
jengbrecht 0:563b70517320 81 {
jengbrecht 0:563b70517320 82 return txBuffer->available();
jengbrecht 0:563b70517320 83 }
jengbrecht 0:563b70517320 84
jengbrecht 0:563b70517320 85 int MTSBufferedIO::rxAvailable()
jengbrecht 0:563b70517320 86 {
jengbrecht 0:563b70517320 87 return rxBuffer->available();
jengbrecht 0:563b70517320 88 }
jengbrecht 0:563b70517320 89
jengbrecht 0:563b70517320 90 int MTSBufferedIO::txCapacity()
jengbrecht 0:563b70517320 91 {
jengbrecht 0:563b70517320 92 return txBuffer->capacity();
jengbrecht 0:563b70517320 93 }
jengbrecht 0:563b70517320 94
jengbrecht 0:563b70517320 95 int MTSBufferedIO::rxCapacity()
jengbrecht 0:563b70517320 96 {
jengbrecht 0:563b70517320 97 return rxBuffer->capacity();
jengbrecht 0:563b70517320 98 }
jengbrecht 0:563b70517320 99
jengbrecht 0:563b70517320 100 #endif /* MTSBUFFEREDSERIAL_CPP */