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:
- 86:186bbf974c7c
- Parent:
- 85:b17ad6781c5b
- Child:
- 129:3aa470877c59
diff -r 9813f9b8ee68 -r 186bbf974c7c io/MTSSerial.cpp --- a/io/MTSSerial.cpp Fri Dec 27 15:55:35 2013 +0000 +++ b/io/MTSSerial.cpp Fri Dec 27 16:40:23 2013 +0000 @@ -1,38 +1,36 @@ -#ifndef MTSSERIAL_CPP -#define MTSSERIAL_CPP - #include "MTSSerial.h" using namespace mts; -MTSSerial::MTSSerial(PinName TXD, PinName RXD, int txBufferSize, int rxBufferSize, char* name) : MTSBufferedIO(txBufferSize, rxBufferSize), writeSize(30), if_name(name) +MTSSerial::MTSSerial(PinName TXD, PinName RXD, int txBufferSize, int rxBufferSize) +: MTSBufferedIO(txBufferSize, rxBufferSize) +, serial(TXD,RXD) { - serial = new Serial(TXD, RXD); - serial->attach(this, &MTSSerial::handleRead, Serial::RxIrq); - //serial->attach(this, &MTSSerial::handleWrite, Serial::TxIrq); + serial.attach(this, &MTSSerial::handleRead, Serial::RxIrq); + //serial.attach(this, &MTSSerial::handleWrite, Serial::TxIrq); } MTSSerial::~MTSSerial() { - delete serial; + } void MTSSerial::baud(int baudrate) { - serial->baud(baudrate); + serial.baud(baudrate); } void MTSSerial::format(int bits, SerialBase::Parity parity, int stop_bits) { - serial->format(bits, parity, stop_bits); + serial.format(bits, parity, stop_bits); } void MTSSerial::handleRead() { - while (serial->readable() && rxBuffer->remaining()) { - rxBuffer->write(serial->getc()); + while (serial.readable() && rxBuffer.remaining()) { + rxBuffer.write(serial.getc()); } - if (!rxBuffer->remaining() && serial->readable()) { + if (!rxBuffer.remaining() && serial.readable()) { printf("[WARNING] Receieve buffer full, possible data loss.\r\n"); } } @@ -40,11 +38,11 @@ // Currently uses Non-Irq based blocking write calls void MTSSerial::handleWrite() { - while(txBuffer->size() != 0) { - if (serial->writeable()) { + while(txBuffer.size() != 0) { + if (serial.writeable()) { char byte; - if(txBuffer->read(byte) == 1) { - serial->putc(byte); + if(txBuffer.read(byte) == 1) { + serial.putc(byte); } } else { return; @@ -52,4 +50,3 @@ } } -#endif /* MTSSERIAL_CPP */ \ No newline at end of file