我正在使用 socat 创建几个虚拟串行端口。一个我使用一个简单的 C 程序(使用 termios)连接,另一个我想使用一个名为 Ardupilot Mega Planner 的程序(用于 RC 东西)连接。但是,Planner 无法识别虚拟端口(在 /dev/pts 下列出),只能识别 tty 设备和 /dev/serial 设备。我需要做一些特殊的安装才能让它工作吗?或者有没有我可以尝试的解决方法?我尝试“链接”现有的串行端口(例如 ttyS0),但如果我尝试任何类似的操作(虚拟端口到真实端口,真实端口到真实端口),我会收到“不适当的 ioctl”错误。有任何想法吗?
编辑:查看程序的源代码(Mission Planner)后,它似乎只“识别”(或添加了)所有 /dev/ttyS* 设备的端口,即 /dev/serial/by-id/*设备、/dev/USB0 和 /dev/ACM0。所以要么我需要编辑源代码,要么找到一种方法来“验证”一个 ttyS* 端口。Mission Planner 似乎仍然不会连接到除 S1 或 S0 之外的任何 ttyS* 设备。有任何想法吗?我有一种感觉,这是因为它们配置不正确,不知何故。
编辑 2:我终于掌握了 ArdupilotMega Planner 源代码并对其进行了更改,使其包含来自 /dev/pts/ 的设备。但是,我仍然遇到同样的问题。Planner 在打开端口时遇到了一些问题。是否有一些设置需要立即检查/更改才能使程序能够连接到它?去研究一下,尝试更彻底的了解串口通信...