summaryrefslogtreecommitdiffstats
path: root/source/Concept/Framework/modules
diff options
context:
space:
mode:
Diffstat (limited to 'source/Concept/Framework/modules')
-rwxr-xr-xsource/Concept/Framework/modules/executor/navigator.c2
-rw-r--r--source/Concept/Framework/modules/interpreter/command_handler.c45
-rw-r--r--source/Concept/Framework/modules/interpreter/command_handler.h43
3 files changed, 88 insertions, 2 deletions
diff --git a/source/Concept/Framework/modules/executor/navigator.c b/source/Concept/Framework/modules/executor/navigator.c
index 023bf79..7c4618a 100755
--- a/source/Concept/Framework/modules/executor/navigator.c
+++ b/source/Concept/Framework/modules/executor/navigator.c
@@ -234,8 +234,6 @@ void Navigator::CalculateEngines()
//(parent->GetModule<Display>(IO_DISPLAY_MAIN))->Print(vBack,10,3);
//(parent->GetModule<Display>(IO_DISPLAY_MAIN))->Print(vRight,10,4);
-
-
// Transfer the values to the engines
Engine* curEngine = parent->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT);
curEngine->SetSpeed(vLeft);
diff --git a/source/Concept/Framework/modules/interpreter/command_handler.c b/source/Concept/Framework/modules/interpreter/command_handler.c
new file mode 100644
index 0000000..dcd97b2
--- /dev/null
+++ b/source/Concept/Framework/modules/interpreter/command_handler.c
@@ -0,0 +1,45 @@
+#include "command_handler.h"
+
+//-----------------------------------------------------------------------------
+void Command_Handler::Update()
+{
+ Keyboard* ourKeyboard = parent->GetModule<Keyboard>(IO_KEYBOARD_MAIN);
+
+ uint8 curInput = ourKeyboard->GetInput();
+
+
+ while(curInput != 0xEE && curInput != 0xFF)
+ {
+ if(curInput == 10)
+ {
+ ExecuteCommand();
+ }
+ else if(curInput == 11)
+ {
+ if(this->currentCommandLength > 0)
+ {
+ this->currentCommandLength--;
+ this->buffer[currentCommandLength] = NULL;
+ }
+ }
+ else if(curInput >= 0 && curInput <= 9)
+ {
+ if(this->currentCommandLength < COMMAND_BUFFER_SIZE)
+ {
+ this->buffer[this->currentCommandLength] = '0' + curInput;
+ this->currentCommandLength++;
+ }
+ }
+
+ curInput = ourKeyboard->GetInput();
+ }
+}
+
+//-----------------------------------------------------------------------------
+void Command_Handler::ExecuteCommand()
+{
+ if(this->buffer[0] == '5')
+ {
+ this->displayDistanceSensors = true;
+ }
+}
diff --git a/source/Concept/Framework/modules/interpreter/command_handler.h b/source/Concept/Framework/modules/interpreter/command_handler.h
new file mode 100644
index 0000000..102797a
--- /dev/null
+++ b/source/Concept/Framework/modules/interpreter/command_handler.h
@@ -0,0 +1,43 @@
+#ifndef _COMMAND_HANDLER_H
+#define _COMMAND_HANDLER_H
+
+#include "../../stdafx.h"
+
+class Command_Handler : public IO_Module
+{
+public:
+ Command_Handler()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ this->currentCommandLength = 0;
+ this->displayDistanceSensors = false;
+ }
+
+ Command_Handler(uint32 commandHandlerId)
+ {
+ this->parent = NULL;
+ this->moduleId = commandHandlerId;
+ this->currentCommandLength = 0;
+ this->displayDistanceSensors = false;
+
+ for(uint8 i = 0; i < COMMAND_BUFFER_SIZE; i++)
+ {
+ buffer[i] = NULL;
+ }
+ }
+
+protected:
+ uint8 currentCommandLength;
+ char* buffer[COMMAND_BUFFER_SIZE];
+
+ void ExecuteCommand();
+
+public:
+ void Update();
+
+ //Command variables
+ bool displayDistanceSensors;
+};
+
+#endif