当前位置: 首页 > 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.dtcms.com/a/233746.html

相关文章:

  • 黑马Java面试笔记之 并发编程篇(线程池+使用场景)
  • c++算法学习4——广度搜索bfs
  • 如何做好一份技术文档?(上篇)
  • Java 实现下拉框树状结构接口的核心思路
  • 设计模式(代理设计模式)
  • openGauss数据库备份与恢复实践
  • Python中的self参数介绍
  • Cilium动手实验室: 精通之旅---6.Cilium IPv6 Networking and Observability - Lab
  • ROS2里面与话题 /move_base_simple/goal 和 /move_base/status 相对应的话题名字及其含义
  • 基于SSM框架的医院电子病历管理系统,分为用户网页和管理后台,包括科室模块、医生模块、预约挂号模块、就诊记录模块、就诊评价模块、轮播图模块和系统基础模块
  • 【PhysUnits】15.15 变量类型(variable.rs)
  • 【SSM】SpringBoot学习笔记1:SpringBoot快速入门
  • 链表相关知识
  • python技巧:pyvisa打开hislip设备;IEEE 488.2
  • 一日总结0605
  • Spring MVC 之 异常处理
  • 腾讯云服务器端口怎么全部打开?CVM和轻量端口开通教程
  • w10激活方法
  • Java中线程创建的三种方式
  • Java 9 新特性全整理
  • 快递电子面单便宜吗?怎样申请呢
  • 短视频矩阵系统技术saas源头6年开发构架
  • Python使用总结之Mac安装docker并配置wechaty
  • 鸿蒙Next开发真机调试签名申请流程
  • 基于eclipse进行Birt报表开发
  • 轨道交通可视化,赋能智慧车站运维
  • NumPy 比较、掩码与布尔逻辑
  • UDP:简洁高效的报文结构解析与关键注意事项
  • 45、web实验-抽取公共页面
  • 电商实践 基于token防止订单重复创建