socat - 无法使用 socat 和 rawer 选项从串行端口读取
问题描述
我正在尝试使用 socat 从串口读取数据;rawer
但是,当通过该选项时,它似乎无法正确地从端口读取。
如果我从端口读取,socat /dev/ttyTHS1,b9600 -
或者socat /dev/ttyTHS1,b9600,raw -
我看到预期的数据,但是当我运行时,socat /dev/ttyTHS1,b9600,rawer -
我没有得到任何输出。
我在内核版本 4.9.140 的 aarch64 处理器上的 Ubuntu 18.04 上运行它。我已经尝试过使用 apt (1.7.3.2-2ubuntu2) 的“stock”socat 以及我从源代码构建的 socat 版本 1.7.4.1。
我注意到的一件事是,当我在工作配置中运行 socat(例如,使用raw
选项)然后检查串行端口时,stty -F /dev/ttyTHS1
它看起来像
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon
而当 socat 使用该rawer
选项运行时,它看起来像:
speed 0 baud; line = 0;
min = 1; time = 0;
-cread
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
并且当在不同平台上使用该rawer
选项运行相同的命令时(socat 1.7.3.2-2ubuntu2,在 Ubuntu 18.04 x86_64、5.4.0-84-generic 上,打开 USB 串行设备),speed
似乎可以正确填充。
有没有理由rawer
在我使用它时不起作用?
解决方案
推荐阅读
- javascript - 角度展开/折叠表格行 - 使用 ng-bootstrap
- docker - 超集 - OAuth - “没有名为 authlib 的模块”
- django - 如何将预定义的表单列表和条件字典添加到 Sessionwizard (Django 2.2)?
- android - FlatList 在 React Native 中不滚动
- flutter - 如何更正此颤动错误:位置 0 处 JSON 中的意外标记 a?
- google-sheets - 将列中的字符堆叠到一个单元格中
- python - Pandas - 无法使用 set_index 时数据帧之间的映射
- guice - Guioce Vertx 使用 promise 参数覆盖 createVerticle
- module - Terraform,提供者错过了模块上的继承
- python - python中的简单单词计数器程序