//--------------------------------------------------------------------------- #include #pragma hdrstop #include #include "IRQThrd.h" #include "ACCES32.h" #include "Sample4u.h" #include "aiowdm.h" #pragma package(smart_init) //--------------------------------------------------------------------------- __fastcall IRQThread::IRQThread(bool CreateSuspended) : TThread(CreateSuspended) { } //--------------------------------------------------------------------------- void __fastcall IRQThread::UpdateIRQCaption(void) { //Sample4Form->CountLabel->Caption = "IRQ Count: " + IntToStr(Form1->IRQ_Count); } //--------------------------------------------------------------------------- void __fastcall IRQThread::UpdateStatusCaption(void) { //Sample4Form->StatusLabel->Caption = "Waiting...Generate IRQs now"; } //--------------------------------------------------------------------------- void __fastcall IRQThread::ReportError() { Sample4Form->HandleError(LastError); } // end ReportError void __fastcall IRQThread::Execute() { while (!Terminated) { if (Sample4Form->GoFlag) { //NOTE: Synchronize is not needed unless you WaitForIRQ(Sample4Form->CardNum); //call VCL functions in ISR. It is provided for Synchronize(Sample4Form->ISR); //your convenience. } // end if } // end while LastError = GetLastError(); Synchronize(ReportError); } // end IRQThread //---------------------------------------------------------------------------