manually merged with ARM version
This commit is contained in:
18
x502api-1.1.34/examples/CppBuilder/x502_general/readme.txt
Normal file
18
x502api-1.1.34/examples/CppBuilder/x502_general/readme.txt
Normal file
@ -0,0 +1,18 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> L502 <20> E502 <20><> <20><><EFBFBD><EFBFBD><EFBFBD> "Borland C++ Builder".
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "Borland C++ Builder 6" (x502_example.dpr) <20> <20><><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "Embarcadero C++ Builder XE" (x502_example.cbproj)
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x502api.h, e502api.h, l502api.h <20> lcard_pstdint.h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x502api.lib, e5l502api.lib <20> l502api.lib <20><> <20><>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SDK_DIR/lib/borland).
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> L502 <20> E502, <20> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> C++ Builder.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (X502_ProcessThread), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||
526
x502api-1.1.34/examples/CppBuilder/x502_general/unit.cpp
Normal file
526
x502api-1.1.34/examples/CppBuilder/x502_general/unit.cpp
Normal file
@ -0,0 +1,526 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#include <vcl.h>
|
||||
#pragma hdrstop
|
||||
|
||||
#include "unit.h"
|
||||
#include <stdio.h>
|
||||
//---------------------------------------------------------------------------
|
||||
#pragma package(smart_init)
|
||||
#pragma resource "*.dfm"
|
||||
TForm1 *Form1;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
void TForm1::updateControls() {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
btnRefreshDeviceList->Enabled = (hnd==NULL);
|
||||
cbbDevList->Enabled = (hnd==NULL);
|
||||
|
||||
btnOpen->Caption = hnd == NULL ? "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" :
|
||||
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
|
||||
btnOpen->Enabled = (hnd!=NULL) || (cbbDevList->ItemIndex >= 0);
|
||||
btnOpenByIP->Enabled = (hnd==NULL);
|
||||
edtIpAddr->Enabled = (hnd==NULL);
|
||||
|
||||
chkSyncDin->Enabled = (hnd!=NULL) && !threadRunning;
|
||||
btnStart->Enabled = (hnd!=NULL) && !threadRunning;
|
||||
btnStop->Enabled = (hnd!=NULL) && threadRunning;
|
||||
|
||||
btnSetAdcFreq->Enabled = (hnd!=NULL) && !threadRunning;
|
||||
|
||||
btnAsyncDigOut->Enabled = (hnd!=NULL);
|
||||
btnAsyncDigIn->Enabled = (hnd!=NULL);
|
||||
btnAsyncDac1->Enabled = (hnd!=NULL) && chkDacPresent->Checked;
|
||||
btnAsyncDac2->Enabled = (hnd!=NULL) && chkDacPresent->Checked;
|
||||
btnAsyncAdcFrame->Enabled = (hnd!=NULL) && !threadRunning;
|
||||
|
||||
}
|
||||
|
||||
void TForm1::freeDevList() {
|
||||
if (devrecList.Length != 0) {
|
||||
X502_FreeDevRecordList(&devrecList[0], devrecList.Length);
|
||||
devrecList.Length = 0;
|
||||
}
|
||||
cbbDevList->Items->Clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> L502 <20> E502*/
|
||||
void TForm1::refreshDeviceList(void) {
|
||||
uint32_t pci_devcnt = 0;
|
||||
uint32_t usb_devcnt = 0;
|
||||
int32_t fnd_devcnt = 0;
|
||||
|
||||
int old_index = cbbDevList->ItemIndex;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
freeDevList();
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PCI <20> USB */
|
||||
L502_GetDevRecordsList(NULL, 0, 0, &pci_devcnt);
|
||||
E502_UsbGetDevRecordsList(NULL, 0, 0, &usb_devcnt);
|
||||
|
||||
if ((pci_devcnt+usb_devcnt) != 0) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
devrecList.Length = pci_devcnt + usb_devcnt;
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> L502, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pci_devcnt */
|
||||
if (pci_devcnt!=0) {
|
||||
int32_t res = L502_GetDevRecordsList(&devrecList[fnd_devcnt],
|
||||
pci_devcnt, 0, NULL);
|
||||
if (res >= 0) {
|
||||
fnd_devcnt += res;
|
||||
}
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E502, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> USB, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (usb_devcnt!=0) {
|
||||
int32_t res = E502_UsbGetDevRecordsList(&devrecList[fnd_devcnt],
|
||||
usb_devcnt, 0, NULL);
|
||||
if (res >= 0) {
|
||||
fnd_devcnt += res;
|
||||
}
|
||||
}
|
||||
|
||||
devrecList.Length = fnd_devcnt;
|
||||
if (fnd_devcnt > 0) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ComboBox'<27> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
for (int32_t i=0; i < fnd_devcnt; i++) {
|
||||
cbbDevList->Items->Add(AnsiString(devrecList[i].devname) + ", " + AnsiString(devrecList[i].serial));
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
cbbDevList->ItemIndex = (old_index >= 0) && (old_index < fnd_devcnt) ? old_index : 0;
|
||||
}
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GUI */
|
||||
int32_t TForm1::setupParams() {
|
||||
int32_t err = 0;
|
||||
uint32_t lch_cnt = cbbLChCnt->ItemIndex+1;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ComboBox <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
static uint32_t f_mode_tbl[] = {X502_LCH_MODE_COMM, X502_LCH_MODE_DIFF, X502_LCH_MODE_ZERO};
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ComboBox <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
static uint32_t f_range_tbl[] = {X502_ADC_RANGE_10, X502_ADC_RANGE_5, X502_ADC_RANGE_2,
|
||||
X502_ADC_RANGE_1, X502_ADC_RANGE_05, X502_ADC_RANGE_02};
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ComboBox <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
static uint32_t f_sync_tbl[] = {X502_SYNC_INTERNAL, X502_SYNC_EXTERNAL_MASTER,
|
||||
X502_SYNC_DI_SYN1_RISE, X502_SYNC_DI_SYN2_RISE,
|
||||
X502_SYNC_DI_SYN1_FALL, X502_SYNC_DI_SYN2_FALL};
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
err = X502_SetLChannelCount(hnd, lch_cnt);
|
||||
if (err == X502_ERR_OK) {
|
||||
err = X502_SetLChannel(hnd, 0, cbbLCh1_Channel->ItemIndex,
|
||||
f_mode_tbl[cbbLCh1_Mode->ItemIndex], f_range_tbl[cbbLCh1_Range->ItemIndex],0);
|
||||
}
|
||||
if ((err == X502_ERR_OK) && (lch_cnt>=2)) {
|
||||
err = X502_SetLChannel(hnd, 1, cbbLCh2_Channel->ItemIndex,
|
||||
f_mode_tbl[cbbLCh2_Mode->ItemIndex], f_range_tbl[cbbLCh2_Range->ItemIndex],0);
|
||||
}
|
||||
if ((err == X502_ERR_OK) && (lch_cnt>=3)) {
|
||||
err = X502_SetLChannel(hnd, 2, cbbLCh3_Channel->ItemIndex,
|
||||
f_mode_tbl[cbbLCh3_Mode->ItemIndex], f_range_tbl[cbbLCh3_Range->ItemIndex],0);
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (err == X502_ERR_OK)
|
||||
err = X502_SetSyncMode(hnd, f_sync_tbl[cbbSyncMode->ItemIndex]);
|
||||
if (err == X502_ERR_OK)
|
||||
err = X502_SetSyncStartMode(hnd, f_sync_tbl[cbbSyncStartMode->ItemIndex]);
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> */
|
||||
if (err == X502_ERR_OK)
|
||||
err = setAdcFreq();
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (err == X502_ERR_OK)
|
||||
err = X502_Configure(hnd, 0);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int32_t TForm1::setAdcFreq() {
|
||||
double f_acq = StrToFloat(edtAdcFreq->Text);
|
||||
double f_lch = StrToFloat(edtAdcFreqLch->Text);
|
||||
double f_din = StrToFloat(edtDinFreq->Text);
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. */
|
||||
int32_t err = X502_SetAdcFreq(hnd, &f_acq, &f_lch);
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
edtAdcFreq->Text = FloatToStr(f_acq);
|
||||
edtAdcFreqLch->Text = FloatToStr(f_lch);
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
err = X502_SetDinFreq(hnd, &f_din);
|
||||
if (err == X502_ERR_OK)
|
||||
edtDinFreq->Text = FloatToStr(f_din);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
int32_t TForm1::setSyncDinStream() {
|
||||
int32_t err;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (chkSyncDin->Checked) {
|
||||
err = X502_StreamsEnable(hnd, X502_STREAM_DIN);
|
||||
} else {
|
||||
err = X502_StreamsDisable(hnd, X502_STREAM_DIN);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
void __fastcall TForm1::OnThreadTerminate(TObject *obj) {
|
||||
if (thread->err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(thread->err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
|
||||
threadRunning = false;
|
||||
updateControls();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
__fastcall TForm1::TForm1(TComponent* Owner)
|
||||
: TForm(Owner), hnd(NULL) {
|
||||
refreshDeviceList();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TForm1::btnRefreshDeviceListClick(TObject *Sender) {
|
||||
refreshDeviceList();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnStartClick(TObject *Sender) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t err = setupParams();
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
if (err == X502_ERR_OK)
|
||||
err = X502_StreamsEnable(hnd, X502_STREAM_ADC);
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (err == X502_ERR_OK)
|
||||
err = setSyncDinStream();
|
||||
|
||||
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (thread) {
|
||||
delete thread;
|
||||
thread = NULL;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
thread = new X502_ProcessThread(true);
|
||||
thread->hnd = hnd;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
thread->lchResEdits[0] = edtLCh1_Result;
|
||||
thread->lchResEdits[1] = edtLCh2_Result;
|
||||
thread->lchResEdits[2] = edtLCh3_Result;
|
||||
thread->dinResEdit = edtDin_Result;
|
||||
|
||||
edtLCh1_Result->Text="";
|
||||
edtLCh2_Result->Text="";
|
||||
edtLCh3_Result->Text="";
|
||||
edtDin_Result->Text="";
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||
thread->OnTerminate = OnThreadTerminate;
|
||||
thread->Resume(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
threadRunning = true;
|
||||
|
||||
updateControls();
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnStopClick(TObject *Sender) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (threadRunning)
|
||||
thread->stop = true;
|
||||
btnStop->Enabled = false;
|
||||
}
|
||||
|
||||
|
||||
void TForm1::showDevInfo(void) {
|
||||
t_x502_info info;
|
||||
int32_t err = X502_GetDevInfo(hnd, &info);
|
||||
if (err == X502_ERR_OK) {
|
||||
chkDacPresent->Checked = info.devflags & X502_DEVFLAGS_DAC_PRESENT;
|
||||
chkGalPresent->Checked = info.devflags & X502_DEVFLAGS_GAL_PRESENT;
|
||||
chkDspPresent->Checked = info.devflags & X502_DEVFLAGS_BF_PRESENT;
|
||||
chkEthPresent->Checked = info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_ETH;
|
||||
|
||||
edtPldaVer->Text = IntToStr(info.plda_ver);
|
||||
edtFpgaVer->Text = IntToStr((info.fpga_ver>>8)&0xFF) + "."
|
||||
+ IntToStr(info.fpga_ver & 0xFF);
|
||||
if (info.mcu_firmware_ver != 0) {
|
||||
edtMcuVer->Text = IntToStr((int)(info.mcu_firmware_ver>>24)&0xFF) + "." +
|
||||
IntToStr((int)(info.mcu_firmware_ver>>16)&0xFF) + "." +
|
||||
IntToStr((int)(info.mcu_firmware_ver>>8)&0xFF) + "." +
|
||||
IntToStr((int)info.mcu_firmware_ver & 0xFF);
|
||||
} else {
|
||||
edtMcuVer->Text = "";
|
||||
}
|
||||
} else {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
|
||||
X502_Close(hnd);
|
||||
X502_Free(hnd);
|
||||
hnd = NULL;
|
||||
}
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>,
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
void __fastcall TForm1::btnOpenClick(TObject *Sender) {
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
if (hnd==NULL) {
|
||||
int idx = cbbDevList->ItemIndex;
|
||||
if ((idx >= 0) && (idx < devrecList.Length)) {
|
||||
hnd = X502_Create();
|
||||
if (hnd==NULL) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
} else {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t err = X502_OpenByDevRecord(hnd, &devrecList[idx]);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
X502_Free(hnd);
|
||||
hnd = NULL;
|
||||
} else {
|
||||
showDevInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
closeDevice();
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
uint32_t TForm1::parseIpAddr(AnsiString addr) {
|
||||
int a[4],i;
|
||||
if (sscanf(addr.c_str(), "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3])!=4) {
|
||||
throw new Exception("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!");
|
||||
}
|
||||
|
||||
for (i=0; i < 4; i++) {
|
||||
if ((a[i]<0) || (a[i] > 255)) {
|
||||
throw new Exception("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD>!!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return (a[0] << 24) | (a[1]<<16) | (a[2]<<8) | a[3];
|
||||
}
|
||||
void __fastcall TForm1::btnOpenByIPClick(TObject *Sender) {
|
||||
t_x502_devrec devrec;
|
||||
int32_t err = E502_MakeDevRecordByIpAddr(&devrec, parseIpAddr(edtIpAddr->Text), 0, 5000);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
} else {
|
||||
hnd = X502_Create();
|
||||
if (hnd==NULL) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
} else {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t err = X502_OpenByDevRecord(hnd, &devrec);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
X502_Free(hnd);
|
||||
hnd = NULL;
|
||||
} else {
|
||||
showDevInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
updateControls();
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void TForm1::closeDevice() {
|
||||
if (hnd != NULL) {
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
if (threadRunning) {
|
||||
thread->stop=1;
|
||||
thread->WaitFor();
|
||||
}
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
X502_Close(hnd);
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
X502_Free(hnd);
|
||||
hnd = NULL;
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) {
|
||||
closeDevice();
|
||||
freeDevList();
|
||||
if (thread)
|
||||
delete thread;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnAsyncDigOutClick(TObject *Sender) {
|
||||
if (hnd!=NULL) {
|
||||
uint32_t val = StrToInt(edtAsyncDigOut->Text);
|
||||
int32_t err = X502_AsyncOutDig(hnd, val, 0);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::adcFreqEditChange(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t err = X502_SetLChannelCount(hnd, cbbLChCnt->ItemIndex+1);
|
||||
if (err == X502_ERR_OK)
|
||||
err = setAdcFreq();
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::chkSyncDinClick(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
int32_t err = setSyncDinStream();
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnAsyncDigInClick(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
uint32_t din;
|
||||
int32_t err = X502_AsyncInDig(hnd, &din);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
} else {
|
||||
edtAsyncDigIn->Text = IntToHex((int)din&0x3FFFF, 5);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnAsyncDac1Click(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
double val = StrToFloat(edtAsyncDac1->Text);;
|
||||
int32_t err;
|
||||
err = X502_AsyncOutDac(hnd, X502_DAC_CH1, val, X502_DAC_FLAGS_CALIBR |
|
||||
X502_DAC_FLAGS_VOLT);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnAsyncDac2Click(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
double val = StrToFloat(edtAsyncDac2->Text);;
|
||||
int32_t err;
|
||||
err = X502_AsyncOutDac(hnd, X502_DAC_CH2, val, X502_DAC_FLAGS_CALIBR |
|
||||
X502_DAC_FLAGS_VOLT);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void __fastcall TForm1::btnAsyncAdcFrameClick(TObject *Sender) {
|
||||
if (hnd != NULL) {
|
||||
uint32_t lch_cnt;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
int32_t err = setupParams();
|
||||
if (err == X502_ERR_OK)
|
||||
err = X502_GetLChannelCount(hnd, &lch_cnt);
|
||||
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
}
|
||||
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
double adc_data[3];
|
||||
err = X502_AsyncGetAdcFrame(hnd, X502_PROC_FLAGS_VOLT, 1000, adc_data);
|
||||
if (err != X502_ERR_OK) {
|
||||
MessageDlg("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>: " + String(X502_GetErrorString(err)),
|
||||
mtError, TMsgDlgButtons() << mbOK,NULL);
|
||||
} else {
|
||||
edtLCh1_Result->Text = FloatToStrF(adc_data[0], ffFixed, 4, 8);
|
||||
if (lch_cnt>=2) {
|
||||
edtLCh2_Result->Text = FloatToStrF(adc_data[1], ffFixed, 4, 8);
|
||||
} else {
|
||||
edtLCh2_Result->Text ="";
|
||||
}
|
||||
|
||||
if (lch_cnt>=3) {
|
||||
edtLCh3_Result->Text = FloatToStrF(adc_data[2], ffFixed, 4, 8);
|
||||
} else {
|
||||
edtLCh3_Result->Text = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TForm1::cbbDevListChange(TObject *Sender) {
|
||||
//refreshDeviceList();
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
void __fastcall TForm1::cbbLChCntChange(TObject *Sender) {
|
||||
if (cbbLChCnt->ItemIndex < 0)
|
||||
cbbLChCnt->ItemIndex = 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
669
x502api-1.1.34/examples/CppBuilder/x502_general/unit.dfm
Normal file
669
x502api-1.1.34/examples/CppBuilder/x502_general/unit.dfm
Normal file
@ -0,0 +1,669 @@
|
||||
object Form1: TForm1
|
||||
Left = 599
|
||||
Top = 94
|
||||
Caption = 'L502/E502 test'
|
||||
ClientHeight = 702
|
||||
ClientWidth = 577
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
OnClose = FormClose
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object btnRefreshDeviceList: TButton
|
||||
Left = 16
|
||||
Top = 8
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1054#1073#1085#1086#1074#1080#1090#1100' '#1089#1087#1080#1089#1082#1086' '#1091#1089#1090#1088#1086#1081#1089#1090#1074
|
||||
TabOrder = 0
|
||||
OnClick = btnRefreshDeviceListClick
|
||||
end
|
||||
object cbbDevList: TComboBox
|
||||
Left = 264
|
||||
Top = 8
|
||||
Width = 225
|
||||
Height = 21
|
||||
TabOrder = 1
|
||||
OnChange = cbbDevListChange
|
||||
end
|
||||
object btnStart: TButton
|
||||
Left = 16
|
||||
Top = 88
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1047#1072#1087#1091#1089#1082' '#1089#1073#1086#1088#1072' '#1076#1072#1085#1085#1099#1093
|
||||
TabOrder = 2
|
||||
OnClick = btnStartClick
|
||||
end
|
||||
object GroupBox1: TGroupBox
|
||||
Left = 16
|
||||
Top = 376
|
||||
Width = 513
|
||||
Height = 153
|
||||
Caption = #1050#1072#1085#1072#1083#1099
|
||||
TabOrder = 3
|
||||
object Label2: TLabel
|
||||
Left = 8
|
||||
Top = 40
|
||||
Width = 31
|
||||
Height = 13
|
||||
Caption = #1050#1072#1085#1072#1083
|
||||
end
|
||||
object Label1: TLabel
|
||||
Left = 64
|
||||
Top = 40
|
||||
Width = 51
|
||||
Height = 13
|
||||
Caption = #1044#1080#1072#1087#1072#1079#1086#1085
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 152
|
||||
Top = 40
|
||||
Width = 94
|
||||
Height = 13
|
||||
Caption = #1056#1077#1078#1080#1084' '#1080#1079#1084#1077#1088#1077#1085#1080#1103
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 336
|
||||
Top = 40
|
||||
Width = 52
|
||||
Height = 13
|
||||
Caption = #1056#1077#1079#1091#1083#1100#1090#1072#1090
|
||||
end
|
||||
object Label9: TLabel
|
||||
Left = 16
|
||||
Top = 16
|
||||
Width = 164
|
||||
Height = 13
|
||||
Caption = #1050#1086#1083#1080#1095#1077#1089#1090#1074#1086' '#1083#1086#1075#1080#1095#1077#1089#1082#1080#1093' '#1082#1072#1085#1072#1083#1086#1074
|
||||
end
|
||||
object cbbLCh1_Channel: TComboBox
|
||||
Left = 8
|
||||
Top = 56
|
||||
Width = 41
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 0
|
||||
Text = '1'
|
||||
Items.Strings = (
|
||||
'1'
|
||||
'2'
|
||||
'3'
|
||||
'4'
|
||||
'5'
|
||||
'6'
|
||||
'7'
|
||||
'8'
|
||||
'9'
|
||||
'10'
|
||||
'11'
|
||||
'12'
|
||||
'13'
|
||||
'14'
|
||||
'15'
|
||||
'16'
|
||||
'17'
|
||||
'18'
|
||||
'19'
|
||||
'20'
|
||||
'21'
|
||||
'22'
|
||||
'23'
|
||||
'24'
|
||||
'25'
|
||||
'26'
|
||||
'27'
|
||||
'28'
|
||||
'29'
|
||||
'30'
|
||||
'31'
|
||||
'32')
|
||||
end
|
||||
object cbbLCh1_Range: TComboBox
|
||||
Left = 64
|
||||
Top = 56
|
||||
Width = 57
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 1
|
||||
Text = '10 '#1042
|
||||
Items.Strings = (
|
||||
'10 '#1042
|
||||
'5 '#1042
|
||||
'2 '#1042
|
||||
'1 '#1042
|
||||
'0.5 '#1042
|
||||
'0.2 '#1042)
|
||||
end
|
||||
object cbbLCh1_Mode: TComboBox
|
||||
Left = 136
|
||||
Top = 56
|
||||
Width = 169
|
||||
Height = 21
|
||||
ItemIndex = 1
|
||||
TabOrder = 2
|
||||
Text = #1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
Items.Strings = (
|
||||
#1057' '#1086#1073#1097#1077#1081' '#1079#1077#1084#1083#1077#1081
|
||||
#1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
#1048#1079#1084#1077#1088#1077#1085#1080#1077' '#1085#1091#1083#1103)
|
||||
end
|
||||
object edtLCh1_Result: TEdit
|
||||
Left = 328
|
||||
Top = 56
|
||||
Width = 121
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
end
|
||||
object cbbLCh2_Channel: TComboBox
|
||||
Left = 8
|
||||
Top = 80
|
||||
Width = 41
|
||||
Height = 21
|
||||
ItemIndex = 1
|
||||
TabOrder = 4
|
||||
Text = '2'
|
||||
Items.Strings = (
|
||||
'1'
|
||||
'2'
|
||||
'3'
|
||||
'4'
|
||||
'5'
|
||||
'6'
|
||||
'7'
|
||||
'8'
|
||||
'9'
|
||||
'10'
|
||||
'11'
|
||||
'12'
|
||||
'13'
|
||||
'14'
|
||||
'15'
|
||||
'16'
|
||||
'17'
|
||||
'18'
|
||||
'19'
|
||||
'20'
|
||||
'21'
|
||||
'22'
|
||||
'23'
|
||||
'24'
|
||||
'25'
|
||||
'26'
|
||||
'27'
|
||||
'28'
|
||||
'29'
|
||||
'30'
|
||||
'31'
|
||||
'32')
|
||||
end
|
||||
object cbbLCh2_Range: TComboBox
|
||||
Left = 64
|
||||
Top = 80
|
||||
Width = 57
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 5
|
||||
Text = '10 '#1042
|
||||
Items.Strings = (
|
||||
'10 '#1042
|
||||
'5 '#1042
|
||||
'2 '#1042
|
||||
'1 '#1042
|
||||
'0.5 '#1042
|
||||
'0.2 '#1042)
|
||||
end
|
||||
object cbbLCh2_Mode: TComboBox
|
||||
Left = 136
|
||||
Top = 80
|
||||
Width = 169
|
||||
Height = 21
|
||||
ItemIndex = 1
|
||||
TabOrder = 6
|
||||
Text = #1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
Items.Strings = (
|
||||
#1057' '#1086#1073#1097#1077#1081' '#1079#1077#1084#1083#1077#1081
|
||||
#1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
#1048#1079#1084#1077#1088#1077#1085#1080#1077' '#1085#1091#1083#1103)
|
||||
end
|
||||
object edtLCh2_Result: TEdit
|
||||
Left = 328
|
||||
Top = 80
|
||||
Width = 121
|
||||
Height = 21
|
||||
TabOrder = 7
|
||||
end
|
||||
object cbbLCh3_Channel: TComboBox
|
||||
Left = 8
|
||||
Top = 104
|
||||
Width = 41
|
||||
Height = 21
|
||||
ItemIndex = 2
|
||||
TabOrder = 8
|
||||
Text = '3'
|
||||
Items.Strings = (
|
||||
'1'
|
||||
'2'
|
||||
'3'
|
||||
'4'
|
||||
'5'
|
||||
'6'
|
||||
'7'
|
||||
'8'
|
||||
'9'
|
||||
'10'
|
||||
'11'
|
||||
'12'
|
||||
'13'
|
||||
'14'
|
||||
'15'
|
||||
'16'
|
||||
'17'
|
||||
'18'
|
||||
'19'
|
||||
'20'
|
||||
'21'
|
||||
'22'
|
||||
'23'
|
||||
'24'
|
||||
'25'
|
||||
'26'
|
||||
'27'
|
||||
'28'
|
||||
'29'
|
||||
'30'
|
||||
'31'
|
||||
'32')
|
||||
end
|
||||
object cbbLCh3_Range: TComboBox
|
||||
Left = 64
|
||||
Top = 104
|
||||
Width = 57
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 9
|
||||
Text = '10 '#1042
|
||||
Items.Strings = (
|
||||
'10 '#1042
|
||||
'5 '#1042
|
||||
'2 '#1042
|
||||
'1 '#1042
|
||||
'0.5 '#1042
|
||||
'0.2 '#1042)
|
||||
end
|
||||
object cbbLCh3_Mode: TComboBox
|
||||
Left = 136
|
||||
Top = 104
|
||||
Width = 169
|
||||
Height = 21
|
||||
ItemIndex = 1
|
||||
TabOrder = 10
|
||||
Text = #1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
Items.Strings = (
|
||||
#1057' '#1086#1073#1097#1077#1081' '#1079#1077#1084#1083#1077#1081
|
||||
#1044#1080#1092#1092#1077#1088#1077#1085#1094#1080#1072#1083#1100#1085#1099#1081
|
||||
#1048#1079#1084#1077#1088#1077#1085#1080#1077' '#1085#1091#1083#1103)
|
||||
end
|
||||
object edtLCh3_Result: TEdit
|
||||
Left = 328
|
||||
Top = 104
|
||||
Width = 121
|
||||
Height = 21
|
||||
TabOrder = 11
|
||||
end
|
||||
object chkSyncDin: TCheckBox
|
||||
Left = 120
|
||||
Top = 128
|
||||
Width = 185
|
||||
Height = 17
|
||||
Caption = #1056#1072#1079#1088#1072#1096#1077#1085#1080#1077' '#1089#1080#1085#1093#1088#1086#1085#1085#1086#1075#1086' '#1074#1074#1086#1076#1072
|
||||
TabOrder = 12
|
||||
OnClick = chkSyncDinClick
|
||||
end
|
||||
object edtDin_Result: TEdit
|
||||
Left = 328
|
||||
Top = 128
|
||||
Width = 121
|
||||
Height = 21
|
||||
TabOrder = 13
|
||||
end
|
||||
object cbbLChCnt: TComboBox
|
||||
Left = 192
|
||||
Top = 16
|
||||
Width = 73
|
||||
Height = 21
|
||||
ItemIndex = 2
|
||||
TabOrder = 14
|
||||
Text = '3'
|
||||
OnChange = cbbLChCntChange
|
||||
Items.Strings = (
|
||||
'1'
|
||||
'2'
|
||||
'3')
|
||||
end
|
||||
end
|
||||
object btnStop: TButton
|
||||
Left = 16
|
||||
Top = 120
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1054#1089#1090#1072#1085#1086#1074' '#1089#1073#1086#1088#1072' '#1076#1072#1085#1085#1099#1093
|
||||
Enabled = False
|
||||
TabOrder = 4
|
||||
OnClick = btnStopClick
|
||||
end
|
||||
object btnOpen: TButton
|
||||
Left = 16
|
||||
Top = 56
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1054#1090#1082#1088#1099#1090#1100' '#1091#1089#1090#1088#1086#1081#1089#1090#1074#1086
|
||||
TabOrder = 5
|
||||
OnClick = btnOpenClick
|
||||
end
|
||||
object btnAsyncDigOut: TButton
|
||||
Left = 16
|
||||
Top = 600
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1040#1089#1080#1085#1093#1088#1086#1085#1085#1099#1081' '#1074#1099#1074#1086#1076' '#1094#1080#1092#1088#1086#1074#1099#1093' '#1083#1080#1085#1080#1081
|
||||
TabOrder = 6
|
||||
OnClick = btnAsyncDigOutClick
|
||||
end
|
||||
object edtAsyncDigOut: TEdit
|
||||
Left = 248
|
||||
Top = 600
|
||||
Width = 121
|
||||
Height = 21
|
||||
TabOrder = 7
|
||||
Text = '0x0000'
|
||||
end
|
||||
object edtAsyncDigIn: TEdit
|
||||
Left = 248
|
||||
Top = 568
|
||||
Width = 121
|
||||
Height = 21
|
||||
Enabled = False
|
||||
TabOrder = 8
|
||||
Text = '0x0000'
|
||||
end
|
||||
object btnAsyncDigIn: TButton
|
||||
Left = 16
|
||||
Top = 568
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1040#1089#1080#1085#1093#1088#1086#1085#1085#1099#1081' '#1074#1074#1086#1076' '#1094#1080#1092#1088#1086#1099#1093' '#1083#1080#1085#1080#1081
|
||||
TabOrder = 9
|
||||
OnClick = btnAsyncDigInClick
|
||||
end
|
||||
object GroupBox2: TGroupBox
|
||||
Left = 264
|
||||
Top = 40
|
||||
Width = 257
|
||||
Height = 169
|
||||
Caption = #1048#1085#1092#1086#1088#1084#1072#1094#1080#1103' '#1086' '#1084#1086#1076#1091#1083#1077
|
||||
TabOrder = 10
|
||||
object Label6: TLabel
|
||||
Left = 112
|
||||
Top = 93
|
||||
Width = 124
|
||||
Height = 13
|
||||
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' '#1055#1051#1048#1057
|
||||
end
|
||||
object labelPldaVer: TLabel
|
||||
Left = 112
|
||||
Top = 117
|
||||
Width = 121
|
||||
Height = 13
|
||||
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' PLDA'
|
||||
end
|
||||
object lbl11: TLabel
|
||||
Left = 112
|
||||
Top = 144
|
||||
Width = 117
|
||||
Height = 13
|
||||
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' ARM'
|
||||
end
|
||||
object chkDacPresent: TCheckBox
|
||||
Left = 16
|
||||
Top = 24
|
||||
Width = 97
|
||||
Height = 17
|
||||
Caption = #1053#1072#1083#1080#1095#1080#1077' '#1062#1040#1055
|
||||
Enabled = False
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtFpgaVer: TEdit
|
||||
Left = 16
|
||||
Top = 93
|
||||
Width = 89
|
||||
Height = 21
|
||||
ReadOnly = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object edtPldaVer: TEdit
|
||||
Left = 16
|
||||
Top = 117
|
||||
Width = 89
|
||||
Height = 21
|
||||
ReadOnly = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object edtMcuVer: TEdit
|
||||
Left = 16
|
||||
Top = 144
|
||||
Width = 89
|
||||
Height = 21
|
||||
ReadOnly = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object chkEthPresent: TCheckBox
|
||||
Left = 16
|
||||
Top = 72
|
||||
Width = 209
|
||||
Height = 17
|
||||
Caption = #1053#1072#1083#1080#1095#1080#1077' '#1089#1077#1090#1077#1074#1086#1075#1086' '#1080#1085#1090#1077#1088#1092#1077#1081#1089#1072
|
||||
Enabled = False
|
||||
TabOrder = 4
|
||||
end
|
||||
end
|
||||
object chkGalPresent: TCheckBox
|
||||
Left = 280
|
||||
Top = 80
|
||||
Width = 169
|
||||
Height = 17
|
||||
Caption = #1053#1072#1083#1080#1095#1080#1077' '#1075#1072#1083#1100#1074#1072#1085#1086#1088#1072#1079#1074#1103#1079#1082#1080
|
||||
Enabled = False
|
||||
TabOrder = 11
|
||||
end
|
||||
object chkDspPresent: TCheckBox
|
||||
Left = 280
|
||||
Top = 96
|
||||
Width = 209
|
||||
Height = 17
|
||||
Caption = #1053#1072#1083#1080#1095#1080#1077' '#1089#1080#1075#1085#1072#1083#1100#1085#1086#1075#1086' '#1087#1088#1086#1094#1077#1089#1089#1086#1088#1072
|
||||
Enabled = False
|
||||
TabOrder = 12
|
||||
end
|
||||
object edtAsyncDac1: TEdit
|
||||
Left = 248
|
||||
Top = 640
|
||||
Width = 81
|
||||
Height = 21
|
||||
TabOrder = 13
|
||||
Text = '5'
|
||||
end
|
||||
object btnAsyncDac1: TButton
|
||||
Left = 16
|
||||
Top = 640
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1040#1089#1080#1085#1093#1088#1086#1085#1085#1099#1081' '#1074#1099#1074#1086#1076' '#1085#1072' '#1062#1040#1055'1 ('#1042#1086#1083#1100#1090#1099')'
|
||||
TabOrder = 14
|
||||
OnClick = btnAsyncDac1Click
|
||||
end
|
||||
object btnAsyncDac2: TButton
|
||||
Left = 16
|
||||
Top = 672
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1040#1089#1080#1085#1093#1088#1086#1085#1085#1099#1081' '#1074#1099#1074#1086#1076' '#1085#1072' '#1062#1040#1055'2 ('#1042#1086#1083#1100#1090#1099')'
|
||||
TabOrder = 15
|
||||
OnClick = btnAsyncDac2Click
|
||||
end
|
||||
object edtAsyncDac2: TEdit
|
||||
Left = 248
|
||||
Top = 672
|
||||
Width = 81
|
||||
Height = 21
|
||||
TabOrder = 16
|
||||
Text = '5'
|
||||
end
|
||||
object btnAsyncAdcFrame: TButton
|
||||
Left = 16
|
||||
Top = 536
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1040#1089#1080#1085#1093#1088#1086#1085#1085#1099#1081' '#1074#1074#1086#1076' '#1082#1072#1076#1088#1072' '#1040#1062#1055
|
||||
TabOrder = 17
|
||||
OnClick = btnAsyncAdcFrameClick
|
||||
end
|
||||
object GroupBox3: TGroupBox
|
||||
Left = 16
|
||||
Top = 240
|
||||
Width = 513
|
||||
Height = 65
|
||||
Caption = #1063#1072#1089#1090#1086#1090#1099' '#1089#1080#1085#1093#1088#1086#1085#1085#1086#1075#1086' '#1089#1073#1086#1088#1072' '#1076#1072#1085#1085#1099#1093
|
||||
TabOrder = 18
|
||||
object Label5: TLabel
|
||||
Left = 16
|
||||
Top = 20
|
||||
Width = 136
|
||||
Height = 13
|
||||
Caption = #1063#1072#1089#1090#1086#1090#1072' '#1089#1073#1086#1088#1072' '#1076#1072#1085#1085#1099#1093' ('#1043#1094')'
|
||||
end
|
||||
object Label7: TLabel
|
||||
Left = 168
|
||||
Top = 20
|
||||
Width = 111
|
||||
Height = 13
|
||||
Caption = #1063#1072#1089#1090#1086#1090#1072' '#1085#1072' '#1082#1072#1085#1072#1083' ('#1043#1094')'
|
||||
end
|
||||
object Label8: TLabel
|
||||
Left = 296
|
||||
Top = 20
|
||||
Width = 163
|
||||
Height = 13
|
||||
Caption = #1063#1072#1089#1090#1086#1090#1072' '#1089#1080#1085#1093#1088#1086#1085#1085#1086#1075#1086' '#1074#1074#1086#1076#1072' ('#1043#1094')'
|
||||
end
|
||||
object btnSetAdcFreq: TButton
|
||||
Left = 432
|
||||
Top = 32
|
||||
Width = 73
|
||||
Height = 25
|
||||
Caption = #1059#1089#1090#1072#1085#1086#1074#1080#1090#1100
|
||||
TabOrder = 0
|
||||
OnClick = adcFreqEditChange
|
||||
end
|
||||
object edtAdcFreq: TEdit
|
||||
Left = 16
|
||||
Top = 36
|
||||
Width = 105
|
||||
Height = 21
|
||||
TabOrder = 1
|
||||
Text = '2000000'
|
||||
end
|
||||
object edtAdcFreqLch: TEdit
|
||||
Left = 176
|
||||
Top = 36
|
||||
Width = 105
|
||||
Height = 21
|
||||
TabOrder = 2
|
||||
Text = '2000000'
|
||||
end
|
||||
object edtDinFreq: TEdit
|
||||
Left = 296
|
||||
Top = 36
|
||||
Width = 105
|
||||
Height = 21
|
||||
TabOrder = 3
|
||||
Text = '2000000'
|
||||
end
|
||||
end
|
||||
object GroupBox4: TGroupBox
|
||||
Left = 16
|
||||
Top = 311
|
||||
Width = 513
|
||||
Height = 65
|
||||
Caption = #1057#1080#1085#1093#1088#1086#1085#1080#1079#1072#1094#1080#1103
|
||||
TabOrder = 19
|
||||
object Label10: TLabel
|
||||
Left = 16
|
||||
Top = 20
|
||||
Width = 172
|
||||
Height = 13
|
||||
Caption = #1048#1089#1090#1086#1095#1085#1080#1082' '#1095#1072#1089#1090#1086#1090#1099' '#1089#1080#1085#1093#1088#1086#1085#1080#1079#1072#1094#1080#1080
|
||||
end
|
||||
object Label11: TLabel
|
||||
Left = 264
|
||||
Top = 20
|
||||
Width = 238
|
||||
Height = 13
|
||||
Caption = #1048#1089#1090#1086#1095#1085#1080#1082' '#1079#1072#1087#1091#1089#1082#1072' '#1089#1080#1085#1093#1088#1086#1085#1085#1086#1075#1086' '#1074#1074#1086#1076#1072'/'#1074#1099#1074#1086#1076#1072
|
||||
end
|
||||
object cbbSyncMode: TComboBox
|
||||
Left = 16
|
||||
Top = 38
|
||||
Width = 169
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 0
|
||||
Text = #1042#1085#1091#1090#1088#1077#1085#1085#1080#1081
|
||||
Items.Strings = (
|
||||
#1042#1085#1091#1090#1088#1077#1085#1085#1080#1081
|
||||
#1054#1090' '#1074#1085#1077#1096#1085#1077#1075#1086' '#1084#1072#1089#1090#1077#1088#1072
|
||||
#1060#1088#1086#1085#1090' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN1'
|
||||
#1060#1088#1086#1085#1090' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN2'
|
||||
#1057#1087#1072#1076' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN1'
|
||||
#1057#1087#1072#1076' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN2')
|
||||
end
|
||||
object cbbSyncStartMode: TComboBox
|
||||
Left = 264
|
||||
Top = 38
|
||||
Width = 169
|
||||
Height = 21
|
||||
ItemIndex = 0
|
||||
TabOrder = 1
|
||||
Text = #1042#1085#1091#1090#1088#1077#1085#1085#1080#1081
|
||||
Items.Strings = (
|
||||
#1042#1085#1091#1090#1088#1077#1085#1085#1080#1081
|
||||
#1054#1090' '#1074#1085#1077#1096#1085#1077#1075#1086' '#1084#1072#1089#1090#1077#1088#1072
|
||||
#1060#1088#1086#1085#1090' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN1'
|
||||
#1060#1088#1086#1085#1090' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN2'
|
||||
#1057#1087#1072#1076' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN1'
|
||||
#1057#1087#1072#1076' '#1089#1080#1075#1085#1072#1083#1072' DI_SYN2')
|
||||
end
|
||||
end
|
||||
object btnOpenByIP: TButton
|
||||
Left = 16
|
||||
Top = 168
|
||||
Width = 217
|
||||
Height = 25
|
||||
Caption = #1059#1089#1090#1072#1085#1086#1074#1080#1090#1100' '#1089#1086#1077#1076#1080#1085#1077#1085#1080#1077' '#1087#1086' IP-'#1072#1076#1088#1077#1089#1091
|
||||
TabOrder = 20
|
||||
OnClick = btnOpenByIPClick
|
||||
end
|
||||
object edtIpAddr: TEdit
|
||||
Left = 16
|
||||
Top = 200
|
||||
Width = 217
|
||||
Height = 21
|
||||
TabOrder = 21
|
||||
Text = '192.168.0.1'
|
||||
end
|
||||
end
|
||||
122
x502api-1.1.34/examples/CppBuilder/x502_general/unit.h
Normal file
122
x502api-1.1.34/examples/CppBuilder/x502_general/unit.h
Normal file
@ -0,0 +1,122 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef unitH
|
||||
#define unitH
|
||||
|
||||
#include "l502api.h"
|
||||
#include "e502api.h"
|
||||
#include "x502_thread.h"
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
#include <Classes.hpp>
|
||||
#include <Controls.hpp>
|
||||
#include <StdCtrls.hpp>
|
||||
#include <Forms.hpp>
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
class TForm1 : public TForm
|
||||
{
|
||||
__published: // IDE-managed Components
|
||||
TButton *btnRefreshDeviceList;
|
||||
TComboBox *cbbDevList;
|
||||
TButton *btnStart;
|
||||
TGroupBox *GroupBox1;
|
||||
TLabel *Label2;
|
||||
TLabel *Label1;
|
||||
TComboBox *cbbLCh1_Channel;
|
||||
TComboBox *cbbLCh1_Range;
|
||||
TComboBox *cbbLCh1_Mode;
|
||||
TEdit *edtLCh1_Result;
|
||||
TComboBox *cbbLCh2_Channel;
|
||||
TComboBox *cbbLCh2_Range;
|
||||
TComboBox *cbbLCh2_Mode;
|
||||
TEdit *edtLCh2_Result;
|
||||
TComboBox *cbbLCh3_Channel;
|
||||
TComboBox *cbbLCh3_Range;
|
||||
TComboBox *cbbLCh3_Mode;
|
||||
TComboBox *cbbSyncMode;
|
||||
TComboBox *cbbSyncStartMode;
|
||||
TEdit *edtLCh3_Result;
|
||||
TButton *btnStop;
|
||||
TLabel *Label3;
|
||||
TLabel *Label4;
|
||||
TCheckBox *chkSyncDin;
|
||||
TEdit *edtDin_Result;
|
||||
TButton *btnOpen;
|
||||
TButton *btnAsyncDigOut;
|
||||
TEdit *edtAsyncDigOut;
|
||||
TEdit *edtAsyncDigIn;
|
||||
TButton *btnAsyncDigIn;
|
||||
TGroupBox *GroupBox2;
|
||||
TCheckBox *chkDacPresent;
|
||||
TCheckBox *chkGalPresent;
|
||||
TCheckBox *chkDspPresent;
|
||||
TEdit *edtFpgaVer;
|
||||
TLabel *Label6;
|
||||
TEdit *edtPldaVer;
|
||||
TLabel *labelPldaVer;
|
||||
TEdit *edtAsyncDac1;
|
||||
TButton *btnAsyncDac1;
|
||||
TButton *btnAsyncDac2;
|
||||
TEdit *edtAsyncDac2;
|
||||
TButton *btnAsyncAdcFrame;
|
||||
TGroupBox *GroupBox3;
|
||||
TButton *btnSetAdcFreq;
|
||||
TLabel *Label5;
|
||||
TEdit *edtAdcFreq;
|
||||
TEdit *edtAdcFreqLch;
|
||||
TEdit *edtDinFreq;
|
||||
TLabel *Label7;
|
||||
TLabel *Label8;
|
||||
TComboBox *cbbLChCnt;
|
||||
TLabel *Label9;
|
||||
TLabel *lbl11;
|
||||
TEdit *edtMcuVer;
|
||||
TCheckBox *chkEthPresent;
|
||||
TButton *btnOpenByIP;
|
||||
TEdit *edtIpAddr;
|
||||
|
||||
void __fastcall btnRefreshDeviceListClick(TObject *Sender);
|
||||
void __fastcall btnStartClick(TObject *Sender);
|
||||
void __fastcall btnStopClick(TObject *Sender);
|
||||
void __fastcall btnOpenClick(TObject *Sender);
|
||||
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
|
||||
void __fastcall btnAsyncDigOutClick(TObject *Sender);
|
||||
void __fastcall adcFreqEditChange(TObject *Sender);
|
||||
void __fastcall chkSyncDinClick(TObject *Sender);
|
||||
void __fastcall btnAsyncDigInClick(TObject *Sender);
|
||||
void __fastcall btnAsyncDac1Click(TObject *Sender);
|
||||
void __fastcall btnAsyncDac2Click(TObject *Sender);
|
||||
void __fastcall btnAsyncAdcFrameClick(TObject *Sender);
|
||||
void __fastcall cbbDevListChange(TObject *Sender);
|
||||
void __fastcall cbbLChCntChange(TObject *Sender);
|
||||
void __fastcall btnOpenByIPClick(TObject *Sender);
|
||||
private: // User declarations
|
||||
t_x502_hnd hnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool threadRunning; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
X502_ProcessThread *thread; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
DynamicArray<t_x502_devrec> devrecList;
|
||||
void freeDevList();
|
||||
void refreshDeviceList();
|
||||
void closeDevice();
|
||||
void showDevInfo();
|
||||
uint32_t parseIpAddr(AnsiString addr);
|
||||
|
||||
int32_t setSyncDinStream();
|
||||
int32_t setAdcFreq();
|
||||
int32_t setupParams();
|
||||
|
||||
void updateControls();
|
||||
|
||||
__fastcall void OnThreadTerminate(TObject *obj);
|
||||
|
||||
|
||||
|
||||
public: // User declarations
|
||||
__fastcall TForm1(TComponent* Owner);
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern PACKAGE TForm1 *Form1;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
146
x502api-1.1.34/examples/CppBuilder/x502_general/x502_example.bpr
Normal file
146
x502api-1.1.34/examples/CppBuilder/x502_general/x502_example.bpr
Normal file
@ -0,0 +1,146 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!-- C++Builder XML Project -->
|
||||
<PROJECT>
|
||||
<MACROS>
|
||||
<VERSION value="BCB.06.00"/>
|
||||
<PROJECT value="x502_example.exe"/>
|
||||
<OBJFILES value="x502_example.obj unit.obj x502_thread.obj"/>
|
||||
<RESFILES value="x502_example.res"/>
|
||||
<IDLFILES value=""/>
|
||||
<IDLGENFILES value=""/>
|
||||
<DEFFILE value=""/>
|
||||
<RESDEPEN value="$(RESFILES) unit.dfm"/>
|
||||
<LIBFILES value=""C:\Program Files (x86)\L-Card\lpcie\lib\borland\e502api.lib"
|
||||
"C:\Program Files (x86)\L-Card\lpcie\lib\borland\l502api.lib" "C:\Program Files (x86)\L-Card\lpcie\lib\borland\x502api.lib""/>
|
||||
<LIBRARIES value=""/>
|
||||
<SPARELIBS value="vcl.lib rtl.lib"/>
|
||||
<PACKAGES value="vcl.bpi rtl.bpi dbrtl.bpi adortl.bpi vcldb.bpi vclx.bpi bdertl.bpi
|
||||
vcldbx.bpi ibxpress.bpi dsnap.bpi cds.bpi bdecds.bpi qrpt.bpi teeui.bpi
|
||||
teedb.bpi tee.bpi dss.bpi teeqr.bpi visualclx.bpi visualdbclx.bpi
|
||||
dsnapcrba.bpi dsnapcon.bpi bcbsmp.bpi vclie.bpi xmlrtl.bpi inet.bpi
|
||||
inetdbbde.bpi inetdbxpress.bpi inetdb.bpi nmfast.bpi webdsnap.bpi
|
||||
bcbie.bpi websnap.bpi soaprtl.bpi dclocx.bpi dbexpress.bpi dbxcds.bpi
|
||||
indy.bpi bcb2kaxserver.bpi"/>
|
||||
<PATHCPP value=".;"/>
|
||||
<PATHPAS value=".;"/>
|
||||
<PATHRC value=".;"/>
|
||||
<PATHASM value=".;"/>
|
||||
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
|
||||
<RELEASELIBPATH value="$(BCB)\lib\release"/>
|
||||
<LINKER value="ilink32"/>
|
||||
<USERDEFINES value="_DEBUG"/>
|
||||
<SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/>
|
||||
<MAINSOURCE value="x502_example.cpp"/>
|
||||
<INCLUDEPATH value="$(BCB)\include;$(BCB)\include\vcl;"C:\Program Files (x86)\L-Card\lpcie\include""/>
|
||||
<LIBPATH value=""C:\Program Files (x86)\Borland\CBuilder6\Projects";$(BCB)\lib\obj;$(BCB)\lib"/>
|
||||
<WARNINGS value="-w-par"/>
|
||||
<OTHERFILES value=""/>
|
||||
</MACROS>
|
||||
<OPTIONS>
|
||||
<IDLCFLAGS value="-I$(BCB)\include -I$(BCB)\include\vcl
|
||||
-I"C:\Program Files (x86)\L-Card\lpcie\include" -src_suffix cpp -D_DEBUG
|
||||
-boa"/>
|
||||
<CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
|
||||
-tW -tWM"/>
|
||||
<PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>
|
||||
<RFLAGS value=""/>
|
||||
<AFLAGS value="/mx /w2 /zd"/>
|
||||
<LFLAGS value="-D"" -aa -Tpe -x -Gn -v"/>
|
||||
<OTHERFILES value=""/>
|
||||
</OPTIONS>
|
||||
<LINKER>
|
||||
<ALLOBJ value="c0w32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
|
||||
<ALLRES value="$(RESFILES)"/>
|
||||
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
|
||||
<OTHERFILES value=""/>
|
||||
</LINKER>
|
||||
<FILELIST>
|
||||
<FILE FILENAME="x502_example.res" FORMNAME="" UNITNAME="x502_example.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="x502_example.cpp" FORMNAME="" UNITNAME="x502_example" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="unit.cpp" FORMNAME="Form1" UNITNAME="unit" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="x502_thread.cpp" FORMNAME="" UNITNAME="x502_thread" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="C:\Program Files (x86)\L-Card\lpcie\lib\borland\e502api.lib" FORMNAME="" UNITNAME="e502api.lib" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="C:\Program Files (x86)\L-Card\lpcie\lib\borland\l502api.lib" FORMNAME="" UNITNAME="l502api.lib" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
<FILE FILENAME="C:\Program Files (x86)\L-Card\lpcie\lib\borland\x502api.lib" FORMNAME="" UNITNAME="x502api.lib" CONTAINERID="LibTool" DESIGNCLASS="" LOCALCOMMAND=""/>
|
||||
</FILELIST>
|
||||
<BUILDTOOLS>
|
||||
</BUILDTOOLS>
|
||||
|
||||
<IDEOPTIONS>
|
||||
[Version Info]
|
||||
IncludeVerInfo=0
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1049
|
||||
CodePage=1251
|
||||
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=1.0.0.0
|
||||
Comments=
|
||||
|
||||
[Excluded Packages]
|
||||
c:\program files (x86)\borland\cbuilder6\Bin\dclite60.bpl=Borland Integrated Translation Environment
|
||||
|
||||
[HistoryLists\hlIncludePath]
|
||||
Count=5
|
||||
Item0=$(BCB)\include;$(BCB)\include\vcl;C:\Program Files (x86)\L-Card\lpcie\include
|
||||
Item1=C:\Program Files (x86)\Borland\CBuilder6\Projects;C:\Program Files (x86)\L-Card\lpcie\include
|
||||
Item2=C:\Program Files (x86)\Borland\CBuilder6\Projects;
|
||||
Item3=$(BCB)\include;$(BCB)\include\vcl;
|
||||
Item4=$(BCB)\include;$(BCB)\include\vcl
|
||||
|
||||
[HistoryLists\hlLibraryPath]
|
||||
Count=2
|
||||
Item0=C:\Program Files (x86)\Borland\CBuilder6\Projects
|
||||
Item1=$(BCB)\lib\obj;$(BCB)\lib
|
||||
|
||||
[HistoryLists\hlDebugSourcePath]
|
||||
Count=1
|
||||
Item0=$(BCB)\source\vcl
|
||||
|
||||
[HistoryLists\hlConditionals]
|
||||
Count=1
|
||||
Item0=_DEBUG
|
||||
|
||||
[Debugging]
|
||||
DebugSourceDirs=$(BCB)\source\vcl
|
||||
|
||||
[Parameters]
|
||||
RunParams=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
HostApplication=
|
||||
RemoteHost=
|
||||
RemotePath=
|
||||
RemoteLauncher=
|
||||
RemoteCWD=
|
||||
RemoteDebug=0
|
||||
|
||||
[Compiler]
|
||||
ShowInfoMsgs=0
|
||||
LinkDebugVcl=0
|
||||
LinkCGLIB=0
|
||||
|
||||
[CORBA]
|
||||
AddServerUnit=1
|
||||
AddClientUnit=1
|
||||
PrecompiledHeaders=1
|
||||
</IDEOPTIONS>
|
||||
</PROJECT>
|
||||
@ -0,0 +1,294 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{52F5121E-CB05-4B98-8B26-2A5FA28782E4}</ProjectGuid>
|
||||
<ProjectType>CppVCLApplication</ProjectType>
|
||||
<MainSource>x502_example.cpp</MainSource>
|
||||
<Base>True</Base>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<TargetedPlatforms>1</TargetedPlatforms>
|
||||
<AppType>Application</AppType>
|
||||
<FrameworkType>VCL</FrameworkType>
|
||||
<ProjectVersion>15.4</ProjectVersion>
|
||||
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||
<Base_Win32>true</Base_Win32>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||
<Base_Win64>true</Base_Win64>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||
<CfgParent>Cfg_1</CfgParent>
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
|
||||
<Cfg_1_Win64>true</Cfg_1_Win64>
|
||||
<CfgParent>Cfg_1</CfgParent>
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
|
||||
<Cfg_2_Win32>true</Cfg_2_Win32>
|
||||
<CfgParent>Cfg_2</CfgParent>
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
|
||||
<Cfg_2_Win64>true</Cfg_2_Win64>
|
||||
<CfgParent>Cfg_2</CfgParent>
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||
<SanitizedProjectName>x502_example</SanitizedProjectName>
|
||||
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
||||
<VerInfo_Locale>1049</VerInfo_Locale>
|
||||
<AllPackageLibs>vcl.lib;rtl.lib</AllPackageLibs>
|
||||
<DCC_UnitSearchPath>.\;$(BDS)\lib;$(BDS)\lib\obj;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||
<FinalOutputDir>.</FinalOutputDir>
|
||||
<TASM_AdditionalSwitches> /w2</TASM_AdditionalSwitches>
|
||||
<BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
|
||||
<BRCC_IncludePath>$(BDS)\include;$(BDS)\include\vcl;C:\Program Files (x86)\L-Card\lpcie\include;$(BRCC_IncludePath)</BRCC_IncludePath>
|
||||
<BCC_DisableOptimizations>true</BCC_DisableOptimizations>
|
||||
<DCC_AdditionalSwitches> -M</DCC_AdditionalSwitches>
|
||||
<BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>
|
||||
<UsePackages>true</UsePackages>
|
||||
<ILINK_AppType>Windows</ILINK_AppType>
|
||||
<DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
|
||||
<DCC_IncludePath>.\;$(BDS)\lib;$(BDS)\lib\obj;$(DCC_IncludePath)</DCC_IncludePath>
|
||||
<BCC_IncludePath>$(BDS)\include;$(BDS)\include\vcl;C:\Program Files (x86)\L-Card\lpcie\include;$(BCC_IncludePath)</BCC_IncludePath>
|
||||
<TASM_IncludePath>$(BDS)\include;$(BDS)\include\vcl;C:\Program Files (x86)\L-Card\lpcie\include;$(TASM_IncludePath)</TASM_IncludePath>
|
||||
<ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
|
||||
<DynamicRTL>true</DynamicRTL>
|
||||
<ILINK_LibraryPath>C:\Program Files (x86)\Borland\CBuilder6\Projects;$(BDS)\lib\obj;$(BDS)\lib;$(BDS)\lib\psdk;$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
||||
<BCC_GenerateWindowsApp>true</BCC_GenerateWindowsApp>
|
||||
<BCC_DebugLineNumbers>true</BCC_DebugLineNumbers>
|
||||
<BCC_PCHCache>true</BCC_PCHCache>
|
||||
<PackageImports>vcl.bpi;rtl.bpi;dbrtl.bpi;adortl.bpi;vcldb.bpi;vclx.bpi;bdertl.bpi;vcldbx.bpi;ibxpress.bpi;dsnap.bpi;dsnap.bpi;dsnapcon.bpi;teeui.bpi;teedb.bpi;tee.bpi;dss.bpi;dsnapcon.bpi;bcbsmp.bpi;vclie.bpi;xmlrtl.bpi;inet.bpi;inetdbbde.bpi;inetdbxpress.bpi;inetdb.bpi;webdsnap.bpi;bcbie.bpi;websnap.bpi;soaprtl.bpi;dbexpress.bpi;dbxcds.bpi;indycore.bpi;indysystem.bpi;bcboffice2k.bpi;$(PackageImports)</PackageImports>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||
<BCC_UserSuppliedOptions> -tWM -Vx -r- -k -Ve</BCC_UserSuppliedOptions>
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||
<IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
|
||||
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||
<OutputExt>.exe</OutputExt>
|
||||
<BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
|
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||
<TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
|
||||
<ILINK_LibraryPath>C:\Program Files (x86)\L-Card\lpcie\lib\borland\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||
<IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
|
||||
<TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
|
||||
<BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||
<IntermediateOutputDir>Debug_Build</IntermediateOutputDir>
|
||||
<DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
|
||||
<TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>
|
||||
<TASM_Debugging>Full</TASM_Debugging>
|
||||
<DCC_Define>DEBUG;$(DCC_Define);$(DCC_Define)</DCC_Define>
|
||||
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||
<ILINK_DisableIncrementalLinking>true</ILINK_DisableIncrementalLinking>
|
||||
<ILINK_LibraryPath>$(BDS)\lib\debug;$(ILINK_LibraryPath);$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||
<BCC_UserSuppliedOptions> -tWM -Vx -r- -k -Ve -k</BCC_UserSuppliedOptions>
|
||||
<BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
|
||||
<LinkPackageImports>vcl.bpi;rtl.bpi</LinkPackageImports>
|
||||
<OutputExt>exe</OutputExt>
|
||||
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||
<ILINK_LibraryPath>$(BDS)\lib\win32\release\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
|
||||
<BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<BCC_OptimizationLevel>Level2</BCC_OptimizationLevel>
|
||||
<DCC_AdditionalSwitches> -M -$O+</DCC_AdditionalSwitches>
|
||||
<ILINK_LibraryPath>$(BDS)\lib\release;$(ILINK_LibraryPath);$(ILINK_LibraryPath)</ILINK_LibraryPath>
|
||||
<TASM_Debugging>None</TASM_Debugging>
|
||||
<IntermediateOutputDir>Release_Build</IntermediateOutputDir>
|
||||
<BCC_InlineFunctionExpansion>true</BCC_InlineFunctionExpansion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
|
||||
<BCC_Defines>NDEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
|
||||
<BCC_UserSuppliedOptions> -tWM -Vx -r- -k -Ve -r</BCC_UserSuppliedOptions>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
|
||||
<BCC_Defines>NDEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<CppCompile Include="unit.cpp">
|
||||
<BuildOrder>8</BuildOrder>
|
||||
<Form>Form1</Form>
|
||||
<DependentOn>unit.h</DependentOn>
|
||||
<BuildOrder>6</BuildOrder>
|
||||
</CppCompile>
|
||||
<CppCompile Include="x502_example.cpp">
|
||||
<BuildOrder>5</BuildOrder>
|
||||
<BuildOrder>5</BuildOrder>
|
||||
</CppCompile>
|
||||
<ResFiles Include="x502_example.res">
|
||||
<BuildOrder>2</BuildOrder>
|
||||
<BuildOrder>4</BuildOrder>
|
||||
</ResFiles>
|
||||
<CppCompile Include="x502_thread.cpp">
|
||||
<BuildOrder>11</BuildOrder>
|
||||
<BuildOrder>3</BuildOrder>
|
||||
</CppCompile>
|
||||
<LibFiles Include="C:\Program Files (x86)\L-Card\lpcie\lib\borland\e502api.lib" Condition="'$(Platform)'=='Win32'">
|
||||
<BuildOrder>4</BuildOrder>
|
||||
<IgnorePath>true</IgnorePath>
|
||||
</LibFiles>
|
||||
<LibFiles Include="C:\Program Files (x86)\L-Card\lpcie\lib\borland\l502api.lib" Condition="'$(Platform)'=='Win32'">
|
||||
<BuildOrder>5</BuildOrder>
|
||||
<IgnorePath>true</IgnorePath>
|
||||
</LibFiles>
|
||||
<LibFiles Include="C:\Program Files (x86)\L-Card\lpcie\lib\borland\x502api.lib" Condition="'$(Platform)'=='Win32'">
|
||||
<BuildOrder>6</BuildOrder>
|
||||
<IgnorePath>true</IgnorePath>
|
||||
</LibFiles>
|
||||
<FormResources Include="unit.dfm"/>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Cpp.Targets"/>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>CPlusPlusBuilder.Personality.12</Borland.Personality>
|
||||
<Borland.ProjectType>CppVCLApplication</Borland.ProjectType>
|
||||
<BorlandProject>
|
||||
<CPlusPlusBuilder.Personality>
|
||||
<VersionInfo>
|
||||
<VersionInfo Name="IncludeVerInfo">0</VersionInfo>
|
||||
<VersionInfo Name="AutoIncBuild">0</VersionInfo>
|
||||
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||
<VersionInfo Name="Release">0</VersionInfo>
|
||||
<VersionInfo Name="Build">0</VersionInfo>
|
||||
<VersionInfo Name="Debug">0</VersionInfo>
|
||||
<VersionInfo Name="PreRelease">0</VersionInfo>
|
||||
<VersionInfo Name="Special">0</VersionInfo>
|
||||
<VersionInfo Name="Private">0</VersionInfo>
|
||||
<VersionInfo Name="DLL">0</VersionInfo>
|
||||
<VersionInfo Name="Locale">1049</VersionInfo>
|
||||
<VersionInfo Name="CodePage">1251</VersionInfo>
|
||||
</VersionInfo>
|
||||
<VersionInfoKeys>
|
||||
<VersionInfoKeys Name="CompanyName"/>
|
||||
<VersionInfoKeys Name="FileDescription"/>
|
||||
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="InternalName"/>
|
||||
<VersionInfoKeys Name="LegalCopyright"/>
|
||||
<VersionInfoKeys Name="LegalTrademarks"/>
|
||||
<VersionInfoKeys Name="OriginalFilename"/>
|
||||
<VersionInfoKeys Name="ProductName"/>
|
||||
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="Comments"/>
|
||||
</VersionInfoKeys>
|
||||
<ExcludedPackages>
|
||||
<ExcludedPackages Name="c:\program files (x86)\borland\cbuilder6\Bin\dclite60.bpl">Borland Integrated Translation Environment</ExcludedPackages>
|
||||
</ExcludedPackages>
|
||||
<HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Count">5</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Item0">$(BCB)\include;$(BCB)\include\vcl;C:\Program Files (x86)\L-Card\lpcie\include</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Item1">C:\Program Files (x86)\Borland\CBuilder6\Projects;C:\Program Files (x86)\L-Card\lpcie\include</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Item2">C:\Program Files (x86)\Borland\CBuilder6\Projects;</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Item3">$(BCB)\include;$(BCB)\include\vcl;</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlIncludePath Name="Item4">$(BCB)\include;$(BCB)\include\vcl</HistoryLists_hlIncludePath>
|
||||
</HistoryLists_hlIncludePath>
|
||||
<HistoryLists_hlLibraryPath>
|
||||
<HistoryLists_hlLibraryPath Name="Count">2</HistoryLists_hlLibraryPath>
|
||||
<HistoryLists_hlLibraryPath Name="Item0">C:\Program Files (x86)\Borland\CBuilder6\Projects</HistoryLists_hlLibraryPath>
|
||||
<HistoryLists_hlLibraryPath Name="Item1">$(BCB)\lib\obj;$(BCB)\lib</HistoryLists_hlLibraryPath>
|
||||
</HistoryLists_hlLibraryPath>
|
||||
<HistoryLists_hlDebugSourcePath>
|
||||
<HistoryLists_hlDebugSourcePath Name="Count">1</HistoryLists_hlDebugSourcePath>
|
||||
<HistoryLists_hlDebugSourcePath Name="Item0">$(BCB)\source\vcl</HistoryLists_hlDebugSourcePath>
|
||||
</HistoryLists_hlDebugSourcePath>
|
||||
<HistoryLists_hlConditionals>
|
||||
<HistoryLists_hlConditionals Name="Count">1</HistoryLists_hlConditionals>
|
||||
<HistoryLists_hlConditionals Name="Item0">_DEBUG</HistoryLists_hlConditionals>
|
||||
</HistoryLists_hlConditionals>
|
||||
<Debugging>
|
||||
<Debugging Name="DebugSourceDirs">$(BCB)\source\vcl</Debugging>
|
||||
</Debugging>
|
||||
<Parameters>
|
||||
<Parameters Name="RunParams"/>
|
||||
<Parameters Name="Launcher"/>
|
||||
<Parameters Name="UseLauncher">0</Parameters>
|
||||
<Parameters Name="DebugCWD"/>
|
||||
<Parameters Name="HostApplication"/>
|
||||
<Parameters Name="RemoteHost"/>
|
||||
<Parameters Name="RemotePath"/>
|
||||
<Parameters Name="RemoteLauncher"/>
|
||||
<Parameters Name="RemoteCWD"/>
|
||||
<Parameters Name="RemoteDebug">0</Parameters>
|
||||
</Parameters>
|
||||
<Compiler>
|
||||
<Compiler Name="ShowInfoMsgs">0</Compiler>
|
||||
<Compiler Name="LinkDebugVcl">0</Compiler>
|
||||
<Compiler Name="LinkCGLIB">0</Compiler>
|
||||
</Compiler>
|
||||
<CORBA>
|
||||
<CORBA Name="AddServerUnit">1</CORBA>
|
||||
<CORBA Name="AddClientUnit">1</CORBA>
|
||||
<CORBA Name="PrecompiledHeaders">1</CORBA>
|
||||
</CORBA>
|
||||
<ProjectProperties>
|
||||
<ProjectProperties Name="AutoShowDeps">False</ProjectProperties>
|
||||
<ProjectProperties Name="ManagePaths">True</ProjectProperties>
|
||||
<ProjectProperties Name="VerifyPackages">True</ProjectProperties>
|
||||
<ProjectProperties Name="IndexFiles">False</ProjectProperties>
|
||||
</ProjectProperties>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\bcboffice2k200.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\bcbofficexp200.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k200.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDSBIN)\dclofficexp200.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
<Source>
|
||||
<Source Name="MainSource">x502_example.cpp</Source>
|
||||
</Source>
|
||||
</CPlusPlusBuilder.Personality>
|
||||
<Platforms>
|
||||
<Platform value="Win32">True</Platform>
|
||||
<Platform value="Win64">False</Platform>
|
||||
</Platforms>
|
||||
</BorlandProject>
|
||||
<ProjectFileVersion>12</ProjectFileVersion>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Cpp.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Cpp.Targets')"/>
|
||||
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||
</Project>
|
||||
@ -0,0 +1,40 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#include <vcl.h>
|
||||
#pragma hdrstop
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
USEFORM("unit.cpp", Form1);
|
||||
//---------------------------------------------------------------------------
|
||||
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
|
||||
{
|
||||
try
|
||||
{
|
||||
Application->Initialize();
|
||||
Application->CreateForm(__classid(TForm1), &Form1);
|
||||
Application->Run();
|
||||
}
|
||||
catch (Exception &exception)
|
||||
{
|
||||
Application->ShowException(&exception);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
try
|
||||
{
|
||||
throw Exception("");
|
||||
}
|
||||
catch (Exception &exception)
|
||||
{
|
||||
Application->ShowException(&exception);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
BIN
x502api-1.1.34/examples/CppBuilder/x502_general/x502_example.res
Normal file
BIN
x502api-1.1.34/examples/CppBuilder/x502_general/x502_example.res
Normal file
Binary file not shown.
100
x502api-1.1.34/examples/CppBuilder/x502_general/x502_thread.cpp
Normal file
100
x502api-1.1.34/examples/CppBuilder/x502_general/x502_thread.cpp
Normal file
@ -0,0 +1,100 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#pragma hdrstop
|
||||
|
||||
#include "x502_thread.h"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#pragma package(smart_init)
|
||||
|
||||
#define RECV_BUF_SIZE 8*1024*1024
|
||||
#define RECV_TOUT 250
|
||||
|
||||
|
||||
__fastcall X502_ProcessThread::X502_ProcessThread(bool CreateSuspended)
|
||||
: TThread(CreateSuspended), stop(false), err (X502_ERR_OK) {
|
||||
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> Syncronize, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VCL <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
void __fastcall X502_ProcessThread::updateData() {
|
||||
uint32_t lch_cnt;
|
||||
err = X502_GetLChannelCount(hnd, &lch_cnt);
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
for (uint32_t i=0; (i < lch_cnt) && (i < adcSize); i++)
|
||||
lchResEdits[(firstLch + i)%lch_cnt]->Text = FloatToStrF(adcData[i], ffFixed, 4, 8);
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
if (dinSize) {
|
||||
dinResEdit->Text = IntToHex((int)dinData[0]&0x3FFFF, 5);
|
||||
} else {
|
||||
dinResEdit->Text = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void __fastcall X502_ProcessThread::Execute() {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
uint32_t *rcv_buf = new uint32_t[RECV_BUF_SIZE];
|
||||
dinData = new uint32_t[RECV_BUF_SIZE];
|
||||
adcData = new double[RECV_BUF_SIZE];
|
||||
|
||||
|
||||
if (!rcv_buf || !dinData || !adcData) {
|
||||
err = X502_ERR_MEMORY_ALLOC;
|
||||
} else {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
err = X502_StreamsStart(hnd);
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||
<20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
while (!stop && (err == X502_ERR_OK)) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t rcv_size = X502_Recv(hnd, rcv_buf, RECV_BUF_SIZE, RECV_TOUT);
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... */
|
||||
if (rcv_size < 0) {
|
||||
err = rcv_size;
|
||||
} else if (rcv_size>0) {
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
dinSize=RECV_BUF_SIZE;
|
||||
adcSize=RECV_BUF_SIZE;
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
err = X502_GetNextExpectedLchNum(hnd, &firstLch);
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
err = X502_ProcessData(hnd, rcv_buf, rcv_size, L502_PROC_FLAGS_VOLT,
|
||||
adcData, &adcSize, dinData, &dinSize);
|
||||
}
|
||||
|
||||
if (err == X502_ERR_OK) {
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
Synchronize(updateData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
int32_t stop_err = X502_StreamsStop(hnd);
|
||||
if (err == X502_ERR_OK)
|
||||
err = stop_err;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
delete rcv_buf;
|
||||
delete dinData;
|
||||
delete adcData;
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef X502_THREAD_H
|
||||
#define X502_THREAD_H
|
||||
|
||||
|
||||
#include "l502api.h"
|
||||
#include "e502api.h"
|
||||
|
||||
#include <vcl.h>
|
||||
|
||||
|
||||
class X502_ProcessThread : public TThread {
|
||||
|
||||
protected:
|
||||
void __fastcall Execute();
|
||||
|
||||
public:
|
||||
bool stop; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int err; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
t_x502_hnd hnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TEdit* lchResEdits[X502_LTABLE_MAX_CH_CNT];
|
||||
TEdit* dinResEdit;
|
||||
|
||||
__fastcall X502_ProcessThread(bool CreateSuspended);
|
||||
|
||||
private:
|
||||
void __fastcall updateData() ;
|
||||
double* adcData;
|
||||
uint32_t firstLch; /* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||
uint32_t adcSize;
|
||||
uint32_t* dinData;
|
||||
uint32_t dinSize;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
Reference in New Issue
Block a user