summaryrefslogtreecommitdiff
path: root/CommandTerminal/CommandTerminal.cpp
diff options
context:
space:
mode:
authorLeon Lindenfelser <llindenfelser@multitech.com>2015-11-19 15:12:11 -0600
committerLeon Lindenfelser <llindenfelser@multitech.com>2015-11-19 15:12:11 -0600
commiteb527712baa96d65f0a4bd5d0ce3ec19a708f6f7 (patch)
tree005eae7e9d4246570aa01c640fb0ccc1fbc89623 /CommandTerminal/CommandTerminal.cpp
parent8167e5ad0453f2e6855f9622c2acddb9cf55c941 (diff)
downloadmtdot-box-evb-factory-firmware-eb527712baa96d65f0a4bd5d0ce3ec19a708f6f7.tar.gz
mtdot-box-evb-factory-firmware-eb527712baa96d65f0a4bd5d0ce3ec19a708f6f7.tar.bz2
mtdot-box-evb-factory-firmware-eb527712baa96d65f0a4bd5d0ce3ec19a708f6f7.zip
Added ModeConfig code. It builds, the screen works and a debug message for config mode prints but
the AT command parser is not working.
Diffstat (limited to 'CommandTerminal/CommandTerminal.cpp')
-rw-r--r--CommandTerminal/CommandTerminal.cpp25
1 files changed, 22 insertions, 3 deletions
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 <cstdarg>
#include <deque>
@@ -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;
}