バージョン21.0.0をApp Storeからダウンロード。
windowsに繋ぎたいので"新しい接続"から設定しようと思ったのですが,何を入力すればいいのやら。。。IPアドレスか???
結局,スクリーンショットの黄色い丸のところから,『代替RDP接続を設定』にいけばいいだけでした。
「代替」ってワードのせいでここをクリックしていいのかまよってしまったという話でした。
自然には,人智の及ばないところがあることを忘れないように…
バージョン21.0.0をApp Storeからダウンロード。
windowsに繋ぎたいので"新しい接続"から設定しようと思ったのですが,何を入力すればいいのやら。。。IPアドレスか???
結局,スクリーンショットの黄色い丸のところから,『代替RDP接続を設定』にいけばいいだけでした。
「代替」ってワードのせいでここをクリックしていいのかまよってしまったという話でした。
題目の通り。
前回のような手順できちんとlinux-gpibパッケージでpython-bindingがインストールできていれば以下で行けるはず。
- import gpib
- import time
- from datetime import datetime
- device = gpib.dev(0, 5)
- gpib.timeout(device, gpib.T10s)
- log_file = "measurement_log.csv"
- with open(log_file, "w") as f:
- f.write("Timestamp,Voltage\n")
- try:
- while True:
- gpib.write(device, "MEAS:VOLT?\n")
- response = gpib.read(device, 100).decode().strip()
- timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
- with open(log_file, "a") as f:
- f.write(f"{timestamp},{response}\n")
- print(f"{timestamp} -> {response} V")
- time.sleep(1)
- except KeyboardInterrupt:
- print("測定を中断しました。")
- finally:
- gpib.close(device)
- print("GPIBデバイスを閉じました。")
gpib.write(device."*IDN?\n")print(gpib.read(device, 100))
b'HEWLETT-PACKARD,34401A,0,1.0\n'
print(gpib.read(device, 100).decode().strip())
HEWLETT-PACKARD,34401A,0,1.0| 関数 | 説明 |
|---|---|
gpib.dev(board_index, pad) | デバイスハンドルを取得 |
gpib.write(device, command) | コマンド送信 |
gpib.read(device, length) | 応答読み取り |
gpib.close(device) | デバイスを閉じる |
gpib.timeout(device, value) | タイムアウト設定(例: gpib.T10s) |
まっさらのxubuntu24にgitでlinux-gpibの4.3.7をインストールしたのですが,そのままではなんとpythonから見えないというトラブル発生。
症状としては,
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm=visa.ResourceManager()
>>> print(rm.list_resources())
()
>>>
のように,リソースがなにもみえない。
ここでそもそもいままでPyVISAがうまく動いてくれていたことに感謝しながら,pyvisaがどの様に計測器を検出しているかを調べてみた。
すると,pyvisaは,pyvisa-pyというバックエンドを明示的に指定しないといけないらしい。
(今までそんなことなかった気がする)
ResourceManagerについて調べてみる。
>>> print(rm)
Resource Manager of Visa Library at /usr/lib/x86_64-linux-gnu/libvisa.so.0.0.0
>>>
なんか良さげな感じの返事がきたのですが,これではダメらしい。
明示的にpyvisa-pyを指定するためには,'@py'を指定するらしい。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm=visa.ResourceManager('@py')
>>> print(rm)
Resource Manager of Visa Library at py
>>>
このように表示されたらOK。
ところが私の環境では,これでもlist_resources()でGPIBが出てこない。
そこで,linux-GPIBパッケージのpythonバインディングがうまくいっていない可能性を疑う。
pythonバインディングがうまく作成されていれば,importできるはず。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gpib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'gpib'
やはり。。。
linux-gpib-users/language/python以下にあるっぽいので,そこを覗いてみる。
~/Downloads/linux-gpib-git/linux-gpib-user/language/python$ ls
Gpib.py Makefile.am README gpibtest.py srq_board.py
Makefile Makefile.in gpibinter.c setup.py srq_device.py
ここにあたりをつけて,READMEを読んでみると,
This is a python GPIB interface to use gpib library calls from python language.
(Quick hacked)
27 January 2004 -- added functions gpib.readbin() and gpib.writebin(), as well
as variables gpib.ibsta() and gpib.ibcnt(). -- John Ackermann <jra@febo.com>
Installation:
'make' then 'make install'
とのことだったので,makeしてみたが,どうやらpython3-devがらみで足りないものがあった模様。
python3-devとpython3-setuptoolsをaptでインストールしたら無事にmakeとmake installができた。
その後,実は
$ sudo python3 setup.py install
という処理が必要。
$ python3
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> rm = visa.ResourceManager('@py')
>>> ls330=rm.open_resource('GPIB0::16::INSTR')
>>> ls330.write("*IDN?")
7
>>> ls330.read()
'LSCI,MODEL330,0,061694\r\n'
>>> ls330.close()
>>>
思ったより重いコンダラだった。
Linux側にVSCodeをインストールするときは,公式サイトの方法を参考にすると良さそう。
MacのVSCodeからlinuxに接続して,Xも通したい時は,まず当然ですがMacとlinuxでsshができる様に,linux側に
$ sudo apt install openssh-server
でsshサーバをインストールし,
$ systemctl enable ssh
してsshが起動時に有効になる様にしてから,XQuartzをインストールしてあるmacから一度
$ ssh -X <ユーザ名>@<接続先のIPアドレス>
で接続を試す。
それから,MacのVSCodeでRemote-SSHをインストールし,以下の様に設定する。
Command + Shift + P
して,
Remote-SSH: Open SSH Configuration File ...
を選んで,
/Users/<自分のユーザ名>/.ssh/config
を選択し,以下の様に記述すればオッケー。
測定器が増えてきたので別のラップトップにGPIBのセッティングをしなおした。
公式サイトからGitで取得。
$ git clone https://git.code.sf.net/p/linux-gpib/git linux-gpib-git
linux-gpib-gitフォルダ以下のlinux-gpib-userとlinux-gpib-kernelを指示通りコンパイルしインストール。
(-userの方は./configure の前に ./bootstrapが必要になった。)
設定ファイル/etc/gpib.confの編集。
minor=0の次の行をboard_type = "ni_usb_b"になおす。
つづいて,groupの設定。
$ sudo groupadd gpib
でグループを作り,/etc/groupの最後の行に追加されたgpibの部分に以下のように自分のuser名を入れる。
gpib:x:1001:<ユーザー名>
ここまでできたらシステムを再起動。
再起動後に,
$ sudo /usr/local/sbin/gpib_config
を実行する。
しかしここでトラブル。
いつものような
error while loading shared libraries: libgpib.so.0: cannot open shared object file: No such file or directory
それから,
gtk-3.0-dev
pkg-config
もaptでインストールした。
いままで一生懸命(というほどでもないけど)\dfrac{\mathrm{d}}{\mathrm{d}t}とかやっていたのですが,\dv{t}一発でいくのですね。。。。
基本的には,\dv[n]{f}{x}のような使い方。
偏微分は\pdv[n]{f}{x}のように。
\dv{x}()も便利そう。
NIから 2023年4月27日に最新の情報が更新されましたが,相変わらずです。
macOS 13 (x86_64)と書いてあるので,intelチップのみの対応と考えられます。
まぁ,おそらくカーソルを合わせておかないと処理が極端に遅くなる問題にも対応できていないと思いますので,しばらくはlinux上で測定を進めます。
linuxもかなり便利になってきて,x11vncなどを使えばデスクトップを共有できるし,smb,最近ではgoogle driveにも対応できるので,しばらくはlinuxで不便は感じないかと。