請先看『使用說明』
Key Pad Utility Windows
From LEXWiKi
(Difference between revisions)
(→How to Use The Utility) |
|||
| Line 6: | Line 6: | ||
== How to Use The Utility == | == How to Use The Utility == | ||
[[Image:key_pad_utility.jpg]]<br> | [[Image:key_pad_utility.jpg]]<br> | ||
| - | ;1.config:start set button<br> | + | [[Image:key_pad_recode.jpg]]<br> |
| + | ;1.config:start set button or cecode<br> | ||
;2.save:save button<br> | ;2.save:save button<br> | ||
;3.setbutton:Settings button analog keyboard<br> | ;3.setbutton:Settings button analog keyboard<br> | ||
| + | ;4.recode:open new window to recode<br> | ||
| + | ;5.Enter:the text you want to enter<br> | ||
| + | ;6.finish:Complete text input<br> | ||
| + | |||
== Introduction == | == Introduction == | ||
=== Initial Internal F75111 port address (0x9c)=== | === Initial Internal F75111 port address (0x9c)=== | ||
Revision as of 16:59, 4 January 2013
Contents |
The Sample code source you can download from
1.Binary file:Key_Pad_utility_bin_v1.0W(32bit).rarKey_Pad_utility_bin_v1.0W(64bit).rar
2.Source file:Key_Pad_utility_src_v1.0W(32bit).rarKey_Pad_utility_src_v1.0W(64bit).rar
How to Use The Utility
- 1.config
- start set button or cecode
- 2.save
- save button
- 3.setbutton
- Settings button analog keyboard
- 4.recode
- open new window to recode
- 5.Enter
- the text you want to enter
- 6.finish
- Complete text input
Introduction
Initial Internal F75111 port address (0x9c)
define GPIO1X, GPIO2X, GPIO3X to input or output and Enable WDT function pin
Set F75111 DI/DO ( sample code as below Get Input value/Set output value )
DI: InterDigitalInput()
PULSE mode
Sample to setting GP33, 32, 31, 30 output 1mS low pulse signal.
{
this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_PULSE_CONTROL, 0x00); //This is setting low pulse output
this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_PULSE_WIDTH_CONTROL, 0x01); //This selects the pulse width to 1mS
this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_CONTROL_MODE, 0x0F); //This is setting the GP33, 32, 31, 30 to output function.
this->Write_Byte(F75111_INTERNAL_ADDR, GPIO3X_Output_Data , 0x0F); //This is setting the GP33, 32, 31, 30 output data.
}
Initial internal F75111
void CKey_Pad_utilityDlg::InitInternalF75111()
{
::Write_Byte(F75111_INTERNAL_ADDR,GPIO1X_CONTROL_MODE ,0x00); //set GPIO1X to Input function
::Write_Byte(F75111_INTERNAL_ADDR,GPIO3X_CONTROL_MODE ,0x00); //set GPIO3X to Input function
::Write_Byte(F75111_INTERNAL_ADDR,GPIO2X_CONTROL_MODE ,0x00); //set GPIO2X to Input function
}
Get Digital Input
BYTE F75111_GetDigital0 ()
{
BYTE byteGPIO1X = 0;
BYTE byteGPIO2X = 0;
BYTE byteGPIO3X = 0;
BYTE byteData = 0;
::SMBus_ReadByte(m_F75111.bAddress,GPIO1X_INPUT_DATA,&byteGPIO1X) ;
::SMBus_ReadByte(m_F75111.bAddress,GPIO2X_INPUT_DATA,&byteGPIO2X) ;
::SMBus_ReadByte(m_F75111.bAddress,GPIO3X_INPUT_DATA,&byteGPIO3X) ;
byteGPIO1X = ~byteGPIO1X & 0xF0;
byteGPIO3X = ~byteGPIO3X & 0x0F;
byteGPIO2X = ~byteGPIO2X & 0xFF;
byteData = ( byteGPIO1X & 0x10 )? byteData + 0x01 : byteData ;
byteData = ( byteGPIO2X & 0x80 )? byteData + 0x02 : byteData ;
byteData = ( byteGPIO1X & 0x80 )? byteData + 0x04 : byteData ;
byteData = ( byteGPIO2X & 0x04 )? byteData + 0x08 : byteData ;
byteData = ( byteGPIO1X & 0x40 )? byteData + 0x10 : byteData ;
byteData = ( byteGPIO2X & 0x02 )? byteData + 0x20 : byteData ;
byteData = ( byteGPIO3X & 0x01 )? byteData + 0x40 : byteData ;
byteData = ( byteGPIO2X & 0x01 )? byteData + 0x80 : byteData ;
return byteData;
}
Get Keyboard wParam & lParam
BOOL CKey_Pad_utilityDlg::PreTranslateMessage(MSG* pMsg)
{
char StrTemp[16];
int StrSize=16;
if( setbutton1 == true || setbutton2 == true || setbutton3 == true || setbutton4 == true )
{
if(pMsg -> message == WM_SYSKEYDOWN )
{
for(int i=1;i<256;i++)
{
if(pMsg -> wParam == i)
{
if(setbutton1== true)
{
msg1.wParam=pMsg->wParam;
msg1.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit1.SetWindowText(StrTemp);
setbutton1=false;
}
if(setbutton2== true)
{
msg2.wParam=pMsg->wParam;
msg2.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit2.SetWindowText(StrTemp);
setbutton2=false;
}
if(setbutton3== true)
{
msg3.wParam=pMsg->wParam;
msg3.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit3.SetWindowText(StrTemp);
setbutton3=false;
}
if(setbutton4== true)
{
msg4.wParam=pMsg->wParam;
msg4.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit4.SetWindowText(StrTemp);
setbutton4=false;
}
}
}
}
if(pMsg -> message == WM_KEYDOWN)
{
for(int i=1;i<256;i++)
{
if(pMsg -> wParam == i)
{
if(setbutton1== true)
{
msg1.wParam=pMsg->wParam;
msg1.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit1.SetWindowText(StrTemp);
setbutton1=false;
}
if(setbutton2== true)
{
msg2.wParam=pMsg->wParam;
msg2.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit2.SetWindowText(StrTemp);
setbutton2=false;
}
if(setbutton3== true)
{
msg3.wParam=pMsg->wParam;
msg3.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit3.SetWindowText(StrTemp);
setbutton3=false;
}
if(setbutton4== true)
{
msg4.wParam=pMsg->wParam;
msg4.lParam=pMsg->lParam;
GetKeyNameText(pMsg->lParam,StrTemp,StrSize);
m_edit4.SetWindowText(StrTemp);
setbutton4=false;
}
}
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}


