Compare commits
35 Commits
master
...
old_master
| Author | SHA1 | Date | |
|---|---|---|---|
|
4eb2da17ab
|
|||
|
c8dd8553ba
|
|||
|
21038c1f8e
|
|||
|
11cf03910b
|
|||
|
613fdb998f
|
|||
|
d0578a0c0d
|
|||
| 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 |
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.csv
|
||||||
|
*.tmp
|
||||||
|
build
|
||||||
|
BF_companion
|
||||||
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.
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
|
||||||
@ -1 +0,0 @@
|
|||||||
../BFfirmware_0/build/release/bin/l502-BFfirmware0.ldr
|
|
||||||
BIN
l502-BFfirmware0.ldr
Normal file
BIN
l502-BFfirmware0.ldr
Normal file
Binary file not shown.
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.
11
lib/SDK/examples/LabView/x502_recv_out_cycle/readme.txt
Normal file
11
lib/SDK/examples/LabView/x502_recv_out_cycle/readme.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <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)
|
||||||
29
lib/SDK/examples/c/e502_eth_svc_browse/CMakeLists.txt
Normal file
29
lib/SDK/examples/c/e502_eth_svc_browse/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake.
|
||||||
|
# <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> make-<2D><><EFBFBD><EFBFBD>
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
#
|
||||||
|
# cmake -DX502API_INCLUDE_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api> -DX502API_LIBRARIES_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api (.lib, .a <20><><EFBFBD> .so)> -G <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> <<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
# <20><> -DX502API_INCLUDE_DIR <20> -DX502API_LIBRARIES_DIR <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
|
||||||
|
set(PROJECT e502_eth_svc_browse)
|
||||||
|
|
||||||
|
project(${PROJECT} C)
|
||||||
|
|
||||||
|
set(SOURCES main.c)
|
||||||
|
set(HEADERS )
|
||||||
|
|
||||||
|
include_directories(${X502API_INCLUDE_DIR})
|
||||||
|
link_directories(${X502API_LIBRARIES_DIR})
|
||||||
|
|
||||||
|
add_executable(${PROJECT} ${HEADERS} ${SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT} x502api e502api)
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
|
# Visual C++ Express 2008
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "e502_eth_svc_browse", "e502_eth_svc_browse.vcproj", "{D9460CE1-B571-4A69-A4C1-0676BF57EB04}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
@ -0,0 +1,199 @@
|
|||||||
|
<?xml version="1.0" encoding="windows-1251"?>
|
||||||
|
<VisualStudioProject
|
||||||
|
ProjectType="Visual C++"
|
||||||
|
Version="9,00"
|
||||||
|
Name="e502_eth_svc_browse"
|
||||||
|
ProjectGUID="{D9460CE1-B571-4A69-A4C1-0676BF57EB04}"
|
||||||
|
RootNamespace="e502_eth_svc_browse"
|
||||||
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="196613"
|
||||||
|
>
|
||||||
|
<Platforms>
|
||||||
|
<Platform
|
||||||
|
Name="Win32"
|
||||||
|
/>
|
||||||
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
|
<Configurations>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include\"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="x502api.lib e502api.lib"
|
||||||
|
LinkIncremental="2"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include\"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
RuntimeLibrary="2"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="x502api.lib e502api.lib"
|
||||||
|
LinkIncremental="1"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
</Configurations>
|
||||||
|
<References>
|
||||||
|
</References>
|
||||||
|
<Files>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||||
|
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\main.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||||
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
</Files>
|
||||||
|
<Globals>
|
||||||
|
</Globals>
|
||||||
|
</VisualStudioProject>
|
||||||
205
lib/SDK/examples/c/e502_eth_svc_browse/main.c
Normal file
205
lib/SDK/examples/c/e502_eth_svc_browse/main.c
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> C,
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E502 <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><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> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Windows <20><><EFBFBD> CTRL+C <20><> Linux.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio 2008, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
gcc <20> Linux <20><><EFBFBD> mingw <20> Windows <20><><EFBFBD><EFBFBD><EFBFBD> makefile <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake (<28><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||||
|
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Visual Studio, <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>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties)
|
||||||
|
-> <20>/<2F>++ -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Include Directories))
|
||||||
|
<20><> <20><><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x502api.h <20> e502api.h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties) ->
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Linker) -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Library Directories)).
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!: <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><> <20><> SDK),
|
||||||
|
<20><> <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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> UTF-8:
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (File) -> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Advanced Save Options)...
|
||||||
|
<20> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Encoding) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (UTF8, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/Unicode (UTF-8 with signature)
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "e502api.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <locale.h>
|
||||||
|
#include <conio.h>
|
||||||
|
#else
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define INST_NAME_PRINT_FMT "%ls"
|
||||||
|
#else
|
||||||
|
#define INST_NAME_PRINT_FMT "%s"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* <20><><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> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static int f_out = 0;
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
/* <20><><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> Linux */
|
||||||
|
static void f_abort_handler(int sig) {
|
||||||
|
f_out = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
int32_t err = X502_ERR_OK;
|
||||||
|
int32_t stop_err;
|
||||||
|
uint32_t ver;
|
||||||
|
t_e502_eth_svc_browse_hnd browse_hnd;
|
||||||
|
#ifndef _WIN32
|
||||||
|
struct sigaction sa;
|
||||||
|
memset(&sa, 0, sizeof(sa));
|
||||||
|
/* <20> <20><> Linux <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
sa.sa_handler = f_abort_handler;
|
||||||
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
|
sigaction(SIGINT, &sa, NULL);
|
||||||
|
sigaction(SIGABRT, &sa, NULL);
|
||||||
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> Windows <20> CP1251 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OEM */
|
||||||
|
setlocale(LC_CTYPE, "");
|
||||||
|
#endif
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
ver = X502_GetLibraryVersion();
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d.%d.%d\n", (ver >> 24)&0xFF, (ver>>16)&0xFF, (ver>>8)&0xFF);
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||||
|
err = E502_EthSvcBrowseStart(&browse_hnd, 0);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (%d): %s\n",
|
||||||
|
err, X502_GetErrorString(err));
|
||||||
|
} else {
|
||||||
|
printf("<EFBFBD><EFBFBD><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><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s\n",
|
||||||
|
#ifdef _WIN32
|
||||||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
#else
|
||||||
|
"CTRL+C"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
while (!f_out && (err == X502_ERR_OK)) {
|
||||||
|
t_e502_eth_svc_record_hnd svc_rec;
|
||||||
|
uint32_t event;
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = E502_EthSvcBrowseGetEvent(browse_hnd, &svc_rec, &event, NULL, 300);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%d): %s\n",
|
||||||
|
err, X502_GetErrorString(err));
|
||||||
|
} else if (event != E502_ETH_SVC_EVENT_NONE) {
|
||||||
|
char inst_name[X502_INSTANCE_NAME_SIZE];
|
||||||
|
char dev_serial[X502_SERIAL_SIZE];
|
||||||
|
uint32_t addr;
|
||||||
|
int32_t cur_err;
|
||||||
|
#ifdef _WIN32
|
||||||
|
WCHAR inst_name_w[X502_INSTANCE_NAME_SIZE];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> E502_ETH_SVC_EVENT_NONE, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20> <20><><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
cur_err = E502_EthSvcRecordGetInstanceName(svc_rec, inst_name);
|
||||||
|
if (cur_err == X502_ERR_OK)
|
||||||
|
cur_err = E502_EthSvcRecordGetDevSerial(svc_rec, dev_serial);
|
||||||
|
#ifdef _WIN32
|
||||||
|
if (cur_err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UTF-8. <20> Windows <20><><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> UTF16
|
||||||
|
* <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WCHAR.
|
||||||
|
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> */
|
||||||
|
if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, inst_name,
|
||||||
|
-1, inst_name_w, X502_INSTANCE_NAME_SIZE)==0) {
|
||||||
|
cur_err = X502_ERR_INSTANCE_NAME_ENCODING;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (cur_err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%d): %s\n",
|
||||||
|
cur_err, X502_GetErrorString(cur_err));
|
||||||
|
} else {
|
||||||
|
if ((event == E502_ETH_SVC_EVENT_ADD) ||
|
||||||
|
(event == E502_ETH_SVC_EVENT_CHANGED)) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADD <20> CHANGE <20><><EFBFBD><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><EFBFBD><EFBFBD>,
|
||||||
|
* <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
cur_err = E502_EthSvcRecordResolveIPv4Addr(svc_rec, &addr, 4000);
|
||||||
|
|
||||||
|
if (cur_err == X502_ERR_OK) {
|
||||||
|
printf("%s: " INST_NAME_PRINT_FMT ", S/N: %s, <20><><EFBFBD><EFBFBD><EFBFBD> = %d.%d.%d.%d\n",
|
||||||
|
event == E502_ETH_SVC_EVENT_ADD ? "<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>",
|
||||||
|
#ifdef _WIN32
|
||||||
|
inst_name_w,
|
||||||
|
#else
|
||||||
|
inst_name,
|
||||||
|
#endif
|
||||||
|
dev_serial,
|
||||||
|
(addr >> 24) & 0xFF, (addr >> 16) & 0xFF,
|
||||||
|
(addr >> 8) & 0xFF, addr & 0xFF
|
||||||
|
);
|
||||||
|
|
||||||
|
fflush(stdout);
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "<EFBFBD><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><EFBFBD><EFBFBD> (%d): %s\n",
|
||||||
|
cur_err, X502_GetErrorString(cur_err));
|
||||||
|
}
|
||||||
|
} else if (event == E502_ETH_SVC_EVENT_REMOVE) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " INST_NAME_PRINT_FMT ", S/N: %s\n",
|
||||||
|
#ifdef _WIN32
|
||||||
|
inst_name_w,
|
||||||
|
#else
|
||||||
|
inst_name,
|
||||||
|
#endif
|
||||||
|
dev_serial);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> NONE, <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
E502_EthSvcRecordFree(svc_rec);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
if (_kbhit())
|
||||||
|
f_out = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
stop_err = E502_EthSvcBrowseStop(browse_hnd);
|
||||||
|
if (stop_err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%d): %s\n",
|
||||||
|
stop_err, X502_GetErrorString(stop_err));
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = stop_err;
|
||||||
|
} else {
|
||||||
|
printf("<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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
48
lib/SDK/examples/c/e502_eth_svc_browse/makefile
Normal file
48
lib/SDK/examples/c/e502_eth_svc_browse/makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# makefile для сборки примера с помощью компиляторов mingw (под Windows)
|
||||||
|
# или GCC (под Linux). Необходимо определить 3 переменные:
|
||||||
|
#
|
||||||
|
# CC - имя команды для вызова компилятора
|
||||||
|
# X502API_LIBRARIES_DIR - путь к файлм .a или .so библиотек l502api, e502api, x502api (если не стандартный)
|
||||||
|
# X502API_INCLUDE_DIR - путь к заголовочным файлам l502api.h, e502api.h, x502api.h
|
||||||
|
#
|
||||||
|
# Ниже приведено несколько примеров в закоментированном виде
|
||||||
|
|
||||||
|
#--- Linux с заголовками и библиотекой в стандартных директориях: компилятор GCC
|
||||||
|
#CC = gcc
|
||||||
|
|
||||||
|
#--- Вариант запуска из MSYS со стандартным 32-битным mingw
|
||||||
|
#CC = gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/c/Program Files/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/c/Program Files/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
#--- 64-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = x86_64-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw64"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-pc-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
FLAGS =
|
||||||
|
|
||||||
|
ifdef X502API_LIBRARIES_DIR
|
||||||
|
FLAGS += -L $(X502API_LIBRARIES_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef X502API_INCLUDE_DIR
|
||||||
|
FLAGS += -I $(X502API_INCLUDE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(CC) main.c $(FLAGS) -lx502api -le502api -o e502_eth_svc_browse
|
||||||
29
lib/SDK/examples/c/e502_timestamp_stream/CMakeLists.txt
Normal file
29
lib/SDK/examples/c/e502_timestamp_stream/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake.
|
||||||
|
# <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> make-<2D><><EFBFBD><EFBFBD>
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
#
|
||||||
|
# cmake -DX502API_INCLUDE_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api> -DX502API_LIBRARIES_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api (.lib, .a <20><><EFBFBD> .so)> -G <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> <<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
# <20><> -DX502API_INCLUDE_DIR <20> -DX502API_LIBRARIES_DIR <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
|
||||||
|
set(PROJECT e502_timestamp_stream)
|
||||||
|
|
||||||
|
project(${PROJECT} C)
|
||||||
|
|
||||||
|
set(SOURCES main.c)
|
||||||
|
set(HEADERS )
|
||||||
|
|
||||||
|
include_directories(${X502API_INCLUDE_DIR})
|
||||||
|
link_directories(${X502API_LIBRARIES_DIR})
|
||||||
|
|
||||||
|
add_executable(${PROJECT} ${HEADERS} ${SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT} x502api l502api e502api)
|
||||||
681
lib/SDK/examples/c/e502_timestamp_stream/main.c
Normal file
681
lib/SDK/examples/c/e502_timestamp_stream/main.c
Normal file
@ -0,0 +1,681 @@
|
|||||||
|
/*
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E502-P1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PTP.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> C,
|
||||||
|
<20><><EFBFBD><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>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><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> USB,
|
||||||
|
<20> <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>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ethernet <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20> <20><><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><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 192.168.1.5 <20> 192.168.1.6,
|
||||||
|
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
x502_stream_read 192.168.1.5 192.168.1.6
|
||||||
|
<20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> f_channels/f_ch_modes/f_ch_ranges.
|
||||||
|
|
||||||
|
<20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Windows <20><><EFBFBD> CTRL+C <20><> Linux.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> X502_ProcessData() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio 2008, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
gcc <20> Linux <20><><EFBFBD> mingw <20> Windows <20><><EFBFBD><EFBFBD><EFBFBD> makefile <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake (<28><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||||
|
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Visual Studio, <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>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties)
|
||||||
|
-> <20>/<2F>++ -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Include Directories))
|
||||||
|
<20><> <20><><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x502api.h, l502api.h <20> e502api.h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties) ->
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Linker) -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Library Directories)).
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!: <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><> <20><> SDK),
|
||||||
|
<20><> <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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> UTF-8:
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (File) -> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Advanced Save Options)...
|
||||||
|
<20> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Encoding) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (UTF8, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/Unicode (UTF-8 with signature)
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "l502api.h"
|
||||||
|
#include "e502api.h"
|
||||||
|
#include "x502tstp.h"
|
||||||
|
|
||||||
|
#include "../../devs/e502/e502_fpga_regs.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <locale.h>
|
||||||
|
#include <conio.h>
|
||||||
|
|
||||||
|
#else
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
|
#include "x502api_private.h"
|
||||||
|
|
||||||
|
#define STREAM_IN_WRD_TYPE(wrd) wrd & 0x80000000 ? STREAM_IN_WRD_ADC : \
|
||||||
|
(wrd & 0xFF000000) == 0x0 ? STREAM_IN_WRD_DIN : \
|
||||||
|
(wrd & 0xF0000000) == 0x40000000 ? STREAM_IN_WRD_TSP : \
|
||||||
|
((wrd & 0xFF000000)>>24) == 0x01 ? STREAM_IN_WRD_MSG : STREAM_IN_WRD_USR
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
|
#define CLOCK_MONOTONIC 1
|
||||||
|
|
||||||
|
int clock_gettime(int a, struct timespec *spec) {
|
||||||
|
__int64 wintime; GetSystemTimeAsFileTime((FILETIME*)&wintime);
|
||||||
|
wintime -=116444736000000000i64; //1jan1601 to 1jan1970
|
||||||
|
spec->tv_sec =wintime / 10000000i64; //seconds
|
||||||
|
spec->tv_nsec =wintime % 10000000i64 *100; //nano-seconds
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define NSEC_PER_SEC 1000000000
|
||||||
|
|
||||||
|
void timespec_diff(struct timespec *a, struct timespec *b,
|
||||||
|
struct timespec *result) {
|
||||||
|
result->tv_sec = a->tv_sec - b->tv_sec;
|
||||||
|
result->tv_nsec = a->tv_nsec - b->tv_nsec;
|
||||||
|
if (result->tv_nsec < 0) {
|
||||||
|
--result->tv_sec;
|
||||||
|
result->tv_nsec += NSEC_PER_SEC;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
double timespec_to_double(struct timespec *ts)
|
||||||
|
{
|
||||||
|
return ((double)(ts->tv_sec) + ((double)(ts->tv_nsec) / NSEC_PER_SEC));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><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> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static int f_out = 0;
|
||||||
|
|
||||||
|
/* <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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
#define ADC_LCH_CNT 1
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><>*/
|
||||||
|
#define ADC_FREQ 1000000
|
||||||
|
#define ADC_FRAME_FREQ (ADC_FREQ/ADC_LCH_CNT)
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>*/
|
||||||
|
#define DIN_FREQ 1000000
|
||||||
|
|
||||||
|
#define ENABLE_ADC
|
||||||
|
#define ENABLE_DIN
|
||||||
|
|
||||||
|
// <20><><EFBFBD> ADC_FREQ==2000000 <20> DIN_FREQ==1000000 <20><><EFBFBD><EFBFBD><EFBFBD> Ethernet <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> X502_STREAM_IN_MSG_OVERFLOW
|
||||||
|
|
||||||
|
|
||||||
|
#define TCP_CONNECTION_TOUT 5000
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> */
|
||||||
|
#define READ_BLOCK_SIZE 4096*66*3
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><>) */
|
||||||
|
#define READ_TIMEOUT 2000
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><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><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_channels[ADC_LCH_CNT] = {0};
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_ch_modes[ADC_LCH_CNT] = {X502_LCH_MODE_DIFF};
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_ch_ranges[ADC_LCH_CNT] = {X502_ADC_RANGE_10};
|
||||||
|
|
||||||
|
|
||||||
|
t_x502_hnd g_hnd = NULL;
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
/* <20><><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> Linux */
|
||||||
|
static void f_abort_handler(int sig) {
|
||||||
|
f_out = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> PCI-Express <20> USB <20>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
* <20><><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20> pdevrec_list, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD> <20> <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> X502_FreeDevRecordList()) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_get_all_devrec(t_x502_devrec **pdevrec_list, uint32_t *ip_addr_list, unsigned ip_cnt) {
|
||||||
|
int32_t fnd_devcnt = 0;
|
||||||
|
uint32_t pci_devcnt = 0;
|
||||||
|
uint32_t usb_devcnt = 0;
|
||||||
|
|
||||||
|
t_x502_devrec *rec_list = NULL;
|
||||||
|
|
||||||
|
/* <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 + ip_cnt) != 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> */
|
||||||
|
rec_list = malloc((pci_devcnt + usb_devcnt + ip_cnt) * sizeof(t_x502_devrec));
|
||||||
|
|
||||||
|
if (rec_list != NULL) {
|
||||||
|
unsigned i;
|
||||||
|
/* <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(&rec_list[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(&rec_list[fnd_devcnt], usb_devcnt, 0, NULL);
|
||||||
|
if (res >= 0) {
|
||||||
|
fnd_devcnt += res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><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><EFBFBD> ip-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
for (i=0; i < ip_cnt; i++) {
|
||||||
|
if (E502_MakeDevRecordByIpAddr(&rec_list[fnd_devcnt], ip_addr_list[i],0, TCP_CONNECTION_TOUT) == X502_ERR_OK) {
|
||||||
|
fnd_devcnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fnd_devcnt != 0) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
*pdevrec_list = rec_list;
|
||||||
|
} else {
|
||||||
|
*pdevrec_list = NULL;
|
||||||
|
free(rec_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fnd_devcnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static t_x502_hnd f_dev_select_open(int argc, char** argv) {
|
||||||
|
uint32_t fnd_devcnt,i, dev_ind;
|
||||||
|
t_x502_devrec *devrec_list = NULL;
|
||||||
|
uint32_t *ip_addr_list = NULL;
|
||||||
|
uint32_t ip_cnt = 0;
|
||||||
|
t_x502_hnd hnd = NULL;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
ip-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. */
|
||||||
|
if (argc > 1) {
|
||||||
|
ip_addr_list = malloc((argc-1) * sizeof(ip_addr_list[0]));
|
||||||
|
if (ip_addr_list == NULL) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
||||||
|
} else {
|
||||||
|
for (i=1; (int)i < argc; i++) {
|
||||||
|
int a[4];
|
||||||
|
if (sscanf(argv[i], "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3])==4) {
|
||||||
|
ip_addr_list[ip_cnt++] = ((a[0] & 0xFF) << 24) |
|
||||||
|
((a[1] & 0xFF) << 16) |
|
||||||
|
((a[2] & 0xFF) << 8) |
|
||||||
|
(a[3] & 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
fnd_devcnt = f_get_all_devrec(&devrec_list, ip_addr_list, ip_cnt);
|
||||||
|
|
||||||
|
if (fnd_devcnt == 0) {
|
||||||
|
printf("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
||||||
|
for (i=0; i < fnd_devcnt; i++) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> %d: %s, %-9s", i, devrec_list[i].devname,
|
||||||
|
devrec_list[i].iface == X502_IFACE_PCI ? "PCI/PCIe" :
|
||||||
|
devrec_list[i].iface == X502_IFACE_USB ? "USB" :
|
||||||
|
devrec_list[i].iface == X502_IFACE_ETH ? "Ethernet" : "?");
|
||||||
|
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> location
|
||||||
|
<20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (devrec_list[i].iface != X502_IFACE_ETH) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>: %s\n", devrec_list[i].serial);
|
||||||
|
} else {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", devrec_list[i].location);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> 0 <20><> %d)\n", fnd_devcnt-1);
|
||||||
|
fflush(stdout);
|
||||||
|
scanf("%d", &dev_ind);
|
||||||
|
|
||||||
|
if (dev_ind >= fnd_devcnt) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...\n");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
hnd = X502_Create();
|
||||||
|
if (hnd==NULL) {
|
||||||
|
fprintf(stderr, "<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>!");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
int32_t err = X502_OpenByDevRecord(hnd, &devrec_list[dev_ind]);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<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>: %s!", X502_GetErrorString(err));
|
||||||
|
X502_Free(hnd);
|
||||||
|
hnd = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_FreeDevRecordList(devrec_list, fnd_devcnt);
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
free(devrec_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
free(ip_addr_list);
|
||||||
|
|
||||||
|
return hnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
int32_t f_setup_params(t_x502_hnd hnd) {
|
||||||
|
int32_t err = X502_ERR_OK, i;
|
||||||
|
|
||||||
|
/* <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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||||
|
err = X502_SetLChannelCount(hnd, ADC_LCH_CNT);
|
||||||
|
for (i=0; (i < ADC_LCH_CNT) && (err == X502_ERR_OK); i++)
|
||||||
|
err = X502_SetLChannel(hnd, i, f_channels[i], f_ch_modes[i], f_ch_ranges[i], 0);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
double f_adc = ADC_FREQ, f_frame = ADC_FRAME_FREQ, f_din = DIN_FREQ;
|
||||||
|
|
||||||
|
err = X502_SetAdcFreq(hnd, &f_adc, &f_frame);
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = X502_SetDinFreq(hnd, &f_din);
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> = %0.0f\n"
|
||||||
|
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> = %0.0f\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> = %0.0f\n",
|
||||||
|
f_adc, f_frame, f_din);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <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);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
int streams = 0;
|
||||||
|
#ifdef ENABLE_ADC
|
||||||
|
streams |= X502_STREAM_ADC;
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_DIN
|
||||||
|
streams |= X502_STREAM_DIN;
|
||||||
|
#endif
|
||||||
|
err = X502_StreamsEnable(hnd, streams);
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
int32_t err = X502_ERR_OK;
|
||||||
|
uint32_t ver;
|
||||||
|
#ifndef _WIN32
|
||||||
|
struct sigaction sa;
|
||||||
|
memset(&sa, 0, sizeof(sa));
|
||||||
|
/* <20> <20><> Linux <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
sa.sa_handler = f_abort_handler;
|
||||||
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
|
sigaction(SIGINT, &sa, NULL);
|
||||||
|
sigaction(SIGABRT, &sa, NULL);
|
||||||
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> Windows <20> CP1251 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OEM */
|
||||||
|
setlocale(LC_CTYPE, "");
|
||||||
|
#endif
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
ver = X502_GetLibraryVersion();
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d.%d.%d\n", (ver >> 24)&0xFF, (ver>>16)&0xFF, (ver>>8)&0xFF);
|
||||||
|
|
||||||
|
/********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ******************/
|
||||||
|
g_hnd = f_dev_select_open(argc, argv);
|
||||||
|
|
||||||
|
/********************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************************/
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (g_hnd != NULL) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
t_x502_info info;
|
||||||
|
err = X502_GetDevInfo(g_hnd, &info);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<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>:\n");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> : %s\n", info.serial);
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> : %s\n", info.devflags & X502_DEVFLAGS_DAC_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BlackFin : %s\n", info.devflags & X502_DEVFLAGS_BF_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", info.devflags & X502_DEVFLAGS_GAL_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. : %s\n", info.devflags & X502_DEVFLAGS_INDUSTRIAL ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. PCI/PCIe: %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_PCI ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. USB : %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_USB ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. Ethernet: %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_ETH ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> : %d.%d\n", (info.fpga_ver >> 8) & 0xFF, info.fpga_ver & 0xFF);
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLDA : %d\n", info.plda_ver);
|
||||||
|
if (info.mcu_firmware_ver != 0) {
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ARM : %d.%d.%d.%d\n",
|
||||||
|
(info.mcu_firmware_ver >> 24) & 0xFF,
|
||||||
|
(info.mcu_firmware_ver >> 16) & 0xFF,
|
||||||
|
(info.mcu_firmware_ver >> 8) & 0xFF,
|
||||||
|
info.mcu_firmware_ver & 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = f_setup_params(g_hnd);
|
||||||
|
if (err != X502_ERR_OK)
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*err = X502_FpgaRegRead(g_hnd, E502_REGS_ARM_BLOCK, &val);
|
||||||
|
if (err) {
|
||||||
|
printf("X502_FpgaRegRead err=%d\n", err);
|
||||||
|
} else {
|
||||||
|
printf("X502_FpgaRegRead(E502_REGS_ARM_BLOCK) = %d\n", val);
|
||||||
|
} */
|
||||||
|
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
X502_FpgaRegWrite(g_hnd, E502_REGS_ARM_TIME_CTRL, 1);
|
||||||
|
|
||||||
|
X502_FpgaRegWrite(g_hnd, E502_REGS_IOHARD_GO_SYNC_IO, 0);
|
||||||
|
X502_FpgaRegWrite(g_hnd, E502_REGS_BF_CTL, X502_REGBIT_BF_CTL_BF_RESET_Msk);
|
||||||
|
|
||||||
|
X502_SetSyncMode(g_hnd, X502_SYNC_INTERNAL);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
err = X502_StreamsStart(g_hnd);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!\n", X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
int block;
|
||||||
|
int32_t stop_err;
|
||||||
|
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s\n",
|
||||||
|
#ifdef _WIN32
|
||||||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
#else
|
||||||
|
"CTRL+C"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
struct timespec start_time;
|
||||||
|
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &start_time);
|
||||||
|
|
||||||
|
int32_t g_rcv_cnt = 0;
|
||||||
|
int cntr = 0;
|
||||||
|
int rcv_cntr = 0;
|
||||||
|
|
||||||
|
t_x502_tstp_state tstp_state;
|
||||||
|
|
||||||
|
X502_tstp_init(&tstp_state, ADC_FREQ, DIN_FREQ);
|
||||||
|
|
||||||
|
|
||||||
|
for (block = 0; (err == X502_ERR_OK) && !f_out; block++) {
|
||||||
|
int32_t rcv_size;
|
||||||
|
uint32_t adc_size, din_size;
|
||||||
|
uint32_t adc_wrd_num = 0;
|
||||||
|
uint32_t din_wrd_num = 0;
|
||||||
|
|
||||||
|
/* <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> */
|
||||||
|
static uint32_t rcv_buf[READ_BLOCK_SIZE];
|
||||||
|
static uint32_t snd_buf[READ_BLOCK_SIZE];
|
||||||
|
static double adc_data[READ_BLOCK_SIZE];
|
||||||
|
static uint32_t din_data[READ_BLOCK_SIZE];
|
||||||
|
|
||||||
|
int i;
|
||||||
|
|
||||||
|
struct timespec cur_time;
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &cur_time);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
rcv_size = X502_Recv(g_hnd, rcv_buf, READ_BLOCK_SIZE, READ_TIMEOUT);
|
||||||
|
if (rcv_size < 0) {
|
||||||
|
err = rcv_size;
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
adc_size = sizeof(adc_data)/sizeof(adc_data[0]);
|
||||||
|
din_size = sizeof(din_data)/sizeof(din_data[0]);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = X502_ProcessData(g_hnd, rcv_buf, rcv_size, X502_PROC_FLAGS_VOLT,
|
||||||
|
adc_data, &adc_size, din_data, &din_size);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_rcv_cnt += rcv_size;
|
||||||
|
int error = 0;
|
||||||
|
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &cur_time);
|
||||||
|
|
||||||
|
if (cur_time.tv_sec - start_time.tv_sec >= 5) {
|
||||||
|
//printf("rcv speed=%lld wrds/sec cntr=%x\n", (g_rcv_cnt) / (cur_time.tv_sec - start_time.tv_sec), rcv_cntr);
|
||||||
|
start_time.tv_sec = cur_time.tv_sec;
|
||||||
|
g_rcv_cnt = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < rcv_size; i++) {
|
||||||
|
uint32_t cur_wrd = rcv_buf[i];
|
||||||
|
uint64_t cur_wrd_time;
|
||||||
|
t_stream_in_wrd_type type = STREAM_IN_WRD_TYPE(cur_wrd);
|
||||||
|
|
||||||
|
X502_tstp_process_wrd(&tstp_state, cur_wrd);
|
||||||
|
X502_tstp_get_curwrd_time(&tstp_state, &cur_wrd_time) ;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (type == STREAM_IN_WRD_DIN) {
|
||||||
|
uint16_t din_wrd;
|
||||||
|
static bool last_din_wrd_initialized = false;
|
||||||
|
static uint16_t last_din_wrd;
|
||||||
|
|
||||||
|
if (!tstp_state.tstp_mark_rcvd) {
|
||||||
|
fprintf(stderr, "No timestamp received, DIN wrd unexpected!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
din_wrd = din_data[din_wrd_num];
|
||||||
|
din_wrd_num++;
|
||||||
|
|
||||||
|
#define DIN_PPS_MASK 1
|
||||||
|
|
||||||
|
if (!last_din_wrd_initialized) {
|
||||||
|
last_din_wrd = din_wrd;
|
||||||
|
last_din_wrd_initialized = true;
|
||||||
|
} else
|
||||||
|
if ((din_wrd & DIN_PPS_MASK) != (last_din_wrd & DIN_PPS_MASK) && (din_wrd & DIN_PPS_MASK)) {
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PPS <20><> <20><><EFBFBD><EFBFBD><EFBFBD> DI1
|
||||||
|
static bool last_pps_edge_time_initialized = false;
|
||||||
|
static uint64_t last_pps_edge_time = 0;
|
||||||
|
|
||||||
|
X502_tstp_get_curwrd_time(&tstp_state, &cur_wrd_time);
|
||||||
|
|
||||||
|
{
|
||||||
|
static uint32_t nsec_max = 0;
|
||||||
|
static uint32_t nsec_min = -1;
|
||||||
|
uint64_t sec_time;
|
||||||
|
uint64_t ns_time;
|
||||||
|
sec_time = cur_wrd_time - TSTP_SEC_TO_SSEC(TSTP_SECSSEC_TO_SEC(cur_wrd_time));
|
||||||
|
ns_time = TSTP_SSEC_TO_NSEC(sec_time);
|
||||||
|
if (ns_time > 500000000) {
|
||||||
|
ns_time = NSEC_PER_SEC - ns_time;
|
||||||
|
}
|
||||||
|
if (ns_time > nsec_max) {
|
||||||
|
nsec_max = ns_time;
|
||||||
|
}
|
||||||
|
if (ns_time < nsec_min) {
|
||||||
|
nsec_min = ns_time;
|
||||||
|
}
|
||||||
|
printf("DIN PPS positive edge: %ld ns (max - min = %d)\n", ns_time, nsec_max - nsec_min);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (last_pps_edge_time_initialized ) {
|
||||||
|
uint64_t pps_period;
|
||||||
|
pps_period = cur_wrd_time - last_pps_edge_time;
|
||||||
|
printf("DIN PPS positive edge pediod = %d.%09d\n", TSTP_SECSSEC_TO_SEC(pps_period), TSTP_SSEC_TO_NSEC(pps_period));
|
||||||
|
} else {
|
||||||
|
last_pps_edge_time_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
last_pps_edge_time = cur_wrd_time;
|
||||||
|
}
|
||||||
|
last_din_wrd = din_wrd;
|
||||||
|
} else
|
||||||
|
if (type == STREAM_IN_WRD_ADC) {
|
||||||
|
static uint16_t last_adc_wrd;
|
||||||
|
register uint32_t wrd = rcv_buf[i];
|
||||||
|
double adc_val;
|
||||||
|
static bool adc_wait_for_edge = false;
|
||||||
|
|
||||||
|
if (!tstp_state.tstp_mark_rcvd) {
|
||||||
|
fprintf(stderr, "No timestamp received, ADC wrd unexpected!\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
adc_val = adc_data[adc_wrd_num];
|
||||||
|
adc_wrd_num++;
|
||||||
|
|
||||||
|
X502_tstp_get_curwrd_time(&tstp_state, &cur_wrd_time);
|
||||||
|
|
||||||
|
if (adc_wait_for_edge) {
|
||||||
|
if (adc_val > 2.4) {
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PPS <20><> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADC
|
||||||
|
static bool last_pps_edge_time_initialized = false;
|
||||||
|
static uint64_t last_pps_edge_time = 0;
|
||||||
|
|
||||||
|
adc_wait_for_edge = false;
|
||||||
|
|
||||||
|
{
|
||||||
|
static uint32_t nsec_max = 0;
|
||||||
|
static uint32_t nsec_min = -1;
|
||||||
|
uint64_t sec_time;
|
||||||
|
uint64_t ns_time;
|
||||||
|
sec_time = cur_wrd_time - TSTP_SEC_TO_SSEC(TSTP_SECSSEC_TO_SEC(cur_wrd_time));
|
||||||
|
ns_time = TSTP_SSEC_TO_NSEC(sec_time);
|
||||||
|
if (ns_time > 500000000) {
|
||||||
|
ns_time = NSEC_PER_SEC - ns_time;
|
||||||
|
}
|
||||||
|
if (ns_time > nsec_max) {
|
||||||
|
nsec_max = ns_time;
|
||||||
|
}
|
||||||
|
if (ns_time < nsec_min) {
|
||||||
|
nsec_min = ns_time;
|
||||||
|
}
|
||||||
|
printf("ADC PPS positive edge: %ld ns (max - min = %d)\n", ns_time, nsec_max - nsec_min);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (last_pps_edge_time_initialized ) {
|
||||||
|
uint64_t pps_period;
|
||||||
|
pps_period = cur_wrd_time - last_pps_edge_time;
|
||||||
|
|
||||||
|
printf("ADC PPS positive edge period = %d.%09d\n", TSTP_SECSSEC_TO_SEC(pps_period),
|
||||||
|
TSTP_SSEC_TO_NSEC(pps_period));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
last_pps_edge_time_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
last_pps_edge_time = cur_wrd_time;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
if (adc_val < 2.3) {
|
||||||
|
adc_wait_for_edge = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rcv_cntr++;
|
||||||
|
}
|
||||||
|
#if 0
|
||||||
|
adc_size = sizeof(adc_data)/sizeof(adc_data[0]);
|
||||||
|
din_size = sizeof(din_data)/sizeof(din_data[0]);
|
||||||
|
int adc_data_num = 0;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = X502_ProcessData(g_hnd, rcv_buf, rcv_size, X502_PROC_FLAGS_VOLT,
|
||||||
|
adc_data, &adc_size, din_data, &din_size);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if ((tstp_state.dinwrds_after_tstp / DIN_FREQ) > 2)
|
||||||
|
{
|
||||||
|
printf("Warning: timestamp mark undetected after %d seconds\n", tstp_state.dinwrds_after_tstp / DIN_FREQ);
|
||||||
|
}
|
||||||
|
if ((tstp_state.adcwrds_after_tstp / ADC_FREQ) > 2)
|
||||||
|
{
|
||||||
|
printf("Warning: timestamp mark undetected after %d seconds\n", tstp_state.adcwrds_after_tstp / ADC_FREQ);
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (_kbhit())
|
||||||
|
f_out = 1;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
stop_err = X502_StreamsStop(g_hnd);
|
||||||
|
if (stop_err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = stop_err;
|
||||||
|
} else {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
X502_FpgaRegWrite(g_hnd, E502_REGS_ARM_TIME_CTRL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_Close(g_hnd);
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_Free(g_hnd);
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
33
lib/SDK/examples/c/x502_cycle_out/CMakeLists.txt
Normal file
33
lib/SDK/examples/c/x502_cycle_out/CMakeLists.txt
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake.
|
||||||
|
# <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> make-<2D><><EFBFBD><EFBFBD>
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
#
|
||||||
|
# cmake -DL502API_INCLUDE_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> l502api> -DL502API_LIBRARIES_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> l502api (.lib, .a <20><><EFBFBD> .so)> -G <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> <<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
# <20><> -DL502API_INCLUDE_DIR <20> -DL502API_LIBRARIES_DIR <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
|
||||||
|
set(PROJECT x502_cycle_out)
|
||||||
|
|
||||||
|
project(${PROJECT} C)
|
||||||
|
|
||||||
|
set(SOURCES main.c ../common/dev_funcs.c)
|
||||||
|
set(HEADERS )
|
||||||
|
|
||||||
|
include_directories(${X502API_INCLUDE_DIR} ../common)
|
||||||
|
link_directories(${X502API_LIBRARIES_DIR})
|
||||||
|
|
||||||
|
add_executable(${PROJECT} ${HEADERS} ${SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT} x502api l502api e502api)
|
||||||
|
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
target_link_libraries(${PROJECT} m)
|
||||||
|
endif(CMAKE_COMPILER_IS_GNUCC)
|
||||||
296
lib/SDK/examples/c/x502_cycle_out/main.c
Normal file
296
lib/SDK/examples/c/x502_cycle_out/main.c
Normal file
@ -0,0 +1,296 @@
|
|||||||
|
/* <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E16 / E502 / L502 (<28><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><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> (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>), <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>'<27><> <20>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><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><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Enter - <20> <20><><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><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>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> L502_OutCycleSetup() <20><> <20><><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio 2008, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
gcc <20> Linux <20><><EFBFBD> mingw <20> Windows <20><><EFBFBD><EFBFBD><EFBFBD> makefile <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||||
|
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Visual Studio, <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>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties)
|
||||||
|
-> <20>/<2F>++ -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Include Directories))
|
||||||
|
<20><> <20><><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> l502api.h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties) ->
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Linker) -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Library Directories)).
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!: <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><> <20><> SDK),
|
||||||
|
<20><> <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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> UTF-8:
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (File) -> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Advanced Save Options)...
|
||||||
|
<20> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Encoding) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (UTF8, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/Unicode (UTF-8 with signature)
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "l502api.h"
|
||||||
|
#include "e502api.h"
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include "dev_funcs.h"
|
||||||
|
|
||||||
|
#define TCP_CONNECTION_TOUT 5000
|
||||||
|
#define OUT_SIGNAL_SIZE 2000
|
||||||
|
#define OUT_BLOCK_SIZE 256
|
||||||
|
#define SEND_TOUT 500
|
||||||
|
|
||||||
|
#ifndef M_PI
|
||||||
|
#define M_PI 3.14159265358979323846
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef double (*f_gen_sig_word)(uint32_t cntr, uint32_t total_size, double amp);
|
||||||
|
typedef uint32_t (*f_gen_dout_word)(uint32_t cntr, uint32_t total_size);
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 2-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>/<2F><><EFBFBD>1
|
||||||
|
1<EFBFBD><EFBFBD> DOUT */
|
||||||
|
typedef struct {
|
||||||
|
uint32_t size; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
double amp_dac1; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>1 */
|
||||||
|
f_gen_sig_word gen_func_dac1; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>1 */
|
||||||
|
double amp_dac2; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>2 */
|
||||||
|
f_gen_sig_word gen_func_dac2; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>2 */
|
||||||
|
f_gen_dout_word gen_dout; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
} t_sig_struct;
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static double f_gen_saw(uint32_t cntr, uint32_t total_size, double amp) {
|
||||||
|
return amp*( (int32_t)(cntr%total_size)-(int32_t)total_size/2)/(total_size/2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static double f_gen_sin(uint32_t cntr, uint32_t total_size, double amp) {
|
||||||
|
return amp*sin(2*M_PI*cntr/total_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static double f_gen_cntr(uint32_t cntr, uint32_t total_size, double amp) {
|
||||||
|
return cntr + 0x123;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static double f_gen_sin2(uint32_t cntr, uint32_t total_size, double amp) {
|
||||||
|
return amp*sin(2*2*M_PI*cntr/total_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0xAA, <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x55 */
|
||||||
|
static uint32_t f_gen_dout_meander(uint32_t cntr, uint32_t total_size) {
|
||||||
|
return cntr < total_size/2 ? 0xAA : 0x55;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||||
|
static uint32_t f_gen_dout_cntr(uint32_t cntr, uint32_t total_size) {
|
||||||
|
return cntr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><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> <20><> <20><><EFBFBD><EFBFBD> */
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> 2 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 500<30><30><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD> <20> E502 */
|
||||||
|
static t_sig_struct f_sig_tbl[] = {
|
||||||
|
{100000, X502_DAC_RANGE, f_gen_saw, 0, NULL, NULL}, /* <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10 <20><> */
|
||||||
|
{2000, X502_DAC_RANGE, f_gen_sin, 0, NULL, NULL}, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 500 <20><> */
|
||||||
|
{100, X502_DAC_RANGE/2, f_gen_sin, X502_DAC_RANGE, f_gen_saw, NULL}, /* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>. 2.5 <20> <20><><EFBFBD><EFBFBD> <20><> 10 <20><><EFBFBD> */
|
||||||
|
{50, 0, NULL, X502_DAC_RANGE, f_gen_sin, f_gen_dout_cntr}, /* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20 <20><><EFBFBD> */
|
||||||
|
{2550, 1.5, f_gen_sin, 2.5, f_gen_sin2, f_gen_dout_meander}, /* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> 2 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
cntr - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><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><EFBFBD><EFBFBD>
|
||||||
|
size - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> (<28>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ch_cnt*size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||||
|
sig - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
ch_cnt - <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> f_sig_tbl[sig],
|
||||||
|
<20><> <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static int32_t f_load_block(t_x502_hnd hnd, uint32_t cntr, uint32_t size, uint32_t sig, uint32_t ch_cnt) {
|
||||||
|
static double dac_data1[OUT_BLOCK_SIZE], dac_data2[OUT_BLOCK_SIZE];
|
||||||
|
static uint32_t dout_data[OUT_BLOCK_SIZE];
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 3-<2D> - 2 <20><><EFBFBD> + DOUT) */
|
||||||
|
static uint32_t sbuf[3*OUT_BLOCK_SIZE];
|
||||||
|
uint32_t i;
|
||||||
|
int32_t err = 0;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
for (i=0; i < size; i++) {
|
||||||
|
if (f_sig_tbl[sig].gen_func_dac1 != NULL) {
|
||||||
|
dac_data1[i] = f_sig_tbl[sig].gen_func_dac1(cntr+i, f_sig_tbl[sig].size, f_sig_tbl[sig].amp_dac1);
|
||||||
|
}
|
||||||
|
if (f_sig_tbl[sig].gen_func_dac2 != NULL) {
|
||||||
|
dac_data2[i] = f_sig_tbl[sig].gen_func_dac2(cntr+i, f_sig_tbl[sig].size, f_sig_tbl[sig].amp_dac2);
|
||||||
|
}
|
||||||
|
if (f_sig_tbl[sig].gen_dout != NULL) {
|
||||||
|
dout_data[i] = f_sig_tbl[sig].gen_dout(cntr+i, f_sig_tbl[sig].size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD>, <20>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> NULL */
|
||||||
|
err = X502_PrepareData(hnd,
|
||||||
|
f_sig_tbl[sig].gen_func_dac1 ? dac_data1 : NULL,
|
||||||
|
f_sig_tbl[sig].gen_func_dac2 ? dac_data2 : NULL,
|
||||||
|
f_sig_tbl[sig].gen_dout ? dout_data : NULL,
|
||||||
|
size, X502_DAC_FLAGS_VOLT | X502_DAC_FLAGS_CALIBR,
|
||||||
|
sbuf);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n",
|
||||||
|
X502_GetErrorString(err));
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
int32_t snd_cnt = X502_Send(hnd, sbuf, size*ch_cnt, SEND_TOUT);
|
||||||
|
if (snd_cnt < 0) {
|
||||||
|
err = snd_cnt;
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
} else if ((uint32_t)snd_cnt != size*ch_cnt) {
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD> = %d, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = %d\n",
|
||||||
|
size*ch_cnt, snd_cnt);
|
||||||
|
err = X502_ERR_SEND_INSUFFICIENT_WORDS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t f_load_cycle_signal(t_x502_hnd hnd, int sig) {
|
||||||
|
int32_t err = 0;
|
||||||
|
uint32_t cntr = 0;
|
||||||
|
uint32_t ch_cnt=0;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><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> */
|
||||||
|
if (f_sig_tbl[sig].gen_func_dac1)
|
||||||
|
ch_cnt++;
|
||||||
|
if (f_sig_tbl[sig].gen_func_dac2)
|
||||||
|
ch_cnt++;
|
||||||
|
if (f_sig_tbl[sig].gen_dout)
|
||||||
|
ch_cnt++;
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! */
|
||||||
|
err = X502_OutCycleLoadStart(hnd, f_sig_tbl[sig].size*ch_cnt);
|
||||||
|
if (err != X502_ERR_OK)
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
|
||||||
|
/* <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD> L502_Send() */
|
||||||
|
while ((cntr != f_sig_tbl[sig].size) && (err == X502_ERR_OK)) {
|
||||||
|
uint32_t block_size = OUT_BLOCK_SIZE;
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (block_size >(f_sig_tbl[sig].size-cntr))
|
||||||
|
block_size=f_sig_tbl[sig].size-cntr;
|
||||||
|
|
||||||
|
err = f_load_block(hnd, cntr, block_size, sig, ch_cnt);
|
||||||
|
if (!err)
|
||||||
|
cntr+=block_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
err = X502_OutCycleSetup(hnd, X502_OUT_CYCLE_FLAGS_WAIT_DONE);
|
||||||
|
if (err != X502_ERR_OK)
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
int32_t err = 0;
|
||||||
|
uint32_t ver;
|
||||||
|
t_x502_hnd hnd = NULL;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> CP1251 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OEM */
|
||||||
|
setlocale(LC_CTYPE, "");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ******************/
|
||||||
|
hnd = select_dev_from_list(argc, argv, 0);
|
||||||
|
|
||||||
|
/********************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************************/
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (hnd != NULL) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>), <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> L502_PrepareData */
|
||||||
|
err = X502_StreamsEnable(hnd, X502_STREAM_ALL_OUT);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%d): %s!", err,
|
||||||
|
X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <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> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> L502_StreamsStart() */
|
||||||
|
err = f_load_cycle_signal(hnd, 1);
|
||||||
|
|
||||||
|
/* <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><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><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><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = X502_StreamsStart(hnd);
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
int exit = 0;
|
||||||
|
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD> <20><> 1 <20><> %d - <20><><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>\n",
|
||||||
|
(int)(sizeof(f_sig_tbl)/sizeof(f_sig_tbl[0])));
|
||||||
|
printf(" s <20><><EFBFBD> stop - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
printf(" e <20><><EFBFBD> exit - <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
while (!err && !exit) {
|
||||||
|
char cmd[512];
|
||||||
|
printf(">");
|
||||||
|
fflush(stdout);
|
||||||
|
scanf("%s", cmd);
|
||||||
|
if (!strcmp(cmd, "exit") || !strcmp(cmd,"e")) {
|
||||||
|
exit=1;
|
||||||
|
} else if (!strcmp(cmd, "stop")||!strcmp(cmd,"s")) {
|
||||||
|
err = X502_OutCycleStop(hnd, X502_OUT_CYCLE_FLAGS_WAIT_DONE);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<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> (%d): %s\n",
|
||||||
|
err, X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int sig = atoi(cmd);
|
||||||
|
if ((sig <= 0) || (sig > (int)(sizeof(f_sig_tbl)/sizeof(f_sig_tbl[0])))) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
} else {
|
||||||
|
err = f_load_cycle_signal(hnd, sig-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
X502_StreamsStop(hnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_Free(hnd);
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
48
lib/SDK/examples/c/x502_cycle_out/makefile
Normal file
48
lib/SDK/examples/c/x502_cycle_out/makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# makefile для сборки примера с помощью компиляторов mingw (под Windows)
|
||||||
|
# или GCC (под Linux). Необходимо определить 3 переменные:
|
||||||
|
#
|
||||||
|
# CC - имя команды для вызова компилятора
|
||||||
|
# X502API_LIBRARIES_DIR - путь к файлм .a или .so библиотек l502api, e502api, x502api (если не стандартный)
|
||||||
|
# X502API_INCLUDE_DIR - путь к заголовочным файлам l502api.h, e502api.h, x502api.h
|
||||||
|
#
|
||||||
|
# Ниже приведено несколько примеров в закоментированном виде
|
||||||
|
|
||||||
|
#--- Linux с заголовками и библиотекой в стандартных директориях: компилятор GCC
|
||||||
|
#CC = gcc
|
||||||
|
|
||||||
|
#--- Вариант запуска из MSYS со стандартным 32-битным mingw
|
||||||
|
#CC = gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/c/Program Files/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/c/Program Files/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
#--- 64-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = x86_64-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw64"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-pc-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
FLAGS =
|
||||||
|
|
||||||
|
ifdef X502API_LIBRARIES_DIR
|
||||||
|
FLAGS += -L $(X502API_LIBRARIES_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef X502API_INCLUDE_DIR
|
||||||
|
FLAGS += -I $(X502API_INCLUDE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(CC) main.c $(FLAGS) -ll502api -le502api -lx502api -o x502_cycle_out
|
||||||
20
lib/SDK/examples/c/x502_cycle_out/x502_cycle_out.sln
Normal file
20
lib/SDK/examples/c/x502_cycle_out/x502_cycle_out.sln
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
|
# Visual C++ Express 2008
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x502_cycle_out", "x502_cycle_out.vcproj", "{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
199
lib/SDK/examples/c/x502_cycle_out/x502_cycle_out.vcproj
Normal file
199
lib/SDK/examples/c/x502_cycle_out/x502_cycle_out.vcproj
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
<?xml version="1.0" encoding="windows-1251"?>
|
||||||
|
<VisualStudioProject
|
||||||
|
ProjectType="Visual C++"
|
||||||
|
Version="9,00"
|
||||||
|
Name="x502_cycle_out"
|
||||||
|
ProjectGUID="{CA9882D8-F21E-47DD-87A6-44AD55ED0ED2}"
|
||||||
|
RootNamespace="x502_cycle_out"
|
||||||
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="196613"
|
||||||
|
>
|
||||||
|
<Platforms>
|
||||||
|
<Platform
|
||||||
|
Name="Win32"
|
||||||
|
/>
|
||||||
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
|
<Configurations>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="l502api.lib e502api.lib x502api.lib"
|
||||||
|
LinkIncremental="2"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
RuntimeLibrary="2"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="l502api.lib e502api.lib x502api.lib"
|
||||||
|
LinkIncremental="1"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
</Configurations>
|
||||||
|
<References>
|
||||||
|
</References>
|
||||||
|
<Files>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||||
|
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||||
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\main.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
</Files>
|
||||||
|
<Globals>
|
||||||
|
</Globals>
|
||||||
|
</VisualStudioProject>
|
||||||
29
lib/SDK/examples/c/x502_stream_read/CMakeLists.txt
Normal file
29
lib/SDK/examples/c/x502_stream_read/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake.
|
||||||
|
# <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> make-<2D><><EFBFBD><EFBFBD>
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
#
|
||||||
|
# cmake -DX502API_INCLUDE_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api> -DX502API_LIBRARIES_DIR=<<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> x502api (.lib, .a <20><><EFBFBD> .so)> -G <<3C><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> <<3C><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
# <20><> -DX502API_INCLUDE_DIR <20> -DX502API_LIBRARIES_DIR <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.12)
|
||||||
|
|
||||||
|
set(PROJECT x502_stream_read)
|
||||||
|
|
||||||
|
project(${PROJECT} C)
|
||||||
|
|
||||||
|
set(SOURCES main.c)
|
||||||
|
set(HEADERS )
|
||||||
|
|
||||||
|
include_directories(${X502API_INCLUDE_DIR} ../common)
|
||||||
|
link_directories(${X502API_LIBRARIES_DIR})
|
||||||
|
|
||||||
|
add_executable(${PROJECT} ${HEADERS} ${SOURCES})
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT} x502api l502api e502api)
|
||||||
501
lib/SDK/examples/c/x502_stream_read/main.c
Normal file
501
lib/SDK/examples/c/x502_stream_read/main.c
Normal file
@ -0,0 +1,501 @@
|
|||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> C,
|
||||||
|
<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> E16, L502 <20> E502 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20> <20><><EFBFBD><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> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><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> PCI-Express <20> USB,
|
||||||
|
<20> <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>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ethernet <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20> <20><><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><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 192.168.1.5 <20> 192.168.1.6,
|
||||||
|
<20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
x502_stream_read 192.168.1.5 E16:192.168.1.6
|
||||||
|
<20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> ip <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> E16, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: E16:192.168.1.6
|
||||||
|
|
||||||
|
<20><><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> f_channels/f_ch_modes/f_ch_ranges.
|
||||||
|
|
||||||
|
<20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
<20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Windows <20><><EFBFBD> CTRL+C <20><> Linux.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>,
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> X502_ProcessData() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio 2008, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
gcc <20> Linux <20><><EFBFBD> mingw <20> Windows <20><><EFBFBD><EFBFBD><EFBFBD> makefile <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cmake (<28><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).
|
||||||
|
|
||||||
|
<20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Visual Studio, <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>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties)
|
||||||
|
-> <20>/<2F>++ -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Include Directories))
|
||||||
|
<20><> <20><><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> x502api.h, l502api.h <20> e502api.h <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Project) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Properties) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Configuration Properties) ->
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Linker) -> <20><><EFBFBD><EFBFBD><EFBFBD> (General) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Additional Library Directories)).
|
||||||
|
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!: <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Visual Studio <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28> <20><> <20><> SDK),
|
||||||
|
<20><> <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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> UTF-8:
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (File) -> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Advanced Save Options)...
|
||||||
|
<20> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Encoding) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (UTF8, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/Unicode (UTF-8 with signature)
|
||||||
|
<20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <l502api.h>
|
||||||
|
#include "e502api.h"
|
||||||
|
//#include "dev_funcs.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <locale.h>
|
||||||
|
#include <conio.h>
|
||||||
|
#else
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/* <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><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
#define ADC_LCH_CNT 3
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><>*/
|
||||||
|
#define ADC_FREQ 500000
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>). <20><><EFBFBD> ADC_FREQ/ADC_LCH_CNT - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||||
|
#define ADC_FRAME_FREQ (ADC_FREQ/ADC_LCH_CNT)
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><>*/
|
||||||
|
#define DIN_FREQ 500000
|
||||||
|
|
||||||
|
|
||||||
|
#define TCP_CONNECTION_TOUT 5000
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> */
|
||||||
|
#define READ_BLOCK_SIZE 4096*200
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><>) */
|
||||||
|
#define READ_TIMEOUT 2000
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><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><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_channels[ADC_LCH_CNT] = {0,4,6};
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_ch_modes[ADC_LCH_CNT] = {X502_LCH_MODE_DIFF, X502_LCH_MODE_DIFF, X502_LCH_MODE_DIFF};
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_ch_ranges[ADC_LCH_CNT] = {X502_ADC_RANGE_10, X502_ADC_RANGE_10, X502_ADC_RANGE_10};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><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> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static int f_out = 0;
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
|
/* <20><><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> Linux */
|
||||||
|
static void f_abort_handler(int sig) {
|
||||||
|
f_out = 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char const *DEV_E502 = "E502";
|
||||||
|
char const *DEV_E16 = "E16";
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint32_t ip_addr;
|
||||||
|
char const *devname;
|
||||||
|
} ip_dev_list_t;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD> PCI-Express <20> USB <20>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||||
|
* <20><><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20> pdevrec_list, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD><EFBFBD> <20> <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> X502_FreeDevRecordList()) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
static uint32_t f_get_all_devrec(t_x502_devrec **pdevrec_list, ip_dev_list_t *ip_dev_list, unsigned ip_cnt) {
|
||||||
|
int32_t fnd_devcnt = 0;
|
||||||
|
uint32_t pci_devcnt = 0;
|
||||||
|
uint32_t usb_devcnt = 0;
|
||||||
|
uint32_t e16_usb_devcnt = 0;
|
||||||
|
|
||||||
|
t_x502_devrec *rec_list = NULL;
|
||||||
|
|
||||||
|
/* <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);
|
||||||
|
E16_UsbGetDevRecordsList(NULL, 0, 0, &e16_usb_devcnt);
|
||||||
|
|
||||||
|
if ((pci_devcnt+usb_devcnt + e16_usb_devcnt + ip_cnt) != 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> */
|
||||||
|
rec_list = malloc((pci_devcnt + usb_devcnt +e16_usb_devcnt + ip_cnt) * sizeof(t_x502_devrec));
|
||||||
|
|
||||||
|
if (rec_list != NULL) {
|
||||||
|
unsigned i;
|
||||||
|
/* <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(&rec_list[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(&rec_list[fnd_devcnt], usb_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> E16, <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 (e16_usb_devcnt!=0) {
|
||||||
|
int32_t res = E16_UsbGetDevRecordsList(&rec_list[fnd_devcnt], e16_usb_devcnt, 0, NULL);
|
||||||
|
if (res >= 0) {
|
||||||
|
fnd_devcnt += res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><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><EFBFBD> ip-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
for (i=0; i < ip_cnt; i++) {
|
||||||
|
if (E502_MakeDevRecordByIpAddr2(&rec_list[fnd_devcnt], ip_dev_list[i].ip_addr, 0, TCP_CONNECTION_TOUT, ip_dev_list[i].devname) == X502_ERR_OK) {
|
||||||
|
fnd_devcnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fnd_devcnt != 0) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
*pdevrec_list = rec_list;
|
||||||
|
} else {
|
||||||
|
*pdevrec_list = NULL;
|
||||||
|
free(rec_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fnd_devcnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static t_x502_hnd f_dev_select_open(int argc, char** argv) {
|
||||||
|
t_x502_hnd hnd = NULL;
|
||||||
|
uint32_t fnd_devcnt,i, dev_ind;
|
||||||
|
t_x502_devrec *devrec_list = NULL;
|
||||||
|
ip_dev_list_t *ip_dev_list = NULL;
|
||||||
|
uint32_t ip_cnt = 0;
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><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>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
ip-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. */
|
||||||
|
if (argc > 1) {
|
||||||
|
ip_dev_list = malloc((argc - 1) * sizeof(ip_dev_list[0]));
|
||||||
|
if (ip_dev_list == NULL) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!\n");
|
||||||
|
} else {
|
||||||
|
for (i=1; (int)i < argc; i++) {
|
||||||
|
int a[4];
|
||||||
|
if (sscanf(argv[i], "%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3])==4) {
|
||||||
|
ip_dev_list[ip_cnt].devname = DEV_E502;
|
||||||
|
ip_dev_list[ip_cnt++].ip_addr = ((a[0] & 0xFF) << 24) |
|
||||||
|
((a[1] & 0xFF) << 16) |
|
||||||
|
((a[2] & 0xFF) << 8) |
|
||||||
|
(a[3] & 0xFF);
|
||||||
|
} else
|
||||||
|
if (sscanf(argv[i], "E16:%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3])==4) {
|
||||||
|
ip_dev_list[ip_cnt].devname = DEV_E16;
|
||||||
|
ip_dev_list[ip_cnt++].ip_addr = ((a[0] & 0xFF) << 24) |
|
||||||
|
((a[1] & 0xFF) << 16) |
|
||||||
|
((a[2] & 0xFF) << 8) |
|
||||||
|
(a[3] & 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
fnd_devcnt = f_get_all_devrec(&devrec_list, ip_dev_list, ip_cnt);
|
||||||
|
|
||||||
|
if (fnd_devcnt == 0) {
|
||||||
|
printf("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n");
|
||||||
|
for (i=0; i < fnd_devcnt; i++) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> %d: %s, %-9s", i, devrec_list[i].devname,
|
||||||
|
devrec_list[i].iface == X502_IFACE_PCI ? "PCI/PCIe" :
|
||||||
|
devrec_list[i].iface == X502_IFACE_USB ? "USB" :
|
||||||
|
devrec_list[i].iface == X502_IFACE_ETH ? "Ethernet" : "?");
|
||||||
|
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> location
|
||||||
|
<20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (devrec_list[i].iface != X502_IFACE_ETH) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>: %s\n", devrec_list[i].serial);
|
||||||
|
} else {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", devrec_list[i].location);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> 0 <20><> %d)\n", fnd_devcnt-1);
|
||||||
|
fflush(stdout);
|
||||||
|
scanf("%d", &dev_ind);
|
||||||
|
|
||||||
|
if (dev_ind >= fnd_devcnt) {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...\n");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
hnd = X502_Create();
|
||||||
|
if (hnd==NULL) {
|
||||||
|
fprintf(stderr, "<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>!");
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
int32_t err = X502_OpenByDevRecord(hnd, &devrec_list[dev_ind]);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<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>: %s!", X502_GetErrorString(err));
|
||||||
|
X502_Free(hnd);
|
||||||
|
hnd = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_FreeDevRecordList(devrec_list, fnd_devcnt);
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
free(devrec_list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> IP-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
free(ip_dev_list);
|
||||||
|
|
||||||
|
return hnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
int32_t f_setup_params(t_x502_hnd hnd) {
|
||||||
|
int32_t err = X502_ERR_OK, i;
|
||||||
|
|
||||||
|
/* <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><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> */
|
||||||
|
err = X502_SetLChannelCount(hnd, ADC_LCH_CNT);
|
||||||
|
for (i=0; (i < ADC_LCH_CNT) && (err == X502_ERR_OK); i++)
|
||||||
|
err = X502_SetLChannel(hnd, i, f_channels[i], f_ch_modes[i], f_ch_ranges[i], 0);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
double f_adc = ADC_FREQ, f_frame = ADC_FRAME_FREQ, f_din = DIN_FREQ;
|
||||||
|
err = X502_SetAdcFreq(hnd, &f_adc, &f_frame);
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = X502_SetDinFreq(hnd, &f_din);
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> = %0.0f\n"
|
||||||
|
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD> = %0.0f\n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> = %0.0f\n",
|
||||||
|
f_adc, f_frame, f_din);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <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);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
err = X502_StreamsEnable(hnd, X502_STREAM_ADC | X502_STREAM_DIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
int32_t err = X502_ERR_OK;
|
||||||
|
uint32_t ver;
|
||||||
|
t_x502_hnd hnd = NULL;
|
||||||
|
#ifndef _WIN32
|
||||||
|
struct sigaction sa;
|
||||||
|
memset(&sa, 0, sizeof(sa));
|
||||||
|
/* <20> <20><> Linux <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
sa.sa_handler = f_abort_handler;
|
||||||
|
sigaction(SIGTERM, &sa, NULL);
|
||||||
|
sigaction(SIGINT, &sa, NULL);
|
||||||
|
sigaction(SIGABRT, &sa, NULL);
|
||||||
|
#endif
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> Windows <20> CP1251 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> OEM */
|
||||||
|
setlocale(LC_CTYPE, "");
|
||||||
|
#endif
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
ver = X502_GetLibraryVersion();
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %d.%d.%d\n", (ver >> 24)&0xFF, (ver>>16)&0xFF, (ver>>8)&0xFF);
|
||||||
|
|
||||||
|
/********** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ******************/
|
||||||
|
hnd = f_dev_select_open(argc, argv);
|
||||||
|
|
||||||
|
/********************************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************************/
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (hnd != NULL) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
t_x502_info info;
|
||||||
|
err = X502_GetDevInfo(hnd, &info);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
} else {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
printf("<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>:\n");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> : %s\n", info.serial);
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> : %s\n", info.devflags & X502_DEVFLAGS_DAC_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> BlackFin : %s\n", info.devflags & X502_DEVFLAGS_BF_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", info.devflags & X502_DEVFLAGS_GAL_PRESENT ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. : %s\n", info.devflags & X502_DEVFLAGS_INDUSTRIAL ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. PCI/PCIe: %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_PCI ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. USB : %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_USB ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. Ethernet: %s\n", info.devflags & X502_DEVFLAGS_IFACE_SUPPORT_ETH ? "<EFBFBD><EFBFBD>" : "<EFBFBD><EFBFBD><EFBFBD>");
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> : %d.%d\n", (info.fpga_ver >> 8) & 0xFF, info.fpga_ver & 0xFF);
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PLDA : %d\n", info.plda_ver);
|
||||||
|
if (info.mcu_firmware_ver != 0) {
|
||||||
|
printf(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ARM : %d.%d.%d.%d\n",
|
||||||
|
(info.mcu_firmware_ver >> 24) & 0xFF,
|
||||||
|
(info.mcu_firmware_ver >> 16) & 0xFF,
|
||||||
|
(info.mcu_firmware_ver >> 8) & 0xFF,
|
||||||
|
info.mcu_firmware_ver & 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = f_setup_params(hnd);
|
||||||
|
if (err != X502_ERR_OK)
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!", X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
err = X502_StreamsStart(hnd);
|
||||||
|
if (err != X502_ERR_OK)
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s!\n", X502_GetErrorString(err));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
int block;
|
||||||
|
int32_t stop_err;
|
||||||
|
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s\n",
|
||||||
|
#ifdef _WIN32
|
||||||
|
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
#else
|
||||||
|
"CTRL+C"
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (block = 0; (err == X502_ERR_OK) && !f_out; block++) {
|
||||||
|
int32_t rcv_size;
|
||||||
|
uint32_t adc_size, din_size;
|
||||||
|
|
||||||
|
/* <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> */
|
||||||
|
static uint32_t rcv_buf[READ_BLOCK_SIZE];
|
||||||
|
static double adc_data[READ_BLOCK_SIZE];
|
||||||
|
static uint32_t din_data[READ_BLOCK_SIZE];
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
rcv_size = X502_Recv(hnd, rcv_buf, READ_BLOCK_SIZE, READ_TIMEOUT);
|
||||||
|
/* <20><><EFBFBD><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;
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
} else if (rcv_size > 0) {
|
||||||
|
uint32_t first_lch;
|
||||||
|
/* <20><><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>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_GetNextExpectedLchNum(hnd, &first_lch);
|
||||||
|
|
||||||
|
adc_size = sizeof(adc_data)/sizeof(adc_data[0]);
|
||||||
|
din_size = sizeof(din_data)/sizeof(din_data[0]);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
err = X502_ProcessData(hnd, rcv_buf, rcv_size, X502_PROC_FLAGS_VOLT,
|
||||||
|
adc_data, &adc_size, din_data, &din_size);
|
||||||
|
if (err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
} else {
|
||||||
|
uint32_t lch;
|
||||||
|
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> %3d. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> = %d, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = %d\n",
|
||||||
|
block, adc_size, din_size);
|
||||||
|
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><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> */
|
||||||
|
if (din_size != 0)
|
||||||
|
printf(" din_data = 0x%05X\n", din_data[0]);
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||||||
|
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
for (lch=0; lch < ADC_LCH_CNT; lch++) {
|
||||||
|
/* <20><><EFBFBD><EFBFBD><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
|
||||||
|
<20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
uint32_t pos = lch >= first_lch ? lch - first_lch : ADC_LCH_CNT-first_lch + lch;
|
||||||
|
if (pos <= adc_size) {
|
||||||
|
printf(" lch[%d]=%6.4f\n", lch, adc_data[pos]);
|
||||||
|
} else {
|
||||||
|
printf(" lch[%d]= ---- \n", lch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
if (err == X502_ERR_OK) {
|
||||||
|
if (_kbhit())
|
||||||
|
f_out = 1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Enter <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ADC
|
||||||
|
fd_set fds;
|
||||||
|
struct timeval tv = { .tv_sec = 0, .tv_usec = 0 };
|
||||||
|
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
FD_SET(STDIN_FILENO, &fds);
|
||||||
|
if (select(1, &fds, NULL, NULL, &tv) == 1) {
|
||||||
|
int x;
|
||||||
|
static int adc_disabled = 0;
|
||||||
|
int ch;
|
||||||
|
|
||||||
|
if (adc_disabled) {
|
||||||
|
X502_StreamsEnable(hnd, X502_STREAM_ADC);
|
||||||
|
} else {
|
||||||
|
X502_StreamsDisable(hnd, X502_STREAM_ADC);
|
||||||
|
}
|
||||||
|
adc_disabled = !adc_disabled;
|
||||||
|
|
||||||
|
while(select(1, &fds, NULL, NULL, &tv) == 1) {
|
||||||
|
read(STDIN_FILENO, &ch, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) */
|
||||||
|
stop_err = X502_StreamsStop(hnd);
|
||||||
|
if (stop_err != X502_ERR_OK) {
|
||||||
|
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s\n", X502_GetErrorString(err));
|
||||||
|
if (err == X502_ERR_OK)
|
||||||
|
err = stop_err;
|
||||||
|
} else {
|
||||||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* <20><><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
|
X502_Free(hnd);
|
||||||
|
}
|
||||||
|
return err;
|
||||||
|
}
|
||||||
48
lib/SDK/examples/c/x502_stream_read/makefile
Normal file
48
lib/SDK/examples/c/x502_stream_read/makefile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# makefile для сборки примера с помощью компиляторов mingw (под Windows)
|
||||||
|
# или GCC (под Linux). Необходимо определить 3 переменные:
|
||||||
|
#
|
||||||
|
# CC - имя команды для вызова компилятора
|
||||||
|
# X502API_LIBRARIES_DIR - путь к файлм .a или .so библиотек l502api, e502api, x502api (если не стандартный)
|
||||||
|
# X502API_INCLUDE_DIR - путь к заголовочным файлам l502api.h, e502api.h, x502api.h
|
||||||
|
#
|
||||||
|
# Ниже приведено несколько примеров в закоментированном виде
|
||||||
|
|
||||||
|
#--- Linux с заголовками и библиотекой в стандартных директориях: компилятор GCC
|
||||||
|
#CC = gcc
|
||||||
|
|
||||||
|
#--- Вариант запуска из MSYS со стандартным 32-битным mingw
|
||||||
|
#CC = gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/c/Program Files/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/c/Program Files/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
#--- 64-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = x86_64-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw64"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw w64, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-w64-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
#--- 32-битный вариант mingw, идущий вместе с cygwin --------
|
||||||
|
#CC = i686-pc-mingw32-gcc
|
||||||
|
#X502API_LIBRARIES_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/lib/mingw"
|
||||||
|
#X502API_INCLUDE_DIR = "/cygdrive/c/Program Files (x86)/L-Card/lpcie/include"
|
||||||
|
|
||||||
|
|
||||||
|
FLAGS =
|
||||||
|
|
||||||
|
ifdef X502API_LIBRARIES_DIR
|
||||||
|
FLAGS += -L $(X502API_LIBRARIES_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef X502API_INCLUDE_DIR
|
||||||
|
FLAGS += -I $(X502API_INCLUDE_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
all:
|
||||||
|
$(CC) main.c $(FLAGS) -ll502api -le502api -lx502api -o x502_stream_read
|
||||||
20
lib/SDK/examples/c/x502_stream_read/x502_stream_read.sln
Normal file
20
lib/SDK/examples/c/x502_stream_read/x502_stream_read.sln
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
|
# Visual C++ Express 2008
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x502_stream_read", "x502_stream_read.vcproj", "{D9460CE1-B571-4A69-A4C1-0676BF57EB04}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{D9460CE1-B571-4A69-A4C1-0676BF57EB04}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
199
lib/SDK/examples/c/x502_stream_read/x502_stream_read.vcproj
Normal file
199
lib/SDK/examples/c/x502_stream_read/x502_stream_read.vcproj
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
<?xml version="1.0" encoding="windows-1251"?>
|
||||||
|
<VisualStudioProject
|
||||||
|
ProjectType="Visual C++"
|
||||||
|
Version="9,00"
|
||||||
|
Name="x502_stream_read"
|
||||||
|
ProjectGUID="{D9460CE1-B571-4A69-A4C1-0676BF57EB04}"
|
||||||
|
RootNamespace="x502_stream_read"
|
||||||
|
Keyword="Win32Proj"
|
||||||
|
TargetFrameworkVersion="196613"
|
||||||
|
>
|
||||||
|
<Platforms>
|
||||||
|
<Platform
|
||||||
|
Name="Win32"
|
||||||
|
/>
|
||||||
|
</Platforms>
|
||||||
|
<ToolFiles>
|
||||||
|
</ToolFiles>
|
||||||
|
<Configurations>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include\"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="x502api.lib l502api.lib e502api.lib"
|
||||||
|
LinkIncremental="2"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
CharacterSet="1"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
AdditionalIncludeDirectories="c:\Program Files (x86)\L-Card\lpcie\include\"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS"
|
||||||
|
RuntimeLibrary="2"
|
||||||
|
EnableFunctionLevelLinking="true"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="x502api.lib l502api.lib e502api.lib"
|
||||||
|
LinkIncremental="1"
|
||||||
|
AdditionalLibraryDirectories="c:\Program Files (x86)\L-Card\lpcie\lib\msvc"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="1"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
EnableCOMDATFolding="2"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
</Configurations>
|
||||||
|
<References>
|
||||||
|
</References>
|
||||||
|
<Files>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||||
|
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\main.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||||
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||||
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
|
>
|
||||||
|
</Filter>
|
||||||
|
</Files>
|
||||||
|
<Globals>
|
||||||
|
</Globals>
|
||||||
|
</VisualStudioProject>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user