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:
- 140:bf0c8288eb78
- Parent:
- 129:3aa470877c59
- Child:
- 141:571e0ef6c8dc
--- a/io/MTSSerial.cpp Sat Jan 04 04:22:29 2014 +0000 +++ b/io/MTSSerial.cpp Sat Jan 04 05:07:22 2014 +0000 @@ -2,9 +2,9 @@ using namespace mts; -MTSSerial::MTSSerial(PinName TXD, PinName RXD, int txBufferSize, int rxBufferSize) -: MTSBufferedIO(txBufferSize, rxBufferSize) -, serial(TXD,RXD) +MTSSerial::MTSSerial(PinName TXD, PinName RXD, int txBufferSize, int rxBufferSize) + : MTSBufferedIO(txBufferSize, rxBufferSize) + , serial(TXD,RXD) { serial.attach(this, &MTSSerial::handleRead, Serial::RxIrq); //serial.attach(this, &MTSSerial::handleWrite, Serial::TxIrq); @@ -31,6 +31,11 @@ char byte = serial.getc(); if(rxBuffer.write(byte) != 1) { printf("[ERROR] Serial Rx Byte Dropped [%c][0x%02X]\r\n", byte, byte); + if(byte == 0xFF) { + serial.attach(NULL, Serial::RxIrq); + serial.attach(this, &MTSSerial::handleRead, Serial::RxIrq); + printf("[INFO] Reset the RxIrq.\n\r"); + } return; } }