gpt4 book ai didi

linux - 使用 socat 进行原始串行连接

转载 作者:IT王子 更新时间:2023-10-29 00:35:07 34 4
gpt4 key购买 nike

目标是使用串行接口(interface)连接到嵌入式设备。到目前为止,我使用过:

stty -F /dev/ttyS2 115200 cs8 ixoff
socat readline,history=/etc/socat.history /dev/ttyS2,raw,echo=0

它工作得很好,但后来我发现在系统启动期间有一些选项需要你按一个键而不按enter,和 readline 在那里失败了。所以我的想法是将ttyS2绑定(bind)到cons0,但是后来发现了很多问题,比如无法退出(ctr+c, ctr+q ctr+] 甚至 esc 都不行),backspacedelete 不起作用,字母被输入两次,等等。所以经过反复试验,我想到了这个:

socat /dev/cons0,raw,echo=0,crnl /dev/ttyS2,raw,echo=0,escape=0x03,crnl
  • raw 两侧允许单个按键触发启动选项
  • echo=0 两侧防止按键加倍
  • crnl 两侧防止enter key press doubling
  • escape=0x03 允许我通过按 ctr+c
  • 退出

问题是,当我退出时,我的 cons0 完全乱套了,好像它以某种方式保留了 raw,echo=0,crnl设置。我知道这个问题可能对我的场景来说太具体了,但我只需要一种简单的方法来将击键发送到串行,就像使用 putty(我的平台上不可用)一样。我正在使用 socat,因为它非常轻巧,不需要任何额外的库,而且因为显示的命令是使用 expect 的更大脚本的一部分。

非常感谢任何想法和建议。

最佳答案

正如 Austin Phillips 所说,您可以使用 stty sane 来恢复...

...但更好的是,您可以(可能)将它作为 socat xxxxx 附加到您的 socat 命令; stty sane 并在使用 ctrl-c 退出时自动恢复。

关于linux - 使用 socat 进行原始串行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26373006/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com