【问题标题】:Socat virtual serial port not recognizedsocat 虚拟串口无法识别
【发布时间】:2012-07-24 15:56:07
【问题描述】:

我正在使用 socat 创建几个虚拟串行端口。一个我用一个简单的 C 程序(使用 termios)连接,另一个我想用一个名为 Ardupilot Mega Planner 的程序(用于 RC 东西)连接。但是,Planner 无法识别虚拟端口(在 /dev/pts 下列出),只能识别 tty 设备和 /dev/serial 设备。我需要做一些特殊的安装才能让它工作吗?或者有没有我可以尝试的解决方法?我尝试“链接”一个现有的串行端口(例如 ttyS0),但如果我尝试任何此类操作(虚拟端口到真实端口,真实端口到真实端口),我会收到“不适当的 ioctl”错误。有什么想法吗?

编辑:在查看程序(任务规划器)的源代码后,它似乎只“识别”(或添加了)所有 /dev/ttyS* 设备的端口,即 /dev/serial/by- id/* 设备、/dev/USB0 和 /dev/ACM0。所以要么我需要编辑源代码,要么找到一种方法来“验证”一个 ttyS* 端口。 Mission Planner 似乎仍然不会连接到除 S1 或 S0 之外的任何 ttyS* 设备。有任何想法吗?我有一种感觉,这是因为它们的配置不正确,不知何故。

编辑 2:我终于获得了 ArdupilotMega Planner 源代码并对其进行了更改,使其包含来自 /dev/pts/ 的设备。但是,我仍然遇到同样的问题。 Planner 在打开端口时遇到了一些问题。是否有一些设置需要立即检查/更改以使程序能够连接到它?去研究一下,尝试更彻底地理解串口通信...

【问题讨论】:

    标签: virtual-serial-port socat


    【解决方案1】:

    是的,刚刚发现我无法评论我的答案,因为我没有帐户。不管怎样,试试这个命令:

    socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11
    

    并将您的程序链接到 ttyS10 和 ttyS11。

    【讨论】:

    • 好的,现在试试。我的程序(APM Mission Planner)似乎仍然无法识别任何 socat 链接的串行端口。我无法连接到 ttyS10,尽管我使用了您上面给出的确切命令(尽管我不得不像这样使用它:socat -d -d PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11。否则,如果我不输入“-d -”,窗口就会冻结d" in。无论如何,我不知道 socat 是做什么的,但程序似乎并不喜欢它。不过,谢谢你的建议。
    • 另外:Mission Planner 似乎不想连接到 ttyS10,期间,即使 socat 没有做任何事情(通常它会尝试连接到它识别的端口,即使什么都没有插入它们/连接到它们)。所以我不知道这是否是 socat 的问题,就像我的系统无法识别 ttyS10 和/或 ttyS11 一样(尽管 termios 似乎可以接受它们)。
    • 对不起,我不知道是什么导致了这个问题。关于 socat 命令的一切都很好。我想这与 APM 任务计划程序有关。
    【解决方案2】:

    我遇到了同样的问题,通过 tcp 发送串行数据解决了这个问题:

    socat tcp-l:5760 /dev/YOURPORT,raw,echo=0,bHEREBAUDRATE
    

    然后在Misson planner中选择“TCP”,服务器:127.0.0.1,端口:5760

    我可以通过这种方式成功连接到模拟串行端口。

    【讨论】:

      【解决方案3】:

      您是否尝试过链接到更高的 ttyS,例如 ttyS10 或更高。这些通常不分配给任何东西。 编辑:还有你用什么命令来创建串口

      【讨论】:

      • 好吧,这是我用来创建虚拟端口的命令:sudo socat -d -d pty,raw,echo=0 pty,link=/dev/ttyS10,raw,echo=0 然后我尝试用我的程序连接到它,它抛出了一个 I/O 异常(关于一个无效参数) .对不起,我是串行设备新手,但我需要挂载那个端口还是什么?
      • 我担心 SerialPort 对象不能与 socat 虚拟 com 端口一起使用(无效参数异常)。我会将我的代码切换到文件流,看看是否可行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      相关资源
      最近更新 更多