私は現在、C#を介してSCPI互換デバイスと通信するためのさまざまな可能性を探しています。私は最初のコードをLabWindows/CVI(言語:C)でCOMインターフェイスを介して記述し、次のように「手動で」実行しました。
ComOpen(ComId, "Com1",....);
ComWrite("SYST:...\r");
ComRead(&value)`
このようなもの。問題は、純粋なCが好きではなく、通信したい実際のオブジェクトがあるため、OOPの欠如が愚かだったことです。National Instruments様、オブジェクトを制御するためにOOPを使用してみませんか?
デバイスのマニュアルよりも多くの情報があるので、誰かが私にヒントをくれました。グローバルなSCPIドキュメントを調べる必要があります。そして、.NET互換のコマンドセットを見つけました。例えば、
IIviDCPwr Ivi.DCPwr.Create(String resourceName,
Boolean idQuery,
Boolean reset,
LockType lockType,
String accessKey,
String options);
SCPIデバイスとのオブジェクト指向通信を構築します。私はC#が本当に好きなので、次の週にこれを試してみたいと思います。
しかし、resourceNameは後で対象のデバイスを解放するための名前であるように見え、接続がすでに設定されているときに他の設定が使用されたため、実際には接続設定を確認できません。IIviDCPwrのインスタンスは、どの接続(TCP / IP、COM、またはGPIB)を使用する必要があるかをどのように知ることができますか?
ソケットを使用したTCP/IPのソリューションしか見たことがありません。しかし、これはCOMとGPIBには当てはまらないと思いますか?
もう1つの解決策は、NationalInstrumentsVISAパッケージを使用することです。しかし、NIが提供する独自のパッケージを使用するというアイデアは好きではありません(CVIを使用した後、NIに対して新たに開発された反発を感じると思います)。
この問題を処理するためのコードスニペットまたはドキュメントを提供できますか?VISAを使って何か経験をしたことがありますか?COM / GPIB通信にソケットを使用できますか?
ところで:コードスニペットで新しい行を作成するにはどうすればよいですか?入力もShift+ Enter、\ r、\ n、\も私には機能しません...