Linux上的Ada GNAT.Serial_Communications行为

时间:2013-01-14 11:56:54

标签: linux usb ada

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

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

在Linux下我正在通过/dev/ttyusb0进行通信,我可以从框中获取消息,但是我无法向框发送命令。什么都没发生。我没有得到错误或其他什么。

GNAT.SerialCommunication的行为在Linux上是否有所不同?该计划是相同的。我是否必须设置某些东西才能让它在Linux上运行?

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

1 个答案:

答案 0 :(得分:2)

我在某些时候遇到串行通信问题,但在Linux中启用了硬件握手问题。它在g-sercom.adb中被硬编码,寻找“CRTSCTS”。如果您的Intellibox不使用硬件握手,Write()将阻止。

我相信我是通过从标志中删除CRTSCTS掩码来解决它的。