我正在使用 GNU screen 打开串行端口并记录传入的日志二进制数据到文件。我使用的命令是:
screen -S mySession -L -Logfile data_out /dev/ttyUSB0 115200, cs8
在某个时刻,录音停止了。解释似乎是,在某个时刻我收到了字符 0x11 和 0x13 作为二进制流的一部分,它们显然是特殊的终端字符(Ctrl+Q 和 Ctrl+S 或 XON/XOFF?)并影响 GNU 屏幕。
有没有办法登录二进制通过 GNU 屏幕传输数据不会出现此类问题吗?
答案1
如果您的系统确实收到了 XOFF(来自远程系统)并采取了任何事件操作,这是因为:
- 1/ 双方均启用软件流控
- 2/ 远程系统从您的系统获取大量关于其处理/缓冲功能的输入。
由于禁用流控制是错误的行为,因此您应该检查远程系统是否可以处理硬件流控制(RTS/CTS)并启用它(在两侧),同时禁用软件流控制(在两侧),
或者,作为一种快速而肮脏的解决方法,您可以尝试显着降低通信速度和/或增加遥控器的输入缓冲区。