我對除了基本的.NET項目以外的任何東西都比較陌生,但我目前正在嘗試製作一個測試系統,以便與使用SCPI通過各種媒體(如GPIB,USB等)進行通信的M儀器配合使用。我有Keysight IO庫已安裝並已閱讀其中的VISA.NET幫助文檔。我應該使用哪種IVI參考?
我希望我的程序是VISA廠商中立(儘可能),所以決定堅持只通過Ivi.Visa
接口使用實現。我在想用的工具類似下面的僞代碼編碼通訊:
//Access implementation only via IVI interfaces to keep things vendor neutral
using Ivi.Visa;
// Get a session from the manager
var Session = (IGpibSession)GlobalResourceManager.Open(Alias, AccessMode, Timeout);
// Use the formatted IO interface of the session
var io = Session.FormattedIO;
// Some communication operations
// UserCommand is some faux type object
io.PrintfAndFlush("%s", UserCommand.ToString);
if (UserCommand.Query)
io.Scanf("%s", out UserCommand.Result);
// Doesn't seem to be any Close method on resource manager, session or interface?
Session.DiscardEvents(EventType.AllEnabled);
Session.Dispose();
我不過注意的是,雖然我以前以爲我其它文件中看到,COM的例子主要是指老的用法,COM的例子是仍然被提及(例如Sending SCPI/GPIB commands over USB from C#)。我發現不僅有VISA COM類型庫,還有工具特定的IVI程序集(例如:IVI Scope Assembly)和類似的COM類型庫(例如:IviScope 3.0 Type Library )。
我對這些都是爲了什麼以及我應該使用或不使用哪些而感到有些困惑!
這些都是爲了什麼?我的意思是,它們之間有什麼區別,或者爲什麼我會用另一種呢? (也許有一個來源可以簡潔地解釋某個地方的差異或一般用例?)。
爲什麼倒票和收票? – Toby