なかのにっき

最新版はこちら。 突っ込みは各日付の BBS エントリのほか、 メール (nakano@st.seikei.ac.jp) や フォーム からどうぞ。 なおスパム除けのため、BBS 機能には 緩い認証を入れて います。 検索エンジンから来た方は、エンジンの方のキャッシュを見るか、 下の簡易検索を試してみてください。


hns - 日記自動生成システム - Version 2.19.5

先月 2012年08月 来月
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
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
検索式:

2012年08月16日(木) [n年日記]

#1 行き

車。まだ空いてる。

#2 [labo] 計測用 linux 機

uhvsp:

マザボ ttyS0 端子 用の 延長ケーブル が昨日家に到着したので、嵌めてみてテスト。 真空計・マルチチャネルレコーダとも良好に動作。これでベーキングまでは OK。 あとの残りは分圧計への GPIB 接続。

film:

同様に延長ケーブルを嵌めて、 uhvsp と同様に wheezy 化 。最後に (uhvsp) dpkg --get-selections → (film) dpkg --set-selections でパッケージリストを揃えようと思ったら、 こちら の罠にはまる。結局書いてあったように
apt-get install dselect
dselect update
したらいけるようになった。謎。

backup:

それぞれ設定。

#3 [linux] linux gpib

てなわけで設置した uhvsp にインストールの try。 debian package はもう無いようなので svn で。 こちら にあるように、~/.subversion/servers を編集して
[global]
http-proxy-exception = プロキシを通さないホスト名
http-proxy-host = プロキシサーバのホスト名
http-proxy-port = プロキシサーバのポート番号 
のように svn の proxy を設定、 こちら を参考に
svn co https://linux-gpib.svn.sourceforge.net/svnroot/linux-gpib/trunk linux-gpib 
で trunk を持ってきた。
sudo apt-get install automake libtool flex bison build-essential linux-headers-686-pae
./bootstrap
./configure
make
sudo make install
という感じで build とインストールはできた模様。 ここで modprobe agilent_82357a などが効くのを確認 *1 (まだデバイス刺してないので当然何も起こらないが)。

んでこないだ買った GPIB-USB-B が見付からなかった (^_^; ので、 1 本余ってた Agilent の 82357A で try。 ここまでやったところで、どうやら刺しっぱの再起動で
[    2.188429] usb 1-1.1: new full-speed USB device number 3 using ehci_hcd
[    2.282876] usb 1-1.1: New USB device found, idVendor=0957, idProduct=0107
[    2.282881] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[    2.282884] usb 1-1.1: Product: 82357A (041012-10:21)
[    2.282886] usb 1-1.1: Manufacturer: Agilent Technologies, Inc.
[    2.282889] usb 1-1.1: SerialNumber: MY46031021
   :
[    4.210983] Linux-GPIB 3.2.16 Driver
[    4.228528] agilent_82357a_gpib driver loadingprobe succeeded for path: usb-0000:00:1a.0-1.1
[    4.228554] usbcore: registered new interface driver agilent_82357a_gpib
[    4.228556] gpib: registered agilent_82357a interface
となった *3 。ログインして gpib_config したら、
[  100.568016] attached to bus interface 0, address 0xf7105400
[  100.576604] agilent_82357a_attach: attached
となり、無事 /dev/gpib0 に rw できるデバイスができた模様。 いろいろ試行錯誤したので抜けている手順があるかもしれないが。
uhvsp(nakano) ~ [59] ibtest
Do you wish to open a (d)evice or an interface (b)oard?
        (you probably want to open a device): b
enter name of interface board (or device) you wish to open: 82357a
trying to open board named '82357a'
You can:
        w(a)it for an event
        write (c)ommand bytes to bus (system controller only)
        send (d)evice clear (device only)
        change remote (e)nable line (system controller only)
        (g)o to standby (release ATN line, system controller only)
        send (i)nterface clear (system controller only)
        ta(k)e control (assert ATN line, system controller only)
        get bus (l)ine status (board only)
        go to local (m)ode
        change end (o)f transmission configuration
        (q)uit
        (r)ead string
        perform (s)erial poll (device only)
        change (t)imeout on io operations
        request ser(v)ice (board only)
        (w)rite data string
: q
uhvsp(nakano) ~ [60]
ということで、たぶん動くようになったかと。

マニュアル と首っぴきで
#include <gpib/ib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
  int ud_b, ud_d;
  char qigcmd[8];
  short found_listener;
  const char crlf[] = {0x0d, 0x0a, 0};

  ud_b = ibfind("82357a");
  printf("ud_b is %d\n", ud_b);

  ud_d = ibfind("qig");
  printf("ud_d is %d\n", ud_d);

  ibsta = ibsic(ud_b);
  printf("IFC result is %X\n", ibsta);

  ibsta = ibsre(ud_b, 0x01);
  printf("REN result is %X\n", ibsta);

  ibsta = ibeos(ud_d, 0xC00);
  printf("EOS result is %X\n", ibsta);

  strcpy(qigcmd, "K3");
  strcat(qigcmd, crlf);

  ibsta = ibwrt(ud_d, qigcmd, 4);
  printf("WRT result is %X\n", ibsta);
  printf("ERR is %d\n", iberr);

  ibln(ud_b, 1, ALL_SAD, &found_listener);
  printf("LN result is %X\n", ibsta);
  printf("fl value is %d\n", found_listener);

  exit(0);
}
を実行すると
ud_b is 16
ud_d is 17
IFC result is 120
REN result is 120
EOS result is 100
WRT result is 2100
ERR is 0
LN result is 128
fl value is 1
というような結果を返すようにはなった。 しかしどうも不安定ではあるな…まあこのデバイスは以前からだが。
*1: 実際にはパッケージが足りずに install の途中で何度かエラーになったせいか、 depmod -a が必要だった。
*2: 特に以下の作業には関係ないが、usbfs はこの README にある /proc/bus/usb ではなく /dev/bus/usb 以下にできていた。
*3: これは USB-GPIB の電源が切れてないので、 ファームウェアが入ったままになっていたからのようだ。 移動して起動したときは駄目であった。
(2012-11-08 追記) 自動認識については→ ( 82357A 編 , NI GPIB-USB-B 編 )。

#4 [book] Optical properties of solids

大学図書館にはなかった。中古で買う方向で。
amazon.co.jp に安いのがあったので注文した。

#5 [dept] 郵便

今日は 4 日以降はじめて事務室が開く日なのでいっぱい来ていた。 応用物理も来ていた。なるほどこれ 10 日発行で、 そこにはちゃんと講演会のプログラムが載っていたのであった…

#6 帰り

仙川世田谷経由、丸子橋で渡って帰宅。
コメント [全部読む/投稿する]

以上、1 日分です。
タイトル一覧
カテゴリ分類
book
dept
issp
labo
paper
snap
stock
vsj
Powered by hns-2.19.5, HyperNikkiSystem Project

中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp> Since 1999-10-07
RSS feed, 更新時刻, LIRS エントリ, アクセス制御 (解説)

中野のホームページへ