>>> import visa
>>> rm = visa.ResourceManager()
>>> instr1 = rm.open_resource('ASRL1::INSTR')
>>> cmd = instr1.query('get o\n')
>>> cmd
'OUTPUT: 0.0000 TESLA AT 0.0 VOLTS \r\n'
のように,余計な文字列がたくさんついてきます。
どうやら,pythonはこういうときの処理がとても得意みたいです。
split()で空白で区切ると単にlistになるのですが,
>>> cmd.split()
['OUTPUT:', '0.0000', 'TESLA', 'AT', '0.0', 'VOLTS']
>>> type(cmd.split())
<class 'list'>
このままでは当然strのままです。
>>> type(cmd.split()[1])
<class 'str'>
>>> field = float(cmd.split()[1])
>>> field
0.0
>>> type(field)
<class 'float'>
>>>
のようにみごとに分割した文字列から一発で磁場の値を浮動小数点に変換できます。
ちなみにcloseの方法は簡単で,
>>> instr1.close()
>>> exit()
bhoona:~ yishii$
のように,ResourceManagerから持ってきたデバイス名に.close()をつけるだけです。
前回のエラーはすっかり消えました。
pythonすごいです,おどろくほど短いコードで済みます。
0 件のコメント:
コメントを投稿