//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" #include "Detect.h" #include "aiousb.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { unsigned long devID, result; deviceIndex = diOnly; result = QueryDeviceInfo(deviceIndex, &devID, NULL, NULL, NULL, NULL); if ( (result != ERROR_SUCCESS) || ! ((devID == 0x4003) || (devID == 0x4002)) ) { Form2 = new TForm2(Owner); if (Form2->ShowModal() == mrOk) { deviceIndex = Form2->DeviceIndex; Form2->Free(); } else { Form2->Free(); Application->Terminate(); return; } } trackBars[0] = DACTrack0; trackBars[1] = DACTrack1; trackBars[2] = DACTrack2; trackBars[3] = DACTrack3; trackBars[4] = DACTrack4; trackBars[5] = DACTrack5; trackBars[6] = DACTrack6; trackBars[7] = DACTrack7; labels[0] = DACLabel0; labels[1] = DACLabel1; labels[2] = DACLabel2; labels[3] = DACLabel3; labels[4] = DACLabel4; labels[5] = DACLabel5; labels[6] = DACLabel6; labels[7] = DACLabel7; numChanges = 0; autoUpdating = AutoCheck->Checked; UpdateButton->Enabled = !(AutoCheck->Checked); } //--------------------------------------------------------------------------- void __fastcall TForm1::trackChange(TObject *Sender) { int index, position, count = 0; bool done = false; index = ((TTrackBar*)Sender)->Tag; position = ((TTrackBar*)Sender)->Position; if (autoUpdating) { DACDirect(deviceIndex, index, position); } else { do { if ((changeList[count].channel == index) || (count == numChanges)) { changeList[count].channel = index; changeList[count].counts = position; if (count == numChanges) { numChanges++; } done = true; } count++; }while (!done); } labels[index]->Caption = IntToHex(position, 3); } //--------------------------------------------------------------------------- void __fastcall TForm1::UpdateButtonClick(TObject *Sender) { DACMultiDirect(deviceIndex, changeList, numChanges); numChanges = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::AutoCheckClick(TObject *Sender) { if (autoUpdating) { autoUpdating = false; UpdateButton->Enabled = true; } else { UpdateButton->Click(); UpdateButton->Enabled = false; autoUpdating = true; } } //---------------------------------------------------------------------------