📄 dirunfrom.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DirunFrom.h"
#include "..\..\..\include\driver.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmDiorun *frmDiorun;
extern LONG lDriverHandle;
extern PT_DioWritePortByte ptDioWritePortByte;
extern PT_DioGetCurrentDOByte ptDioGetCurrentDOByte;
extern char szErrMsg[80];
extern LRESULT ErrCde;
USHORT uDoValue = 0x00;
//---------------------------------------------------------------------------
__fastcall TfrmDiorun::TfrmDiorun(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmDiorun::CmdBit7Click(TObject *Sender)
{
UpdateLED(((TButton* )(Sender))->Tag, 1);
((TButton*)(Sender))->Visible = False;
switch(((TButton* )(Sender))->Tag){
case 0: PictureBit0->Visible = True; break;
case 1: PictureBit1->Visible = True; break;
case 2: PictureBit2->Visible = True; break;
case 3: PictureBit3->Visible = True; break;
case 4: PictureBit4->Visible = True; break;
case 5: PictureBit5->Visible = True; break;
case 6: PictureBit6->Visible = True; break;
case 7: PictureBit7->Visible = True; break;
//default:
//can never reach here
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDiorun::PictureBit0Click(TObject *Sender)
{
UpdateLED(((TImage* )(Sender))->Tag, 0);
((TImage* )(Sender))->Visible = False;
switch(((TButton* )(Sender))->Tag){
case 0: CmdBit0->Visible = True; break;
case 1: CmdBit1->Visible = True; break;
case 2: CmdBit2->Visible = True; break;
case 3: CmdBit3->Visible = True; break;
case 4: CmdBit4->Visible = True; break;
case 5: CmdBit5->Visible = True; break;
case 6: CmdBit6->Visible = True; break;
case 7: CmdBit7->Visible = True; break;
//default:
//can never reach here
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmDiorun::CmdExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void TfrmDiorun::UpdateLED(int bit, BOOL mode)
{
if(mode){
uDoValue |= 0x01 << bit;
}else{
uDoValue &= ~(0x01 << bit);
}
ptDioWritePortByte.state = uDoValue;
if((ErrCde = DRV_DioWritePortByte(lDriverHandle,(LPT_DioWritePortByte)&ptDioWritePortByte)) != SUCCESS)
{
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
Application->MessageBoxA((char *)szErrMsg,"Driver Message");
return ;
}
}
void __fastcall TfrmDiorun::FormShow(TObject *Sender)
{
ptDioGetCurrentDOByte.value = &uDoValue;
DRV_DioGetCurrentDOByte(lDriverHandle, (LPT_DioGetCurrentDOByte)&ptDioGetCurrentDOByte); //modified by mining
if(uDoValue & 0x80){
CmdBit7->Visible = False;
PictureBit7->Visible = True;
}else{
CmdBit7->Visible = True;
PictureBit7->Visible = False;
}
if(uDoValue & 0x40){
CmdBit6->Visible = False;
PictureBit6->Visible = True;
}else{
CmdBit6->Visible = True;
PictureBit6->Visible = False;
}
if(uDoValue & 0x20){
CmdBit5->Visible = False;
PictureBit5->Visible = True;
}else{
CmdBit5->Visible = True;
PictureBit5->Visible = False;
}
if(uDoValue & 0x10){
CmdBit4->Visible = False;
PictureBit4->Visible = True;
}else{
CmdBit4->Visible = True;
PictureBit4->Visible = False;
}
if(uDoValue & 0x08){
CmdBit3->Visible = False;
PictureBit3->Visible = True;
}else{
CmdBit3->Visible = True;
PictureBit3->Visible = False;
}
if(uDoValue & 0x04){
CmdBit2->Visible = False;
PictureBit2->Visible = True;
}else{
CmdBit2->Visible = True;
PictureBit2->Visible = False;
}
if(uDoValue & 0x02){
CmdBit1->Visible = False;
PictureBit1->Visible = True;
}else{
CmdBit1->Visible = True;
PictureBit1->Visible = False;
}
if(uDoValue & 0x01){
CmdBit0->Visible = False;
PictureBit0->Visible = True;
}else{
CmdBit0->Visible = True;
PictureBit0->Visible = False;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -