From eb527712baa96d65f0a4bd5d0ce3ec19a708f6f7 Mon Sep 17 00:00:00 2001 From: Leon Lindenfelser Date: Thu, 19 Nov 2015 15:12:11 -0600 Subject: Added ModeConfig code. It builds, the screen works and a debug message for config mode prints but the AT command parser is not working. --- CommandTerminal/CommandTerminal.cpp | 25 ++++++++++++++++++++++--- CommandTerminal/CommandTerminal.h | 8 ++++++-- 2 files changed, 28 insertions(+), 5 deletions(-) (limited to 'CommandTerminal') diff --git a/CommandTerminal/CommandTerminal.cpp b/CommandTerminal/CommandTerminal.cpp index 28c047f..9ca6b30 100644 --- a/CommandTerminal/CommandTerminal.cpp +++ b/CommandTerminal/CommandTerminal.cpp @@ -2,6 +2,7 @@ #include "CommandTerminal.h" #include "Command.h" #include "MTSLog.h" +#include "ButtonHandler.h" #include #include @@ -28,13 +29,14 @@ void CommandTerminal::addCommand(Command* cmd) { _commands.push_back(cmd); } -CommandTerminal::CommandTerminal(mts::MTSSerial& serial, mDot* dot) +CommandTerminal::CommandTerminal(mts::MTSSerial& serial, mDot* dot, ButtonHandler* buttons) : _serial(serial), _dot(dot), _mode(mDot::COMMAND_MODE), _idle_thread(idle, NULL, osPriorityLow), - _serial_up(false) { + _serial_up(false), + _buttons(buttons) { _serialp = &serial; @@ -141,7 +143,7 @@ void CommandTerminal::writef(const char* format, ...) { va_end(ap); } -void CommandTerminal::start() { +bool CommandTerminal::start() { char ch; bool running = true; bool echo = _dot->getEcho(); @@ -185,6 +187,22 @@ void CommandTerminal::start() { //Run terminal session while (running) { + + osEvent e = Thread::signal_wait(buttonSignal); + if (e.status == osEventSignal) { + ButtonHandler::ButtonEvent _be = _buttons->getButtonEvent(); + switch (_be) { + case ButtonHandler::sw1_press: + break; + case ButtonHandler::sw2_press: + break; + case ButtonHandler::sw1_hold: + return true; + default: + break; + } + } + ch = '\0'; // read characters @@ -354,4 +372,5 @@ void CommandTerminal::start() { history.pop_back(); } + return false; } diff --git a/CommandTerminal/CommandTerminal.h b/CommandTerminal/CommandTerminal.h index 0fcb9c4..b6c58c8 100644 --- a/CommandTerminal/CommandTerminal.h +++ b/CommandTerminal/CommandTerminal.h @@ -36,6 +36,8 @@ #include "MTSSerial.h" #include "Commands.h" #include "mDot.h" +#include "ButtonHandler.h" + /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __command_terminal_H__ @@ -53,7 +55,7 @@ public: WAIT_NA }; - CommandTerminal(mts::MTSSerial& serial, mDot* dot); + CommandTerminal(mts::MTSSerial& serial, mDot* dot, ButtonHandler* buttons); // Command prompt text... static const char banner[]; @@ -73,7 +75,7 @@ public: // Escape sequence static const char escape_sequence[]; - void start(); + bool start(); private: @@ -91,6 +93,8 @@ private: Thread _idle_thread; bool _serial_up; + ButtonHandler* _buttons; + void addCommand(Command* cmd); void printHelp(); -- cgit v1.2.3