私は基本的な.NETプロジェクト以外のものはかなり新しくなっていますが、現在GPIB、USBなどのさまざまなメディアでSCPIを使って通信するT &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#)。
さらにVisual Studio Reference Managerを調べると、VISA COMタイプライブラリだけでなく、計測器固有のIVIアセンブリ(例:IVI Scope Assembly)や同様のCOMタイプライブラリ(IviScope 3.0タイプライブラリ)。
私はこれらのすべてが何であるか、そして私が使用するはずのものと使用しないものとによって、やや困惑しています!
これらは何のためですか?私は、それらの違いは何ですか?なぜ、私は他のものを使うのでしょうか? (たぶんどこかの差異や一般的なユースケースを簡潔に説明するソースがあるでしょうか?)
なぜダウン票とクローズ票ですか? – Toby