当前位置: 首页 > news >正文

使用 minicom 录制串口报文并回放

使用 minicom 录制串口报文到串口报文,并通过虚拟串口进行回放

在 Ubuntu 上使用 minicom 录制串口报文到 gps.log 文件,并通过虚拟串口进行回放,可以按照以下步骤操作:

1. 安装 minicom

确保已安装 minicom

sudo apt update
sudo apt install minicom

2. 配置虚拟串口

为了回放串口数据,需要创建一对虚拟串口(例如 /dev/ttyS0/dev/ttyS1)用于模拟串口通信。可以使用 socat 创建虚拟串口对。

安装 socat
sudo apt install socat
创建虚拟串口对

运行以下命令创建一对虚拟串口:

socat -d -d pty,raw,echo=0 pty,raw,echo=0

输出示例:

2025/06/05 04:23:45 socat[1234] N PTY is /dev/pts/0
2025/06/05 04:23:45 socat[1234] N PTY is /dev/pts/1

这里,/dev/pts/0/dev/pts/1 是一对虚拟串口。记下这两个设备名,用于后续录制和回放。

3. 使用 minicom 录制串口报文

假设你的 GPS 设备连接到某个串口(例如 /dev/ttyUSB0 或虚拟串口 /dev/pts/0),以下是录制步骤:

启动 minicom
minicom -D /dev/ttyUSB0 -b 115200
  • -D /dev/ttyUSB0:指定串口设备(根据实际设备替换)。
  • -b 115200:设置波特率(根据 GPS 设备要求调整,例如 4800、9600 或 115200)。
开启日志录制

minicom 界面中:

  1. Ctrl+A,然后按 L 进入日志功能。
  2. 输入日志文件名,例如 gps.log
  3. minicom 会开始将串口数据录制到 gps.log 文件。
退出 minicom

录制完成后,按 Ctrl+A,然后按 X 退出 minicom

4. 通过虚拟串口回放 gps.log

要回放 gps.log,可以使用虚拟串口对(例如 /dev/pts/0/dev/pts/1),将数据从一个虚拟串口发送到另一个虚拟串口。

步骤:
  1. 确保虚拟串口对仍在运行
    如果之前的 socat 进程已关闭,重新运行:

    socat -d -d pty,raw,echo=0 pty,raw,echo=0
    
  2. 回放 gps.log
    使用 catddgps.log 的内容发送到虚拟串口(例如 /dev/pts/0):

    cat gps.log > /dev/pts/0
    

    或控制速度以模拟实时数据:

    pv -q -L 115200 gps.log > /dev/pts/0
    
    • pv -L 115200:限制数据速率(以字节/秒为单位,需根据波特率调整)。

    最好是编写脚本, 模拟数据间隔

    while read -r line; doecho -e "$line\r" > /dev/pts/15sleep 0.1  # 模拟数据间隔
    done < gps.log
    
  3. 在另一端接收数据
    使用 minicom 连接到另一个虚拟串口(例如 /dev/pts/1)查看回放数据:

    minicom -D /dev/pts/1 -b 115200
    

    你将看到 gps.log 中的数据通过虚拟串口回放。

5. 注意事项

  • 权限问题:如果遇到权限问题,确保用户有权访问串口设备:

    sudo usermod -a -G dialout $USER
    sudo chmod 666 /dev/pts/0 /dev/pts/1
    

    然后重新登录或重启终端。

  • 波特率匹配:录制和回放时,波特率必须与 GPS 设备一致。

  • 时间戳:如果 gps.log 包含时间戳,可能需要预处理文件以移除非串口数据。

  • 实时回放:使用 pv 控制数据发送速度可以更真实地模拟 GPS 数据流。

6. 可选:自动化脚本

你可以编写一个简单的脚本自动化录制和回放:

#!/bin/bash
# 录制
minicom -D /dev/ttyUSB0 -b 115200 -C gps.log# 回放
socat -d -d pty,raw,echo=0 pty,raw,echo=0 &
sleep 2
cat gps.log > /dev/pts/0 &
minicom -D /dev/pts/1 -b 115200

保存为 gps_replay.sh,赋予执行权限(chmod +x gps_replay.sh),然后运行:

./gps_replay.sh

如果有进一步问题或需要更详细的配置,请提供 GPS 设备的具体信息或串口参数!

http://www.xdnf.cn/news/892351.html

相关文章:

  • 【YOLO 系列】基于YOLO的飞机表面缺陷智能检测系统【python源码+Pyqt5界面+数据集+训练代码】
  • 掌握YOLOv8:从视频目标检测到划定区域统计计数的实用指南
  • 图简记。。
  • 深度解析数字营销专属大模型 AdLLM 的训练思路
  • 【学习笔记】Lamba表达式[匿名函数]
  • 搜索子字符串的思路与算法分享
  • 类似东郊到家app系统源码开发
  • 《神经渲染变局:高斯泼溅能否改写NeRF规则》
  • 【强化学习】——03 Model-Free RL之基于价值的强化学习
  • hbase资源和数据权限控制
  • 经典算法:回文链表
  • 开发在线问诊APP要注意什么?互联网医院系统源码、功能、合规全详解
  • MATLAB仿真:偏振光在光纤通信中的应用研究_可复现,有问题请联系博主
  • RocketMQ基础概念的理解
  • 28. Revit API:尺寸标注(Dimension)
  • C++STL-vector的使用
  • 非隔离电源方案
  • 【信息系统项目管理师-选择真题】2025上半年(第一批)综合知识答案和详解
  • 【Python训练营打卡】day44 @浙大疏锦行
  • 【PhysUnits】15.15 变量类型(variable.rs)
  • 前端没有“秦始皇“,但可以做跨端的王[特殊字符]
  • 驭码CodeRider 2.0 产品体验 — 搭建邮件服务
  • Web前端之原生表格动态复杂合并行、Vue
  • 农田水利如何「聪明」起来?Modbus转Ethernet IP破解设备互联
  • C语言| 指针在数组中的移动
  • qt ui 转python
  • 三维GIS开发cesium智慧地铁教程(3)entity实体
  • 岩石三轴试验机
  • Spring Boot-面试题(52)
  • 每日算法刷题Day23 6.5:leetcode二分答案3道题,用时1h40min(有点慢)