【问题标题】:Ada GNAT.Serial_Communications behavior on LinuxLinux 上的 Ada GNAT.Serial_Communications 行为
【发布时间】:2013-01-14 11:56:53
【问题描述】:

我有一个 Ada 程序,它与通过 USB 连接的 Intellibox Basic(一个允许您控制火车的盒子)进行通信。

在 Windows 下,我必须安装特定的串行驱动程序(CP210x USB 到 UART 桥 VCP)。有了那个驱动程序,我可以与盒子完美沟通。这意味着向盒子发送命令。

在 Linux 下,我通过 /dev/ttyusb0 进行通信,我能够从盒子中获取消息,但我无法向盒子发送命令。没发生什么事。我没有收到错误或什么的。

GNAT.SerialCommunication 在 Linux 上的行为是否不同?程序是一样的。我是否必须设置某些东西才能让它在 Linux 上运行?

例如:典型的 2 字节命令将命令作为第一个字节,将 CRC 校验作为第二个字节。

【问题讨论】:

    标签: linux usb ada


    【解决方案1】:

    我在某些时候遇到了 Serial_Communication 问题,结果证明是在 Linux 中启用了硬件握手问题。它在 g-sercom.adb 中硬编码,查找“CRTSCTS”。如果您的 Intellibox 不使用硬件握手,Write() 将阻塞。

    我相信我通过从标志中删除 CRTSCTS 掩码解决了这个问题。

    【讨论】:

    • 不幸的是,这并没有解决我的问题。仍然无法向 IB 发送消息。我必须安装上面提到的驱动程序吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多