From 3d7aec4cad4f7ece5a4c65696889e80dad6f7eff Mon Sep 17 00:00:00 2001 From: wangfq Date: Wed, 3 Jun 2026 11:52:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20FarStay=202B=E2=86=921B=20=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E8=AE=BE=E5=A4=87=E5=AE=9E=E9=99=85=E5=9B=BA=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 协议: 0x4B LEN=0x16, 0x4C LEN=0x1A 代码: build_4b FarStay 1B, parse_4c FarStay payload[24] 前端: FarStay max=255 --- docs/DG430串口协议.md | 22 +++++++++--------- .../app/__pycache__/__init__.cpython-311.pyc | Bin 2713 -> 2881 bytes .../app/__pycache__/models.cpython-311.pyc | Bin 21736 -> 31876 bytes edc-web/app/routes/fixture.py | 7 +++--- edc-web/app/templates/fixture.html | 2 +- edc_server | 2 +- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/docs/DG430串口协议.md b/docs/DG430串口协议.md index 4db89f0..d37f169 100644 --- a/docs/DG430串口协议.md +++ b/docs/DG430串口协议.md @@ -353,9 +353,9 @@ eg: 7F 81 08 4A 00 03 03 00 03 04 00 C4 E0, 表示硬件版本号3   上位机发送格式: -| 7Fh | 80h+ADD | 17h | 4Bh | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 2B | 1B | 1B | +| 7Fh | 80h+ADD | 16h | 4Bh | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 1B | 1B | 1B | 说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并更新测试参数。 @@ -385,13 +385,13 @@ BackForth:1Byte, 来回次数,金属板从最远距离→最近距离→最 NearStay:2Byte, 最近停留时间,到达波动最近距离后停留的时间,单位ms(小端模式) -FarStay:2Byte, 最远停留时间,到达波动最远距离后停留的时间,单位ms(小端模式) +FarStay:1Byte, 最远停留时间,到达波动最远距离后停留的时间,单位ms(范围 0-255) -测试用例:7F 81 19 4B 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 F4 01 2B 9F +测试用例:7F 81 18 4B 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 90 FB E8 用例说明: -Addr:0x01, DevType:0x01, TestMode:1(波动测试), ResetDis:48cm, MinusDis:13cm, SensMin:139, SensMax:230, Fre_Min:1910, FreMax:1750, PeakMin:2480, PeakMax:3100, FarTol:3cm, NearTol:2cm, StepTol:0cm, BackForth:5次, NearStay:200ms, FarStay:500ms。 +Addr:0x01, DevType:0x01, TestMode:1(波动测试), ResetDis:48cm, MinusDis:13cm, SensMin:139, SensMax:230, Fre_Min:1910, FreMax:1750, PeakMin:2480, PeakMax:3100, FarTol:3cm, NearTol:2cm, StepTol:0cm, BackForth:5次, NearStay:200ms, FarStay:144ms。 返回格式: @@ -418,9 +418,9 @@ Addr:0x01, DevType:0x01, TestMode:1(波动测试), ResetDis:48 测试用例:7F 81 01 4C CC CE -| 7Fh | 80h+ADD | 1Bh | 4Ch | Flag | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 2B | 1B | 1B | +| 7Fh | 80h+ADD | 1Ah | 4Ch | Flag | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 1B | 1B | 1B |  Flag:是否故障标志,00=正常,01=故障 @@ -450,9 +450,9 @@ BackForth:来回次数 NearStay:最近停留时间,单位ms(小端模式) -FarStay:最远停留时间,单位ms(小端模式) +FarStay:最远停留时间,单位ms(范围 0-255) -测试用例:7F 81 1B 4C 00 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 F4 01 8A 5E +测试用例:7F 81 1A 4C 00 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 90 10 7A ## 5.11 出厂初始化指令,命令:0x4D diff --git a/edc-web/app/__pycache__/__init__.cpython-311.pyc b/edc-web/app/__pycache__/__init__.cpython-311.pyc index adfd98ff5e8fdf1a3e6740353a3a3b123513db05..1a250558d99d3fefbc704f4cdfeced8165973367 100644 GIT binary patch delta 410 zcmbO!dQgmSIWI340}vEgNoMi0P2`);B*Qdu{Wq=@#uVlp{#>qFj>(El(v$Zw?woAT zC@IXbjFEw1H4sApBSVSe~wiuKD<;(;cY#6!)|PfbbIEl*9-pL~Z|hD#2pogIjaLnbq^%oZ@dz=DD%&t}P* ze3C_EGb`(VCP_u0!drsnsYTgUsio<9#i_}qMVTd)MM{%pISh0`vPDWDB`nGLd3m>( zfwILcKt9NIMY14SQ5d1Rxr(EUQ4wT2Sa2mnkvxbEQuT|&CO1E&G$+-r$au0Um#wrk WBmV@~4-7yGov@i)%O$}A(g^?^qHmG_ delta 267 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 str: """构造 0x4B 配置指令 hex 字符串 (V2.0.3 扩展) - 格式: 7F | 81 | 17 | 4B | Addr(1) | DevType(1) | TestMode(1) | + 格式: 7F | 81 | 16 | 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) | FarTol(1) | NearTol(1) | StepTol(1) | BackForth(1) | - NearStay(2 LE) | FarStay(2 LE) | XOR | SUM + NearStay(2 LE) | FarStay(1) | XOR | SUM """ payload = bytes([ 0x4B, # CMD @@ -90,7 +90,8 @@ def build_4b_packet(addr: int, dev_type: int, test_mode: int, step_tol & 0xFF, back_forth & 0xFF, ]) - payload += _le16(near_stay) + _le16(far_stay) + payload += _le16(near_stay) + payload += bytes([far_stay & 0xFF]) # FarStay 1 字节 pkt = bytes([0x7F, 0x81, len(payload)]) + payload xor, total = _xor_sum(pkt[1:]) diff --git a/edc-web/app/templates/fixture.html b/edc-web/app/templates/fixture.html index 208aa80..8961bb3 100644 --- a/edc-web/app/templates/fixture.html +++ b/edc-web/app/templates/fixture.html @@ -92,7 +92,7 @@
- +
diff --git a/edc_server b/edc_server index 6724af7..7e5fe2c 160000 --- a/edc_server +++ b/edc_server @@ -1 +1 @@ -Subproject commit 6724af79513296eb9d393bef301dc35ae0897531 +Subproject commit 7e5fe2cccda10f02a167852e7fef4099a69a0fc0