ME910 support

Fork of MTS-Cellular by MultiTech

Committer:
Mike Fiore
Date:
Mon May 19 12:34:32 2014 -0500
Revision:
1:f155d94d6f3a
Child:
4:1f63354b8d1b
add all cellular code, remove MBEDCellularRadioInterface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:f155d94d6f3a 1 #include "Terminal.h"
Mike Fiore 1:f155d94d6f3a 2
Mike Fiore 1:f155d94d6f3a 3 using namespace mts;
Mike Fiore 1:f155d94d6f3a 4
Mike Fiore 1:f155d94d6f3a 5 Terminal::Terminal(MTSBufferedIO* io) : io(io), index(0)
Mike Fiore 1:f155d94d6f3a 6 {
Mike Fiore 1:f155d94d6f3a 7 terminal = new MTSSerial(USBTX, USBRX);
Mike Fiore 1:f155d94d6f3a 8 }
Mike Fiore 1:f155d94d6f3a 9
Mike Fiore 1:f155d94d6f3a 10 Terminal::~Terminal()
Mike Fiore 1:f155d94d6f3a 11 {
Mike Fiore 1:f155d94d6f3a 12 delete terminal;
Mike Fiore 1:f155d94d6f3a 13 }
Mike Fiore 1:f155d94d6f3a 14
Mike Fiore 1:f155d94d6f3a 15 void Terminal::start()
Mike Fiore 1:f155d94d6f3a 16 {
Mike Fiore 1:f155d94d6f3a 17 //Setup terminal session
Mike Fiore 1:f155d94d6f3a 18 printf("Starting Terminal Mode.\n\r");
Mike Fiore 1:f155d94d6f3a 19 char buffer[256];
Mike Fiore 1:f155d94d6f3a 20 bool running = true;
Mike Fiore 1:f155d94d6f3a 21
Mike Fiore 1:f155d94d6f3a 22 //Run terminal session
Mike Fiore 1:f155d94d6f3a 23 while (running) {
Mike Fiore 1:f155d94d6f3a 24 //Write terminal data to interface
Mike Fiore 1:f155d94d6f3a 25 int terminalRead = terminal->readable();
Mike Fiore 1:f155d94d6f3a 26 terminal->read(buffer, terminalRead);
Mike Fiore 1:f155d94d6f3a 27 io->write(buffer, terminalRead);
Mike Fiore 1:f155d94d6f3a 28
Mike Fiore 1:f155d94d6f3a 29 //Check for exit condition
Mike Fiore 1:f155d94d6f3a 30 for (int i = 0; i < terminalRead; i++) {
Mike Fiore 1:f155d94d6f3a 31 if (index < (exitMsg.size() - 1)) {
Mike Fiore 1:f155d94d6f3a 32 if(buffer[i] == exitMsg[index]) {
Mike Fiore 1:f155d94d6f3a 33 index++;
Mike Fiore 1:f155d94d6f3a 34 } else {
Mike Fiore 1:f155d94d6f3a 35 index = 0;
Mike Fiore 1:f155d94d6f3a 36 }
Mike Fiore 1:f155d94d6f3a 37 } else {
Mike Fiore 1:f155d94d6f3a 38 running = false;
Mike Fiore 1:f155d94d6f3a 39 wait(.1);
Mike Fiore 1:f155d94d6f3a 40 }
Mike Fiore 1:f155d94d6f3a 41 }
Mike Fiore 1:f155d94d6f3a 42
Mike Fiore 1:f155d94d6f3a 43 //Write interface data to the terminal
Mike Fiore 1:f155d94d6f3a 44 int ioRead = io->readable();
Mike Fiore 1:f155d94d6f3a 45 io->read(buffer, ioRead);
Mike Fiore 1:f155d94d6f3a 46 terminal->write(buffer, ioRead);
Mike Fiore 1:f155d94d6f3a 47 }
Mike Fiore 1:f155d94d6f3a 48
Mike Fiore 1:f155d94d6f3a 49 //Cleanup and return
Mike Fiore 1:f155d94d6f3a 50 io->txClear();
Mike Fiore 1:f155d94d6f3a 51 io->rxClear();
Mike Fiore 1:f155d94d6f3a 52 printf("\n\rExited Terminal Mode.\n\r");
Mike Fiore 1:f155d94d6f3a 53 }