5年使ってきたMacbookがそろそろ色々な意味で手狭になってきたので,リプレース.
ところが,catalinaはちょっと厄介な様子.
色々使えなくなる予定,その一つがIgorPro.
サポートしないとうたっていますが,サードパーティのXOPなどを使わなければ動く模様.
現状ではKaleidaGraphも動かない予定.
そして,GPIBはまだまだNIが対応していない様子.
絶対必要なのはTeXなので,TeX環境をどうするか.
もう10年以上Finkを使ってきたのですが,流石に少々疲れてきて(TeXで必ずトラブる)Homebrewも一瞬考えたのですが,musrfitがうまく動くかわからなかったので,試しにMacPorts経由でTeXLiveを入れることに.
噂で,bashからzshに変わったらしいということも聞いていたので,まずはzsh関係のお勉強.
Qiitaを参考にしました.
2020年6月10日水曜日
2019年4月20日土曜日
macOS MojaveでmakeしたときにFrameworkが探せなくなった<解決済み>
十年近く使ってきた測定用のmacbookを新調しました。
今しかないと思って,あえてのMacBookAir(非Retina)です。
税込約10万円で,旧USBポートが備わっていて,GPIBとserial通信両方同時にできそうなすばらしいハードウエア,と思ったのですが,罠が。。。。。
以前からつかっていた測定用のコードがコンパイルできません。
小一時間,というかもう少し悩んで,いろいろ試しました。
NI4882は/Library/Frameworks以下にあります。
まずはni4882.hがみつけられないのだから-Iで探させてみたのですが,それでも次はldがNI4882をFile not foundと言ってきて,泥沼の様相。
NI4882の場所がいけないのかと思い,ldのmanやappleのdocを読み込んでみても,/Library/Frameworksで良さそう,っていうか/Library/Frameworksにしろと書いてある。
それこそHighSierraにダウングレードしようかなど考えていたのですが,どうやら-Fというオプションがある模様。
そこで,makefileに-F/Library/Frameworks を加えてみたところ,あっさり成功。
ちょっと苦労したので忘れないようにメモ。
今しかないと思って,あえてのMacBookAir(非Retina)です。
税込約10万円で,旧USBポートが備わっていて,GPIBとserial通信両方同時にできそうなすばらしいハードウエア,と思ったのですが,罠が。。。。。
以前からつかっていた測定用のコードがコンパイルできません。
小一時間,というかもう少し悩んで,いろいろ試しました。
NI4882は/Library/Frameworks以下にあります。
まずはni4882.hがみつけられないのだから-Iで探させてみたのですが,それでも次はldがNI4882をFile not foundと言ってきて,泥沼の様相。
NI4882の場所がいけないのかと思い,ldのmanやappleのdocを読み込んでみても,/Library/Frameworksで良さそう,っていうか/Library/Frameworksにしろと書いてある。
それこそHighSierraにダウングレードしようかなど考えていたのですが,どうやら-Fというオプションがある模様。
そこで,makefileに-F/Library/Frameworks を加えてみたところ,あっさり成功。
ちょっと苦労したので忘れないようにメモ。
2019年2月14日木曜日
pythonで超伝導マグネット電源から磁場の値を読み込む。closeの方法も。
先日メモしたように,Cryogenicの超マグ電源から,シリアル通信で現在の磁場の値を読み込むと,
のように,余計な文字列がたくさんついてきます。
どうやら,pythonはこういうときの処理がとても得意みたいです。
split()で空白で区切ると単にlistになるのですが,
このままでは当然strのままです。
これをfloat()にしてあげればよくて,
のようにみごとに分割した文字列から一発で磁場の値を浮動小数点に変換できます。
ちなみにcloseの方法は簡単で,
のように,ResourceManagerから持ってきたデバイス名に.close()をつけるだけです。
前回のエラーはすっかり消えました。
pythonすごいです,おどろくほど短いコードで済みます。
>>> 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すごいです,おどろくほど短いコードで済みます。
2019年1月24日木曜日
PyVISAは無敵かも
春休みに磁気抵抗を測定しようと思い,マグネット電源とシリアル通信しないといけないなぁ,となんとなく気が重くなっていたのですが,すばらしい解決方法を見つけてしまいました。
環境としては,
macOS HighSierra
Python 3.6.3 (finkでインストール)
NI VISA 18.0.0
pip3でpyserialをインストールし,ためしに通信してみました。
こんな感じで,無事に通信できました。
実はここに至るまで紆余曲折あり,一筋縄ではいきませんでした。
ポイントは,コマンドの文字列を送るところです。
最初,ネットの記事を参考に,
>>>ser.write("get o¥n")
のようにしてみたのですが,うまくいかず,基本にもどって,公式ドキュメントを参考にしてみたところ,
>>>ser.write(b'get o¥n')
と書くのが正しいようだったので,そうしてみました。
(いつも学生に,『安易なネット検索はいかん』と言っていたのに,自分でハマってしまった。。。)
帰ってきた文字列を見てみると,CRとかLFが入っているし,『b' '』で囲まれてしまっているので,ちょっと厄介だなぁ,と思っていました。
つづいて,PyVISAをインストール。
うっかり最初,easy_install pyvisaとやってしまったところ,python2.7用のVISAがインストールされてしまいました。
これはいかんと,pip3でインストールしたところ,無事python3用のpyvisaがインストールされました。
PyVISAも,ネット上にはいろいろな情報があふれているのでw,基本にかえりながら,
ここで,重大なことに気づきました!!!
今,macにはusbで(と言ってもUSB-Serial変換アダプタ経由で)マグネット電源が,NIのGPIB-USBアダプタ(アドレスは3)で温度コントローラが繋がっています。
>>> rm = visa.ResourceManager()
>>> print(rm.list_resources())
とやってリストをみると,GPIB機器(GPIB0::3::INSTR)のほかに,ASRL1::INSTRという装置が見えます。
そうでした,そこがVISAのすばらしいところでした。
つまり,pyserialは必要なかったのです。。。
のように,二つの機器にそれぞれinstr1とinstr2という名前をつけて,通信してみたところ,
環境としては,
macOS HighSierra
Python 3.6.3 (finkでインストール)
NI VISA 18.0.0
pip3でpyserialをインストールし,ためしに通信してみました。
こんな感じで,無事に通信できました。
実はここに至るまで紆余曲折あり,一筋縄ではいきませんでした。
ポイントは,コマンドの文字列を送るところです。
最初,ネットの記事を参考に,
>>>ser.write("get o¥n")
のようにしてみたのですが,うまくいかず,基本にもどって,公式ドキュメントを参考にしてみたところ,
>>>ser.write(b'get o¥n')
と書くのが正しいようだったので,そうしてみました。
(いつも学生に,『安易なネット検索はいかん』と言っていたのに,自分でハマってしまった。。。)
帰ってきた文字列を見てみると,CRとかLFが入っているし,『b' '』で囲まれてしまっているので,ちょっと厄介だなぁ,と思っていました。
つづいて,PyVISAをインストール。
うっかり最初,easy_install pyvisaとやってしまったところ,python2.7用のVISAがインストールされてしまいました。
これはいかんと,pip3でインストールしたところ,無事python3用のpyvisaがインストールされました。
PyVISAも,ネット上にはいろいろな情報があふれているのでw,基本にかえりながら,
ここで,重大なことに気づきました!!!
今,macにはusbで(と言ってもUSB-Serial変換アダプタ経由で)マグネット電源が,NIのGPIB-USBアダプタ(アドレスは3)で温度コントローラが繋がっています。
>>> rm = visa.ResourceManager()
>>> print(rm.list_resources())
とやってリストをみると,GPIB機器(GPIB0::3::INSTR)のほかに,ASRL1::INSTRという装置が見えます。
そうでした,そこがVISAのすばらしいところでした。
つまり,pyserialは必要なかったのです。。。
>>> instr1 = rm.open_resource('ASRL1::INSTR')
>>> instr2 = rm.open_resource('GPIB0::3::INSTR')
のように,二つの機器にそれぞれinstr1とinstr2という名前をつけて,通信してみたところ,
>>> instr1.write('get o\n')
(8, <StatusCode.success: 0>)
>>> print(instr1.read())
OUTPUT: 0.0000 TESLA AT 0.0 VOLTS
>>> instr2.write('*idn?')
(7, <StatusCode.success: 0>)
>>> print(instr2.read())
LSCI,MODEL350,LSA14J9/#######,1.4
>>>
と,無事にシリアルかGPIBかの区別を全く感じずに通信することができました。
ただ,このままexit()すると
>>> exit()
Exception ignored in: <object repr() failed>
Traceback (most recent call last):
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 108, in __del__
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 243, in close
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 235, in before_close
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 252, in __switch_events_off
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 309, in disable_event
File "/sw/lib/python3.6/site-packages/pyvisa/ctwrapper/functions.py", line 410, in disable_event
File "/sw/lib/python3.6/site-packages/pyvisa/ctwrapper/highlevel.py", line 188, in _return_handler
pyvisa.errors.VisaIOError: VI_ERROR_INV_OBJECT (-1073807346): The given session or object reference is invalid.
Exception ignored in: <object repr() failed>
Traceback (most recent call last):
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 108, in __del__
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 243, in close
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 235, in before_close
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 252, in __switch_events_off
File "/sw/lib/python3.6/site-packages/pyvisa/resources/resource.py", line 309, in disable_event
File "/sw/lib/python3.6/site-packages/pyvisa/ctwrapper/functions.py", line 410, in disable_event
File "/sw/lib/python3.6/site-packages/pyvisa/ctwrapper/highlevel.py", line 188, in _return_handler
pyvisa.errors.VisaIOError: VI_ERROR_INV_OBJECT (-1073807346): The given session or object reference is invalid.
のようにちょっと嫌なメッセージが出ます。
おそらくcloseしていないからでしょうが,今日はここまでにします。
うまくいけば,PyQtとか使ってらくちんに測定できるかもしれません。
2018年9月18日火曜日
ASUSのE200HというネットブックにXubuntuを入れてみた
ASUSのネットブック,E200HにXubuntuをインストールしてみました.
やり方をgoogle先生に聞いて,考えた結果,私はMacでXubuntuのarm64向けisoイメージをダウンロードしてきて,UNetbootinでインストールUSBフラッシュメモリを作成して,インストールしました.
日本語の設定にちょっとてこずりましたが,IBusとAnthyの組み合わせで快適に動いています.
きちんとキーボードの「半角/全角」キーも動作するので,バッチリです.
実はこのポストもE200Hで書いています.
タッチパッドがタイプ中に敏感に反応してしまうので,このサイトを参考にしてちょっと鈍感になるように設定しました.
それから,ディレクトリ名が日本語だとあとでいろいろ面倒なので,いつものように英語に変更しました.
それから,Rの練習をするためにつかいたかったので,とりあえずr-baseだけインストールしました.
あとは絶対使うgnuplotも.今回はQtバージョンをインストール.
ネットサーフィンをするだけなら快適です.
やり方をgoogle先生に聞いて,考えた結果,私はMacでXubuntuのarm64向けisoイメージをダウンロードしてきて,UNetbootinでインストールUSBフラッシュメモリを作成して,インストールしました.
日本語の設定にちょっとてこずりましたが,IBusとAnthyの組み合わせで快適に動いています.
きちんとキーボードの「半角/全角」キーも動作するので,バッチリです.
実はこのポストもE200Hで書いています.
タッチパッドがタイプ中に敏感に反応してしまうので,このサイトを参考にしてちょっと鈍感になるように設定しました.
それから,ディレクトリ名が日本語だとあとでいろいろ面倒なので,いつものように英語に変更しました.
$ LANG=C xdg-user-dirs-gtk-update
それから,Rの練習をするためにつかいたかったので,とりあえずr-baseだけインストールしました.
$ sudo apt-get install r-base
あとは絶対使うgnuplotも.今回はQtバージョンをインストール.
$ sudo apt-get install gnuplot-qt
ネットサーフィンをするだけなら快適です.
2018年4月11日水曜日
linuxでRDPしたいのなら(Scientific Linux7,多分CentOSも同じ)
Windowsのリモートデスクトップサーバにlinuxから接続したい場合,これまでrdesktopやFreeRDPという選択肢があったと思います。
ですが,FreeRDPではキーボードが日本語にならないので,私はどっちかというとrdesktopを使っていました。
しかし!職場のリモート接続サーバ(windows server 2012R2)の仕様が変わったのか,ある時から以下のようなエラーが出てつながらなくなりました。
Failed to initialize NLA, do you have correct Kerberos TGT initialized ?
Failed to connect, CredSSP required by server.
詳しくは省きますが,有名な事象らしいです。
これはおそらくWindows10でも起こると思われますので,rdesktopは諦めざるを得ません。
そこで,日本語を諦めてFreeRDPにしようか,海外から部下も来たことだし英語版キーボードに換えようか,と考えていた時,Parallels Clientのことを思い出しました。
Mac版では日本語キーボード問題も,認証の問題もクリアしていたので,Linux版も試すことにしました。
重いコンダラを引くのが嫌なので,最近の私は基本的にはyum一発で(しかもリポジトリの設定をいじらないで)入れられるパッケージしか好まないのですが,おそるおそるウェブサイトを覗いてみると,rpmパッケージが用意されているようです。
rpmならyumに毛が生えただけみたいなものですから(本当はrpmに毛が生えたものがyumなのですが),ダメもとでダウンロード。
懐かしのrpm -ivhでインストールしてみたところ,何の問題もなくインストールまではオッケー。
現在の環境は,
Linux version 3.10.0-693.17.1.el7.x86_64
ダウンロードしたParallels Client は
RASClient-16.2.19300_x86_64.rpm
でした。
アホな話なのですが,インストールしたのは良かったのですが,コマンド名が分からないw
それっぽいコマンド名を打ち込んでタブ補完してみても出てこない。。。
そこで,rpm -ql をしてみたところ,
2XClientという名前で,/opt/2X/client/bin にインストールされたようです。
起動して,認証の問題と日本語キーボードの問題がクリアされていることを確認後,パスを通すのもめんどくさいので,速攻xfceのパネルに登録しました。
そして忘れないうちにBloggerにメモ。
2017年4月18日火曜日
musrfitのビルド
rootをmakeするにあたり,PSIのサイトの指示に従ったのだが,いろいろ問題があったので嫌々ちょこっとだけソースを修正しなくてはならなかった。
(一部,ヘッダファイルをincludeするところで,"~~~.h"とすべきところが<~~~.h>となってしまっていて,エラーがでた。)
makeできたら勝ちなので。
rootはスプラッシュ画面がかっこよくなってた。
musrfitをmakeするにあたり,今回の./configureは以下のとおり。
(一部,ヘッダファイルをincludeするところで,"~~~.h"とすべきところが<~~~.h>となってしまっていて,エラーがでた。)
makeできたら勝ちなので。
rootはスプラッシュ画面がかっこよくなってた。
musrfitをmakeするにあたり,今回の./configureは以下のとおり。
./configure --prefix=$ROOTSYS --with-qt5=/sw/lib/qt5-mac --enable-NeXus --with-boostinc=/sw/opt/boost-1_55/include
何の問題もなくmakeできた。
musreditは/Applicationsの下にインストールされ,いつも通りのmusreditができた。
登録:
投稿 (Atom)




