📄 serkey.cpp
字号:
// serkey.cpp : implementation file
//
#include "stdafx.h"
#include "pctest.h"
#include "serkey.h"
#include "adc.h"
#include "address.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Cserkey dialog
extern HANDLE hDevice;
HANDLE hDevice1;
extern PCHAR mDynVxDName ;
Cserkey::Cserkey(CWnd* pParent /*=NULL*/)
: CDialog(Cserkey::IDD, pParent)
{
//{{AFX_DATA_INIT(Cserkey)
m_editchar = _T("");
//}}AFX_DATA_INIT
m_display_bit=0;
m_key_number=-1;
m_bitnum=-1;
m_display=TRUE;
m_d=NULL;
m_d=(p_data*)malloc(sizeof(p_data));
for(int z=0;z<4;z++)
{
m_d->work[z]=0xff;
}
}
void Cserkey::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Cserkey)
DDX_Control(pDX, IDC_BUTTON16, m_bbf);
DDX_Control(pDX, IDC_BUTTON15, m_bbe);
DDX_Control(pDX, IDC_BUTTON14, m_bbd);
DDX_Control(pDX, IDC_BUTTON13, m_bbc);
DDX_Control(pDX, IDC_BUTTON12, m_bbb);
DDX_Control(pDX, IDC_BUTTON11, m_bba);
DDX_Control(pDX, IDC_BUTTON10, m_bb9);
DDX_Control(pDX, IDC_BUTTON9, m_bb8);
DDX_Control(pDX, IDC_BUTTON8, m_bb7);
DDX_Control(pDX, IDC_BUTTON7, m_bb6);
DDX_Control(pDX, IDC_BUTTON6, m_bb5);
DDX_Control(pDX, IDC_BUTTON5, m_bb4);
DDX_Control(pDX, IDC_BUTTON4, m_bb3);
DDX_Control(pDX, IDC_BUTTON3, m_bb2);
DDX_Control(pDX, IDC_BUTTON2, m_bb1);
DDX_Control(pDX, IDC_BUTTON1, m_bb0);
DDX_Text(pDX, IDC_EDIT1, m_editchar);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Cserkey, CDialog)
//{{AFX_MSG_MAP(Cserkey)
ON_WM_TIMER()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_USER+0x100,Zonebutton)
ON_MESSAGE(WM_USER+0x101,Onebutton)
ON_MESSAGE(WM_USER+0x102,Twobutton)
ON_MESSAGE(WM_USER+0x103,Threebutton)
ON_MESSAGE(WM_USER+0x104,Fourbutton)
ON_MESSAGE(WM_USER+0x105,Fivebutton)
ON_MESSAGE(WM_USER+0x106,Sixbutton)
ON_MESSAGE(WM_USER+0x107,Sevenbutton)
ON_MESSAGE(WM_USER+0x108,Eightbutton)
ON_MESSAGE(WM_USER+0x109,Ninebutton)
ON_MESSAGE(WM_USER+0x10a,Abutton)
ON_MESSAGE(WM_USER+0x10b,Bbutton)
ON_MESSAGE(WM_USER+0x10c,Cbutton)
ON_MESSAGE(WM_USER+0x10d,Dbutton)
ON_MESSAGE(WM_USER+0x10e,Ebutton)
ON_MESSAGE(WM_USER+0x10f,Fbutton)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Cserkey message handlers
void Cserkey::OnCancel()
{CDialog::OnCancel();
}
BOOL Cserkey::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_edit.SubclassDlgItem(IDC_EDIT1, this );
COLORREF bk = RGB(0, 0, 0);
m_edit.bkColor( bk );
m_edit.textColor( RGB(255,0,0) );
m_edit.setFont( 80 );
UpdateData(FALSE);
//m_p=(pci_cfg*)malloc(sizeof(pci_cfg));
if(hDevice==NULL)
{
hDevice = CreateFile(mDynVxDName, 0,0,0,
CREATE_NEW,
FILE_FLAG_DELETE_ON_CLOSE,
0);
if (hDevice == INVALID_HANDLE_VALUE)
{
AfxMessageBox("请检查板卡和驱动程序");
CDialog::OnCancel();
return FALSE;
}
W_AD=(Write_AD*)malloc(sizeof(Write_AD));
W_AD->Address=IC_8255_type;
W_AD->Data=0x81;
//C 端口 上部out ,last in,A in
BOOL status = DeviceIoControl(
hDevice,
IOCTL_IOW,
W_AD,
sizeof(W_AD)+1,
NULL,
0,
&nRet,
NULL);
W_AD->Data=0x0ff;
W_AD->Address=IC_8255_A;
DeviceIoControl(
hDevice,
IOCTL_IOW,
W_AD,
sizeof(W_AD)+1,
NULL,
0,
&nRet,
NULL);
SetTimer(1,50,NULL);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Cserkey::Zonebutton(WPARAM wparam,LPARAM lParam)
{
m_bb0.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb0.SendMessage(BM_SETSTATE,0,0);
m_editchar="0";
UpdateData(FALSE);
data=0x00;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Onebutton(WPARAM wparam,LPARAM lParam)
{
m_bb1.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb1.SendMessage(BM_SETSTATE,0,0);
m_editchar="1";
UpdateData(FALSE);
data=0x01;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Twobutton(WPARAM wparam,LPARAM lParam)
{
m_bb2.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb2.SendMessage(BM_SETSTATE,0,0);
m_editchar="2";
UpdateData(FALSE);
data=0x02;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Fourbutton(WPARAM wparam,LPARAM lParam)
{
m_bb4.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb4.SendMessage(BM_SETSTATE,0,0);
m_editchar="4";
UpdateData(FALSE);
data=0x04;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Fivebutton(WPARAM wparam,LPARAM lParam)
{
m_bb5.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb5.SendMessage(BM_SETSTATE,0,0);
m_editchar="5";
UpdateData(FALSE);
data=0x05;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Sixbutton(WPARAM wparam,LPARAM lParam)
{
m_bb6.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb6.SendMessage(BM_SETSTATE,0,0);
m_editchar="6";
UpdateData(FALSE);
data=0x06;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Sevenbutton(WPARAM wparam,LPARAM lParam)
{
m_bb7.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb7.SendMessage(BM_SETSTATE,0,0);
m_editchar="7";
UpdateData(FALSE);
data=0x07;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Eightbutton(WPARAM wparam,LPARAM lParam)
{
m_bb8.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb8.SendMessage(BM_SETSTATE,0,0);
m_editchar="8";
UpdateData(FALSE);
data=0x08;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Threebutton(WPARAM wparam,LPARAM lParam)
{
m_bb3.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb3.SendMessage(BM_SETSTATE,0,0);
m_editchar="3";
UpdateData(FALSE);
data=0x03;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Ninebutton(WPARAM wparam,LPARAM lParam)
{
m_bb9.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb9.SendMessage(BM_SETSTATE,0,0);
m_editchar="9";
UpdateData(FALSE);
data=0x09;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Abutton(WPARAM wparam,LPARAM lParam)
{
m_bba.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bba.SendMessage(BM_SETSTATE,0,0);
m_editchar="A";
UpdateData(FALSE);
data=0x0a;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Bbutton(WPARAM wparam,LPARAM lParam)
{
m_bbb.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bbb.SendMessage(BM_SETSTATE,0,0);
m_editchar="B";
UpdateData(FALSE);
data=0x0b;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Cbutton(WPARAM wparam,LPARAM lParam)
{
m_bbc.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bbc.SendMessage(BM_SETSTATE,0,0);
m_editchar="C";
UpdateData(FALSE);
data=0x0c;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Dbutton(WPARAM wparam,LPARAM lParam)
{
m_bbd.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bbd.SendMessage(BM_SETSTATE,0,0);
m_editchar="D";
UpdateData(FALSE);
data=0x0d;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Ebutton(WPARAM wparam,LPARAM lParam)
{
m_bbe.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bbe.SendMessage(BM_SETSTATE,0,0);
m_editchar="E";
UpdateData(FALSE);
data=0x0e;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
void Cserkey::Fbutton(WPARAM wparam,LPARAM lParam)
{
m_bbf.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bbf.SendMessage(BM_SETSTATE,0,0);
m_editchar="F";
UpdateData(FALSE);
data=0x0f;
m_bitnum+=1;
if(m_bitnum>=4)
{
m_bitnum=0;
}
Display_LED((BYTE)data,m_bitnum);
}
BYTE Cserkey::GetLED_data(BYTE x)
{
BYTE m_a=0;
switch(x)
{
case 0:
m_a=0xc0;
break;
case 1:
m_a=0xf9;
break;
case 2:
m_a=0xa4;
break;
case 3:
m_a=0xb0;
break;
case 4:
m_a=0x99;
break;
case 5:
m_a=0x92;
break;
case 6:
m_a=0x82;
break;
case 7:
m_a=0xf8;
break;
case 8:
m_a=0x80;
break;
case 9:
m_a=0x98;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -