Electronic Engineer Discuss

Title: 二次开发,如何在程序中连接HDG2002B [Print this page]

Author: 南飞雁    Time: 2016-11-24 12:22
Title: 二次开发,如何在程序中连接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名呢?

请指教,谢谢!

Author: amy    Time: 2016-11-25 09:50



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

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

[attach]1264[/attach]

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

Keysight扫描结果:
[attach]1265[/attach]



Author: amy    Time: 2016-11-25 11:19
需要把原来的驱动卸载,然后重启电脑,才能与Keysight软件连接。

Author: 南飞雁    Time: 2016-11-25 13:26
好的,在我删除DDS Source Device时选择删除驱动程序后,IVI的驱动程序自动被使用上了,现在可以了.

谢谢!

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

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

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

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

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

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


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

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

安捷伦的库文件是公开可以使用的,不存在版权问题。





Welcome to Electronic Engineer Discuss (https://www.eediscuss.com/) Powered by Discuz! X3.2