【问题标题】:Control USB ports控制 USB 端口
【发布时间】:2010-12-11 18:46:08
【问题描述】:

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

顺便说一句,这只是一个培训项目,所以没关系,我只是在windows下练习那些东西。

【问题讨论】:

  • 您有兴趣控制哪种 USB 设备?
  • USB 只是一个总线。什么样的设备连接到总线的另一端?
  • 没什么特别的......但是某种铃声怎么样,当我发送特定信号时响起,然后在我发送另一个信号时停止。

标签: c++ windows ruby usb usbserial


【解决方案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代码

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

实际上有编译ruby的方法。

  • 您可以编写一个 C 程序,其中包含 ruby​​ 解释器和 eval 的 ruby​​ 代码字符串。
  • ruby2c 项目可以将一些 ruby​​ 代码(不是全部)翻译成 c。可以编译此 c 代码。在http://rubyforge.org/projects/ruby2c/ 上查看更多信息。

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

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 2021-03-07
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多