南飞雁 Publish time 2016-11-24 12:22:31

二次开发,如何在程序中连接HDG2002B

我想在我的程序里通过SCPI命令控制HDG2002B,如何才能连接到设备呢?
首先,我尝试使用Windows API CreateFile, Delphi代码如下:

procedure TfrmVIMain.Button1Click(Sender: TObject);
var
hFile: THandle;
S: AnsiString;
BytesWrote, Err: Cardinal;
begin
hFile := CreateFile('\??\USB#VID_049F&PID_505B#HTG10000522222#{a5dcbf10-6530-11d2-901f-00c04fb951ed}',
                        GENERIC_READ or GENERIC_WRITE,
                        FILE_SHARE_READ or FILE_SHARE_WRITE,
                        nil,
                        OPEN_EXISTING,
                        FILE_ATTRIBUTE_NORMAL,
                        0);
if hFile = INVALID_HANDLE_VALUE then
    ShowMessage('Failed to connect')
else
try
    S := 'SYSTem:BEEP'#10;
    if not WriteFile(hFile, PAnsiChar(S)^, Length(S), BytesWrote, nil) then
    begin
      Err := GetLastError;
      Caption := IntToStr(Err);
    end;
finally
    CloseHandle(hFile);
end;
end;

CreateFilech成功返回了一个句柄,但是 WriteFile失败了,错误码是6(无效句柄),我也尝试ReadFile,得到同样的错误.

贵公司一位工程师说,可以通过安装安捷伦的KeySight软件包,使用其中的visa32.dll来与设备通信.
我下载并安装了,但是使用KeySight Connection Expert无法检测到HDG2002B.
那么我怎么能使用viOpen(sesn, rsrcName, accessMode, timeout, vi)来指定rsrcName名呢?

请指教,谢谢!

amy Publish time 2016-11-25 09:50:21




请将您的电脑设备管理器截图给我看一下。

南飞雁 Publish time 2016-11-25 10:54:18

amy replied at 2016-11-25 09:50
请将您的电脑设备管理器截图给我看一下。



驱动应该是安装正常了,TTSource软件也可以正常连接和控制设备.

Keysight扫描结果:



amy Publish time 2016-11-25 11:19:52

需要把原来的驱动卸载,然后重启电脑,才能与Keysight软件连接。

南飞雁 Publish time 2016-11-25 13:26:12

好的,在我删除DDS Source Device时选择删除驱动程序后,IVI的驱动程序自动被使用上了,现在可以了.

谢谢!

南飞雁 Publish time 2016-11-25 13:33:50

另外,在我的程序安装包中打包visa.dll的话,我理解存在版权问题?

Hantek_Zhang Publish time 2016-11-25 16:03:32

南飞雁 replied at 2016-11-25 13:33
另外,在我的程序安装包中打包visa.dll的话,我理解存在版权问题?

我不知道你的意思,仅仅打包visa.dll不行,必须完全安装kesight suit套件才能与设备通信。

南飞雁 Publish time 2016-11-25 17:24:43

Hantek_Zhang replied at 2016-11-25 16:03
我不知道你的意思,仅仅打包visa.dll不行,必须完全安装kesight suit套件才能与设备通信。
...

明白了,我以为visa.dll就可以了.

原先想仅仅打包visa.dll,但那是安捷伦的库文件,所以我直接在我的安装包理打包使用的话,我担心侵犯他们的版权.
如果要安装整个keysight suit套件的话,那我更要担心版权问题了,因为我从keysight的版权声明看,如果没有购买他们的产品,是不能使用keysight的,这就是我的担心.

amy Publish time 2016-11-28 14:34:30

南飞雁 replied at 2016-11-25 17:24
明白了,我以为visa.dll就可以了.

原先想仅仅打包visa.dll,但那是安捷伦的库文件,所以我直接在我的安装包 ...

安捷伦的库文件是公开可以使用的,不存在版权问题。
Pages: [1]
View full version: 二次开发,如何在程序中连接HDG2002B