|
我想在我的程序里通过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名呢?
请指教,谢谢!
|
|