■
USB-GPSをRubyで使ってみる。Ruby初めて使った。
require 'Win32API' class Gs61Usb @@dll = 'gs61dll' def open(errCode) Win32API.new(@@dll, 'gs61usb_open', %w(p), 'i').call(errCode) end def close(hUsb) Win32API.new(@@dll, 'gs61usb_close', %w(i), 'i').call(hUsb) end def read(hUsb, buf, readLen, nBytesRead) Win32API.new(@@dll, 'gs61usb_read', %w(i p l p), 'i').call(hUsb, buf, readLen, nBytesRead) end def write(hUsb, buf, writeLen, nBytesWrite) Win32API.new(@@dll, 'gs61usb_write', %w(i p l p), 'i').call(hUsb, buf, writeLen, nBytesWrite) end def writeRtcm(hUsb, buf, writeLen, nBytesWrite) Win32API.new(@@dll, 'gs61usb_write_rtcm', %w(i p l p), 'i').call(hUsb, buf, writeLen, nBytesWrite) end def txbufClear(hUsb) Win32API.new(@@dll, 'gs61usb_txbuf_clear', %w(i), 'i').call(hUsb) end def getVersion Win32API.new(@@dll, 'gs61usb_get_version', nil, 'i').call() end end gs = Gs61Usb.new p "version: #{gs.getVersion}" h = gs.open(" "*100) while h < 0 h = gs.open(" "*100) sleep(0.5) end p h
$ ruby test.rb "version: 105" 288096
ASR
$ cscript test.rb Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. "version: 105" 1399992
mswin32
$ c:/ruby/bin/ruby test.rb "version: 105" 366536
なんかHandleの値違うけどいいのかな。っていうかこれがなんなのか分からない。アドレスとか? それ以前に、なんでRubyの環境が色々あるんだ?