![](/html/1a/1a4f/1a4fefb42e840d0207b67f0440b9a9cc0adc7143354f8baf2d7db76692193af1/bg1.png)
SDK - HTHardDll.dll 说明文档
中文版(VB 6.0)
阅读须知:
本 DLL 在 VC++ 6.0 环境下编译生成。所以数据类型符合 VC++ 6.0 标准.
WORD :unsigned short,无符号 16bit 整型。
BOOL : bool,布尔类型。
ULONG:unsigned long,无符号 32bit 整型。
此 DLL 中的所有文件都是用命令行上定义的 DLL_API 符号编译的。在使用此 DLL 的
任何其他项目上都不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
DLL_API 函数视为是从 DLL 导入的。
#ifndef DLL_API
#define DLL_API extern "C" __declspec(dllimport)
#endif
定义标准调用:
#define WIN_API __stdcall
结构体介绍
结构体 _HT_RELAY_CONTROL 包含了所有控制继电器状态所需要的信息。
typedef struct _HT_RELAY_CONTROL
{
BOOL bCHEnable[4];
WORD nCHVoltDIV[4];
WORD nCHCoupling[4];
BOOL bCHBWLimit[4];
WORD nTrigSource;
BOOL bTrigFilt;
WORD nALT;
}RELAYCONTROL,*PRELAYCONTROL;
说明:
bCHEnable[4]:大小为 4(CH 的总数)的数组,表示 CH 的开/关。取值:1 为开;0 为关。
nCHVoltDIV[4]:大小为 4(CH 的总数)的数组,表示 CH 的电压档位。电压档位以索引值形
式表示。以最小电压档位为 0 开始依次递加 1 计算。
nCHCoupling[4]:大小为 4(CH 的总数)的数组,表示 CH 的耦合。耦合以索引值形式表示。
取值:DC 为 0;AC 为 1;GND 为 2;
bCHBWLimit[4]:大小为 4(CH 的总数)的数组,表示 CH 的带宽限制。取值:1 为打开带宽
限制;0 为关闭带宽限制。
nTrigSource:表示触发源,以索引值形式取值。假设现在为 4CH 示波器,则内部触发取值
为:CH1 为 0;CH2 为 1;CH3 为 2;CH4 为 3;如果有外部触发,则 EXT
![](/html/1a/1a4f/1a4fefb42e840d0207b67f0440b9a9cc0adc7143354f8baf2d7db76692193af1/bg2.png)
为 5;如果有 EXT/10 触发,则取值为 6。
bTrigFilt:表示高频抑制。取值:1 表示打开高频抑制,0 表示关闭高频抑制。
nALT:表示是否交替。取值:1 为交替,0 为非交替。
举例:
声明一个变量:RELAYCONTROL myRelayControl;
声明一个指针:PRELAYCONTROL pRelayControl;
结构体 _HT_CONTROL_DATA 包含了某些函数需要的一些控制信息。
typedef struct _HT_CONTROL_DATA
{
WORD nCHSet;//CH 开关---//第 0 位:表示 CH1 开或者关. 0:关,1 开
//第 1 位:表示 CH2 开或者关. 0:关,1 开
//第 2 位:表示 CH3 开或者关. 0:关,1 开
//第 3 位:表示 CH4 开或者关. 0:关,1 开
WORD nTimeDIV; //时基
WORD nTriggerSource; //触发源
WORD nHTriggerPos; //水平触发位置
WORD nVTriggerPos; //垂直触发位置
WORD nTriggerSlope; //边沿触发触发沿
ULONG nBufferLen; //内存长度
ULONG nReadDataLen; //读取数据长度
WORD nALT; //是否交替
}CONTROLDATA,*PCONTROLDATA;
举例:
声明一个变量:CONTROLDATA myControlData;
声明一个指针:PCONTROLDATA pControlData;
函数介绍
1. 函数声明:DLL_API WORD WINAPI dsoHTSearchDevice(short* pDevInfo)
返回值:
返回连接的设备总数。1 台 PC 支持最大连接 32 台设备。
参数:
pDevInfo
short 型数组指针,用于存储有无设备信息。数组大小为 32。
备注:
获取 PC 已经连接上的设备总数,总数不超过 32。
程序举例:
short DevInfo[32];
WORD nConnectedDevNum = 0;
![](/html/1a/1a4f/1a4fefb42e840d0207b67f0440b9a9cc0adc7143354f8baf2d7db76692193af1/bg3.png)
//DevInfo 初始化
//…
//调用函数
nConnectedDevNum = dsoHTSearchDevice(DevInfo);
如果 DevInfo[n] = 0 有设备,DevInfo[n] = -1 无设备.
2. 函数声明:DLL_API WORD WINAPI dsoHTDeviceConnect(WORD nDeviceIndex)
返回值:1 表示设备已经连接;0 表示无设备
参数:
nDeviceIndex
WORD 型变量,表示当前设备的索引值。
备注:
判断索引值为 nDeviceIndex 的设备是否连接.
程序举例:
假设目前 PC 上连接两台设备,需要判断第 2 台设备是否连接。
WORD nDeviceIndex = 1; //0 为第 1 台设备
WORD nRe = 0;
//调用函数
nRe = dsoHTDeviceConnect(nDeviceIndex);
if (nRe = = 1)
;//设备连接
else
;//无设备连接
3. 函数声明:DLL_API WORD WINAPI dsoHTSetCHPos(
WORD nDeviceIndex,
WORD* pLevel,
WORD nVoltDIV,
WORD nPos,
WORD nCH
)
返回值:失败返回 0,成功返回非 0。
参数:
nDeviceIndex
WORD 型变量,表示当前设备的索引值。
pLevel
WORD 型变量指针,指向校对电平。
nVoltDIV
WORD 型变量,表示电压档位索引值。
![](/html/1a/1a4f/1a4fefb42e840d0207b67f0440b9a9cc0adc7143354f8baf2d7db76692193af1/bg4.png)
nPos
WORD 型变量,表示 CH 零电平(参考电平)位置,取值范围 0 ~ 255(8bit 精度)。
nCH
WORD 型变量,表示当前设置的 CH。CH1 为 0,CH2 为 1,CH3 为 2,CH4 为 3。
备注:
当零电平(参考电平)发生变化时,调用此函数进行设置。
程序举例:
假设要将 CH1 的零电平设置为 128。
WORD nDeviceIndex = 0;
WORD CHLevel[256]; //大小最小为 256,通过 dsoHTReadCalibrationData 附值。
WORD nVoltDIV = 6; //假设 1V/div 的索引值为 6。
WORD nPos = 128; //零电平 128。
WORD nCH = 0; //CH1。
//调用函数
if ( 0 = = dsoHTSetCHPos(nDeviceIndex,CHLevel,nVoltDIV,nPos,nCH) )
;//失败
else
;//成功
4. 函数声明:DLL_API WORD WINAPI dsoHTSetVTriggerLevel(
WORD nDeviceIndex,
WORD* pLevel,
WORD nPos)
返回值:失败返回 0,成功返回非 0。
参数:
nDeviceIndex
WORD 型变量,表示当前设备的索引值。
pLevel
WORD 型变量指针,指向校对电平。
nPos
WORD 型变量,表示垂直触发电平位置,取值范围 0 ~ 255(8bit 精度)。
备注:
当需要设置触发电平时,调用此函数设置。
程序举例:
WORD nDeviceIndex = 0;
WORD CHLevel[256]; //大小最小为 256,通过 dsoHTReadCalibrationData 附值。
WORD nPos = 128; //触发电平为 128
//调用函数
if ( 0 = = dsoHTSetVTriggerLevel( nDeviceIndex, CHLevel, nPos) )
; //失败
else
; //成功