2016-02-11 26 views
6

私はラボ機器を自動化しています。 私は機能のような要件を持っていますが、ファイル/バイナリデータをVISA GPIB経由でホストPCから計測器に送信します。python visa/gpibモジュールの同等の関数ibwrtfWとibwrtfA

Ni4882.hでは、Visual Studio 2010でファイル/バイナリデータを転送する次の機能があり、動作しています。 GPIB文字列として送信コマンドに精通しています。

しかし、GPIBコマンドでファイルを送信することはありませんでした。

これは私がC++で試した関数です。私はni4882.objファイル(これらの関数の定義を持っています)を使用してアプリケーションを作成しましたので、ファイルPCを計測器に転送することができました。しかし、私はpythonの

unsigned long NI488CC ibwrtfA (int ud, const char * filename); 
unsigned long NI488CC ibwrtfW (int ud, const wchar_t * filename); 

で同等の機能を見つけることができませんよ誰も私がpyvisaやビザのpythonパッケージに同等の機能を教えてくださいもらえますか? - または - これに代わるものと同等のモジュール。

pyvisaとvisaのすべての機能を参照していますが、同等の機能を見つけることができませんでした。

ありがとうございます!

+0

Sandy、このタスクを処理するためのC/C++で動作するコードがありますか?もしあなたが持っていれば、あなたの質問にそれを含めると役に立つ答えの可能性が増します。 –

+0

@ArtonDorneles私はドライバのstandrad NIインストールからni4882.hとni4882.objオブジェクトファイルを持っています。リンクをご覧くださいhttp://www.ni.com/download/ni-488.2-3.1.2/4360/en/ – Sandy

+0

私の答えを試しましたか?私があなたのために他の何かをすることができれば私にラインを落としてください。 –

答えて

1

write_rawの方法を試すことができます。このコードを試してみてください:

import visa 
rm = visa.ResourceManager() 

rm.list_resources() # ('ASRL1::INSTR', 'ASRL2::INSTR', 'GPIB0::12::INSTR') 
ud = rm.open_resource('GPIB0::12::INSTR') #You need to specify your device here. 

#Read the file into data 
f = open('file.dat', 'rb') 
data = list(f.read()) 

#Write file into device 
ud.write_raw(data) 

write_rawする代わりに、あなたがwrite_binary_valueswrite_ascii_valuesを試すことができます。必要に応じて両方ともより多くの設定を提供します。

関連する問題