皆さん今晩は、田鎖です。

From: kiwamu <kiwamu / debian.or.jp>
Subject: [ruby-list:27150] Re: gpib-rb
Date: Mon, 15 Jan 2001 12:25:09 +0900

>  こんにちは。岡部です。
> 
>  ありがとうございます。
> てきとーにRAAの方も更新しておきます。

ありがとうございます。

> えーと最近Windows+cygnus+NIなdllでGPIBをやってみる機会がありました。
> こちらの環境もibdevで初期化するようになっているのですが、
> NIなdllでもibfindを持つ環境があるのでしょうか?

NI の Lib はすべて、過去とのコンパチビリティのために ibfind コマンドを持っ
ています。Win 版の ruby+gpib は、NI の Dll を呼び出して動作しますので、
ibfind が(NI は、捨てなさいと言っているが)NI の GPIB Board を使う限り一
番固い方法です。

> 結局
> 
>   Linux + NIなdll    (ibdevで初期化)
>   Linux + linux-gpib (ibfindで初期化)
>   Windows + NIなdll  (ibdevで初期化)
>   Windows + ?なdll  (ibfindで初期化)

なので何か特別なことがない限り私は、ibfind を使います。

From: Shun-ichi GOTO <gotoh / taiyo.co.jp>
Subject: [ruby-list:27154] Re: gpib-rb
Date: Mon, 15 Jan 2001 13:12:21 +0900

> ちょっと余談ですが、NI の IB ライブラリもいいのですが、VISA を使うという
> 選択肢も是非知って欲しいな。GPIBボード/バスの細かい制御を行なわない限り、
> つまり基本的なWrite/Read/SRQ の処理であればVISAを使えば NI/HP のボードに
> 対応しますし、Win/Linux/HP-UX でも扱えます。
> 
> VISAは細かい制御を切り捨てた分、依存度が減り、GPIB/VXI/MXI などのスケー
> ラビリティが上がり、また扱いも容易になっています。

VISA は非常に便利なライブラリですが、NI や Ajirent や Tektronix 等の 
visa lib を作れる様な大きなメーカー以外を排除するのであまり好きではない
です。visa の一番便利なところは それぞれのインターフェースによって変わる
関数名を統一してあることで例えば、GPIB ならば "GPIB0::1::INSTR" の様にア
ドレス指定して open すればよいし、シリアルポートならば "ASRL1::INSTR" の
様にアドレス指定して open すれば良いというところではないでしょうか。これっ
て、オブジェクト指向で言うところの Strategy パターン(元祖RUby本参照、う
そ言ってたらごめん)と言うやつだと思うんですよ。ゆえに ruby で、GPIB や 
シリアルポートの様なインターフェースを表すクラスを作っちゃってそこら中の
インターフェースをラップしてしまえば VISA なんか比較にならないくらい便利
な世界が開けるように思うんだけどな。(現実には、Shun-ichi Goto さんの言わ
れるように、Visa lib 使ってプログラムを組むというのは大正解だと思います。
)


実際には、ruby のおかげで

dev = Gpib.new("dev1") や、
dev = Comport.new("/dev/com1")

してしまえば後は dev.read や dev.write ですんでしまう今の環境は非常にあ
りがたかったりします。(この頃はネットワークでつながる機械もあるのでもっと便利に
遣わせていただいております)

なんか話が変なところに話がいっちゃいましたが、ruby がある意味私の救世主
であることにまちがいはありません。

					'01.01.18 tag