使用 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; do
    	echo -e "$line\r" > /dev/pts/15
    	sleep 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 设备的具体信息或串口参数!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值