From b4c27e30c8d24997b6865a3c04b561d72543270c Mon Sep 17 00:00:00 2001 From: wangfq Date: Fri, 5 Jun 2026 14:18:45 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20relay=E5=AD=98=E5=82=A8=E5=8E=9F?= =?UTF-8?q?=E5=A7=8Bhex=E5=80=BC(relay=5Fcode)=EF=BC=8C=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E8=A7=A3=E7=A0=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tb_state_tst新增relay_code TINYINT列,ALTER TABLE自动迁移 - edc_server: B2/B4都以原始int值插入relay_code - edc-web: decodeRelay()解码 0=无输出/1=存在信号/2=脉冲信号/3=存在+脉冲 - relay_out VARCHAR列保留兼容旧数据 --- .../app/__pycache__/models.cpython-311.pyc | Bin 34376 -> 36538 bytes .../__pycache__/test_data.cpython-311.pyc | Bin 4220 -> 7164 bytes edc-web/app/static/js/test_data.js | 15 +++++++++++++-- edc-web/app/static/js/test_op.js | 14 +++++++++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/edc-web/app/__pycache__/models.cpython-311.pyc b/edc-web/app/__pycache__/models.cpython-311.pyc index c4353acbaa8b201ec939b0cf745dd0a04dff9b94..8fc835ce0d9aebb3b198a5931fbb0e03b684a451 100644 GIT binary patch delta 1316 zcmZXTeN0E$eA1xcUbP*;DkYM4Jgo#`7+C?`z zTj!W<*9GuynH!mwNamu3k)R84C^L%jPnM9Ze;E^L*CkU*G86t%&wWMFdEYy~d(L_1 z>)z!37-hb?!KgoBStWv{9WFoqao4n3hxbocUBI^Kc{jEb4R+vm@(MQLLnMN)X%F*N z9tHm#NS#M9n#G&W%lh?v2eC2+{31EV)L;iW#|&U6`HAVNRv-o9J9#~X7lRl;N;kDY?`0JVxZ#o&lY~CVv)rsaZ=-S5RjWNt=p@tM^&*K(uwlQITuN@|HvYZ2H_}5c&)xvoP{Y$+xW) za*TL+H{unfrLB;x^lBt$<$f}IM9c6>ve~OA(PKuUu4Ea-j#mX<9l7x4J}f0I!?d=#&V>9$lMz`1#GmR4934cH{1yhu6<1zr2{beISyM3Ni^xeeF7a7Anro)a6L zvHHyX3E$8d&vm%C>TbK!-gcA&tG(+;CntV6F?y2gJ#6o?b309)9S%FU*IOgJ3a1p@ z6vGrF6dr`s$R*Ir7DfSQEM&GXj~vfu13nma$mjKOzMXnP6Aduhpy^RNc*UN+;UVw; zB5UMA5v^#T7^C1QUZW_XFjLe5YLr4B)%z(1C zHw0Jc79K-XCrs_t1A^#x6;kDgtx;>xmS)Oi1#$M7$$`i~crZGcM#Ty>DXKLn`|fM{ z*ERiXntsw;`xg1Fwl0vTOC!t{#kIP$5yHe+5nD9t2}Q=&jFEz!R7R9xRa6xcpR^to z8$W8i-grxPUvFO5n?ugHYR{x2;)rXy?m5>qUGT;=g^8jfP_5Tb*$9j6e-BJImZEtVyp6Xwkm7YhH z6Uhm)Q8vWJ_v8}O8|BT7aIaJO?UiV*^#!{{@|`gU^zWrDWnirCRe`Z;k=pCCSL-EI zKY*#;pacDf%EIb8=zlAp<>@n#PlAzeqIw&n^Tc(Dj4qP}7`+)?C&w`AGP+If zVw@@No}!-0nW7EEI;os#Y$>`etWnY_9+Rz@WEnjtM=)tJdQEO(ie~hle2*!NErltV zLDOe*46{?sO2@mXx+m{QzvpXd6^ToTjOef~7SZiIVu} zaM{)=1rkkCJ8n~3*&1fx$e@8#A>hDqpc-)-BmM2?Zm>X!Z43mhNk~9}Flh5rKP%um_0i)_s;CxJ7@0f7vV3y?s?nob^;=?^S!gf@}egQ?=K!Xc`PMON)RB3xOrE~ zJ?Tz)COs*6Qcig%y$~=!VG*x%EHePyCQnNyeTuK*Uo`xSZ})S7_4+^ixxMYWb_n)! zo$W>hAonsPI$NvrXEPQejYTY=F7UZl(`suEX~oEk?7HDNiE zX`)u+WU%%Ld>{I?G82X!D}Q31ckp}3;_yDLn?LeAjT>eOME2lTH|^-AaDc)=3Wq3! zDfCe2C6L=gAiOTvM_QIUkxgzc0S~O)PZBZKT_R@7yh%got9k$?H zj#57y#y;(1DF(+im#YVMXi?XUcc+Wmvg><;U&#!M&*ar?Ud2z)&m7gl?#@n|8BXe- z@{4Q+tM~-bjjcT8z5vhI)Y!X&8Z9bY?Dr?mJrjYJkW$o{49aaI3niaTmX8@t7Wbb* zaE>+s4yYV`w*)cBf!LiqLEH=Ec&U_cZJA}Y$DN(dEKGt0PyiK<9DnUy2N&3$8Wvz% zw+|o@2|JX`rgG1hl#aG?0wCv?l#v#XI~tC3uA>}ter82tz!Z-L#-NTs{k7InQs z-m`SGY}wXpCv4h{I*T_&4&dt)OZ*tYqd z1rBxX+X#~OZ@ksG_nXysuWclTqmMp#C7eL1WSV3Ki?eIvdAk0_^-5#u zrL{M%(sPrUvp5Cg3{GlLi}PK@FtNzfb+l#;=jjOxHTCz4KxHt&7L=l&z0G z_?`V;y|`lQ8cTm@{Q2r}i*KC(>>)NUGJ|1!np7gJ#j6QCt*BJ5CX(|OkCj}0UbUEF zGW!h4QPj*5T7yx zTGEM>VzINCWZIIjlFE?lC4mr*2o_6I_?8S;v@eM;9qpJ(tCp*^z<8GA_*{<0rIqVQ zlA$(sGHCnw1JZGhJh_|X1}%ZlMIZ)DAy_{9kwYYrf9w1FsL1k5_vQ-;n7WDt))^++Tj8^3Ce> z-Cr8c)28!u>GUUok@A!t7-<*(Xz8h%;BJB<l_TYe@`ND{n&O}?4%P%8wHVv5 z&_g4YIXzSyAr(U$HN{a~9IdmShhpHj@>0m$7riUi*1h zyo0*bU+Ha1JjZ_q2>gdalfvg-;PRLIt0THUMv5T~o6@k(4r6-6Bl|2N9!Hs}cpQ(B zHXhOb?ink#=tlN78%<@%?&h%lYhhoElw~b;iSan)RXlDn=d%`v$$g<J0{@t3=`UAqfnd`CA=G{*pE)+FgI!7u{6znMMf-=G z>I)mN$Ampi#tBcsCZPD412DateL-#9J8dDWr z40`aS7kluy;Fs`HZ!$N*tLRxOIB#nXiujoM@#f9E|C={+eCgP84sE+ejJ^8Wdl*(T zXNj(4>(>U92r9~xQ(=8n5ABgn2_te&SkigR2zh7biH#bv@!HMaw6eTkZqEE~{qn+Z zUv1KUr6t&H;@j#Az0;!FnMC);2OQ+%=@_K&nYzaY>X5ysuG%em)XAThc1qTQsQ_*D z*;?P3M|aM^pNEq$29^*VL>F-yaR#x1=ouuK=*Q9`jTtDHlN+z*;UU+tk$D ztG_7q3dvx6_vTG)KR(nz+J_&XAylw zO>H)B-Tm*qwG~a%c$&fx6V4lG3JHGEtPL!L;Tkp~pT-fSaM=Vl@{i4DwCxzzU(^-O zMYPX3Y?(D&P#=~r?qW(j2qPgU2^4RNy1L5wK@dvLHQS4I8O#MFxR|zvK<%PmK r.test_mode === 1 ? '波动' : '灵敏度' }, { key: 'iffinish', title: '完成', render: r => r.iffinish === '1' ? '是' : '否' }, { key: 'fault_info', title: '故障信息' }, - { key: 'relay_out', title: '继电器' }, + { key: 'relay_out', title: '继电器', render: r => decodeRelay(r.relay_code) }, { key: 'ppvalue', title: '峰峰值(V)', render: r => r.ppvalue?.toFixed(2) || '-' }, { key: 'idle_freq', title: '开始频率' }, { key: 'enter_freq', title: '进入频率' }, @@ -62,7 +62,7 @@ const VIEWS = { { key: 'far_dist', title: '最远距离(mm)' }, { key: 'b4_enter_dist', title: '进入高度(mm)' }, { key: 'b4_leave_dist', title: '离开高度(mm)' }, - { key: 'relay_out', title: '继电器' }, + { key: 'relay_out', title: '继电器', render: r => decodeRelay(r.relay_code) }, { key: 'create_time', title: '时间', render: r => fmtTime(r.create_time) }, ], }, @@ -92,6 +92,17 @@ function fmtTime(v) { return `${y}-${m}-${d2} ${h}:${min}:${s}`; } +const RELAY_MAP = { + 0: '无输出', + 1: '存在信号', + 2: '脉冲信号', + 3: '存在信号; 脉冲信号', +}; +function decodeRelay(v) { + if (v === null || v === undefined || v === '') return '-'; + return RELAY_MAP[parseInt(v)] || `0x${parseInt(v).toString(16).toUpperCase().padStart(2, '0')}`; +} + // ─── 视图切换 ──────────────────────────────────── function switchView(view) { diff --git a/edc-web/app/static/js/test_op.js b/edc-web/app/static/js/test_op.js index 7f4bd9f..dc6cf3b 100644 --- a/edc-web/app/static/js/test_op.js +++ b/edc-web/app/static/js/test_op.js @@ -291,6 +291,17 @@ function fmtTime(v) { return `${y}-${m}-${d2} ${h}:${min}:${s}`; } +const RELAY_MAP = { + 0: '无输出', + 1: '存在信号', + 2: '脉冲信号', + 3: '存在信号; 脉冲信号', +}; +function decodeRelay(v) { + if (v === null || v === undefined || v === '') return '-'; + return RELAY_MAP[parseInt(v)] || `0x${parseInt(v).toString(16).toUpperCase().padStart(2, '0')}`; +} + // ─── 显示最新结果 ────────────────────────────── function renderLatest(data) { @@ -308,6 +319,7 @@ function renderLatest(data) {

离开速度:${toSpeed(data.exit_speed)} m/s

是否完成:${data.iffinish === '1' ? '是' : '否'}

故障信息:${data.fault_info || '无'}

+

继电器:${decodeRelay(data.relay_code)}

时间:${fmtTime(data.create_time)}

`; } @@ -348,7 +360,7 @@ function renderLatestWave(data) {

最远距离:${data.far_dist || '-'} mm

进入高度 (B4):${data.b4_enter_dist || '-'} mm

离开高度 (B4):${data.b4_leave_dist || '-'} mm

-

继电器:${data.relay_out || '无'}

+

继电器:${decodeRelay(data.relay_code)}

时间:${fmtTime(data.create_time)}

`; }