📄 eventthread.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "EventThread.h"
#include "Counterfrm.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall TEventThread::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------
__fastcall TEventThread::TEventThread(bool CreateSuspended, LONG lDHandle)
: TThread(CreateSuspended)
{
lDriverHandle = lDHandle;
}
//---------------------------------------------------------------------------
void __fastcall TEventThread::Execute()
{
//---- Place thread code here ----
USHORT usEventType = 0;
LONG ErrCde;
PT_CheckEvent ptCheckEvent;
char szErrMsg[80];
ptCheckEvent.EventType = &usEventType;
ptCheckEvent.Milliseconds = 5000;
while(!Terminated){
ErrCde = DRV_CheckEvent(lDriverHandle,(LPT_CheckEvent)&ptCheckEvent);
if(ErrCde != SUCCESS){
DRV_GetErrorMessage(ErrCde,(LPSTR)szErrMsg);
Application->MessageBoxA((char*)szErrMsg,"Driver Message");
Terminate();
return;
}
switch (usEventType){
case ADS_EVT_TERMINATE_CNT0:
Application->MessageBoxA("Counter0 Terminal Event Occured","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT1:
Application->MessageBoxA("Counter1 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT2:
Application->MessageBoxA("Counter2 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT3:
Application->MessageBoxA("Counter3 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT4:
Application->MessageBoxA("Counter4 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT5:
Application->MessageBoxA("Counter5 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT6:
Application->MessageBoxA("Counter6 Terminal Event Occured !","Interrupt Message");
break;
case ADS_EVT_TERMINATE_CNT7:
Application->MessageBoxA("Counter7 Terminal Event Occured !","Interrupt Message");
break;
}
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -