feat: DG430 V2.0.3 — 波动测试模式 前端+后端同步
edc_server: - dg430.py: 新增0xB4解析; 0x4C扩展6字段(向后兼容) - models.py: tb_fixture_param DDL + upsert 新增6字段 - handlers.py: parse_loop 添加0xB4处理; 0x4C传参扩展 edc-web: - fixture.py: build_4b_packet() 新增6个波动参数 - models.py: upsert_fixture_param 字段列表扩展 - fixture.html: 新增波动测试参数输入区(6字段) - fixture.js: getFormParams/fillForm/saveToDb/sendConfig 全部扩展
This commit is contained in:
@@ -59,13 +59,18 @@ def build_4b_packet(addr: int, dev_type: int, test_mode: int,
|
||||
reset_dis: int, minus_dis: int,
|
||||
sens_min: int, sens_max: int,
|
||||
fre_min: int, fre_max: int,
|
||||
peak_min: int, peak_max: int) -> str:
|
||||
"""构造 0x4B 配置指令 hex 字符串
|
||||
peak_min: int, peak_max: int,
|
||||
far_tol: int = 0, near_tol: int = 0,
|
||||
step_tol: int = 0, back_forth: int = 0,
|
||||
near_stay: int = 0, far_stay: int = 0) -> str:
|
||||
"""构造 0x4B 配置指令 hex 字符串 (V2.0.3 扩展)
|
||||
|
||||
格式: 7F | 81 | 12 | 4B | Addr(1) | DevType(1) | TestMode(1) |
|
||||
格式: 7F | 81 | 17 | 4B | Addr(1) | DevType(1) | TestMode(1) |
|
||||
ResetDis(1) | MinusDis(1) |
|
||||
SensMin(2 LE) | SensMax(2 LE) | FreMin(2 LE) | FreMax(2 LE) |
|
||||
PeakMin(2 LE) | PeakMax(2 LE) | XOR | SUM
|
||||
PeakMin(2 LE) | PeakMax(2 LE) |
|
||||
FarTol(1) | NearTol(1) | StepTol(1) | BackForth(1) |
|
||||
NearStay(2 LE) | FarStay(2 LE) | XOR | SUM
|
||||
"""
|
||||
payload = bytes([
|
||||
0x4B, # CMD
|
||||
@@ -78,6 +83,14 @@ def build_4b_packet(addr: int, dev_type: int, test_mode: int,
|
||||
payload += (_le16(sens_min) + _le16(sens_max) +
|
||||
_le16(fre_min) + _le16(fre_max) +
|
||||
_le16(peak_min) + _le16(peak_max))
|
||||
# V2.0.3 波动参数
|
||||
payload += bytes([
|
||||
far_tol & 0xFF,
|
||||
near_tol & 0xFF,
|
||||
step_tol & 0xFF,
|
||||
back_forth & 0xFF,
|
||||
])
|
||||
payload += _le16(near_stay) + _le16(far_stay)
|
||||
|
||||
pkt = bytes([0x7F, 0x81, len(payload)]) + payload
|
||||
xor, total = _xor_sum(pkt[1:])
|
||||
@@ -118,7 +131,7 @@ def api_fixture_command():
|
||||
target = f"{device['serial']}" if device else f"dnt_id={dnt_id}"
|
||||
|
||||
if cmd == "4B":
|
||||
# 动态构造 0x4B 指令
|
||||
# 动态构造 0x4B 指令 (V2.0.3)
|
||||
params = data.get("params", {})
|
||||
send_pkg = build_4b_packet(
|
||||
addr=params.get("addr", 1),
|
||||
@@ -132,6 +145,12 @@ def api_fixture_command():
|
||||
fre_max=params.get("fre_max", 0),
|
||||
peak_min=params.get("peak_min", 0),
|
||||
peak_max=params.get("peak_max", 0),
|
||||
far_tol=params.get("far_tol", 0),
|
||||
near_tol=params.get("near_tol", 0),
|
||||
step_tol=params.get("step_tol", 0),
|
||||
back_forth=params.get("back_forth", 0),
|
||||
near_stay=params.get("near_stay", 0),
|
||||
far_stay=params.get("far_stay", 0),
|
||||
)
|
||||
elif cmd in FIXTURE_COMMANDS:
|
||||
send_pkg = FIXTURE_COMMANDS[cmd]
|
||||
|
||||
Reference in New Issue
Block a user