88 lines
1.3 KiB
C
88 lines
1.3 KiB
C
![]() |
#ifndef _KEYBOARD_H
|
||
|
#define _KEYBOARD_H
|
||
|
|
||
|
#include "stdafx.h"
|
||
|
|
||
|
class Keyboard : public IO_Module
|
||
|
{
|
||
|
public:
|
||
|
Keyboard()
|
||
|
{
|
||
|
this->parent = NULL;
|
||
|
this->moduleId = 0;
|
||
|
this->commandSetting = 0;
|
||
|
this->settingClearBuffer = 0;
|
||
|
}
|
||
|
|
||
|
Keyboard(uint32 keyboardId)
|
||
|
{
|
||
|
this->parent = NULL;
|
||
|
this->moduleId = keyboardId;
|
||
|
|
||
|
switch(keyboardId)
|
||
|
{
|
||
|
case IO_KEYBOARD_MAIN:
|
||
|
this->commandSetting = 27;
|
||
|
this->settingClearBuffer = 123;
|
||
|
break;
|
||
|
default:
|
||
|
this->commandSetting = 0;
|
||
|
this->settingClearBuffer = 0;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
//Commands
|
||
|
uint8 commandSetting;
|
||
|
//Settings
|
||
|
uint8 settingClearBuffer;
|
||
|
|
||
|
void SendCommand(uint8 newCommand)
|
||
|
{
|
||
|
switch(moduleId)
|
||
|
{
|
||
|
case IO_KEYBOARD_MAIN:
|
||
|
uart1_putc(newCommand);
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public:
|
||
|
uint8 GetInput()
|
||
|
{
|
||
|
uint16 input = uart1_getc();
|
||
|
|
||
|
if(input == 0x100)//no data
|
||
|
{
|
||
|
return 0xEE;//empty
|
||
|
}
|
||
|
else if(input >= '0' && input <= '9')
|
||
|
{
|
||
|
return (uint8)(input - '0');
|
||
|
}
|
||
|
else if(input == '*')
|
||
|
{
|
||
|
return 10;
|
||
|
}
|
||
|
else if(input == '#')
|
||
|
{
|
||
|
return 11;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return 0xFF;//unknown
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void ClearKeyBuffer()
|
||
|
{
|
||
|
SendCommand(commandSetting);
|
||
|
SendCommand(settingClearBuffer);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#endif
|