Mon, Jul 24, 2000 at 12:01:11AM +0900 において
kiwamu さん曰く:

> > 岡部さんのメールを良く読んでみたら、nigpib なんですね。私の持っているカー
> > ドはどれも非常に古いものばかりで nigpib が使えないものでそんなものの存在
> > すらすっかり忘れておりました。インクルードするヘッダとリンクするライブラ
> > リをきちんと選べば私の書いたものでもきちんとコンパイルできる可能性があり
> > ます。
> 
>  はい、ちょっと直しただけで動きました。

 nigpibで使う場合のパッチです。
私の環境ではGPIBアドレスで機器を管理しているはずなので、

  dev = Gpib.new(18)

のようにアドレスで初期化するようにしました。

-- 
Tokyo Metropolitan University     Kiwamu Okabe
 Mail: kiwamu / debian.or.jp
 URL:  http://silica.eei.metro-u.ac.jp/~kiwamu/
--- gpib-rb.orig/gpib.c	Thu Jul 13 16:44:28 2000
+++ gpib-rb/gpib.c	Fri Jul 21 15:30:04 2000
@@ -9,7 +9,7 @@
 #include <windows.h>
 #include "decl-32.h"
 #else
-#include "ib.h"
+#include <sys/ugpib.h>
 #endif
 
 #include "ruby.h"
@@ -39,7 +39,7 @@
 #define _IBPAD(dev,pad) (*p_ibpad)(dev,pad)
 #define _IBSAD(dev,sad) (*p_ibsad)(dev,sad)
 #else
-extern ibcnt, ibsta, iberr;
+/* extern ibcnt, ibsta, iberr; */
 #define _IBSTA ibsta 
 #define _IBCNT ibcnt  
 #define _IBERR iberr  
@@ -66,12 +66,15 @@
 #endif
 
 static VALUE
-ruby_gpib_init(self, devname)
+ruby_gpib_init(self, devnum)
      VALUE self;
-     VALUE devname;
+     VALUE devnum;
 {
-  int dev;
+  int dev, devnumber;
   
+  Check_Type(devnum, T_FIXNUM);
+  devnumber = FIX2INT(devnum);
+
 #if defined (__CYGWIN32__)
     gpiblib = LoadLibrary("GPIB-32.DLL");
 
@@ -108,9 +111,9 @@
     }
 #endif
 
-  if ((dev = _IBFIND(RSTRING(devname)->ptr)) & ERR) {
+  if ((dev = ibdev(0, devnumber, 0, T10s, 1, 0)) & ERR) {
     printf("ibsta = 0x%04x\n", _IBSTA);
-    rb_raise(rb_eRuntimeError, "GPIB find: '%s'\n", (RSTRING(devname)->ptr));
+    rb_raise(rb_eRuntimeError, "GPIB find: '%d'\n", devnumber);
   }
   rb_iv_set(self, "__dev__", INT2NUM(dev));