我买了一个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监视器将通过哪种格式通过USB发送数据,什么是最聪明的读取方式。
非常感谢S4 Performance Monitor的帮助或使用Ruby从USB设备中获取数据。
非常感谢您的帮助!
您是否看过标题为“ Water Rower S4 S5 USB协议Iss 1.04.doc”的文档?
您可以与制造商联系并询问USB协议的详细信息。如果他们没有告诉您,那么您只需对它进行反向工程。