2012年
1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2012-01-05 測定装置のインターフェース

_ USBTMCを使ってみた

PCと測定装置の間のインターフェースとしては、少し前まではGPIBが一般的だった。しかし、最近ではGPIBは使えない装置も増えてきた。代わりに増えてきたのがLANかUSBである。LANの場合には、IPの設定や測定装置用のLANの構築が面倒だ。一方USBはどのようにPCに認識されるかが問題である。特にLINUXで制御する場合には問題である。

いろいろと調べていたら、USBTMCという規格があるらしく、LINUXでも標準で対応しているようだ。そこで、近くにあったagilentのUSBを持つ装置をubuntuで試してみた。USBケーブルとつなぐと、/dev/usbtmc0ができて、これをIOとして読み書きできるようだ。そこで、rubyから"r+"でopenしてコマンドを書き込んでみると、いくつかのコマンドは受け付けたが、エラーが返ってくるときもある。いろいろと試してみたら、コマンドを送ったあとで、flushすると、うまく動くようになった。これで、基本的にはLINUXマシンのUSBから装置の制御ができる。

しかし、考慮しなければいけない問題も残っている。まず、USBの装置が何台かあった場合に、それをどのように区別するかである。一つの方法としては、*IDN?をつかって、装置を特定して、プログラムの上からそれを割り当てることができる。また、ファイルのアクセスの権限がrootにしか無いので、これをどうするかである。今回はchownして使ったが、それはあまり良い方法とは言えない。ケーブルを接続するときにできるデバイスなので、あらかじめ権限を変えておくわけには行かないし。おそらく何か設定する方法があるのだろうから、それを探さないと。

USBを使った測定システムを構築することが、これでずいぶん簡単になった。まだあまりUSBの装置は手元に無いが、今度装置を買うときには、GPIBが無くてもUSBがあれば、気にせずに買うことができる。


2012-01-18 DebianのLXDEのゴミ箱

_ ゴミ箱の場所

Debian Linuxでは、LXDEを使っている。最近は、LXDEにもゴミ箱があるのだが、これを空にするときに、うまくいかない時がある。USBメモリなどでは、ゴミ箱は.Trashというフォルダに入っているのだが、HDDではどこにあるのか分からなかった。調べたら、~/.local/share/Trash/filesという場所にあったので、その中身を消したらHDDの容量が2%ほど開放された。


2012-01-19 マイクロソフトの陰謀か

_ winmail.dat

知り合いからのメールで、winmail.datという添付ファイルがついてきたが、内容が読めない。メールのソースを見てみると、Content-Typeはapplication/ms-tnefになっている。ネットで調べてみると、Outlookで送ったときに起こる、他のメーラーを排除しようという試みの一環のようだ。outlook以外では読むのが難しくなっているらしい。

debianのパッケージには、tnefというものがあり、これをaptitudeでインストールして、tnef winmail.datとして変換したら、pdfに変換してくれた。

昔はmacの場合に、binhexとかで苦しんだことがあったが、今度はwindowsだ。だんだんやり方が悪質になっている気がする。標準的なbase64で送れば良いのに。容量もほとんど変わらないのに。マイナーなフォーマットを使うメリットとしては、outlook以外を使うなという圧力をかけられるということ以外無いように思えてしまう。


2012-01-24 新しい測定装置

_ USBTMCのアクセス速度

今日、測定装置が到着したので、早速その制御を試みてみた。その測定装置は、インターフェースはUSBしかない。それをLinuxからUSBTMCで制御するのだ。

以前に別の装置で試したときには、/dev/usbtmc0の権限が問題になった。これはまだ解決できていないが、新たな問題が見つかった。readする際に、時間がかかっていたのだが、それは解決することができた。

rs232cのときにも同じだが、usbtmcでもrubyから"r+"でopenして、読み書きしている。書く方は、writeしたあとでflushすれば、うまく行くことは前に分かった。しかし、読む方は普通のreadを使って一回につき5秒ぐらいかかってしまっている。bufferにたまったdataを読むときに、timeoutを待って、表示されているように思われるので、いろいろと調べていたら、なんとなく原因が分かってきた。rubyのIOのmethodを見ていると、readpartialというものがあり、即座に得られるデータを返してくれるらしい。試しにこれを使ったら、通常の読み込みは思ったとおりに動作した。長い時間待たないといけない場合には、timeoutになってしまったので、bufferに文字があるかどうかをselectかなんかで調べてから読むようにすれば良いのだろう。

あとは、権限問題だ。