Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mtsas mtsas mtsas mtsas
Utils/MTSSerialRadioInterface.cpp@1:f155d94d6f3a, 2014-05-19 (annotated)
- Committer:
- Mike Fiore
- Date:
- Mon May 19 12:34:32 2014 -0500
- Revision:
- 1:f155d94d6f3a
add all cellular code, remove MBEDCellularRadioInterface
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Mike Fiore |
1:f155d94d6f3a | 1 | #include "MTSSerialRadioInterface.h" |
| Mike Fiore |
1:f155d94d6f3a | 2 | #include "MTSLog.h" |
| Mike Fiore |
1:f155d94d6f3a | 3 | |
| Mike Fiore |
1:f155d94d6f3a | 4 | using namespace mts; |
| Mike Fiore |
1:f155d94d6f3a | 5 | |
| Mike Fiore |
1:f155d94d6f3a | 6 | MTSSerialRadioInterface::MTSSerialRadioInterface(PinName TXD, PinName RXD, PinName RTS, PinName CTS, int txBufSize, int rxBufSize) { |
| Mike Fiore |
1:f155d94d6f3a | 7 | if (RTS == NC && CTS == NC) { |
| Mike Fiore |
1:f155d94d6f3a | 8 | io = new MTSSerial(TXD, RXD, txBufSize, rxBufSize); |
| Mike Fiore |
1:f155d94d6f3a | 9 | } else { |
| Mike Fiore |
1:f155d94d6f3a | 10 | io = new MTSSerialFlowControl(TXD, RXD, RTS, CTS, txBufSize, rxBufSize); |
| Mike Fiore |
1:f155d94d6f3a | 11 | } |
| Mike Fiore |
1:f155d94d6f3a | 12 | } |
| Mike Fiore |
1:f155d94d6f3a | 13 | |
| Mike Fiore |
1:f155d94d6f3a | 14 | MTSSerialRadioInterface::~MTSSerialRadioInterface() { |
| Mike Fiore |
1:f155d94d6f3a | 15 | delete io; |
| Mike Fiore |
1:f155d94d6f3a | 16 | } |
| Mike Fiore |
1:f155d94d6f3a | 17 | |
| Mike Fiore |
1:f155d94d6f3a | 18 | void MTSSerialRadioInterface::baud(unsigned int baud) { |
| Mike Fiore |
1:f155d94d6f3a | 19 | io->baud(baud); |
| Mike Fiore |
1:f155d94d6f3a | 20 | } |
| Mike Fiore |
1:f155d94d6f3a | 21 | |
| Mike Fiore |
1:f155d94d6f3a | 22 | void MTSSerialRadioInterface::format(int bits, Parity parity, int stop_bits) { |
| Mike Fiore |
1:f155d94d6f3a | 23 | io->format(bits, parity, stop_bits); |
| Mike Fiore |
1:f155d94d6f3a | 24 | } |
| Mike Fiore |
1:f155d94d6f3a | 25 | |
| Mike Fiore |
1:f155d94d6f3a | 26 | bool MTSSerialRadioInterface::putc(char data, unsigned int timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 27 | if (timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 28 | return io->write(data, timeoutMillis) ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 29 | } else { |
| Mike Fiore |
1:f155d94d6f3a | 30 | return io->write(data) ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 31 | } |
| Mike Fiore |
1:f155d94d6f3a | 32 | } |
| Mike Fiore |
1:f155d94d6f3a | 33 | |
| Mike Fiore |
1:f155d94d6f3a | 34 | int MTSSerialRadioInterface::write(char* data, int size, unsigned int timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 35 | if (size < 0) { |
| Mike Fiore |
1:f155d94d6f3a | 36 | log_err("cannot write fewer than 0 bytes"); |
| Mike Fiore |
1:f155d94d6f3a | 37 | return -1; |
| Mike Fiore |
1:f155d94d6f3a | 38 | } |
| Mike Fiore |
1:f155d94d6f3a | 39 | |
| Mike Fiore |
1:f155d94d6f3a | 40 | if (timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 41 | return io->write(data, size, timeoutMillis); |
| Mike Fiore |
1:f155d94d6f3a | 42 | } else { |
| Mike Fiore |
1:f155d94d6f3a | 43 | return io->write(data, size); |
| Mike Fiore |
1:f155d94d6f3a | 44 | } |
| Mike Fiore |
1:f155d94d6f3a | 45 | } |
| Mike Fiore |
1:f155d94d6f3a | 46 | |
| Mike Fiore |
1:f155d94d6f3a | 47 | bool MTSSerialRadioInterface::writeable() { |
| Mike Fiore |
1:f155d94d6f3a | 48 | return io->writeable() ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 49 | } |
| Mike Fiore |
1:f155d94d6f3a | 50 | |
| Mike Fiore |
1:f155d94d6f3a | 51 | bool MTSSerialRadioInterface::getc(char& data, unsigned int timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 52 | if (timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 53 | return io->read(data, timeoutMillis) ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 54 | } else { |
| Mike Fiore |
1:f155d94d6f3a | 55 | return io->read(data) ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 56 | } |
| Mike Fiore |
1:f155d94d6f3a | 57 | } |
| Mike Fiore |
1:f155d94d6f3a | 58 | |
| Mike Fiore |
1:f155d94d6f3a | 59 | int MTSSerialRadioInterface::read(char* data, int size, unsigned int timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 60 | if (size < 0) { |
| Mike Fiore |
1:f155d94d6f3a | 61 | log_err("cannot read fewer than 0 bytes"); |
| Mike Fiore |
1:f155d94d6f3a | 62 | return -1; |
| Mike Fiore |
1:f155d94d6f3a | 63 | } else if (size == 0) { |
| Mike Fiore |
1:f155d94d6f3a | 64 | return 0; |
| Mike Fiore |
1:f155d94d6f3a | 65 | } |
| Mike Fiore |
1:f155d94d6f3a | 66 | |
| Mike Fiore |
1:f155d94d6f3a | 67 | if (timeoutMillis) { |
| Mike Fiore |
1:f155d94d6f3a | 68 | return io->read(data, size, timeoutMillis); |
| Mike Fiore |
1:f155d94d6f3a | 69 | } else { |
| Mike Fiore |
1:f155d94d6f3a | 70 | return io->read(data, size); |
| Mike Fiore |
1:f155d94d6f3a | 71 | } |
| Mike Fiore |
1:f155d94d6f3a | 72 | } |
| Mike Fiore |
1:f155d94d6f3a | 73 | |
| Mike Fiore |
1:f155d94d6f3a | 74 | bool MTSSerialRadioInterface::readable() { |
| Mike Fiore |
1:f155d94d6f3a | 75 | return io->readable() ? true : false; |
| Mike Fiore |
1:f155d94d6f3a | 76 | } |