Socat串口嗅探

2024-04-25

我目前正在尝试访问连接到应用程序的串行端口的两个方向上的数据。
我想做的是:
ttymxc0 socat sniff ttyV0 应用程序
ttymxc0 是真实端口,ttyV0 是虚拟端口。

我发现 socat 命令适用于 Ubuntu 16.04:http://www.iheartrobotics.com/2010/02/debugginng-serial-interfaces.html http://www.iheartrobotics.com/2010/02/debugginng-serial-interfaces.html

但是当我使用 buildroot 在嵌入式系统上使用它时,我收到此错误:

socat -d /dev/ttymxc0,raw,echo=0 SYSTEM:'tee input.txt | socat - "PTY,link=/tmp/ttyV0,raw,echo=0,waitslave" | tee output.txt'
 socat[3167.1996369920] E address "GOPEN..." in intermediate context, leftdirs=4, rightdirs=7, with 1 parameter(s) is not available
 socat[3167.1996369920] W cannot restore terminal settings on fd 3: Bad file descriptor

我尝试查看文件的访问属性,但没有成功。当您不要求打印输入和输出时它可以工作,但这对我的使用没有用

在这种情况下,buildroot 和 Ubuntu 之间有什么不同吗?


您已经回答了自己的问题,但这个稍微现代化的答案是:

$ socat -x -v /dev/ttyUSB0,rawer,b115200,crnl PTY,link=ttyV1,rawer,crnl
< 2022/01/12 15:34:47.845709  length=11 from=0 to=10
 65 63 68 6f 20 48 65 6c 6c 6f 0a                 echo Hello.
--
> 2022/01/12 15:34:47.847937  length=12 from=0 to=11
 65 63 68 6f 20 48 65 6c 6c 6f 0d 0a              echo Hello..
--
> 2022/01/12 15:34:47.876068  length=7 from=12 to=18
 48 65 6c 6c 6f 0d 0a                             Hello..
--
> 2022/01/12 15:34:47.905274  length=1 from=19 to=19
 24                                               $
--

来自socat manual:

  1. -v“将传输的数据不仅写入目标流,还写入stderr。输出格式是文本,经过一些转换以提高可读性,并以“>”或“
  2. raw已经过时并且rawer“使终端比原始选项更原始。此选项隐式关闭回声。”
  3. b115200“将串行线路速度设置为 115200 波特”,这是一个非常常见的设置。当然,请根据您的情况设置正确的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Socat串口嗅探 的相关文章

  • .NET 中的串行端口通信

    我正在使用 C 从串行端口接收数据 但存在一些问题 我对此很陌生 所以我需要一些帮助 首先我想知道哪些函数是事件驱动的 ReadExisting Read Readbyte Readchar ReadLine Readto 如何从该端口的输
  • Unix:如何清除串口I/O缓冲区?

    我正在为标准 PC 串行端口开发 高级 C 接口 当我打开端口时 我想清除输入和输出缓冲区 以便不接收或发送以前使用该端口的数据 为此 我使用 tcflush 函数 然而 它不起作用 怎么可能 我的 端口开放 代码如下所示 是的 我使用 C
  • Arduino:使用串口和软件串口与蓝牙模块

    我的目的是使用 Arduino 通过 HC 05 蓝牙模块在 PC 和 Android 设备之间建立通信 我使用 PC 和 Arduino 串行监视器 之间的 USB 通信以及 SoftwareSerial 来连接到 HC 05 我的问题是
  • 如何在软件中将两个物理串行端口相互桥接(并记录穿过的数据)?

    基本上 我想将我的计算机放在串行线中间并记录通过它的对话 我正在尝试对这段对话进行逆向工程 并最终模拟对话的一端 我正在尝试做的事情的粗略图 通常 我有这个 Device 1 lt gt Device 2 我想做这个 Device 1 lt
  • 串口通讯显示

    我正在尝试通过串行端口通信进行聊天 这个聊天必须在 WPF 项目中有一个界面 我已经制作了界面和所有内容 我陷入了通过串口接收响应的困境 我已经尝试从串行端口添加 DataReceived 事件 但我担心我使用错误 因为我以前从未用 C 编
  • Buildroot:仅构建一个包作为共享和静态库,所有其他包仅共享

    buildroot 提供了构建的可能性 仅静态 只分享 或共享库和静态库 所选软件包的数量 分配的配置元素是BR2 STATIC LIBS BR2 STATIC LIBS and BR2 SHARED STATIC LIBS 问题 是否可以
  • .NET 错误关闭串口 BaseStream 错误仅在端口打开时出现

    我正在使用 NET System IO Ports SerialPort 并按照本文中的建议使用 BaseStreamIf you must使用 NET System IO Ports SerialPort http www sparxen
  • C++ Linux (Ubuntu) 正确写入串行(对于 Arduino)

    我想知道是否有一种标准方法可以与高效的串行设备进行通信 我应该使用标准库吗 如果有 是哪一个 现在我正在摆弄让 LED 根据输入的数字以给定的量亮起 Arduino 代码如下 只是练习一些东西 看我过于简单且低效的测试 include
  • C#:使用 Winforms 关闭 SerialPort 的正确方法

    我有一个应用程序 我可以从串行端口读取数据 一切正常 直到我关闭该应用程序 当我单击 X 时 应用程序只是挂起 UI 无响应 我从 DataReceived 事件处理程序中的端口读取数据 并在 FormClosed 发生时关闭端口 priv
  • Python:发出嘟嘟声

    我试图让程序给我发出嘟嘟声 我在 Windows 机器上 我看过http docs python org library winsound html http docs python org library winsound html 但不
  • 适用于嵌入式设备的良好串行通信协议/堆栈? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在为各种项目编写了几个不同的自定义串行协议后 我开始对每次重新发明轮子感到沮丧 我一直在寻找更通用的解
  • 以串行对象作为参数的多进程

    我在使用 Python 并将串行对象作为参数传递给单独的进程时遇到问题 该程序在 Windows 8 中运行 因此不能选择使用全局变量 from multiprocessing import Queue from multiprocessi
  • C#读取Arduino

    我正在尝试制作一个从 Arduino 读取传出信号的应用程序 但我无法使其在 C 中工作Windows 窗体 http en wikipedia org wiki Windows Forms 仅在控制台中 我的 C Windows 窗体代码
  • QT Creator 无法在 i.Mx6 (buildroot) 上远程运行和调试

    使用基于 Qt 5 7 0 的 Qt Creator 4 0 2 我的应用程序名称是test 主板 带有 buildroot 的 i M6Q Qt 5 9 问题 A 当我运行 qt app 时显示此错误 EGL library doesn
  • 使用 Qt 打开 SOCAT 创建的虚拟串口

    我正在 MacOS 上开发 Qt5 应用程序 我想测试我的应用程序串行端口通信 我想用socat http www dest unreach org socat 但我无法打开使用 socat 创建的端口 QSerialPortInfo av
  • 即使在重新启动 Ubuntu 18.04 后,具有拨出组权限的非 root 用户的串行端口权限也会被拒绝

    我编写的 systemd 服务以 root 权限启动 并取消系统帐户 称为 mxdaemon 的权限 这些服务需要访问物理串行端口 dev ttyS0 在电脑上 串行端口ls l Serial port crw rw 1 root dial
  • 使用 awk 读取串行输入,插入日期

    我正在尝试重新格式化串行输入 该输入由两个用逗号分隔的整数组成 从 Arduino 发送 1 2 3 4 0 0 0 1 我想在每行后面附加日期 用制表符分隔所有内容 到目前为止 这是我的代码 cat dev cu usbmodem3d11
  • Node.js |如何通过串口向设备发送和接收一个字节?

    我正在尝试编写使用以下方法的 Node js 脚本serialport https serialport io 用于读取和写入数据的 npm 包COM5串行端口 使用 RS 232 电缆连接到设备 该设备会自动传输其拥有的数据 要检索设备内
  • C# .NET 串口已连接,但无法读取或写入

    我使用 C 和 NET 4 5 以及 Visual Studio 2012 编译器 IDE 来打开串行端口并与之交互 我的代码旨在连接到 US Digital 的 QSB 正交 USB 转换器 这是我用来打开端口并连接的代码 this Po
  • 如何在 Mac OS X 10.9.5 上以编程方式读取低功耗蓝牙传输的数据?

    我正在尝试阅读蓝牙低功耗 http www bluetooth com Pages low energy tech info aspx使用 Ruby 以编程方式传输数据 低功耗蓝牙技术不支持标准规范 v4 0 中的串行端口配置文件 SPP

随机推荐

  • 我应该在我的活动中缓存来自 SharedPreferences 的数据吗?

    我正在开发一个基于 GCM 的应用程序 用户可以在其中订阅多个主题 我需要知道用户在两个地方订阅了哪些主题 主要活动 展示Subscribe or Unsubscribe用户界面中的按钮 GCM 侦听器服务 通过以下方式过滤消息并处理 过时
  • 无法在 _app.js 中使用 getStaticProps

    我正在使用 next js 并尝试执行以下操作 获取 app js中与用户数据相关的基本数据 该数据包括标题 用于导航栏 和一些社交链接 用于页脚 在构建时将该数据传递给其他组件 例如页脚和导航栏 用于静态站点生成 为此我已经导出了getS
  • 使用监视器的单车道桥

    在大学里 我从 Gregory R Andrews Foundations of Multithreaded programming 中得到了这个规范的并行编程问题 虽然我有这本书的较新版本和俄语版本 但我发现了一个旧的英语变体并尝试正确传
  • 没有 fflush(stdout) 则输出不打印

    我不明白为什么有时我需要使用fflush 有时不是 我的程序目前出现段错误 我正在使用 print 语句对其进行调试 当程序出现段错误时 stdout不自动刷新缓冲区 我不明白为什么有时需要使用 fflush 而有时需要使用 不是 有时 s
  • 为什么我不能在类方法中使用预定义变量?

    我尝试在类方法中使用预定义变量 例如 PSVersionTable 或 PSScriptRoot 他们失败并显示错误消息 方法中未分配变量 Example Class Foo String Version GetVersion If PSV
  • Git:更改不应该保留在其分支内吗?

    我对使用 Git 还比较陌生 这是我到目前为止所做的 git branch master git status On branch master nothing to commit working directory clean git b
  • ffmpeg 使用 -movflags faststart

    我尝试使用命令 movflags 快速启动 并得到以下错误 Microsoft Windows 版本 6 0 6002 版权所有 c 2006 Microsoft 公司 版权所有 C uploads 1 videos gt ffmpeg i
  • MATLAB 颜色条刻度标记错误?

    我正在绘制 9 个子图 如下图所示 其中一个颜色条代表三个子图 在这里我想将颜色条中的最高值显示为 gt value 令人惊讶的是 当我手动将刻度标签编辑为h TickLabels end gt h TickLabels end 颜色条开始
  • 哪种架构称为非均匀内存访问(NUMA)?

    根据wiki http en wikipedia org wiki Non uniform memory access 非均匀内存访问 NUMA 是一种用于多处理的计算机内存设计 其中内存访问时间取决于相对于处理器的内存位置 但尚不清楚它是
  • 处理数据表中的会话超时(使用服务器端数据源处理)

    我有一个由服务器端 Ajax 数据源支持的数据表表单 它在后端使用 struts 操作来处理请求 获取数据并发送 JSON 响应 服务器端操作需要在身份验证模式下运行 即需要有一个活动会话 处理数据表中会话超时错误的最佳方法是什么 目前它只
  • 用渐变色绘制一个 D3 圆

    如何用渐变颜色画一个圆 比如说 从黄色到蓝色的渐变 通常 要创建黄色圆圈 我们可以使用以下代码 var cdata 50 40 var xscale 40 var xspace 50 var yscale 70 var svg d3 sel
  • 带有版本控制的 json 数据存储

    问题定义 有一个Java服务器存储JSON可以映射到 Java 类的数据 Java 类可能会发生变化 目标是能够更新 Java 类并且仍然能够解码JSON旧版本的数据到新版本的 Java 对象 应该有一个良好的版本控制系统 例如 能够向 J
  • Emacs Evil“重复”(点)行为

    我的中有以下行 emacs define key evil normal state map M j lambda interactive evil next line 5 这使得文件中的导航变得更加容易 例如 与M j我在下面 5 行 所
  • 自动调整文本框控件的垂直大小

    在 C 表单中 我有一个面板锚定所有侧面 内部有一个文本框 锚定顶部 左侧 右侧 当文本加载到文本框中时 我希望它自动垂直扩展 这样我就不需要滚动文本框 如果有更多文本不适合面板 最多滚动面板 有什么方法可以用文本框做到这一点吗 我不限于使
  • WPF 路径冲突检测?

    I have two hexagon shapes
  • 通过 dataTransfer 传递对象

    我试图找出一种通过 javascript 的 event dataTransfer 传递本机对象以进行拖放的方法 我正在编写 CMS 的前端编辑器部分 并希望用户能够拖放元素 许多不同类型 从文件到图像到 HTML 片段到几乎任何内容 这就
  • 查询具有相同ID的同一列中具有不同值的SQL表

    我有一个 SQL Server 2012 表ID First Name and Last name The ID每个人都是唯一的 但由于历史提要中的错误 不同的人被分配了相同的 ID ID FirstName LastName 1 ABC
  • 使用字典作为数据源绑定组合框

    我正在使用 NET 2 0 并且尝试将组合框的数据源绑定到已排序的字典 所以我收到的错误是 在数据源上找不到 DataMember 属性 Key SortedDictionary
  • 记录到 golang 中的文件

    我从 golang 开始 当我开始构建我的应用程序时 我想从一开始就添加日志记录 这就是我遇到问题的地方 如果我打开一个文件并使用标准日志记录库 我就可以写入文件 就像这样 package main import os fmt log fu
  • Socat串口嗅探

    我目前正在尝试访问连接到应用程序的串行端口的两个方向上的数据 我想做的是 ttymxc0 socat sniff ttyV0 应用程序ttymxc0 是真实端口 ttyV0 是虚拟端口 我发现 socat 命令适用于 Ubuntu 16 0