Compare commits
2
Commits
v3.02
..
tool-v1.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ba5b4824c | ||
|
|
7a0304ee65 |
@@ -2,3 +2,5 @@ venv/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.DS_Store
|
||||
build/
|
||||
dist/
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
# DLD154Tool PyInstaller spec — 单文件 Windows/Linux 打包
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[],
|
||||
hiddenimports=[
|
||||
'PySide6.QtCore',
|
||||
'PySide6.QtGui',
|
||||
'PySide6.QtWidgets',
|
||||
'PySide6.QtSerialPort',
|
||||
'serial',
|
||||
],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
noarchive=False,
|
||||
optimize=0,
|
||||
)
|
||||
|
||||
pyz = PYZ(a.pure)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.datas,
|
||||
[],
|
||||
name='DLD154Tool',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
icon=None,
|
||||
)
|
||||
+6
-1
@@ -8,6 +8,8 @@ DLD154Tool — DLD154Pro 桌面串口调试工具
|
||||
|
||||
依赖: PySide6, pyserial
|
||||
"""
|
||||
|
||||
TOOL_VERSION = "1.0.0"
|
||||
import sys
|
||||
import struct
|
||||
import threading
|
||||
@@ -553,7 +555,7 @@ class LogTab(QWidget):
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setWindowTitle("DLD154Tool — DLD154Pro 串口调试工具")
|
||||
self.setWindowTitle(f"DLD154Tool v{TOOL_VERSION} — DLD154Pro 串口调试工具")
|
||||
self.setMinimumSize(800, 650)
|
||||
|
||||
self._sc = SerialClient()
|
||||
@@ -586,6 +588,9 @@ class MainWindow(QMainWindow):
|
||||
|
||||
self._log_tab.append("DLD154Tool 启动")
|
||||
|
||||
# 状态栏: 显示版本
|
||||
self.statusBar().showMessage(f"DLD154Tool v{TOOL_VERSION} | 就绪")
|
||||
|
||||
def _on_connect_changed(self, connected: bool):
|
||||
if connected:
|
||||
self._start_worker()
|
||||
|
||||
@@ -4,6 +4,41 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-31 — 发布 V3.02
|
||||
|
||||
### 变更摘要
|
||||
|
||||
| 变更 | 说明 |
|
||||
|------|------|
|
||||
| `g_loop_cut_amount` 累加修复 | 重连路径补充 `g_loop_cut_last = 0` 边沿记忆清零,修复二次断开后 counter 卡在 1 的问题;放开硬编码 3 次上限 |
|
||||
| Modbus 主动上报线圈事件 | 线圈断开/重连时立即触发主动上报(对齐 700BS 行为) |
|
||||
| 0x2C 复位指令重构 | 700BS: `handle_reset_init()` 改为直接 `SYS_ResetExecute()` MCU 全复位;Modbus: 新增 HR 0x0012 System Cmd,写 0x2C2C 触发全复位 |
|
||||
| HR 0x0012 寄存器 | 协议文档 V1.7:新增 `MB_HR_SYSTEM_CMD` (0x0012),旧 0x00FF 标注废弃 |
|
||||
| DLD154Tool 同步 | `protocol_modbus.py` +`build_reset_mcu()`;`main.py` Modbus Tab 红色复位按钮 |
|
||||
| RS485 初始化时序 | `rs485_init()`/`modbus_init()` 从 `gpio_uart_init()` 移至 `main()` 中 `para_store_init()` 之后,确保波特率参数加载后初始化 |
|
||||
|
||||
### 涉及文件
|
||||
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `peripheral_main.c` | cut_amount 修复 + RS485 初始化时序调整 |
|
||||
| `rs485_700bs.c` | `handle_reset_init()` → `SYS_ResetExecute()` |
|
||||
| `rs485_modbus.c` | +HR 0x0012 read/write (FC 0x03/0x06/0x10) |
|
||||
| `rs485_modbus.h` | +`MB_HR_SYSTEM_CMD` / `MB_CMD_RESET_MCU` |
|
||||
| `protocol_modbus.py` | +`build_reset_mcu()` |
|
||||
| `main.py` | TabModbus +复位按钮 + `_send_reset()` |
|
||||
| `rs485-modbus-protocol.md` | V1.6→V1.7 全量更新 |
|
||||
| `devlog.md` | 本条目 |
|
||||
|
||||
### 影响
|
||||
|
||||
- 线圈断开计数器从现在起如实累加,Modbus 全数据块 `Cut Cnt` 不再卡在 1
|
||||
- 0x2C/HR 0x0012 执行真正的 MCU 全复位(含外设重新初始化),而非仅"复位线圈基线"
|
||||
- 上位机 DLD154Tool 同步支持新复位指令
|
||||
- RS485 初始化不再受参数加载顺序影响
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-30 — Modbus RTU V1.6 私有协议编码实现
|
||||
|
||||
### 背景
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154Pro 产品说明书
|
||||
|
||||
> 单路线圈蓝牙车辆检测器 | 型号: DLD154Pro | 版本: V3.01
|
||||
> 单路线圈蓝牙车辆检测器 | 型号: DLD154Pro | 版本: V3.02
|
||||
> 适用于停车场、收费站、交通卡口等场景的车辆到达/离开检测
|
||||
|
||||
---
|
||||
@@ -273,7 +273,7 @@ DLD154Pro 支持两种 RS485 协议,通过 BLE 小程序切换:
|
||||
| IR | 0x0002–03 | CAPVD | 归一化周期值,32-bit |
|
||||
| HR | 0x0000 | Sensitivity | 灵敏度 0–2,R/W |
|
||||
| HR | 0x0001 | Fusion Mode | 融合模式 0–6,R/W |
|
||||
| HR | 0x00FF | Device Reset | 写 0x5A5A 复位 |
|
||||
| HR | 0x0012 | System Cmd | 写 0x2C2C 复位 MCU |
|
||||
|
||||
> 完整寄存器映射见 `docs/rs485-modbus-protocol.md`。
|
||||
|
||||
@@ -283,8 +283,9 @@ DLD154Pro 支持两种 RS485 协议,通过 BLE 小程序切换:
|
||||
|
||||
| 版本 | 日期 | 说明 |
|
||||
|------|------|------|
|
||||
| V3.00 | 2026-07-21 | 项目初始化:从 DLD110SV4 移植 + 硬件适配 CH591R |
|
||||
| V3.02 | 2026-07-31 | Modbus RTU 协议实现 + 主动上报;0x2C 复位改为 MCU 全复位;`g_loop_cut_amount` 累加修复;上位机 DLD154Tool |
|
||||
| V3.01 | 2026-07-28 | 光耦输出融合模式(6 种);LEDA 同步继电器状态 |
|
||||
| V3.00 | 2026-07-21 | 项目初始化:从 DLD110SV4 移植 + 硬件适配 CH591R |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154Pro 技术规格书
|
||||
|
||||
> 单路线圈蓝牙车辆检测器 | 固件版本: V3.01 | 硬件版本: V3.01
|
||||
> 单路线圈蓝牙车辆检测器 | 固件版本: V3.02 | 硬件版本: V3.01
|
||||
> 本文档面向工程开发、系统集成及故障深度分析
|
||||
|
||||
---
|
||||
@@ -555,8 +555,9 @@ Magic | Addr/Sub | Len | CMD | Data | XOR | SUM
|
||||
|
||||
| 版本 | 日期 | 说明 |
|
||||
|------|------|------|
|
||||
| V3.00 | 2026-07-21 | 项目初始化:从 DLD110SV4 复制基线 + 硬件适配 (CH591R) |
|
||||
| V3.02 | 2026-07-31 | Modbus RTU 协议实现 + 主动上报;0x2C/HR 0x0012 复位改为 `SYS_ResetExecute()` MCU 全复位;`g_loop_cut_amount` 累加修复;RS485 初始化时序调整 |
|
||||
| V3.01 | 2026-07-28 | 光耦输出模式完整实现 (6 种融合逻辑 + 状态机);LEDA 同步继电器状态 |
|
||||
| V3.00 | 2026-07-21 | 项目初始化:从 DLD110SV4 复制基线 + 硬件适配 (CH591R) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user