From: kiwamu Date: 2000-07-24T15:55:20+09:00 Subject: [ruby-list:23991] Re: String#unpack と scanf の関係 --2B/JsCI69OhZNC5r Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit 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/ --2B/JsCI69OhZNC5r Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gpib-rb.diff" Content-Transfer-Encoding: 7bit --- 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 #include "decl-32.h" #else -#include "ib.h" +#include #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)); --2B/JsCI69OhZNC5r--