SDK - HTHardDll.dll 说明文档
阅读须知:
所有 DLL 在 VC++ 6.0 环境下编译生成。所以数据类型符合 VC++ 6.0 标准.
WORD : unsigned short,无符号 16bit 整型,两个字节
BOOL : 布尔类型,四个字节。
ULONG: unsigned long,无符号 32bit 整型,八个字节。
MAX_CH_NUM:见在 DefMacro 中定义
此 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[MAX_CH_NUM];
WORD nCHVoltDIV[MAX_CH_NUM];
WORD nCHCoupling[MAX_CH_NUM];
BOOL bCHBWLimit[MAX_CH_NUM];
WORD nTrigSource;
BOOL bTrigFilt;
WORD nALT;
}RELAYCONTROL,*PRELAYCONTROL;
说明:
bCHEnable[MAX_CH_NUM]:大小为 MAX_CH_NUM(CH 的总数 )的数组,表示 CH 的开 /
关。取值: 1 为开; 0 为关。
nCHVoltDIV[MAX_CH_NUM]:大小为 MAX_CH_NUM(CH 的总数 )的数组,表示 CH 的电
压档位。电压档位以索引值形式表示。以最小电压档位为 0
开始依次递加 1 计算。
nCHCoupling[MAX_CH_NUM] :大小为 MAX_CH_NUM(CH 的总数 )的数组,表示 CH 的耦
合。耦合以索引值形式表示。取值:DC 为 0 ;AC 为 1 ;
bCHBWLimit[MAX_CH_NUM] :大小为 MAX_CH_NUM(CH 的总数)的数组,表示 CH 的带
宽限制。取值:1 为打开带宽限制;0 为关闭带宽限制。
nTrigSource:表示触发源,以索引值形式取值。假设现在为 4CH 示波器,则内部触发取值
为: CH1 为 0; CH2 为 1; CH3 为 2; CH4 为 3;如果有外部触发,则 EXT
为 5;如果有 EXT/10 触发,则取值为 6。
bTrigFilt:表示高频抑制。取值:1 表示打开高频抑制,0 表示关闭高频抑制。
nALT:表示是否交替。取值:1 为交替,0 为非交替。
举例:
声明一个变量:RELAYCONTROL myRelayControl;
声明一个指针:PRELAYCONTROL pRelayControl;
函数介绍
1. 函数声明:DLL_API WORD WINAPI dsoHTDeviceConnect (WORD DeviceIndex)
返回值:
返回仪器连接的情况。0 :不连接;非 0 :连接。
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
备注:
获取 PC 是否与仪器相连。
程序举例 :
WORD DeviceIndex = 0;
//调用函数
if( 0 = dsoHTSearchDevice(DeviceIndex))
{
//不连接
}
else
{
//连接中
}
2. 函数声明: DLL_API WORD WINAPI dsoHTSearchDevice(short* pDevInfo);
返回值:
与 PC 机连接成功的设备数。
参数:
pDevInfo
short 指针长度为 32,用来遍历 0-31 端口是否有设备,如果第 i 端口有设备返回
pDevInfo[i]!=0。
备注:
遍历端口。
程序举例 :
short DevInfo[32];
WORD nConnectedDevNum = 0;
//DevInfo Initial
//…
//Call this function
nConnectedDevNum = dsoHTSearchDevice(DevInfo);
When DevInfo[n] is 0 , there are devices. When DevInfo[n] is -1, there is no device.
3. 函数声明: DLL_API WORD WINAPI dsoHTReadCalibrationData(
WORD DeviceIndex,
WORD* pLevel,
WORD nLen
)
4. 函数声明: DLL_API WORD WINAPI dsoHTWriteCalibrationData (
WORD DeviceIndex,
WORD* pLevel,
WORD nLen
)
返回值:
1:成功; 2:失败
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
pLevel:
指向一个 WORD 型数组,用来存放校准数据。
nLen:
WORD 型变量,表示数组的长度值。
备注:
dsoHTReadCalibrationData 读取, dsoHTWriteCalibrationData 写入零电平校准 获取仪
器中存放的校准参数值。
程序举例:
WORD DeviceIndex = 0;
WORD pLevel[317];
WORD nLen = 317;
//…
//调用函数
if( 0 = dsoHTReadCalibrationData (DeviceIndex, pLevel, nLen))
{
//失败
}
else
{
//成功
}
5. 函数声明: DLL_API WORD WINAPI dsoHTRDAmpCali(WORD nDeviceIndex,
WORD * pLevel,
WORD nLen)
6. 函数声明: DLL_API WORD WINAPI dsoHTWRAmpCali(WORD nDeviceIndex,
WORD * pLevel,
WORD nLen)
返回值:
1:成功; 0:失败
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
pLevel:
指向一个 WORD 型 的数组, 用 于 存放触发幅度 修 正系数。 注意实际幅度 修 正 =
pLevel[i]/1024
nLen:
WORD 型变量,表示数组的大小
备注:
dsoHTRDAmpCali 读取, dsoHTWRAmpCali 写入 获取设备中的幅度修正参数。
程序举例 :
WORD DeviceIndex = 0;
WORD pAmpCoe [317];
WORD nLen = 317;
//…
//调用函数
if( 0 = dsoHTRDAmpCali (DeviceIndex, pAmpCoe, nLen))
{
//失败
}
else
{
//成功
}
7. 函数声明: DLL_API WORD WINAPI dsoSetUSBBus(WORD DeviceIndex)
返回值:
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
备注:
设定总线触发模式,该项设置为预留使用的,暂未起到时基控制。
8. 函数声明: DLL_API WORD dsoHTSetCHPos( WORD nDeviceIndex,
WORD * pLevel,
WORD nVoltDIV,
WORD nPos,
WORD nCH,
WORD nCHMode
)
返回值:
0:失败,非零:成功
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
pLevel
WORD 指针型,储存零电平校准数据要求长度至少为 577。
nVoltDIV
WORD 型变量,表示当前通道 nCH 电压的索引值。
nPos
WORD 型变量,表示当前通道 nCH 垂直位置范围 0-255。
nCH
WORD 型变量,表示当前设置的通道。
nCHMode
WORD 型变量,表示当前的通道模式(1、2、4)。
备注:
设定通道的垂直位置。
9. 函数声明: DLL_API WORD dsoHTSetVTriggerLevel(WORD nDeviceIndex,
WORD nPos,
WORD nSensitivity
)
返回值:
0:失败,非零:成功
参数:
DeviceIndex
WORD 型变量,表示当前设备的索引值。
nPos
WORD 型变量,表示触发的垂直位置,范围 0-255。
nSensitivity