【发布时间】:2015-04-16 06:31:03
【问题描述】:
我买了一个Waterrower,它有一个S4 Performance Monitor,背面有一个Micro-USB连接器,我认为能够获取来自S4的数据并用它做一些好事会很好.
我确实知道一些 Ruby,但我根本不喜欢与硬件交谈。我确实在 Github 上找到了 libusb Ruby binding by Lars Kanis 并玩弄了它:
2.1.0 :001 > require "libusb"
=> true
2.1.0 :002 > usb = LIBUSB::Context.new
=> #<LIBUSB::Context:0x000001011451c0 @ctx=#<FFI::Pointer address=0x000001032788b0>, @on_pollfd_added=nil, @on_pollfd_removed=nil, @hotplug_callbacks={}>
2.1.0 :003 > usb.devices
=> [#<LIBUSB::Device 20/9 04d8:000a Microchip Technology Inc. CDC RS-232: WR-S4.2 ? (Comm (00,00))>, #<LIBUSB::Device 20/8 054c:0243 Sony Storage Media 2A08080530914 (MassStorage SCSI Bulk-Only)>, #<LIBUSB::Device 20/1 05ac:025a Apple Inc. Apple Internal Keyboard / Trackpad ? (HID (01,01), HID (00,00), HID (01,02))>, #<LIBUSB::Device 20/129 05ac:8007 ? ? ? (Hi-speed Hub with single TT)>, #<LIBUSB::Device 21/128 05ac:8007 ? ? ? (Hub (00,03))>]
2.1.0 :004 > wr_s4 = usb.devices(:idVendor => 0x04d8, :idProduct => 0x000a).first
=> #<LIBUSB::Device 20/9 04d8:000a Microchip Technology Inc. CDC RS-232: WR-S4.2 ? (Comm (00,00))>
2.1.0 :005 > wr_s4
=> #<LIBUSB::Device 20/9 04d8:000a Microchip Technology Inc. CDC RS-232: WR-S4.2 ? (Comm (00,00))>
如您所见,我能够连接到正确的设备(名为wr_s4)。
现在,我不知道 S4 Monitor 将以何种格式通过 USB 发送数据,以及读取数据的最智能方式是什么。
对于 S4 性能监视器或使用 Ruby 从 USB 设备获取数据的任何帮助,我们将不胜感激。
非常感谢您的帮助!
【问题讨论】:
-
嘿,你知道如何在 ruby 中从 USB 发送和获取文件吗?
标签: ruby macos usb osx-yosemite libusb