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

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;
         }
     }