+++ implemented command handler

This commit is contained in:
masterm 2007-02-22 23:37:00 +00:00
parent e51f1c2038
commit b18e19bee5
8 changed files with 132 additions and 12 deletions

View file

@ -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;
}
}

View file

@ -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