Compare commits
29 Commits
master
...
d979f45179
| Author | SHA1 | Date | |
|---|---|---|---|
| d979f45179 | |||
| a726babc1c | |||
| 4e2d8d4b22 | |||
| bec5e29e2c | |||
| a1c727c71f | |||
| 9ad09ee77b | |||
| 87954d40d9 | |||
| e2eac4dd48 | |||
| 850a66e620 | |||
| d1bd233399 | |||
| b7eae9d469 | |||
| b80ad585da | |||
| 4d1f7fdbe9 | |||
| a44043593c | |||
| b7ba42765b | |||
| 77005d7863 | |||
| bf25bed9aa | |||
| b4abb2eea2 | |||
| fcde0a3d2b | |||
| 5a817dc910 | |||
| 8c283cb262 | |||
| 291c0af714 | |||
| c0bc702c24 | |||
| fdcce2ca58 | |||
| 4005818a19 | |||
| 2755d0a7ae | |||
| 60c823a8e2 | |||
| 317a4afc60 | |||
| 60a5c90c88 |
11
.project
Normal file
11
.project
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>BF_PC_companion</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
9
1000sec_finite.cmd
Normal file
9
1000sec_finite.cmd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// Default configuration for BF_companion main_state
|
||||||
|
// Format: field value // optional comment
|
||||||
|
|
||||||
|
run_mode FINITE_RUN // TEST | FINITE_RUN | INF_RUN
|
||||||
|
BF_mode TRANSPARENT // TRANSPARENT | AVG
|
||||||
|
run_length 100 // milliseconds
|
||||||
|
runs_N 10000 // total runs (used in FINITE_RUN)
|
||||||
|
run_I 0 // starting run index
|
||||||
|
data_path /home/feda/MIPT/RadioPhotonic_Subserface_radar/Receiver_GUI/data // base directory for output files
|
||||||
9
100sec_finite.cmd
Normal file
9
100sec_finite.cmd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// Default configuration for BF_companion main_state
|
||||||
|
// Format: field value // optional comment
|
||||||
|
|
||||||
|
run_mode FINITE_RUN // TEST | FINITE_RUN | INF_RUN
|
||||||
|
BF_mode TRANSPARENT // TRANSPARENT | AVG
|
||||||
|
run_length 100 // milliseconds
|
||||||
|
runs_N 1000 // total runs (used in FINITE_RUN)
|
||||||
|
run_I 0 // starting run index
|
||||||
|
data_path /home/feda/MIPT/RadioPhotonic_Subserface_radar/Receiver_GUI/data // base directory for output files
|
||||||
BIN
BF_companion
BIN
BF_companion
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/e502/e502api.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/e502/e502api.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_dnssd.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_dnssd.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_eth_config.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_eth_config.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_tcp.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_tcp.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_usb.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/e502/e502api_usb.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/l502/l502api.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/l502/l502api.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_bf.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_bf.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_compat.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_compat.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_eeprom.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/l502/l502api_eeprom.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/devs/l502/linux/l502_spec.o
Normal file
BIN
build/lib/x502api-1.1.34/devs/l502/linux/l502_spec.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/lib/crc/fast_crc.o
Normal file
BIN
build/lib/x502api-1.1.34/lib/crc/fast_crc.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/lib/ltimer/ports/linux/lclock.o
Normal file
BIN
build/lib/x502api-1.1.34/lib/ltimer/ports/linux/lclock.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/lib/osspec/osspec.o
Normal file
BIN
build/lib/x502api-1.1.34/lib/osspec/osspec.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_async.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_async.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_bf.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_bf.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_config.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_config.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_eeprom.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_eeprom.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_errs.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_errs.o
Normal file
Binary file not shown.
BIN
build/lib/x502api-1.1.34/src/x502api_streams.o
Normal file
BIN
build/lib/x502api-1.1.34/src/x502api_streams.o
Normal file
Binary file not shown.
BIN
build/main.o
Normal file
BIN
build/main.o
Normal file
Binary file not shown.
10
default.cmd
Normal file
10
default.cmd
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Default configuration for BF_companion main_state
|
||||||
|
// Format: field value // optional comment
|
||||||
|
|
||||||
|
run_mode TEST // TEST | FINITE_RUN | INF_RUN
|
||||||
|
BF_mode TRANSPARENT // TRANSPARENT | AVG
|
||||||
|
BlackFin_mode TRANSPARENT // TRANSPARENT | AVG | FFT
|
||||||
|
run_length 100 // milliseconds
|
||||||
|
runs_N 10 // total runs (used in FINITE_RUN)
|
||||||
|
run_I 0 // starting run index
|
||||||
|
data_path data // base directory for output files
|
||||||
2
do
Executable file
2
do
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
./plotter.py "$(./BF_companion 2>&1 1>/dev/tty)"
|
||||||
9
finite.cmd
Normal file
9
finite.cmd
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
// Default configuration for BF_companion main_state
|
||||||
|
// Format: field value // optional comment
|
||||||
|
|
||||||
|
run_mode FINITE_RUN // TEST | FINITE_RUN | INF_RUN
|
||||||
|
BF_mode TRANSPARENT // TRANSPARENT | AVG
|
||||||
|
run_length 100 // milliseconds
|
||||||
|
runs_N 10 // total runs (used in FINITE_RUN)
|
||||||
|
run_I 0 // starting run index
|
||||||
|
data_path /home/feda/MIPT/RadioPhotonic_Subserface_radar/Receiver_GUI/data // base directory for output files
|
||||||
BIN
lib/SDK/$PLUGINSDIR/LangDLL.dll
Normal file
BIN
lib/SDK/$PLUGINSDIR/LangDLL.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$PLUGINSDIR/System.dll
Normal file
BIN
lib/SDK/$PLUGINSDIR/System.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$PLUGINSDIR/UserInfo.dll
Normal file
BIN
lib/SDK/$PLUGINSDIR/UserInfo.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$PLUGINSDIR/modern-wizard.bmp
Normal file
BIN
lib/SDK/$PLUGINSDIR/modern-wizard.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
lib/SDK/$PLUGINSDIR/nsDialogs.dll
Normal file
BIN
lib/SDK/$PLUGINSDIR/nsDialogs.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$PLUGINSDIR/nsisos.dll
Normal file
BIN
lib/SDK/$PLUGINSDIR/nsisos.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/$R0
Normal file
BIN
lib/SDK/$TEMP/$R0
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/Bonjour.msi
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/Bonjour.msi
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/Bonjour64.msi
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/Bonjour64.msi
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/DIFxAPI.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/DIFxAPI.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/amd64/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/amd64/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/amd64/winusbcoinstaller2.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/amd64/winusbcoinstaller2.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/gacutil.exe
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/gacutil.exe
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lcard_libusb.cat
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lcard_libusb.cat
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lcard_libusb.inf
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lcard_libusb.inf
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.cat
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.cat
Normal file
Binary file not shown.
149
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.inf
Normal file
149
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.inf
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
[Version]
|
||||||
|
Signature="$WINDOWS NT$"
|
||||||
|
Class=LPCIE
|
||||||
|
ClassGuid={73FE9311-0D50-4FCD-A895-571CA87A26DC}
|
||||||
|
Provider=%LCardMfg%
|
||||||
|
CatalogFile=lpcie.cat
|
||||||
|
;PnpLockDown=1
|
||||||
|
DriverPackageDisplayName=%PkgName%
|
||||||
|
DriverPackageType=PlugAndPlay
|
||||||
|
DriverVer=11/16/2016,1.0.11.0
|
||||||
|
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
lpcie.sys=1
|
||||||
|
|
||||||
|
[SourceDisksNames]
|
||||||
|
1=%DISK_NAME%,,,.
|
||||||
|
|
||||||
|
[PreCopySection]
|
||||||
|
HKR,,NoSetupUI,,1
|
||||||
|
|
||||||
|
[DestinationDirs]
|
||||||
|
DefaultDestDir = 12 ;%SystemRoot%\system32\drivers
|
||||||
|
|
||||||
|
; ================= Class section =====================
|
||||||
|
|
||||||
|
[ClassInstall32]
|
||||||
|
Addreg=LpcieClassReg
|
||||||
|
|
||||||
|
[LpcieClassReg]
|
||||||
|
HKR,,,0,%ClassName%
|
||||||
|
HKR,,Icon,,-5
|
||||||
|
HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens
|
||||||
|
;HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin.
|
||||||
|
;[HKR,,Exclusive,0x10001,1]
|
||||||
|
;[HKR,,SilentInstall,,1]
|
||||||
|
|
||||||
|
; ================= Device Install section =====================
|
||||||
|
|
||||||
|
[ControlFlags]
|
||||||
|
ExcludeFromSelect=*
|
||||||
|
|
||||||
|
[Manufacturer]
|
||||||
|
%LCardMfg%=LCardMfg,NTx86
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; For Win2K
|
||||||
|
[LCardMfg]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
; For XP and later
|
||||||
|
[LCardMfg.NTx86]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
[lpcie_inst.NT.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSI
|
||||||
|
[lpcie_hw_addreg]
|
||||||
|
HKR, Interrupt Management,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[Lpcie.CopyFiles]
|
||||||
|
lpcie.sys
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_service]
|
||||||
|
DisplayName = %LPCIE.SVCDESC%
|
||||||
|
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||||
|
StartType = 1 ; SERVICE_AUTO_START
|
||||||
|
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||||
|
ServiceBinary = %12%\lpcie.sys
|
||||||
|
;AddReg = Pci9x5x_Parameters_AddReg
|
||||||
|
|
||||||
|
;-------------- Coinstaller installation
|
||||||
|
[DestinationDirs]
|
||||||
|
CoInstaller_CopyFiles = 11
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[CoInstaller_CopyFiles]
|
||||||
|
WdfCoInstaller01009.dll
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
WdfCoInstaller01009.dll=1 ; make sure the number matches with SourceDisksNames
|
||||||
|
|
||||||
|
[CoInstaller_AddReg]
|
||||||
|
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01009.dll,WdfCoInstaller"
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
[lpcie_wdfsect]
|
||||||
|
KmdfLibraryVersion = 1.9
|
||||||
|
|
||||||
|
[Strings]
|
||||||
|
LCardMfg = "L Card"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
ClassName = "'L Card' PCI Express devices"
|
||||||
|
LPCIE.SVCDESC = "KMDF driver for 'L-Card' PCI Express devices"
|
||||||
|
PkgName = "driver for PCI Express boards"
|
||||||
|
DISK_NAME = "'L Card' Software Install Disk"
|
||||||
|
|
||||||
|
[Strings.0419]
|
||||||
|
LCardMfg="<22> <20><><EFBFBD><EFBFBD>"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
LPCIE.SVCDESC="KMDF <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
PkgName = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> PCI Express"
|
||||||
|
ClassName="PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
DISK_NAME = "<22><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
|
||||||
|
|
||||||
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.sys
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie.sys
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcieNet.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcieNet.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie_inst.exe
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/lpcie_inst.exe
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/x86/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/x86/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/x86/winusbcoinstaller2.dll
Normal file
BIN
lib/SDK/$TEMP/L502-E502-E16-SDK/x86/winusbcoinstaller2.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x64/e502api.dll
Normal file
BIN
lib/SDK/bin/x64/e502api.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x64/l502api.dll
Normal file
BIN
lib/SDK/bin/x64/l502api.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x64/x502api.dll
Normal file
BIN
lib/SDK/bin/x64/x502api.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x86/e502api.dll
Normal file
BIN
lib/SDK/bin/x86/e502api.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x86/l502api.dll
Normal file
BIN
lib/SDK/bin/x86/l502api.dll
Normal file
Binary file not shown.
BIN
lib/SDK/bin/x86/x502api.dll
Normal file
BIN
lib/SDK/bin/x86/x502api.dll
Normal file
Binary file not shown.
80
lib/SDK/changelog.txt
Normal file
80
lib/SDK/changelog.txt
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
История изменений L-Card L502/E502 SDK:
|
||||||
|
|
||||||
|
1.0.4 (24.10.2012):
|
||||||
|
- обновление описания, билиотеки l502api и драйвера (исправления ошибок, добавлен режим циклического вывода)
|
||||||
|
- добавлена обертка dotNet с возможностью установки в GAC
|
||||||
|
- добавлены примеры для delphi, C#, LabView
|
||||||
|
- добавлен приемер режима циклического генератора для С
|
||||||
|
- добавлена утилита для обновления прошивки ПЛИС с версией прошивки 0.2
|
||||||
|
|
||||||
|
1.0.5 (21.02.2013)
|
||||||
|
- добавлено низкоуровневое описание для модуля L502
|
||||||
|
- добавлен исходный код прошивки BlackFin (устанавливается вместе с файлами для разработчика)
|
||||||
|
- обновлены библиотека и драйвер (исправления и изменения для работы с сигнальным процессором)
|
||||||
|
- включена версия 0.3 прошивки ПЛИС для модуля L502
|
||||||
|
|
||||||
|
1.0.6 (27.02.2013)
|
||||||
|
- добавлена новая прошивка ПЛИС модуля L502 (версия 0.4)
|
||||||
|
- добавлен файл firm_versions.txt с описаниями изменений в прошивках ПЛИС
|
||||||
|
- незначительные коррекции драйвера и библиотеки
|
||||||
|
1.1.0 (29.05.2015)
|
||||||
|
- обновление драйвера для L502 (1.0.8) с критическим исправлением зависания на некоторых ПК
|
||||||
|
- включение поддержки модуля E502, добавлено новое API для возможности работать с обоими модулями
|
||||||
|
(добавлен драйвер USB, обновлены библиотеки и описание, изменены все примеры для работы как с L502, так и E502)
|
||||||
|
- включена опция установки службы Bonjour для поиска в сети модулей E502
|
||||||
|
- утилита lpcie-firm-update переименована в lxfw-update и включена возможность обновлять прошивки ПЛИС модуля E502.
|
||||||
|
1.1.1 (08.06.2015)
|
||||||
|
- обновление библиотеки до версии 1.1.1 (исправлены ошибки в функциях обнаружения устройств в сети и утечка памяти)
|
||||||
|
1.1.2 (08.07.2015)
|
||||||
|
- обновление библиотеки до версии 1.1.2, драйвера L502 до версии 1.0.9 и документации (для поддержки флага
|
||||||
|
X502_OUT_CYCLE_FLAGS_WAIT_DONE и функции X502_OutCycleCheckSetupDone())
|
||||||
|
1.1.3 (21.07.2015)
|
||||||
|
- обновление библиотеки до версии 1.1.3 (исправлена ошибка при загрузке прошивки BlackFin в L502)
|
||||||
|
1.1.4 (28.07.2015)
|
||||||
|
- обновление библиотеки до версии 1.1.4 (добавлены функции X502_SetExtRefFreqValue() и X502_GetRefFreqValue())
|
||||||
|
1.1.5 (22.12.2015)
|
||||||
|
- в примере на C# исправлена установка режима синхронизации старта
|
||||||
|
1.1.6 (23.06.2016)
|
||||||
|
- в lxfw_update обновлена прошивка ПЛИС модуля E502 до версии 0.2 (рекомендуется обновить в модулях с прошивкой ARM)
|
||||||
|
- обновление библиотеки до версии 1.1.5 (добавлены функции для изменения портов E502 при работе по TCP/IP)
|
||||||
|
- добавлен пример LabView с выводом на ЦАП в циклическом режиме, а также более корректное завершение при ошибке в примерах
|
||||||
|
1.1.7 (05.07.2016)
|
||||||
|
- в lxfw_update обновлены прошивки ПЛИС: модуля L502 до версии 0.5, а модуля E502 до версии 0.3
|
||||||
|
- обновление библиотеки до версии 1.1.6 (проверка возможности установки делителя частоты вывода, добавление функций
|
||||||
|
X502_CheckFeature() и X502_OutGetStatusFlags(), выставление шага прерывнаия на вывода)
|
||||||
|
- Обновление драйвера L502 до версии 1.0.10 (включена возможность настройки шага прерывания в циклическом выводе для низких частот вывода)
|
||||||
|
1.1.8 (04.08.2016)
|
||||||
|
- добавлен пример для Visual Basic 6
|
||||||
|
1.1.9 (24.08.2016)
|
||||||
|
- обновлено низкоуровневое описание программиcта (добавлены сведения по E502)
|
||||||
|
- обновление библиотеки до версии 1.1.7 (исправление привязки первого отсчета АЦП к моменту запуска
|
||||||
|
исправления некоторых команд в режиме с DSP)
|
||||||
|
- исправления и небольшие дополнения примера прошивки BlackFin
|
||||||
|
- в lxfw_update обновлены прошивки ПЛИС: модуля L502 до версии 0.7 и модуля E502 до версии 0.11
|
||||||
|
1.1.10 (05.09.2016)
|
||||||
|
- обновлена библиотека до версии 1.1.8 (включена в экспортируемые функции ранее забытая X502_GetEnabledStreams())
|
||||||
|
1.1.11 (16.11.2016)
|
||||||
|
- обновление x502api до 1.1.9 (включены функции X502_CalcAdcFreq, X502_CalcDinFreq и X502_CalcOutFreq) и описания программиста
|
||||||
|
- обновление низкоуровнего описания (включена версия с описанием протокола обмена с модулем E502)
|
||||||
|
1.1.12 (27.02.2017)
|
||||||
|
- обновление x502api до 1.1.10 (исправлены коды режимов синхронизации для Pascal и C#, а также работа функции X502_OutGetStatusFlags)
|
||||||
|
- в lxfw_update обновлена прошивка ПЛИС модулей L502 и E502 до версий 0.8 и 0.13 соответственно, добавлена прошивка для индустриального исполнения модуля E502
|
||||||
|
1.1.13 (12.10.2017)
|
||||||
|
- в lxfw_update обновлена прошивка ПЛИС модуля L502 до версии 0.9
|
||||||
|
- обновление x502api до 1.1.11 (незначительные коррекции библиотеки)
|
||||||
|
- в низкоуровневом описании исправлены адреса Flash-памяти, по которым хранится информация о модуле
|
||||||
|
1.1.14 (11.12.2017)
|
||||||
|
- обновление x502api до 1.1.12 - исправлена проблема работы с одновременной работой с 4 и более модулями E502, подключенными по USB, из одной программы
|
||||||
|
1.1.15 (13.03.2018)
|
||||||
|
- обновление x502api до 1.1.13 (исправлена утечка памяти при закрытии соединения по TCP).
|
||||||
|
1.1.16 (10.08.2018)
|
||||||
|
- в lxfw_update обновлена прошивка ПЛИС модулей L502 и E502 до версий 0.10 и 0.14 соответственно
|
||||||
|
1.1.17 (28.08.2018)
|
||||||
|
- обновление lpcieNet до версии 1.1.7.0 - исправление возможного падения в 64-битных приложениях при получении списка записей о найденных устройствах
|
||||||
|
1.1.18 (20.11.2019)
|
||||||
|
- в lxfw_update обновлена прошивка ПЛИС модуля E502 до версии 0.15
|
||||||
|
1.1.19 (25.12.2019)
|
||||||
|
- обновление x502api до версии 1.1.14 и ее документации до версии 1.1.9, а также обновление низкоуровневого описания до версии 1.0.5.
|
||||||
|
|
||||||
|
1.1.33 (22.01.2025)
|
||||||
|
- поддержка модулей E16
|
||||||
BIN
lib/SDK/drivers/pci/x64/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/drivers/pci/x64/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/pci/x64/lpcie.cat
Normal file
BIN
lib/SDK/drivers/pci/x64/lpcie.cat
Normal file
Binary file not shown.
149
lib/SDK/drivers/pci/x64/lpcie.inf
Normal file
149
lib/SDK/drivers/pci/x64/lpcie.inf
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
[Version]
|
||||||
|
Signature="$WINDOWS NT$"
|
||||||
|
Class=LPCIE
|
||||||
|
ClassGuid={73FE9311-0D50-4FCD-A895-571CA87A26DC}
|
||||||
|
Provider=%LCardMfg%
|
||||||
|
CatalogFile=lpcie.cat
|
||||||
|
;PnpLockDown=1
|
||||||
|
DriverPackageDisplayName=%PkgName%
|
||||||
|
DriverPackageType=PlugAndPlay
|
||||||
|
DriverVer=11/16/2016,1.0.11.0
|
||||||
|
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
lpcie.sys=1
|
||||||
|
|
||||||
|
[SourceDisksNames]
|
||||||
|
1=%DISK_NAME%,,,.
|
||||||
|
|
||||||
|
[PreCopySection]
|
||||||
|
HKR,,NoSetupUI,,1
|
||||||
|
|
||||||
|
[DestinationDirs]
|
||||||
|
DefaultDestDir = 12 ;%SystemRoot%\system32\drivers
|
||||||
|
|
||||||
|
; ================= Class section =====================
|
||||||
|
|
||||||
|
[ClassInstall32]
|
||||||
|
Addreg=LpcieClassReg
|
||||||
|
|
||||||
|
[LpcieClassReg]
|
||||||
|
HKR,,,0,%ClassName%
|
||||||
|
HKR,,Icon,,-5
|
||||||
|
HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens
|
||||||
|
;HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin.
|
||||||
|
;[HKR,,Exclusive,0x10001,1]
|
||||||
|
;[HKR,,SilentInstall,,1]
|
||||||
|
|
||||||
|
; ================= Device Install section =====================
|
||||||
|
|
||||||
|
[ControlFlags]
|
||||||
|
ExcludeFromSelect=*
|
||||||
|
|
||||||
|
[Manufacturer]
|
||||||
|
%LCardMfg%=LCardMfg,NTAMD64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; For Win2K
|
||||||
|
[LCardMfg]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
; For XP and later
|
||||||
|
[LCardMfg.NTAMD64]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
[lpcie_inst.NT.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSI
|
||||||
|
[lpcie_hw_addreg]
|
||||||
|
HKR, Interrupt Management,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[Lpcie.CopyFiles]
|
||||||
|
lpcie.sys
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_service]
|
||||||
|
DisplayName = %LPCIE.SVCDESC%
|
||||||
|
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||||
|
StartType = 1 ; SERVICE_AUTO_START
|
||||||
|
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||||
|
ServiceBinary = %12%\lpcie.sys
|
||||||
|
;AddReg = Pci9x5x_Parameters_AddReg
|
||||||
|
|
||||||
|
;-------------- Coinstaller installation
|
||||||
|
[DestinationDirs]
|
||||||
|
CoInstaller_CopyFiles = 11
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[CoInstaller_CopyFiles]
|
||||||
|
WdfCoInstaller01009.dll
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
WdfCoInstaller01009.dll=1 ; make sure the number matches with SourceDisksNames
|
||||||
|
|
||||||
|
[CoInstaller_AddReg]
|
||||||
|
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01009.dll,WdfCoInstaller"
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
[lpcie_wdfsect]
|
||||||
|
KmdfLibraryVersion = 1.9
|
||||||
|
|
||||||
|
[Strings]
|
||||||
|
LCardMfg = "L Card"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
ClassName = "'L Card' PCI Express devices"
|
||||||
|
LPCIE.SVCDESC = "KMDF driver for 'L-Card' PCI Express devices"
|
||||||
|
PkgName = "driver for PCI Express boards"
|
||||||
|
DISK_NAME = "'L Card' Software Install Disk"
|
||||||
|
|
||||||
|
[Strings.0419]
|
||||||
|
LCardMfg="<22> <20><><EFBFBD><EFBFBD>"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
LPCIE.SVCDESC="KMDF <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
PkgName = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> PCI Express"
|
||||||
|
ClassName="PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
DISK_NAME = "<22><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
|
||||||
|
|
||||||
BIN
lib/SDK/drivers/pci/x64/lpcie.sys
Normal file
BIN
lib/SDK/drivers/pci/x64/lpcie.sys
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/pci/x86/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/drivers/pci/x86/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/pci/x86/lpcie.cat
Normal file
BIN
lib/SDK/drivers/pci/x86/lpcie.cat
Normal file
Binary file not shown.
149
lib/SDK/drivers/pci/x86/lpcie.inf
Normal file
149
lib/SDK/drivers/pci/x86/lpcie.inf
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
[Version]
|
||||||
|
Signature="$WINDOWS NT$"
|
||||||
|
Class=LPCIE
|
||||||
|
ClassGuid={73FE9311-0D50-4FCD-A895-571CA87A26DC}
|
||||||
|
Provider=%LCardMfg%
|
||||||
|
CatalogFile=lpcie.cat
|
||||||
|
;PnpLockDown=1
|
||||||
|
DriverPackageDisplayName=%PkgName%
|
||||||
|
DriverPackageType=PlugAndPlay
|
||||||
|
DriverVer=11/16/2016,1.0.11.0
|
||||||
|
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
lpcie.sys=1
|
||||||
|
|
||||||
|
[SourceDisksNames]
|
||||||
|
1=%DISK_NAME%,,,.
|
||||||
|
|
||||||
|
[PreCopySection]
|
||||||
|
HKR,,NoSetupUI,,1
|
||||||
|
|
||||||
|
[DestinationDirs]
|
||||||
|
DefaultDestDir = 12 ;%SystemRoot%\system32\drivers
|
||||||
|
|
||||||
|
; ================= Class section =====================
|
||||||
|
|
||||||
|
[ClassInstall32]
|
||||||
|
Addreg=LpcieClassReg
|
||||||
|
|
||||||
|
[LpcieClassReg]
|
||||||
|
HKR,,,0,%ClassName%
|
||||||
|
HKR,,Icon,,-5
|
||||||
|
HKR,,DeviceCharacteristics,0x10001,0x100 ;Use same security checks on relative opens
|
||||||
|
;HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)" ;Allow generic all access to system and built-in Admin.
|
||||||
|
;[HKR,,Exclusive,0x10001,1]
|
||||||
|
;[HKR,,SilentInstall,,1]
|
||||||
|
|
||||||
|
; ================= Device Install section =====================
|
||||||
|
|
||||||
|
[ControlFlags]
|
||||||
|
ExcludeFromSelect=*
|
||||||
|
|
||||||
|
[Manufacturer]
|
||||||
|
%LCardMfg%=LCardMfg,NTx86
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; For Win2K
|
||||||
|
[LCardMfg]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
; For XP and later
|
||||||
|
[LCardMfg.NTx86]
|
||||||
|
; DisplayName Section DeviceId
|
||||||
|
; ----------- ------- --------
|
||||||
|
%L502.DeviceDescr% = lpcie_inst, PCI\VEN_1172&DEV_0502&SUBSYS_4C353032
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
[lpcie_inst.NT.HW]
|
||||||
|
AddReg = lpcie_hw_addreg
|
||||||
|
|
||||||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MSI
|
||||||
|
[lpcie_hw_addreg]
|
||||||
|
HKR, Interrupt Management,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties,, 0x00000010
|
||||||
|
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT]
|
||||||
|
CopyFiles=Lpcie.CopyFiles
|
||||||
|
|
||||||
|
[Lpcie.CopyFiles]
|
||||||
|
lpcie.sys
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Services]
|
||||||
|
AddService=lpcie,0x00000002,lpcie_service
|
||||||
|
|
||||||
|
[lpcie_service]
|
||||||
|
DisplayName = %LPCIE.SVCDESC%
|
||||||
|
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
|
||||||
|
StartType = 1 ; SERVICE_AUTO_START
|
||||||
|
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
|
||||||
|
ServiceBinary = %12%\lpcie.sys
|
||||||
|
;AddReg = Pci9x5x_Parameters_AddReg
|
||||||
|
|
||||||
|
;-------------- Coinstaller installation
|
||||||
|
[DestinationDirs]
|
||||||
|
CoInstaller_CopyFiles = 11
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[lpcie_inst.NT.CoInstallers]
|
||||||
|
AddReg=CoInstaller_AddReg
|
||||||
|
CopyFiles=CoInstaller_CopyFiles
|
||||||
|
|
||||||
|
[CoInstaller_CopyFiles]
|
||||||
|
WdfCoInstaller01009.dll
|
||||||
|
|
||||||
|
[SourceDisksFiles]
|
||||||
|
WdfCoInstaller01009.dll=1 ; make sure the number matches with SourceDisksNames
|
||||||
|
|
||||||
|
[CoInstaller_AddReg]
|
||||||
|
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01009.dll,WdfCoInstaller"
|
||||||
|
|
||||||
|
|
||||||
|
[lpcie_inst.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
|
||||||
|
[lpcie_inst.NT.Wdf]
|
||||||
|
KmdfService = lpcie, lpcie_wdfsect
|
||||||
|
[lpcie_wdfsect]
|
||||||
|
KmdfLibraryVersion = 1.9
|
||||||
|
|
||||||
|
[Strings]
|
||||||
|
LCardMfg = "L Card"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
ClassName = "'L Card' PCI Express devices"
|
||||||
|
LPCIE.SVCDESC = "KMDF driver for 'L-Card' PCI Express devices"
|
||||||
|
PkgName = "driver for PCI Express boards"
|
||||||
|
DISK_NAME = "'L Card' Software Install Disk"
|
||||||
|
|
||||||
|
[Strings.0419]
|
||||||
|
LCardMfg="<22> <20><><EFBFBD><EFBFBD>"
|
||||||
|
L502.DeviceDescr = "L-502"
|
||||||
|
LPCIE.SVCDESC="KMDF <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
PkgName = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> PCI Express"
|
||||||
|
ClassName="PCI Express <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
DISK_NAME = "<22><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> '<27> <20><><EFBFBD><EFBFBD>'"
|
||||||
|
|
||||||
|
|
||||||
BIN
lib/SDK/drivers/pci/x86/lpcie.sys
Normal file
BIN
lib/SDK/drivers/pci/x86/lpcie.sys
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/amd64/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/drivers/usb/amd64/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/amd64/winusbcoinstaller2.dll
Normal file
BIN
lib/SDK/drivers/usb/amd64/winusbcoinstaller2.dll
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/lcard_libusb.cat
Normal file
BIN
lib/SDK/drivers/usb/lcard_libusb.cat
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/lcard_libusb.inf
Normal file
BIN
lib/SDK/drivers/usb/lcard_libusb.inf
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/x86/WdfCoInstaller01009.dll
Normal file
BIN
lib/SDK/drivers/usb/x86/WdfCoInstaller01009.dll
Normal file
Binary file not shown.
BIN
lib/SDK/drivers/usb/x86/winusbcoinstaller2.dll
Normal file
BIN
lib/SDK/drivers/usb/x86/winusbcoinstaller2.dll
Normal file
Binary file not shown.
18
lib/SDK/examples/CppBuilder/x502_general/readme.txt
Normal file
18
lib/SDK/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
lib/SDK/examples/CppBuilder/x502_general/unit.cpp
Normal file
526
lib/SDK/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
lib/SDK/examples/CppBuilder/x502_general/unit.dfm
Normal file
669
lib/SDK/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
lib/SDK/examples/CppBuilder/x502_general/unit.h
Normal file
122
lib/SDK/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
lib/SDK/examples/CppBuilder/x502_general/x502_example.bpr
Normal file
146
lib/SDK/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>
|
||||||
294
lib/SDK/examples/CppBuilder/x502_general/x502_example.cbproj
Normal file
294
lib/SDK/examples/CppBuilder/x502_general/x502_example.cbproj
Normal file
@ -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>
|
||||||
40
lib/SDK/examples/CppBuilder/x502_general/x502_example.cpp
Normal file
40
lib/SDK/examples/CppBuilder/x502_general/x502_example.cpp
Normal file
@ -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
lib/SDK/examples/CppBuilder/x502_general/x502_example.res
Normal file
BIN
lib/SDK/examples/CppBuilder/x502_general/x502_example.res
Normal file
Binary file not shown.
100
lib/SDK/examples/CppBuilder/x502_general/x502_thread.cpp
Normal file
100
lib/SDK/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;
|
||||||
|
}
|
||||||
41
lib/SDK/examples/CppBuilder/x502_general/x502_thread.h
Normal file
41
lib/SDK/examples/CppBuilder/x502_general/x502_thread.h
Normal file
@ -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
|
||||||
681
lib/SDK/examples/Delphi/x502_general/MainUnit.dfm
Normal file
681
lib/SDK/examples/Delphi/x502_general/MainUnit.dfm
Normal file
@ -0,0 +1,681 @@
|
|||||||
|
object MainForm: TMainForm
|
||||||
|
Left = 630
|
||||||
|
Top = 162
|
||||||
|
Width = 585
|
||||||
|
Height = 774
|
||||||
|
Caption = 'X502 Example'
|
||||||
|
Color = clBtnFace
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'Tahoma'
|
||||||
|
Font.Style = []
|
||||||
|
OldCreateOrder = False
|
||||||
|
OnClose = FormClose
|
||||||
|
OnCreate = FormCreate
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
object btnRefreshDeviceList: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 8
|
||||||
|
Width = 217
|
||||||
|
Height = 25
|
||||||
|
Caption = #1054#1073#1085#1086#1074#1080#1090#1100' '#1089#1087#1080#1089#1086#1082' '#1091#1089#1090#1088#1086#1081#1089#1090#1074
|
||||||
|
TabOrder = 0
|
||||||
|
OnClick = btnRefreshDeviceListClick
|
||||||
|
end
|
||||||
|
object cbbDevList: TComboBox
|
||||||
|
Left = 256
|
||||||
|
Top = 8
|
||||||
|
Width = 241
|
||||||
|
Height = 21
|
||||||
|
ItemHeight = 13
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object btnOpen: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 48
|
||||||
|
Width = 217
|
||||||
|
Height = 25
|
||||||
|
Caption = #1054#1090#1082#1088#1099#1090#1100' '#1091#1089#1090#1088#1086#1081#1089#1090#1074#1086
|
||||||
|
TabOrder = 2
|
||||||
|
OnClick = btnOpenClick
|
||||||
|
end
|
||||||
|
object grpDevInfo: TGroupBox
|
||||||
|
Left = 256
|
||||||
|
Top = 40
|
||||||
|
Width = 241
|
||||||
|
Height = 169
|
||||||
|
Caption = #1048#1085#1092#1086#1088#1084#1072#1094#1080#1103' '#1086' '#1084#1086#1076#1091#1083#1077
|
||||||
|
TabOrder = 3
|
||||||
|
object lbl1: TLabel
|
||||||
|
Left = 104
|
||||||
|
Top = 96
|
||||||
|
Width = 119
|
||||||
|
Height = 13
|
||||||
|
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' '#1055#1051#1048#1057
|
||||||
|
end
|
||||||
|
object lbl2: TLabel
|
||||||
|
Left = 104
|
||||||
|
Top = 120
|
||||||
|
Width = 116
|
||||||
|
Height = 13
|
||||||
|
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' PLDA'
|
||||||
|
end
|
||||||
|
object lbl11: TLabel
|
||||||
|
Left = 104
|
||||||
|
Top = 144
|
||||||
|
Width = 113
|
||||||
|
Height = 13
|
||||||
|
Caption = #1042#1077#1088#1089#1080#1103' '#1087#1088#1086#1096#1080#1074#1082#1080' ARM'
|
||||||
|
end
|
||||||
|
object chkDacPresent: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Top = 24
|
||||||
|
Width = 97
|
||||||
|
Height = 17
|
||||||
|
Caption = #1053#1072#1083#1080#1095#1080#1077' '#1062#1040#1055
|
||||||
|
Enabled = False
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object chkGalPresent: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Top = 40
|
||||||
|
Width = 177
|
||||||
|
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 = 1
|
||||||
|
end
|
||||||
|
object chkDspPresent: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
Top = 56
|
||||||
|
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 = 2
|
||||||
|
end
|
||||||
|
object edtFpgaVer: TEdit
|
||||||
|
Left = 8
|
||||||
|
Top = 96
|
||||||
|
Width = 89
|
||||||
|
Height = 21
|
||||||
|
ReadOnly = True
|
||||||
|
TabOrder = 3
|
||||||
|
end
|
||||||
|
object edtPldaVer: TEdit
|
||||||
|
Left = 8
|
||||||
|
Top = 120
|
||||||
|
Width = 89
|
||||||
|
Height = 21
|
||||||
|
ReadOnly = True
|
||||||
|
TabOrder = 4
|
||||||
|
end
|
||||||
|
object chkEthPresent: TCheckBox
|
||||||
|
Left = 8
|
||||||
|
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 = 5
|
||||||
|
end
|
||||||
|
object edtMcuVer: TEdit
|
||||||
|
Left = 8
|
||||||
|
Top = 144
|
||||||
|
Width = 89
|
||||||
|
Height = 21
|
||||||
|
ReadOnly = True
|
||||||
|
TabOrder = 6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object btnAsyncDigIn: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 560
|
||||||
|
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 = 4
|
||||||
|
OnClick = btnAsyncDigInClick
|
||||||
|
end
|
||||||
|
object edtAsyncDigIn: TEdit
|
||||||
|
Left = 248
|
||||||
|
Top = 560
|
||||||
|
Width = 121
|
||||||
|
Height = 21
|
||||||
|
Enabled = False
|
||||||
|
TabOrder = 5
|
||||||
|
Text = '0x0000'
|
||||||
|
end
|
||||||
|
object btnAsyncDigOut: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 592
|
||||||
|
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 = 592
|
||||||
|
Width = 121
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 7
|
||||||
|
Text = '0x0000'
|
||||||
|
end
|
||||||
|
object grp1: TGroupBox
|
||||||
|
Left = 8
|
||||||
|
Top = 224
|
||||||
|
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 = 8
|
||||||
|
object lbl3: TLabel
|
||||||
|
Left = 16
|
||||||
|
Top = 20
|
||||||
|
Width = 139
|
||||||
|
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 lbl4: TLabel
|
||||||
|
Left = 168
|
||||||
|
Top = 20
|
||||||
|
Width = 113
|
||||||
|
Height = 13
|
||||||
|
Caption = #1063#1072#1089#1090#1086#1090#1072' '#1085#1072' '#1082#1072#1085#1072#1083' ('#1043#1094')'
|
||||||
|
end
|
||||||
|
object lbl5: TLabel
|
||||||
|
Left = 296
|
||||||
|
Top = 20
|
||||||
|
Width = 166
|
||||||
|
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 = btnSetAdcFreqClick
|
||||||
|
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 grp2: TGroupBox
|
||||||
|
Left = 8
|
||||||
|
Top = 368
|
||||||
|
Width = 513
|
||||||
|
Height = 153
|
||||||
|
Caption = #1050#1072#1085#1072#1083#1099
|
||||||
|
TabOrder = 9
|
||||||
|
object lbl6: TLabel
|
||||||
|
Left = 8
|
||||||
|
Top = 40
|
||||||
|
Width = 31
|
||||||
|
Height = 13
|
||||||
|
Caption = #1050#1072#1085#1072#1083
|
||||||
|
end
|
||||||
|
object lbl7: TLabel
|
||||||
|
Left = 64
|
||||||
|
Top = 40
|
||||||
|
Width = 49
|
||||||
|
Height = 13
|
||||||
|
Caption = #1044#1080#1072#1087#1072#1079#1086#1085
|
||||||
|
end
|
||||||
|
object lbl8: TLabel
|
||||||
|
Left = 152
|
||||||
|
Top = 40
|
||||||
|
Width = 88
|
||||||
|
Height = 13
|
||||||
|
Caption = #1056#1077#1078#1080#1084' '#1080#1079#1084#1077#1088#1077#1085#1080#1103
|
||||||
|
end
|
||||||
|
object lbl9: TLabel
|
||||||
|
Left = 336
|
||||||
|
Top = 40
|
||||||
|
Width = 53
|
||||||
|
Height = 13
|
||||||
|
Caption = #1056#1077#1079#1091#1083#1100#1090#1072#1090
|
||||||
|
end
|
||||||
|
object lbl10: TLabel
|
||||||
|
Left = 16
|
||||||
|
Top = 16
|
||||||
|
Width = 166
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
ItemIndex = 2
|
||||||
|
TabOrder = 14
|
||||||
|
Text = '3'
|
||||||
|
Items.Strings = (
|
||||||
|
'1'
|
||||||
|
'2'
|
||||||
|
'3')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object btnAsyncAdcFrame: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 528
|
||||||
|
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 = 10
|
||||||
|
OnClick = btnAsyncAdcFrameClick
|
||||||
|
end
|
||||||
|
object btnStop: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 112
|
||||||
|
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 = 11
|
||||||
|
OnClick = btnStopClick
|
||||||
|
end
|
||||||
|
object btnStart: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 80
|
||||||
|
Width = 217
|
||||||
|
Height = 25
|
||||||
|
Caption = #1047#1072#1087#1091#1089#1082' '#1089#1073#1086#1088#1072' '#1076#1072#1085#1085#1099#1093
|
||||||
|
TabOrder = 12
|
||||||
|
OnClick = btnStartClick
|
||||||
|
end
|
||||||
|
object btnAsyncDac1: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 624
|
||||||
|
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 = 13
|
||||||
|
OnClick = btnAsyncDac1Click
|
||||||
|
end
|
||||||
|
object edtAsyncDac1: TEdit
|
||||||
|
Left = 248
|
||||||
|
Top = 624
|
||||||
|
Width = 81
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 14
|
||||||
|
Text = '5'
|
||||||
|
end
|
||||||
|
object edtAsyncDac2: TEdit
|
||||||
|
Left = 248
|
||||||
|
Top = 656
|
||||||
|
Width = 81
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 15
|
||||||
|
Text = '5'
|
||||||
|
end
|
||||||
|
object btnAsyncDac2: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 656
|
||||||
|
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 = 16
|
||||||
|
OnClick = btnAsyncDac2Click
|
||||||
|
end
|
||||||
|
object GroupBox4: TGroupBox
|
||||||
|
Left = 8
|
||||||
|
Top = 295
|
||||||
|
Width = 513
|
||||||
|
Height = 65
|
||||||
|
Caption = #1057#1080#1085#1093#1088#1086#1085#1080#1079#1072#1094#1080#1103
|
||||||
|
TabOrder = 17
|
||||||
|
object Label10: TLabel
|
||||||
|
Left = 16
|
||||||
|
Top = 20
|
||||||
|
Width = 173
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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
|
||||||
|
ItemHeight = 13
|
||||||
|
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 = 8
|
||||||
|
Top = 160
|
||||||
|
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 = 18
|
||||||
|
OnClick = btnOpenByIPClick
|
||||||
|
end
|
||||||
|
object edtIpAddr: TEdit
|
||||||
|
Left = 8
|
||||||
|
Top = 192
|
||||||
|
Width = 217
|
||||||
|
Height = 21
|
||||||
|
TabOrder = 19
|
||||||
|
Text = '192.168.0.1'
|
||||||
|
end
|
||||||
|
end
|
||||||
712
lib/SDK/examples/Delphi/x502_general/MainUnit.pas
Normal file
712
lib/SDK/examples/Delphi/x502_general/MainUnit.pas
Normal file
@ -0,0 +1,712 @@
|
|||||||
|
unit MainUnit;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, StdCtrls,
|
||||||
|
l502api, x502api, e502api, X502_ProcessThread;
|
||||||
|
|
||||||
|
type
|
||||||
|
TMainForm = class(TForm)
|
||||||
|
btnRefreshDeviceList: TButton;
|
||||||
|
cbbDevList: TComboBox;
|
||||||
|
btnOpen: TButton;
|
||||||
|
grpDevInfo: TGroupBox;
|
||||||
|
chkDacPresent: TCheckBox;
|
||||||
|
chkGalPresent: TCheckBox;
|
||||||
|
chkDspPresent: TCheckBox;
|
||||||
|
edtFpgaVer: TEdit;
|
||||||
|
edtPldaVer: TEdit;
|
||||||
|
lbl1: TLabel;
|
||||||
|
lbl2: TLabel;
|
||||||
|
btnAsyncDigIn: TButton;
|
||||||
|
edtAsyncDigIn: TEdit;
|
||||||
|
btnAsyncDigOut: TButton;
|
||||||
|
edtAsyncDigOut: TEdit;
|
||||||
|
grp1: TGroupBox;
|
||||||
|
lbl3: TLabel;
|
||||||
|
lbl4: TLabel;
|
||||||
|
lbl5: TLabel;
|
||||||
|
btnSetAdcFreq: TButton;
|
||||||
|
edtAdcFreq: TEdit;
|
||||||
|
edtAdcFreqLch: TEdit;
|
||||||
|
edtDinFreq: TEdit;
|
||||||
|
grp2: TGroupBox;
|
||||||
|
lbl6: TLabel;
|
||||||
|
lbl7: TLabel;
|
||||||
|
lbl8: TLabel;
|
||||||
|
lbl9: TLabel;
|
||||||
|
lbl10: TLabel;
|
||||||
|
cbbLCh1_Channel: TComboBox;
|
||||||
|
cbbLCh1_Range: TComboBox;
|
||||||
|
cbbLCh1_Mode: TComboBox;
|
||||||
|
edtLCh1_Result: TEdit;
|
||||||
|
cbbLCh2_Channel: TComboBox;
|
||||||
|
cbbLCh2_Range: TComboBox;
|
||||||
|
cbbLCh2_Mode: TComboBox;
|
||||||
|
edtLCh2_Result: TEdit;
|
||||||
|
cbbLCh3_Channel: TComboBox;
|
||||||
|
cbbLCh3_Range: TComboBox;
|
||||||
|
cbbLCh3_Mode: TComboBox;
|
||||||
|
edtLCh3_Result: TEdit;
|
||||||
|
chkSyncDin: TCheckBox;
|
||||||
|
edtDin_Result: TEdit;
|
||||||
|
cbbLChCnt: TComboBox;
|
||||||
|
btnAsyncAdcFrame: TButton;
|
||||||
|
btnStop: TButton;
|
||||||
|
btnStart: TButton;
|
||||||
|
btnAsyncDac1: TButton;
|
||||||
|
edtAsyncDac1: TEdit;
|
||||||
|
edtAsyncDac2: TEdit;
|
||||||
|
btnAsyncDac2: TButton;
|
||||||
|
GroupBox4: TGroupBox;
|
||||||
|
Label10: TLabel;
|
||||||
|
Label11: TLabel;
|
||||||
|
cbbSyncMode: TComboBox;
|
||||||
|
cbbSyncStartMode: TComboBox;
|
||||||
|
chkEthPresent: TCheckBox;
|
||||||
|
edtMcuVer: TEdit;
|
||||||
|
lbl11: TLabel;
|
||||||
|
btnOpenByIP: TButton;
|
||||||
|
edtIpAddr: TEdit;
|
||||||
|
procedure btnRefreshDeviceListClick(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure btnOpenClick(Sender: TObject);
|
||||||
|
procedure btnAsyncDigInClick(Sender: TObject);
|
||||||
|
procedure btnAsyncDigOutClick(Sender: TObject);
|
||||||
|
procedure btnSetAdcFreqClick(Sender: TObject);
|
||||||
|
procedure btnAsyncAdcFrameClick(Sender: TObject);
|
||||||
|
procedure btnStartClick(Sender: TObject);
|
||||||
|
procedure btnAsyncDac1Click(Sender: TObject);
|
||||||
|
procedure btnAsyncDac2Click(Sender: TObject);
|
||||||
|
procedure btnStopClick(Sender: TObject);
|
||||||
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
procedure chkSyncDinClick(Sender: TObject);
|
||||||
|
procedure btnOpenByIPClick(Sender: TObject);
|
||||||
|
private
|
||||||
|
hnd : t_x502_hnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
devrecList : array of t_x502_devrec;
|
||||||
|
threadRunning : Boolean; //<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>
|
||||||
|
thread: TX502_ProcessThread; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
procedure updateControls();
|
||||||
|
procedure freeDevList();
|
||||||
|
procedure refreshDeviceList();
|
||||||
|
procedure showDevInfo();
|
||||||
|
procedure closeDevice();
|
||||||
|
procedure OnThreadTerminate(par : TObject);
|
||||||
|
function setAdcFreq() : LongInt;
|
||||||
|
function setupParams() : LongInt;
|
||||||
|
function setSyncDinStream() : LongInt;
|
||||||
|
function parseIpAddr(addr : string) : LongWord;
|
||||||
|
|
||||||
|
{ Private declarations }
|
||||||
|
public
|
||||||
|
{ Public declarations }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
MainForm: TMainForm;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
procedure TMainForm.updateControls();
|
||||||
|
begin
|
||||||
|
//<2F><><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=nil;
|
||||||
|
cbbDevList.Enabled:= hnd=nil;
|
||||||
|
|
||||||
|
if hnd = nil then
|
||||||
|
btnOpen.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||||
|
else
|
||||||
|
btnOpen.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||||||
|
btnOpen.Enabled := (hnd<>nil) or (cbbDevList.ItemIndex >= 0);
|
||||||
|
btnOpenByIP.Enabled := hnd=nil;
|
||||||
|
edtIpAddr.Enabled := hnd=nil;
|
||||||
|
|
||||||
|
chkSyncDin.Enabled := (hnd<>nil) and not threadRunning;
|
||||||
|
|
||||||
|
btnStart.Enabled := (hnd<>nil) and not threadRunning;
|
||||||
|
btnStop.Enabled := (hnd<>nil) and threadRunning;
|
||||||
|
|
||||||
|
btnSetAdcFreq.Enabled := (hnd<>nil) and not threadRunning;
|
||||||
|
|
||||||
|
btnAsyncDigOut.Enabled := (hnd<>nil);
|
||||||
|
btnAsyncDigIn.Enabled := (hnd<>nil);
|
||||||
|
btnAsyncDac1.Enabled := (hnd<>nil) and chkDacPresent.Checked;
|
||||||
|
btnAsyncDac2.Enabled := (hnd<>nil) and chkDacPresent.Checked;
|
||||||
|
btnAsyncAdcFrame.Enabled := (hnd<>nil) and not threadRunning;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.freeDevList();
|
||||||
|
begin
|
||||||
|
if Length(devrecList) <> 0 then
|
||||||
|
begin
|
||||||
|
X502_FreeDevRecordList(devrecList, Length(devrecList));
|
||||||
|
SetLength(devrecList, 0);
|
||||||
|
end;
|
||||||
|
cbbDevList.Items.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> }
|
||||||
|
procedure TMainForm.refreshDeviceList();
|
||||||
|
var
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
res,i, old_index : LongInt;
|
||||||
|
devcnt : LongWord;
|
||||||
|
pci_devrecs, usb_devrecs : array of t_x502_devrec;
|
||||||
|
begin
|
||||||
|
old_index := cbbDevList.ItemIndex;
|
||||||
|
|
||||||
|
freeDevList;
|
||||||
|
|
||||||
|
L502_GetDevRecordsList(pci_devrecs, 0, devcnt);
|
||||||
|
if devcnt > 0 then
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
SetLength(pci_devrecs, devcnt);
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
res := L502_GetDevRecordsList(pci_devrecs, 0);
|
||||||
|
if res > 0 then
|
||||||
|
SetLength(pci_devrecs, res)
|
||||||
|
else
|
||||||
|
SetLength(pci_devrecs, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
E502_UsbGetDevRecordsList(usb_devrecs, 0, devcnt);
|
||||||
|
if devcnt > 0 then
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
SetLength(usb_devrecs, devcnt);
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
res := E502_UsbGetDevRecordsList(usb_devrecs, 0);
|
||||||
|
if res > 0 then
|
||||||
|
SetLength(usb_devrecs, res)
|
||||||
|
else
|
||||||
|
SetLength(usb_devrecs, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
// <20> devrecList <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
SetLength(devrecList, Length(pci_devrecs) + Length(usb_devrecs));
|
||||||
|
if Length(devrecList) > 0 then
|
||||||
|
begin
|
||||||
|
for i:=0 to Length(pci_devrecs)-1 do
|
||||||
|
devrecList[i] := pci_devrecs[i];
|
||||||
|
for i:=0 to Length(usb_devrecs)-1 do
|
||||||
|
devrecList[i+Length(pci_devrecs)] := usb_devrecs[i];
|
||||||
|
|
||||||
|
|
||||||
|
// <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 i:=0 to Length(devrecList)-1 do
|
||||||
|
cbbDevList.Items.Add(AnsiString(devrecList[i].devname) + ', ' + AnsiString(devrecList[i].serial));
|
||||||
|
|
||||||
|
//<2F><><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>
|
||||||
|
if (old_index >= 0) and (old_index < Length(pci_devrecs)) then
|
||||||
|
cbbDevList.ItemIndex := old_index
|
||||||
|
else
|
||||||
|
cbbDevList.ItemIndex := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
updateControls;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// <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
|
||||||
|
function TMainForm.setupParams() : Integer;
|
||||||
|
var
|
||||||
|
err : Integer;
|
||||||
|
lch_cnt : LongWord;
|
||||||
|
const
|
||||||
|
{ <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> }
|
||||||
|
mode_tbl: array[0..2] of LongWord = (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> }
|
||||||
|
range_tbl: array[0..5] of LongWord = (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> }
|
||||||
|
f_sync_tbl: array[0..5] of LongWord = (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);
|
||||||
|
begin
|
||||||
|
lch_cnt := cbbLChCnt.ItemIndex + 1;
|
||||||
|
// <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);
|
||||||
|
|
||||||
|
// <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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
err := X502_SetLChannel(hnd,0, cbbLCh1_Channel.ItemIndex,
|
||||||
|
mode_tbl[cbbLCh1_Mode.ItemIndex], range_tbl[cbbLCh1_Range.ItemIndex],0);
|
||||||
|
end;
|
||||||
|
if (err = X502_ERR_OK) and (lch_cnt>=2) then
|
||||||
|
begin
|
||||||
|
err := X502_SetLChannel(hnd,1, cbbLCh2_Channel.ItemIndex,
|
||||||
|
mode_tbl[cbbLCh2_Mode.ItemIndex], range_tbl[cbbLCh2_Range.ItemIndex],0);
|
||||||
|
end;
|
||||||
|
if (err = X502_ERR_OK) and (lch_cnt>=3) then
|
||||||
|
begin
|
||||||
|
err := X502_SetLChannel(hnd,2, cbbLCh3_Channel.ItemIndex,
|
||||||
|
mode_tbl[cbbLCh3_Mode.ItemIndex], range_tbl[cbbLCh3_Range.ItemIndex],0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
// <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 then
|
||||||
|
err := X502_SetSyncMode(hnd, f_sync_tbl[cbbSyncMode.ItemIndex]);
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
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 then
|
||||||
|
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 then
|
||||||
|
err := X502_Configure(hnd, 0);
|
||||||
|
|
||||||
|
setupParams:= err;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
procedure TMainForm.closeDevice();
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
//<2F><><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 then
|
||||||
|
begin
|
||||||
|
thread.stop:=True;
|
||||||
|
thread.WaitFor;
|
||||||
|
end;
|
||||||
|
// <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 := nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//<2F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
function TMainForm.setAdcFreq() : Integer;
|
||||||
|
var f_acq, f_lch, f_din: Double;
|
||||||
|
err : Integer;
|
||||||
|
begin
|
||||||
|
f_acq := StrToFloat(edtAdcFreq.Text);
|
||||||
|
f_lch := StrToFloat(edtAdcFreqLch.Text);
|
||||||
|
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>.
|
||||||
|
err := X502_SetAdcFreq(hnd, f_acq, f_lch);
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <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 then
|
||||||
|
edtDinFreq.Text := FloatToStr(f_din);
|
||||||
|
end;
|
||||||
|
setAdcFreq:= err;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TMainForm.setSyncDinStream : LongInt;
|
||||||
|
var err : LongInt;
|
||||||
|
begin
|
||||||
|
{ <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 then
|
||||||
|
err := X502_StreamsEnable(hnd, X502_STREAM_DIN)
|
||||||
|
else
|
||||||
|
err := X502_StreamsDisable(hnd, X502_STREAM_DIN);
|
||||||
|
|
||||||
|
setSyncDinStream:= err;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnRefreshDeviceListClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
refreshDeviceList;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
hnd := nil;
|
||||||
|
refreshDeviceList;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TMainForm.showDevInfo();
|
||||||
|
var
|
||||||
|
err : LongInt;
|
||||||
|
info : t_x502_info;
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
err := X502_GetDevInfo(hnd,info);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
//<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
X502_Close(hnd);
|
||||||
|
X502_Free(hnd);
|
||||||
|
hnd := nil;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
chkDacPresent.Checked := (info.devflags and X502_DEVFLAGS_DAC_PRESENT) <> 0;
|
||||||
|
chkGalPresent.Checked := (info.devflags and X502_DEVFLAGS_GAL_PRESENT) <> 0;
|
||||||
|
chkDspPresent.Checked := (info.devflags and X502_DEVFLAGS_BF_PRESENT) <> 0;
|
||||||
|
chkEthPresent.Checked := (info.devflags and X502_DEVFLAGS_IFACE_SUPPORT_ETH) <> 0;
|
||||||
|
|
||||||
|
edtPldaVer.Text := IntToStr(info.plda_ver);
|
||||||
|
edtFpgaVer.Text := IntToStr((info.fpga_ver shr 8) and $FF) + '.' +
|
||||||
|
IntToStr(info.fpga_ver and $FF);
|
||||||
|
if info.mcu_firmware_ver <> 0 then
|
||||||
|
begin
|
||||||
|
edtMcuVer.Text := IntToStr((info.mcu_firmware_ver shr 24) and $FF) + '.' +
|
||||||
|
IntToStr((info.mcu_firmware_ver shr 16) and $FF) + '.' +
|
||||||
|
IntToStr((info.mcu_firmware_ver shr 8) and $FF) + '.' +
|
||||||
|
IntToStr((info.mcu_firmware_ver) and $FF);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
edtMcuVer.Text := '';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnOpenClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
idx : integer;
|
||||||
|
err : LongInt;
|
||||||
|
begin
|
||||||
|
if hnd=nil then
|
||||||
|
begin
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
idx := cbbDevList.ItemIndex;
|
||||||
|
if (idx >= 0) and (idx < Length(devrecList)) then
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
hnd := X502_Create();
|
||||||
|
if hnd=nil then
|
||||||
|
MessageDlg('<27><><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, [mbOK], 0)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
// <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>
|
||||||
|
err := X502_OpenByDevRecord(hnd, devrecList[idx]);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> => <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),mtError, [mbOK], 0);
|
||||||
|
X502_Free(hnd);
|
||||||
|
hnd := nil;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
showDevInfo;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
//<2F><><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;
|
||||||
|
end;
|
||||||
|
|
||||||
|
updateControls;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ip-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> DWORD }
|
||||||
|
function TMainForm.parseIpAddr(addr : string) : LongWord;
|
||||||
|
var
|
||||||
|
S: TStrings;
|
||||||
|
begin
|
||||||
|
S := TStringList.Create;
|
||||||
|
S.Delimiter := '.';
|
||||||
|
S.DelimitedText := addr;
|
||||||
|
|
||||||
|
// do preeliminary check. The IP4 Address string must consists of 4 parts. Less or more than that would be invalid values
|
||||||
|
if S.Count<>4 then
|
||||||
|
begin
|
||||||
|
S.Free;
|
||||||
|
raise Exception.Create('Invalid IP4 Address string');
|
||||||
|
end;
|
||||||
|
|
||||||
|
Result := (StrToInt(S[0]) shl 24) + (StrToInt(S[1]) shl 16) +
|
||||||
|
(StrToInt(S[2]) shl 8) + (StrToInt(S[3]));
|
||||||
|
|
||||||
|
S.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnOpenByIPClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
devrec : t_x502_devrec;
|
||||||
|
err : LongInt;
|
||||||
|
begin
|
||||||
|
// <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
err := E502_MakeDevRecordByIpAddr(devrec, parseIpAddr(edtIpAddr.Text), 0, 5000);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),mtError, [mbOK], 0)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
hnd := X502_Create;
|
||||||
|
if hnd=nil then
|
||||||
|
MessageDlg('<27><><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, [mbOK], 0)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
// <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>
|
||||||
|
err := X502_OpenByDevRecord(hnd, devrec);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> => <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),mtError, [mbOK], 0);
|
||||||
|
X502_Free(hnd);
|
||||||
|
hnd := nil;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
showDevInfo;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
X502_FreeDevRecordList(devrec);
|
||||||
|
end;
|
||||||
|
updateControls();
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnAsyncDigInClick(Sender: TObject);
|
||||||
|
var din: Cardinal;
|
||||||
|
var err: Integer;
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
err := X502_AsyncInDig(hnd, din);
|
||||||
|
if err<>X502_ERR_OK then
|
||||||
|
MessageDlg('<27><><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>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0)
|
||||||
|
else
|
||||||
|
edtAsyncDigIn.Text := IntToHex(din and $3FFFF, 5);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnAsyncDigOutClick(Sender: TObject);
|
||||||
|
var dout: Cardinal;
|
||||||
|
var err: Integer;
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
dout:= StrToInt(edtAsyncDigOut.Text);
|
||||||
|
err := X502_AsyncOutDig(hnd, dout, 0);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0)
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnSetAdcFreqClick(Sender: TObject);
|
||||||
|
var err : Integer;
|
||||||
|
begin
|
||||||
|
{ <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> }
|
||||||
|
err := X502_SetLChannelCount(hnd, cbbLChCnt.ItemIndex+1);
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
err := setAdcFreq();
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0)
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnAsyncAdcFrameClick(Sender: TObject);
|
||||||
|
var err : Integer;
|
||||||
|
adc_data : array of double;
|
||||||
|
lch_cnt : LongWord;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if hnd <> nil then
|
||||||
|
begin
|
||||||
|
// <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>
|
||||||
|
err := setupParams();
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
err := X502_GetLChannelCount(hnd, lch_cnt);
|
||||||
|
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
SetLength(adc_data, lch_cnt);
|
||||||
|
err := X502_AsyncGetAdcFrame(hnd, X502_PROC_FLAGS_VOLT, 1000, adc_data);
|
||||||
|
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
edtLCh1_Result.Text := FloatToStrF(adc_data[0], ffFixed, 4, 8);
|
||||||
|
if lch_cnt >= 2 then
|
||||||
|
edtLCh2_Result.Text := FloatToStrF(adc_data[1], ffFixed, 4, 8)
|
||||||
|
else
|
||||||
|
edtLCh2_Result.Text := '';
|
||||||
|
|
||||||
|
if lch_cnt >= 3 then
|
||||||
|
edtLCh3_Result.Text := FloatToStrF(adc_data[2], ffFixed, 4, 8)
|
||||||
|
else
|
||||||
|
edtLCh3_Result.Text := '';
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnStartClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
err : LongInt;
|
||||||
|
begin
|
||||||
|
//<2F><><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>
|
||||||
|
err := setupParams();
|
||||||
|
//<2F><><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 then
|
||||||
|
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 then
|
||||||
|
err := setSyncDinStream();
|
||||||
|
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><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>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
if thread <> nil then
|
||||||
|
begin
|
||||||
|
FreeAndNil(thread);
|
||||||
|
end;
|
||||||
|
|
||||||
|
thread := TX502_ProcessThread.Create(True);
|
||||||
|
thread.hnd := hnd;
|
||||||
|
SetLength(thread.LChEdits, 3);
|
||||||
|
thread.LChEdits[0] := edtLCh1_Result;
|
||||||
|
thread.LChEdits[1] := edtLCh2_Result;
|
||||||
|
thread.LChEdits[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> Delphi 2010 <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Start
|
||||||
|
threadRunning := True;
|
||||||
|
|
||||||
|
updateControls;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
//<2F><><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><EFBFBD><EFBFBD> thread_run
|
||||||
|
procedure TMainForm.OnThreadTerminate(par : TObject);
|
||||||
|
begin
|
||||||
|
if thread.err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ' + X502_GetErrorString(thread.err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
threadRunning := false;
|
||||||
|
updateControls();
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnAsyncDac1Click(Sender: TObject);
|
||||||
|
var
|
||||||
|
err : LongInt;
|
||||||
|
val : Double;
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
val := StrToFloat(edtAsyncDac1.Text);;
|
||||||
|
err := X502_AsyncOutDac(hnd, X502_DAC_CH1, val, X502_DAC_FLAGS_CALIBR or
|
||||||
|
X502_DAC_FLAGS_VOLT);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnAsyncDac2Click(Sender: TObject);
|
||||||
|
var
|
||||||
|
err : LongInt;
|
||||||
|
val : Double;
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
val := StrToFloat(edtAsyncDac2.Text);;
|
||||||
|
err := X502_AsyncOutDac(hnd, X502_DAC_CH2, val, X502_DAC_FLAGS_CALIBR or
|
||||||
|
X502_DAC_FLAGS_VOLT);
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnStopClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
// <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 then
|
||||||
|
thread.stop:=True;
|
||||||
|
btnStop.Enabled:= False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||||
|
begin
|
||||||
|
closeDevice;
|
||||||
|
freeDevList;
|
||||||
|
if thread <> nil then
|
||||||
|
FreeAndNil(thread);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.chkSyncDinClick(Sender: TObject);
|
||||||
|
var err : LongInt;
|
||||||
|
begin
|
||||||
|
if hnd<>nil then
|
||||||
|
begin
|
||||||
|
err := setSyncDinStream();
|
||||||
|
if err <> X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
MessageDlg('<27><><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>: ' + X502_GetErrorString(err),
|
||||||
|
mtError, [mbOK], 0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end.
|
||||||
123
lib/SDK/examples/Delphi/x502_general/X502_ProcessThread.pas
Normal file
123
lib/SDK/examples/Delphi/x502_general/X502_ProcessThread.pas
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
unit X502_ProcessThread;
|
||||||
|
|
||||||
|
interface
|
||||||
|
uses Classes, Math, SyncObjs,StdCtrls,SysUtils, x502api;
|
||||||
|
const RECV_BUF_SIZE = 8*1024*1024;
|
||||||
|
const RECV_TOUT = 250;
|
||||||
|
|
||||||
|
type TX502_ProcessThread = class(TThread)
|
||||||
|
public
|
||||||
|
LChEdits : array of TEdit;
|
||||||
|
dinResEdit : TEdit;
|
||||||
|
hnd: t_x502_hnd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
err : LongInt; //<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>
|
||||||
|
stop : Boolean; //<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>)
|
||||||
|
|
||||||
|
constructor Create(SuspendCreate : Boolean);
|
||||||
|
destructor Free();
|
||||||
|
|
||||||
|
private
|
||||||
|
{ Private declarations }
|
||||||
|
adcData : array [0..RECV_BUF_SIZE-1] of double;
|
||||||
|
dinData : array [0..RECV_BUF_SIZE-1] of LongWord;
|
||||||
|
adcSize, dinSize, firstLch : LongWord;
|
||||||
|
|
||||||
|
|
||||||
|
procedure updateData;
|
||||||
|
protected
|
||||||
|
procedure Execute; override;
|
||||||
|
end;
|
||||||
|
implementation
|
||||||
|
|
||||||
|
|
||||||
|
constructor TX502_ProcessThread.Create(SuspendCreate : Boolean);
|
||||||
|
begin
|
||||||
|
Inherited Create(SuspendCreate);
|
||||||
|
stop:=False;
|
||||||
|
hnd:=Nil;
|
||||||
|
err:=X502_ERR_OK;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TX502_ProcessThread.Free();
|
||||||
|
begin
|
||||||
|
Inherited Free();
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ <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> }
|
||||||
|
procedure TX502_ProcessThread.updateData;
|
||||||
|
var
|
||||||
|
lch_cnt, i : LongWord;
|
||||||
|
err : LongInt;
|
||||||
|
begin
|
||||||
|
err := X502_GetLChannelCount(hnd, lch_cnt);
|
||||||
|
if err=X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <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 i:=0 to Min(lch_cnt, adcSize) do
|
||||||
|
LChEdits[(firstLch + i) mod 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 <> 0 then
|
||||||
|
dinResEdit.Text := IntToHex(dinData[0] and $3FFFF, 5)
|
||||||
|
else
|
||||||
|
dinResEdit.Text := '';
|
||||||
|
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TX502_ProcessThread.Execute;
|
||||||
|
var
|
||||||
|
stoperr, rcv_size : LongInt;
|
||||||
|
rcv_buf : array of LongWord;
|
||||||
|
begin
|
||||||
|
setlength(rcv_buf, RECV_BUF_SIZE);
|
||||||
|
// <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 then
|
||||||
|
begin
|
||||||
|
{ <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 not stop and (err = X502_ERR_OK) do
|
||||||
|
begin
|
||||||
|
//<2F><><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>
|
||||||
|
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 then
|
||||||
|
err := rcv_size
|
||||||
|
else if rcv_size>0 then
|
||||||
|
begin
|
||||||
|
//<2F><><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 then
|
||||||
|
begin
|
||||||
|
{ <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, X502_PROC_FLAGS_VOLT,
|
||||||
|
adcData, adcSize, dinData, dinSize);
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
begin
|
||||||
|
// <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);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ <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> }
|
||||||
|
stoperr:= X502_StreamsStop(hnd);
|
||||||
|
if err = X502_ERR_OK then
|
||||||
|
err:= stoperr;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end.
|
||||||
24
lib/SDK/examples/Delphi/x502_general/readme.txt
Normal file
24
lib/SDK/examples/Delphi/x502_general/readme.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<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> Delphi.
|
||||||
|
<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> "Delphi 7" (x502_example.dpr) <20> <20><><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "Embarcadero Delphi XE" (x502_example.dproj).
|
||||||
|
<EFBFBD> <20><><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> Win64, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 64-<2D><><EFBFBD><EFBFBD><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api.pas, l502api.pas <20> e502api.pas,
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SDK <20> SDK_DIR/pas
|
||||||
|
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
Delphi 7 - "Project->Options->Directories/Conditionals->Search path",
|
||||||
|
Delphi XE - "Project->Options->Delphi Compiler->Search path"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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> Delphi.
|
||||||
|
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> "Borland C++ Builder" <20> <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>
|
||||||
|
<EFBFBD><EFBFBD><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> <20> <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> (TX502_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>).
|
||||||
141
lib/SDK/examples/Delphi/x502_general/x502_example.dof
Normal file
141
lib/SDK/examples/Delphi/x502_general/x502_example.dof
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
[FileVersion]
|
||||||
|
Version=7.0
|
||||||
|
[Compiler]
|
||||||
|
A=8
|
||||||
|
B=0
|
||||||
|
C=1
|
||||||
|
D=1
|
||||||
|
E=0
|
||||||
|
F=0
|
||||||
|
G=1
|
||||||
|
H=1
|
||||||
|
I=1
|
||||||
|
J=0
|
||||||
|
K=0
|
||||||
|
L=1
|
||||||
|
M=0
|
||||||
|
N=1
|
||||||
|
O=1
|
||||||
|
P=1
|
||||||
|
Q=0
|
||||||
|
R=0
|
||||||
|
S=0
|
||||||
|
T=0
|
||||||
|
U=0
|
||||||
|
V=1
|
||||||
|
W=0
|
||||||
|
X=1
|
||||||
|
Y=1
|
||||||
|
Z=1
|
||||||
|
ShowHints=1
|
||||||
|
ShowWarnings=1
|
||||||
|
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
NamespacePrefix=
|
||||||
|
SymbolDeprecated=1
|
||||||
|
SymbolLibrary=1
|
||||||
|
SymbolPlatform=1
|
||||||
|
UnitLibrary=1
|
||||||
|
UnitPlatform=1
|
||||||
|
UnitDeprecated=1
|
||||||
|
HResultCompat=1
|
||||||
|
HidingMember=1
|
||||||
|
HiddenVirtual=1
|
||||||
|
Garbage=1
|
||||||
|
BoundsError=1
|
||||||
|
ZeroNilCompat=1
|
||||||
|
StringConstTruncated=1
|
||||||
|
ForLoopVarVarPar=1
|
||||||
|
TypedConstVarPar=1
|
||||||
|
AsgToTypedConst=1
|
||||||
|
CaseLabelRange=1
|
||||||
|
ForVariable=1
|
||||||
|
ConstructingAbstract=1
|
||||||
|
ComparisonFalse=1
|
||||||
|
ComparisonTrue=1
|
||||||
|
ComparingSignedUnsigned=1
|
||||||
|
CombiningSignedUnsigned=1
|
||||||
|
UnsupportedConstruct=1
|
||||||
|
FileOpen=1
|
||||||
|
FileOpenUnitSrc=1
|
||||||
|
BadGlobalSymbol=1
|
||||||
|
DuplicateConstructorDestructor=1
|
||||||
|
InvalidDirective=1
|
||||||
|
PackageNoLink=1
|
||||||
|
PackageThreadVar=1
|
||||||
|
ImplicitImport=1
|
||||||
|
HPPEMITIgnored=1
|
||||||
|
NoRetVal=1
|
||||||
|
UseBeforeDef=1
|
||||||
|
ForLoopVarUndef=1
|
||||||
|
UnitNameMismatch=1
|
||||||
|
NoCFGFileFound=1
|
||||||
|
MessageDirective=1
|
||||||
|
ImplicitVariants=1
|
||||||
|
UnicodeToLocale=1
|
||||||
|
LocaleToUnicode=1
|
||||||
|
ImagebaseMultiple=1
|
||||||
|
SuspiciousTypecast=1
|
||||||
|
PrivatePropAccessor=1
|
||||||
|
UnsafeType=1
|
||||||
|
UnsafeCode=1
|
||||||
|
UnsafeCast=1
|
||||||
|
[Linker]
|
||||||
|
MapFile=0
|
||||||
|
OutputObjs=0
|
||||||
|
ConsoleApp=1
|
||||||
|
DebugInfo=0
|
||||||
|
RemoteSymbols=0
|
||||||
|
MinStackSize=16384
|
||||||
|
MaxStackSize=1048576
|
||||||
|
ImageBase=4194304
|
||||||
|
ExeDescription=
|
||||||
|
[Directories]
|
||||||
|
OutputDir=
|
||||||
|
UnitOutputDir=
|
||||||
|
PackageDLLOutputDir=
|
||||||
|
PackageDCPOutputDir=
|
||||||
|
SearchPath=c:\Program Files (x86)\L-Card\lpcie\pas\
|
||||||
|
Packages=vcl;rtl;dbrtl;inet;inetdb;dsnap;bdertl;vclx;vcldb;vcldbx;visualclx;visualdbclx;vclactnband;vclshlctrls;vclie;xmlrtl;inetdbbde;inetdbxpress;webdsnap;soaprtl;websnap;adortl;dbexpress;dsnapcon;dbxcds;ibxpress;teeui;teedb;tee;dss;indy;VclSmp;qrpt;teeqr;Rave50CLX;Rave50VCL;IntrawebDB_50_70;Intraweb_50_70;VclNewlyext
|
||||||
|
Conditionals=
|
||||||
|
DebugSourceDirs=
|
||||||
|
UsePackages=0
|
||||||
|
[Parameters]
|
||||||
|
RunParams=
|
||||||
|
HostApplication=
|
||||||
|
Launcher=
|
||||||
|
UseLauncher=0
|
||||||
|
DebugCWD=
|
||||||
|
[Language]
|
||||||
|
ActiveLang=
|
||||||
|
ProjectLang=
|
||||||
|
RootDir=
|
||||||
|
[Version Info]
|
||||||
|
IncludeVerInfo=1
|
||||||
|
AutoIncBuild=0
|
||||||
|
MajorVer=1
|
||||||
|
MinorVer=0
|
||||||
|
Release=0
|
||||||
|
Build=0
|
||||||
|
Debug=0
|
||||||
|
PreRelease=0
|
||||||
|
Special=0
|
||||||
|
Private=0
|
||||||
|
DLL=0
|
||||||
|
Locale=1033
|
||||||
|
CodePage=1252
|
||||||
|
[Version Info Keys]
|
||||||
|
CompanyName=
|
||||||
|
FileDescription=
|
||||||
|
FileVersion=1.0.0.0
|
||||||
|
InternalName=
|
||||||
|
LegalCopyright=
|
||||||
|
LegalTrademarks=
|
||||||
|
OriginalFilename=
|
||||||
|
ProductName=
|
||||||
|
ProductVersion=1.0.0.0
|
||||||
|
[HistoryLists\hlUnitAliases]
|
||||||
|
Count=1
|
||||||
|
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||||
|
[HistoryLists\hlSearchPath]
|
||||||
|
Count=1
|
||||||
|
Item0=c:\Program Files (x86)\L-Card\lpcie\pas\
|
||||||
14
lib/SDK/examples/Delphi/x502_general/x502_example.dpr
Normal file
14
lib/SDK/examples/Delphi/x502_general/x502_example.dpr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
program x502_example;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Forms,
|
||||||
|
MainUnit in 'MainUnit.pas' {MainForm},
|
||||||
|
X502_ProcessThread in 'X502_ProcessThread.pas';
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TMainForm, MainForm);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
119
lib/SDK/examples/Delphi/x502_general/x502_example.dproj
Normal file
119
lib/SDK/examples/Delphi/x502_general/x502_example.dproj
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{7C3D1E6C-FE9D-4A33-89CC-FFA83DED1261}</ProjectGuid>
|
||||||
|
<MainSource>x502_example.dpr</MainSource>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||||
|
<TargetedPlatforms>3</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)'=='Release' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<SanitizedProjectName>x502_example</SanitizedProjectName>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
<DCC_UsePackage>vcl;rtl;dbrtl;inet;inetdb;dsnap;bdertl;vclx;vcldb;vcldbx;visualclx;visualdbclx;vclactnband;vclshlctrls;vclie;xmlrtl;inetdbbde;inetdbxpress;webdsnap;soaprtl;websnap;adortl;dbexpress;dsnapcon;dbxcds;ibxpress;teeui;teedb;tee;dss;indy;VclSmp;qrpt;teeqr;Rave50CLX;Rave50VCL;IntrawebDB_50_70;Intraweb_50_70;VclNewlyext;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
<DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
<DCC_UNSAFE_CAST>true</DCC_UNSAFE_CAST>
|
||||||
|
<DCC_DebugInformation>1</DCC_DebugInformation>
|
||||||
|
<DCC_N>true</DCC_N>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0</VerInfo_Keys>
|
||||||
|
<DCC_UNSAFE_CODE>true</DCC_UNSAFE_CODE>
|
||||||
|
<DCC_UnitSearchPath>c:\Program Files (x86)\L-Card\lpcie\pas\;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
|
||||||
|
<DCC_UNSAFE_TYPE>true</DCC_UNSAFE_TYPE>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<Icon_MainIcon>x502_example_Icon.ico</Icon_MainIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<Icon_MainIcon>x502_example_Icon.ico</Icon_MainIcon>
|
||||||
|
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="MainUnit.pas">
|
||||||
|
<Form>MainForm</Form>
|
||||||
|
</DCCReference>
|
||||||
|
<DCCReference Include="X502_ProcessThread.pas"/>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType/>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">x502_example.dpr</Source>
|
||||||
|
</Source>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">True</Platform>
|
||||||
|
</Platforms>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
</Project>
|
||||||
BIN
lib/SDK/examples/Delphi/x502_general/x502_example.res
Normal file
BIN
lib/SDK/examples/Delphi/x502_general/x502_example.res
Normal file
Binary file not shown.
BIN
lib/SDK/examples/Delphi/x502_general/x502_example_Icon.ico
Normal file
BIN
lib/SDK/examples/Delphi/x502_general/x502_example_Icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
BIN
lib/SDK/examples/LabView/x502_recv/10.0/x502_err_sub.vi
Normal file
BIN
lib/SDK/examples/LabView/x502_recv/10.0/x502_err_sub.vi
Normal file
Binary file not shown.
BIN
lib/SDK/examples/LabView/x502_recv/10.0/x502_recv.vi
Normal file
BIN
lib/SDK/examples/LabView/x502_recv/10.0/x502_recv.vi
Normal file
Binary file not shown.
BIN
lib/SDK/examples/LabView/x502_recv/8.0/x502_err_sub.vi
Normal file
BIN
lib/SDK/examples/LabView/x502_recv/8.0/x502_err_sub.vi
Normal file
Binary file not shown.
BIN
lib/SDK/examples/LabView/x502_recv/8.0/x502_recv.vi
Normal file
BIN
lib/SDK/examples/LabView/x502_recv/8.0/x502_recv.vi
Normal file
Binary file not shown.
9
lib/SDK/examples/LabView/x502_recv/readme.txt
Normal file
9
lib/SDK/examples/LabView/x502_recv/readme.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <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> <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> <20> DIN <20><> LabView <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> L502 <20><><EFBFBD> E502.
|
||||||
|
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PCIe <20> USB <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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> <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><> Ethernet <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><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><EFBFBD> lpcieNet.dll, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> GAC),
|
||||||
|
<EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api.dll, l502api.dll <20> e502api.dll (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> SDK)
|
||||||
|
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> LabView 8 <20> LabView 2010 (<28><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LabView <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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> LabView 8)
|
||||||
Binary file not shown.
Binary file not shown.
BIN
lib/SDK/examples/LabView/x502_recv_out_cycle/8.0/x502_err_sub.vi
Normal file
BIN
lib/SDK/examples/LabView/x502_recv_out_cycle/8.0/x502_err_sub.vi
Normal file
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user