控制USB端口

时间:2009-10-30 22:50:46

标签: c++ windows ruby usb usbserial

我可以使用Ruby或C ++向USB端口发送特定信号,操作系统也是Windows,所以这就像全新的4 me(用于Windows程序),所以我试图将其作为DLL文件,这个DLL可以包含Ruby代码吗?

顺便说一下,这只是一个培训项目,所以它并不重要,我只是在windows下练习这些东西。

1 个答案:

答案 0 :(得分:1)

我在这里看到两个不同的问题。所以我会尝试分开给他们。

如何从代码中控制USB设备

是的,您可以使用自己的代码控制USB设备。使用libusb,你可以做普通usb驱动程序所做的一切。请注意,您不会使用它们所在的端口来解决它们,而是使用它们的制造商和设备ID。在linux下,这适用于任何USB设备。在windows下你必须以某种方式安装libusb作为你不想控制的设备的驱动程序。在http://www.libusb.org/查看有关libusb的更多信息。 win32的libusb托管在http://libusb-win32.sourceforge.net/

如果你不想在ruby中使用libusb,你必须使用某种c绑定。您可以使用http://www.a-k-r.org/ruby-usb/或编写自己的绑定。

如何编译ruby Code

这不是我的专业领域,但正如您将这两个问题视为一个问题。我会尽力回答它。

实际上有编译ruby的方法。

  • 您可以编写一个包含ruby解释器的C程序,并且eval是一串ruby代码。
  • ruby​​2c项目可以将一些ruby代码(不是全部)转换为c。这个c代码可以编译。请参阅http://rubyforge.org/projects/ruby2c/
  • 了解详情

您还应该考虑一下,编译ruby代码是否合理。如果你正在编写一个混合的c ruby​​程序,你可以为ruby制作所有c部分c扩展。这样你的ruby就不需要编译了。你不想在红宝石中为c写一个库吗?这可能意味着对使用此库的c程序产生巨大的性能影响。