2026年1月20日火曜日

Parallels Clientを久しぶりにつかってみた

 バージョン21.0.0をApp Storeからダウンロード。

windowsに繋ぎたいので"新しい接続"から設定しようと思ったのですが,何を入力すればいいのやら。。。IPアドレスか???


結局,スクリーンショットの黄色い丸のところから,『代替RDP接続を設定』にいけばいいだけでした。

「代替」ってワードのせいでここをクリックしていいのかまよってしまったという話でした。






2025年9月18日木曜日

linux-gpibパッケージをインストールした際にpython-bindingがインストールされていればPyVISAは不要なはず。

 題目の通り。

前回のような手順できちんとlinux-gpibパッケージでpython-bindingがインストールできていれば以下で行けるはず。


  1. import gpib
  2. import time
  3. from datetime import datetime
  4. device = gpib.dev(0, 5)
  5. gpib.timeout(device, gpib.T10s)
  6. log_file = "measurement_log.csv"
  7. with open(log_file, "w") as f:
  8.     f.write("Timestamp,Voltage\n")
  9. try:
  10.     while True:
  11.         gpib.write(device, "MEAS:VOLT?\n")
  12.         response = gpib.read(device, 100).decode().strip()
  13.         timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  14.         with open(log_file, "a") as f:
  15.             f.write(f"{timestamp},{response}\n")
  16.         print(f"{timestamp} -> {response} V")
  17.         time.sleep(1)
  18. except KeyboardInterrupt:
  19.     print("測定を中断しました。")
  20. finally:
  21.     gpib.close(device)
  22.     print("GPIBデバイスを閉じました。")


12行目で.decode().strip()をつけないかたち,すなわち


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

2025年8月11日月曜日

xubuntu24でlinux-GPIB(4.3.7)をPython3(3.12.3)から使う際にてこずったこと(python バインディングが重要!)

 まっさらの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()

>>> 

思ったより重いコンダラだった。




MacからVisual Studio Codeを使ってlinuxにSSH接続してXも転送しながら開発(メモ)

 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

を選択し,以下の様に記述すればオッケー。


Host <接続先のIPアドレス>
HostName <接続先のホスト名>
ForwardX11 yes
ForwardX11Trusted yes
User <接続先のユーザ名>

gpibドライバをセットアップし直し(xubuntu 24.04)

測定器が増えてきたので別のラップトップに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

が出てきてうまくいかない。
modplobeしてもきちんとカーネルモジュールはできているのに。。。

結局,/usr/local/lib/libgpib.so.0を/lib/にシンボリックリンクを貼って解決。

ちなみに,上記作業中,autotoolsとflexとbisonをaptでインストールしないとbuildできなかった。


それから,


gtk-3.0-dev

pkg-config


もaptでインストールした。 

2024年7月22日月曜日

latexのphysicsパッケージ

 いままで一生懸命(というほどでもないけど)\dfrac{\mathrm{d}}{\mathrm{d}t}とかやっていたのですが,\dv{t}一発でいくのですね。。。。


基本的には,\dv[n]{f}{x}のような使い方。

偏微分は\pdv[n]{f}{x}のように。

\dv{x}()も便利そう。

2023年5月4日木曜日

NI-GPIBドライバ(LabView)のM1&M2mac(apple silicon)対応状況

NIから 2023年4月27日に最新の情報が更新されましたが,相変わらずです。

macOS 13  (x86_64)と書いてあるので,intelチップのみの対応と考えられます。

まぁ,おそらくカーソルを合わせておかないと処理が極端に遅くなる問題にも対応できていないと思いますので,しばらくはlinux上で測定を進めます。

linuxもかなり便利になってきて,x11vncなどを使えばデスクトップを共有できるし,smb,最近ではgoogle driveにも対応できるので,しばらくはlinuxで不便は感じないかと。