⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventthread.cpp

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 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 + -