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
Diff: io/MTSSerial.cpp
- Revision:
- 81:45e1359a5c69
- Parent:
- 67:1003b410f781
- Child:
- 85:b17ad6781c5b
--- a/io/MTSSerial.cpp Fri Dec 27 14:43:36 2013 +0000 +++ b/io/MTSSerial.cpp Fri Dec 27 15:19:49 2013 +0000 @@ -29,9 +29,12 @@ void MTSSerial::handleRead() { - while (serial->readable()) { + while (serial->readable() && rxBuffer->remaining()) { rxBuffer->write(serial->getc()); } + if (!rxBuffer->remaining() && serial->readable()) { + printf("[WARNING] Receieve buffer full, possible data loss.\r\n"); + } } // Currently uses Non-Irq based blocking write calls @@ -44,26 +47,9 @@ serial->putc(byte); } } else { - wait(.05); + return; } } } -// TxIrq based, review code before using!!! -/* -void MTSSerial::handleWrite() -{ - int size = writeSize; - int available = txBuffer->size(); - if (available == 0) { - return; - } - if (available < writeSize) { - size = available; - } - for (int i = 0; i < size; i++) { - serial->putc(txBuffer->read()); - } -} -*/ #endif /* MTSSERIAL_CPP */ \ No newline at end of file