前提・実現したいこと
Visual Studio2012を使用しC#でネットワークアナライザの制御をしたいです。
C#のビットマップ形式のスクリーンショット取得するためのオシロスコープ制御のサンプルプログラムを参考にプログラムを書きました。
本来はスクリーンショットした画像ではなくてネットワークアナライザのDドライブに入っている画像を転送するためのプログラムを作成している最中なのですが、
何となくこのプログラムを活用できそうなので仮でかいています。
発生している問題・エラーメッセージ
'Ivi.Visa.IMessageBasedFormattedIO'に'ReadIEEEBlock'の定義が含まれておらず、型'Ivi.VIsa.IMessageBasedFormattedIO'の最初の引数を受け付ける拡張メソッドが見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。
該当のソースコード
C#
1using System; 2using System.Collections.Generic; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Text; 7using System.Windows.Forms; 8using System.IO; 9using Ivi.Visa.Interop; 10using Ivi.Visa; 11 12namespace kari 13{ 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponet(); 19 } 20 IMessageBasedSession session; 21 IMessageBasedFormattedIO instrument0; 22 /// ビットマップ形式のスクリーンショット取得 23 24 25 private Byte[] GetScreenshot() 26 { 27 const string IP ="ネットワークアナライザのIPアドレス" 28 const strinf IP1 = "TCPIP0::" + IP + "::inst0::INSTR" 29 Byte[] dat = null; 30 instrument0.WriteLine(":DISPlay:DATA? BMP"); 31 try 32 { 33 // タイムアウトを20sに設定 34 session.IO.Timeout = 20000; 35 dat = instrument0.ReadIEEEBlock(IEEEBinaryType.BinaryType_UI1) as Byte[]; 36 } 37 catch 38 { 39 } 40 finally 41 { 42 // タイムアウトをデフォルト(2s)に戻す 43 session.IO.Timeout = 2000; 44 } 45 return dat; 46 } 47 } 48} 49 50 51
試したこと
何かを追加しないといけないのかな?とおもい再度違う会社のVISACOMライブラリのダウンロードしてみたりしましたが駄目でした。
C#初心者で独学でやろうとしているのでどうやって検討すればいいかわかりません。。。
ちなみに接続はbyte[] dat=null;以下のプログラムを違うのにしたら
ビルドが通り制御もうまくいきました。
色々調べたものを組み合わせてプログラムを組んだせいかと思いますが
何かエラーの原因が分かりましたら教えてください。
回答1件
あなたの回答
tips
プレビュー