Skip to content

ASD123-dsh/One-line-test

Repository files navigation

AD仪表一线通协议测试工具

一个基于 Python (PyQt5) 开发的专业级 PC 端串口测试工具,用于模拟电动车控制器向多功能仪表发送“一线通”协议数据。支持多种主流厂商协议,广泛应用于仪表研发、生产测试及故障排查场景。

🌟 主要功能

  • 多协议支持:内置十六种主流协议,支持实时动态切换:
    • 瑞轮协议 (V1.56)
    • FZ-sif 协议 (BL1832 Y62/Y45/Y34/Y29)
    • 新日协议 (国标电摩)
    • 杭州安显协议 (无锡星伟)
    • 常州新思维协议
    • 无锡一格 Y67 协议
    • 无锡台铃 Y34B 协议
    • 无锡台铃 Y34F 协议
    • 雅迪标准协议 1.0
    • 优仪宝一线通协议
    • 精显一线通协议
    • 东威 GTXH 协议
    • 芯驰 BMS 协议
    • 绿源 BMS 一线通协议
    • 一线通--锂电池BMS
    • 电池单线通讯协议
  • 全参数仿真
    • 基础数据:车速、转速、里程、电池电量 (SOC)、电压档位。
    • 状态指示:左/右转向、远/近光灯、刹车、巡航、故障指示(霍尔/转把/电机缺相等)。
    • 特殊功能:支持能量回收(负电流)、TCS 状态、充电模式、挡位显示(P/1/2/3/4/R)等。
  • 灵活配置
    • 串口管理:自动扫描 COM 口,支持波特率和 Tosc (位宽) 自定义配置。
    • 场景预设:一键切换“正常运行”、“能量回收”、“故障报警”等典型测试场景。
    • 深度定制:支持每一位 Status 的手动勾选与实时发送。
  • 实时监控:提供 Hex 格式的数据帧发送日志与时间戳记录,方便时序分析。

🛠️ 安装说明

环境要求

  • Windows 10/11
  • Python 3.8+

步骤

  1. 克隆或下载本项目到本地。
  2. 安装依赖库:
    pip install -r requirements.txt
    依赖项包括:PyQt5, pyserial

🚀 使用指南

  1. 连接硬件:使用 USB 转 TTL 模块连接电脑与待测仪表的一线通信号线(通常为绿色或黄色线,需共地)。
  2. 启动软件
    python main.py
  3. 建立通信
    • 在左上角选择对应的 COM 口。
    • 点击 连接 按钮。
  4. 配置参数
    • 选择目标协议(如“瑞轮协议”)。
    • 调整 Tosc 值(默认 100μs,部分仪表可能需要调整为 200μs 或其他)。
  5. 发送数据
    • 手动模式:勾选界面上的状态位,数据会实时更新。
    • 自动模式:点击“循环发送”,软件将以固定间隔(默认 1s)持续发送数据帧。
    • 包组循环:点击“包组配置”可维护多组自定义帧,再用“包组循环”按顺序循环发送。

📂 项目结构

sifexe/
├── main.py                 # 程序入口
├── gui/                    # 界面逻辑
│   ├── main_window.py      # 主窗口实现
│   └── ...
├── protocol/               # 协议核心
│   └── protocol_handler.py # 协议封包与校验算法
├── serial_comm/            # 通信模块
│   └── serial_manager.py   # 串口收发控制
├── PDF/                    # 协议参考文档
└── requirements.txt        # 项目依赖

📄 协议说明

本项目严格遵循各厂商提供的技术规范文档开发(详见 PDF/ 目录):

  • 帧结构通常为:起始位 + DATA0~DATA11 + 校验位
  • 校验方式多为异或校验 (XOR)。
  • 支持协议专用差异化处理,例如:
    • 常州新思维协议的 PlusCode 加密与自动序号
    • FZ-sif 协议的 BL1832 12 字节帧格式、固定 0x08/0x61 帧头与专用电压枚举
    • 杭州安显协议的 Pulse 加密与自动序号
    • 无锡一格 Y67 的固定 0x10 / 0x95 帧头
    • 无锡台铃 Y34B 协议的 13 字节帧、国标/电轻摩区分位与扩展 DATA11 状态
    • 无锡台铃 Y34F 协议的 15 字节帧、TCS/HDC 指示、团标电池故障位与实时电压字段
    • 雅迪协议的电量/电流百分比编码
    • 优仪宝一线通协议的固定 0x08 / 0x61 帧头、Status1 低 4 位映射与电量/电流百分比字段
    • 精显一线通协议的 12 字节帧、固定 0x07 设备编码、Data1 自动递增、Data2/6 不加密、其余指定字段走 PlusCod,默认通过 UART 上送给转码硬件
    • 绿源 BMS 一线通协议的 15 字节帧、累加和校验、按 bit7 到 bit0 的脉宽发送
    • 电池单线通讯协议的 6 字节 SOC 帧、累加和校验、低位先发脉宽发送

🤝 贡献

欢迎提交 Issue 或 Pull Request 来增加新协议支持或改进功能。

📜 许可证

MIT License

About

一个基于 Python (PyQt5) 开发的专业级 PC 端串口测试工具,用于模拟电动车控制器向多功能仪表发送“一线通”协议数据。支持多种主流厂商协议,广泛应用于仪表研发、生产测试及故障排查场景。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors