summaryrefslogtreecommitdiff
path: root/CommandTerminal
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
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')
-rw-r--r--CommandTerminal/CommandTerminal.cpp25
-rw-r--r--CommandTerminal/CommandTerminal.h8
2 files changed, 28 insertions, 5 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;
}
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();