You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非交互模式下实现DTR脉冲触发与串口输出日志记录?

串口设备输出记录方案(含DTR重置与持久化运行)

一、Python脚本实现

先安装依赖:

pip install pyserial

创建serial-logger.py脚本,实现DTR脉冲重置+串口输出定向到stdout:

import serial
import time
import sys

def pulse_dtr(port, duration=1):
    # 初始化串口(波特率可根据设备实际参数调整)
    ser = serial.Serial(port, baudrate=9600, timeout=1)
    # 发送1秒DTR重置脉冲:拉低DTR保持1秒后恢复
    ser.dtr = False
    time.sleep(duration)
    ser.dtr = True
    return ser

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print(f"用法: {sys.argv[0]} /dev/ttyUSB0")
        sys.exit(1)
    port = sys.argv[1]
    try:
        ser = pulse_dtr(port)
        print(f"已发送1秒DTR脉冲,开始读取{port}输出...")
        # 持续读取串口输出并定向到stdout
        while True:
            line = ser.readline()
            if line:
                sys.stdout.buffer.write(line)
                sys.stdout.flush()
    except KeyboardInterrupt:
        print("\n停止读取")
        ser.close()
    except Exception as e:
        print(f"错误: {e}")
        sys.exit(1)

运行脚本并对接日志工具:

python serial-logger.py /dev/ttyUSB0 | multilog s10000000 n5 ~/logs/

二、systemd用户服务持久化运行

通过systemd用户服务实现会话结束后程序仍保持运行:

  1. 创建服务配置文件~/.config/systemd/user/serial-logger.service:
[Unit]
Description=串口设备日志记录服务
After=default.target

[Service]
Type=simple
# 替换为你的脚本实际路径和串口设备
ExecStart=/usr/bin/python3 /home/your-user/serial-logger.py /dev/ttyUSB0
# 如需直接对接multilog,改用下面的ExecStart
# ExecStart=/bin/sh -c "/usr/bin/python3 /home/your-user/serial-logger.py /dev/ttyUSB0 | multilog s10000000 n5 %h/logs/"
StandardOutput=journal+console
StandardError=journal
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target
  1. 执行以下命令管理服务:
# 重载systemd配置
systemctl --user daemon-reload
# 启动服务
systemctl --user start serial-logger.service
# 设置开机自启
systemctl --user enable serial-logger.service
# 实时查看服务日志
journalctl --user -u serial-logger.service -f

内容的提问来源于stack exchange,提问作者AlexLoss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:38:44