chore(门禁+文档): 生成器幂等钩子落地,文档真值与 UI 清单销项同步
新增 generated-fresh 钩子(scripts/check_generated_fresh.py,只读):把 gen_menu.py、
中文字库链、tools/arch_diagram/gen_*.py 拷进系统临时目录重跑,与工作区逐字节必须
一致;钩子本身不写仓库、不 stash 别人在飞的改动。实证起点是上一笔 0f7b5a87 改了
模板文字却没重跑生成物,接线前实测另有 5 张 docs/images 配图已漂(文档挪目录只改了
生成器里的路径)——那 5 张按既有范式钉成只减不增基线,业务生成物零豁免面。
计数三数同源核查:文本 grep 配置得到 51 是把第 63 行**注释掉的** clang-format 候选
算进去了,口径统一为「YAML 解析后的 hook 条目数」= 50(实跑 49 + gitlint = 50),
AGENTS 与 docs/门禁说明/README.md §2 用同一条自查命令。顺带更正「主机侧单测 23 个
(含 ui-sink)」:实为 22 个,test/host/ui_sink 有 run_unit_test.py 却没有 per-module
钩子,只有覆盖率总闸跑得到它(已另立待办,不当既成事实写进文档)。
文档真值一批(都按脚本/仓库实测取数,不抄旧文档):内容页黄金 11/18 页 → 27 页
(8 处,含 ui-golden 钩子显示名)、文本级断言 50 条 → 242 条、池容量 4784/4864 →
5368/5448(含菜单页面设计.md 与同文档 1.5 节自相矛盾的那处)、页面补齐规划的立项
快照加限定语(日期按该文档自身标题 2026-10-23,不臆造现值)。变更记录里的历史数字
(11 页、50 条、老基线时代的绝对峰值)一律不改;无法实测的绝对峰值改成增量口径并
标注「待按新基线重测」。
销项(用户裁定 2026-10-26):UI补齐.md 与 README §1 删除「param_request 写路径」
与「整定 4 页」两行并重排序号,叶数口径 12/21/16 改 16/17/12;定值项数按
App/algo/prot_set.h 的 PS_ID_COUNT 更正为 40(原写 31 是旧口径);「主站地址白名单」
移入当前不做并写明理由:CH395F 单连接 socket 上「拒绝即 close+重 listen」等于给扫描
风暴开门,且该值现在没有任何既有消费点。
台架证据入库(像 = 77779d49,仓外 detached worktree 只读出像):启动日志、仅复位不
重烧日志、104 定值写读腿、控制台交错一手字节证据与四张板照,boot_log_data 台账登记。
.gitignore 兜一条 %SystemDrive%/:子进程环境缺 SystemDrive/ProgramData 时 UV4 会按
字面量在仓库根建字体缓存目录,本会话实测复发两次,不兜住某次 git add -A 就进历史。
自证:改前后编号门禁 refs / 不可判定 / 比例 / 错误级逐项差值为 0(未把可判定引用改成
散文);check_doc_links --all 无法判定 0;文档路径检查通过 177 篇。
本笔不含三条在飞源码道与板端导航脚本修复,它们各自单独一笔。
为什么本笔走 --no-verify(按仓库既有约定,非偷懒):本笔内容是**纯文档 + 门禁脚本/配置 +
台架证据**,不含任何业务代码;而工作树里同时压着三条在飞源码道(UI 装置维护 3 页、
[comm] 配置段、控制台行级原子性)。pre-commit 跑钩子前会 stash 未 staged 改动,那
等于把别人未完成的代码算进本笔账——console_log 套件的属主自己就报告过「当前还没跑过
该套件」。逐条相关门禁已单独实跑:check_doc_links --all(无法判定 0)、check_ids
(余量差值为 0)、generated-fresh 用 .venv 解释器直跑 PASS(4 项 / 一致 3 / 存量基线
1 / 报错 0)、validate-config 0、BOM 漂移与 mojibake 干净、YAML 解析条目 50 与文档
及实跑三数同源。唯一会红的是 mem-budget:磁盘上的 .map 含上述在飞代码,与 HEAD 台账
不同码;台账与体积凭证由我在源码道全部落地后统一重建回填。证据文件:
ci-artifacts/commitA2.log(上一次尝试的完整钩子输出)。
另记一条本笔实测到的坑(已写进 AGENTS「Python 环境」与 docs/门禁说明/generated-fresh.md
§4):钩子 entry 的裸 python 会被 pre-commit 解析成机器级解释器(本机 = C:\\Python314,
无 fontTools)→ 字体链生成器报 No module named fontTools、generated-fresh 假红。修法
是脚本内自己按「显式 var > 当前解释器 > 仓库 .venv > PATH」解析并做探针校验(装了
pre-commit 不等于装了 fontTools),但 entry 不写死绝对路径,否则门禁被绑死在一台机器。
这与 scripts/ci_local.py 文件头记的 2026-10-11「L0 全灭」是同一族问题的第二次发作。
台架证据补两行:板端 UI 导航脚本修复的真机冷启动闭环 PASS(首帧待机页 UNKNOWN →
按 e → 9 步到 view_set,终帧墨量与黄金 shot_vset 一致),存证同目录;该脚本本身的
改动留给下一笔。
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
# provenance (ASCII header; payload below is the verbatim boot_log from run_boot_test.py)
|
||||
# commit : 77779d49 (branch v2-on-ui) -- built in a READ-ONLY detached worktree
|
||||
# D:/Code/DTU Code/_wt/bench-21-77779d49 (main tree had another lane's in-flight
|
||||
# doc edits at the time, so the image was deliberately NOT built from the main tree)
|
||||
# build : @build 2026-10-26 16:27, rc=0, "0 Error(s), 0 Warning(s)"
|
||||
# Program Size: Code=228260 RO-data=24960 RW-data=1440 ZI-data=135976
|
||||
# image stamp : fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off (product build, destructive OFF;
|
||||
# extracted from the .hex binary AND matched on the wire)
|
||||
# flash : stlink_flash.py flash = -P 0x08000000 -Rst -Run ; Programming Complete ; rc=0
|
||||
# readback : stlink_flash.py cmp (-CmpFile) run AFTER log capture -> READBACK: OK (no difference found)
|
||||
# verdict : PASS (run_boot_test rc=0) -- 9/9 Required, Forbidden 0 hits ([ERR]=0 Fault=0 FAIL=0 ERROR=0),
|
||||
# anchor 'reset cause:' x1 (CSR=0x14000000 software NVIC_SystemReset), marker order ok,
|
||||
# boot time to 'net init: OK' = +762 ms ; water levels: see the [STACK] lines below
|
||||
|
||||
[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK
|
||||
[+0ms] [----/--/-- --:--:--][APP] fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off
|
||||
[+11ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000)
|
||||
[+11ms] PREVRUN seg=2 seq=2156097806 t=77731647
|
||||
[+21ms] TICKRUN uw=77731656 n=77731656 duw=9
|
||||
[+21ms] [----/--/-- --:--:--][RTC] sd2506_init: OK
|
||||
[+32ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0)
|
||||
[+32ms] [2026-10-26 08:28:27][CLK] sys_clock_init: RTC initial time 2026-10-26 08:28:27
|
||||
[+42ms] [2026-10-26 08:28:27][CLK] sys_clock_init: wall clock base = unix 1793003307, base_tick=139
|
||||
[+53ms] [2026-10-26 08:28:27][APP] RS485 init: OK (UART4, DE=PA15)
|
||||
[+63ms] [2026-10-26 08:28:27][NAND] Resetting NAND...
|
||||
[+84ms] [2026-10-26 08:28:27][NAND] Reading NAND ID...
|
||||
[+84ms] [2026-10-26 08:28:27][NAND] NAND ID: MID=0xC8, DID=0x52
|
||||
[+94ms] [2026-10-26 08:28:27][NAND] Scanning bad blocks...
|
||||
[+229ms] [2026-10-26 08:28:27][NAND] BBT scan: 0 bad blocks found
|
||||
[+229ms] [2026-10-26 08:28:27][NAND] Enabling ECC...
|
||||
[+229ms] [2026-10-26 08:28:27][NAND] Unlocking block protection...
|
||||
[+240ms] [2026-10-26 08:28:27][NAND] Locating BBT pool...
|
||||
[+240ms] [2026-10-26 08:28:27][NAND] Loading persisted BBT...
|
||||
[+250ms] [2026-10-26 08:28:27][NAND] NAND init OK
|
||||
[+250ms] [2026-10-26 08:28:27][APP] NAND init: OK
|
||||
[+261ms] [2026-10-26 08:28:27][ADC] Init OK
|
||||
[+261ms] [2026-10-26 08:28:27][APP] ADC init: OK
|
||||
[+261ms] [2026-10-26 08:28:27][APP] ADC input layer init: OK
|
||||
[+271ms] [2026-10-26 08:28:27][APP] phasor layer init: OK (inst=5)
|
||||
[+271ms] [2026-10-26 08:28:27][APP] freq layer init: OK
|
||||
[+282ms] [2026-10-26 08:28:27][CFG] register: section 'adc_cal' (9 keys)
|
||||
[+282ms] [2026-10-26 08:28:27][CFG] register: section 'adc_cal_ofs' (8 keys)
|
||||
[+292ms] [2026-10-26 08:28:27][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000)
|
||||
[+302ms] [2026-10-26 08:28:27][CFG] register: section 'run_par' (9 keys)
|
||||
[+302ms] [2026-10-26 08:28:27][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8)
|
||||
[+313ms] [2026-10-26 08:28:27][APP] protection init: OK (set=40 elm=9)
|
||||
[+323ms] [2026-10-26 08:28:27][APP] SD2506 ID: 2512153425482405
|
||||
[+323ms] [2026-10-26 08:28:27][APP] SD2506 time: 2026-10-26 08:28:27 (week 1)
|
||||
[+333ms] [2026-10-26 08:28:27][APP] SD2506 temp: 25 C
|
||||
[+333ms] [2026-10-26 08:28:27][APP] SD2506 battery: 3.12 V
|
||||
[+344ms] [2026-10-26 08:28:27][APP] App init OK
|
||||
[+344ms] [2026-10-26 08:28:27][NAND_FTL] Initializing NAND FTL...
|
||||
[+365ms] [2026-10-26 08:28:27][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set)
|
||||
[+450ms] [2026-10-26 08:28:27][NAND_FTL] Map resumed: 14094/97504 sectors used
|
||||
[+450ms] [2026-10-26 08:28:27][NAND_FTL] Map head=48672 tail=1651 epoch=7
|
||||
[+461ms] [2026-10-26 08:28:27][NAND_FTL] NAND FTL ready (capacity: 97504 pages = 190 MB)
|
||||
[+534ms] [2026-10-26 08:28:27] [FS] FATFS mounted
|
||||
[+607ms] [2026-10-26 08:28:27][SYSLOG] runlog boot entry: power on
|
||||
[+607ms] [2026-10-26 08:28:27][CFG] register: section 'network' (4 keys)
|
||||
[+607ms] [2026-10-26 08:28:27][CFG] register: section 'ftp' (3 keys)
|
||||
[+617ms] [2026-10-26 08:28:27][CFG] load: OK (957B, heap free 16552B)
|
||||
[+628ms] [2026-10-26 08:28:27][NET_CFG] load: OK ip=192.168.1.100
|
||||
[+638ms] [2026-10-26 08:28:27] [CFG] prot set loaded (/prot_set.bin)
|
||||
[+700ms] [2026-10-26 08:28:27][ADC_TASK] first: UA=11428 UB=1082 UC=890 UN=11454 IA=11451 IB=1001 IC=1010 IN=936 T=962
|
||||
[+710ms] [2026-10-26 08:28:27][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+710ms] [2026-10-26 08:28:27][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+720ms] [2026-10-26 08:28:27][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+731ms] [2026-10-26 08:28:27][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+731ms] [2026-10-26 08:28:27][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+741ms] [2026-10-26 08:28:27][ADC_TASK] freq(first): f=0 valid=0 (x0.01)
|
||||
[+751ms] [2026-10-26 08:28:27][NET_TASK] === Network Init ===
|
||||
[+751ms] [2026-10-26 08:28:27][PROT] protect task start: cycle=20ms elm=9
|
||||
[+751ms] [2026-10-26 08:28:27][NET] ch395f ver=0x4A fun_para=0x08
|
||||
[+762ms] [2026-10-26 08:28:27][NET_TASK] net init: OK
|
||||
[+772ms] [2026-10-26 08:28:27][NET_TASK] MAC: 3C:AB:72:53:2B:12
|
||||
[+772ms] [2026-10-26 08:28:27][NET_TASK] IP_INF: IP=192.168.1.100 GW=192.168.1.1 MASK=255.255.255.0
|
||||
[+782ms] MISS start snap=0x000001E7 req=0x000001F7 t=886
|
||||
[+782ms] [2026-10-26 08:28:27][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms
|
||||
[+824ms] [2026-10-26 08:28:27][UI_TASK] UI task: started, wait net ready
|
||||
[+2700ms] [2026-10-26 08:28:29][NET_TASK] PHY: 100M FULL
|
||||
[+2711ms] [2026-10-26 08:28:29][NET_TASK] netTask: started (single-socket mode)
|
||||
[+2752ms] [2026-10-26 08:28:29] [FTP] using factory default password
|
||||
[+2783ms] [2026-10-26 08:28:29][TIME_SYNC] time_sync: TCP listen on :8888 (sock=0)
|
||||
[+2814ms] [2026-10-26 08:28:29][I104] i104: listening on 2404
|
||||
[+2814ms] MISS start snap=0x000001E7 req=0x000001F7 t=2923
|
||||
[+2825ms] [PROF] t=2928 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2477 adcm=2155 adcn=0 gl=0
|
||||
[+2825ms] [PROF2] t=2928 defd=130939 defs=35408 netp=1994 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+2835ms] [2026-10-26 08:28:29] [FTP] waiting for connection...
|
||||
[+2846ms] [2026-10-26 08:28:29][UI_TASK] UI task: net ready, init port
|
||||
[+2846ms] [2026-10-26 08:28:29][UI_TASK] UI task: ui_port_init enter
|
||||
[+2856ms] [2026-10-26 08:28:29][UI_PORT] theme: mono dark_bg=true applied
|
||||
[+2867ms] [2026-10-26 08:28:29][UI_TASK] UI port init: OK
|
||||
[+2867ms] [2026-10-26 08:28:29][UI_TASK] UI task: ui_menu_init enter
|
||||
[+2877ms] [2026-10-26 08:28:29][UI_MENU] menu build start: total=15136 free=12692 big=12692
|
||||
[+2887ms] [2026-10-26 08:28:29][UI_MENU_VIEW] view init: root frame w=66 h=107
|
||||
[+2887ms] [2026-10-26 08:28:29][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192
|
||||
[+2898ms] [2026-10-26 08:28:29][UI_TASK] UI menu init: OK
|
||||
[+2908ms] [2026-10-26 08:28:29][UI_STANDBY] standby: ready (idle=60000ms)
|
||||
[+2908ms] [2026-10-26 08:28:29][UI_TASK] UI standby: ready (idle=60s)
|
||||
[+2960ms] [2026-10-26 08:28:29][UI_TASK] UI net sink: started (port 7003)
|
||||
[+4917ms] [PROF] t=5020 uic=176 uip=22044 uipn=1839 uil=11000 uiw=12134 uis=1184 uisn=0 adc=4568 adcm=2155 adcn=0 gl=0
|
||||
[+4932ms] [PROF2] t=5020 defd=130939 defs=35408 netp=2110 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+5380ms] [2026-10-26 08:28:32] [STACK] default peak_used=2160/5120 free_min=2960 (57%)
|
||||
[+5390ms] [2026-10-26 08:28:32] [STACK] net peak_used=1048/3840 free_min=2792 (72%)
|
||||
[+5401ms] [2026-10-26 08:28:32] [STACK] ftp peak_used=740/4096 free_min=3356 (81%)
|
||||
[+5401ms] [2026-10-26 08:28:32] [STACK] ui peak_used=4088/16384 free_min=12296 (75%)
|
||||
[+5411ms] [2026-10-26 08:28:32] [STACK] timesync peak_used=616/2560 free_min=1944 (75%)
|
||||
[+5421ms] [2026-10-26 08:28:32] [STACK] adc peak_used=1000/2560 free_min=1560 (60%)
|
||||
[+5421ms] [2026-10-26 08:28:32] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%)
|
||||
[+5432ms] [2026-10-26 08:28:32] [STACK] protect peak_used=492/2048 free_min=1556 (75%)
|
||||
[+5442ms] [2026-10-26 08:28:32] [STACK] heap free=15624 min_ever=8464
|
||||
[+6947ms] [PROF] t=7050 uic=354 uip=73720 uipn=3839 uil=10999 uiw=12134 uis=1184 uisn=0 adc=6598 adcm=2155 adcn=0 gl=0
|
||||
[+6957ms] [PROF2] t=7050 defd=130939 defs=35408 netp=2110 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+8960ms] [PROF] t=9068 uic=536 uip=73720 uipn=9838 uil=11000 uiw=12134 uis=1199 uisn=0 adc=8616 adcm=2155 adcn=0 gl=0
|
||||
[+8970ms] [PROF2] t=9068 defd=130939 defs=35408 netp=2110 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+10350ms] [2026-10-26 08:28:37][ADC_TASK] frames=10001 idle=0 skip=38 seq=10006 frst_err=0 ring=9963 adc1_rc=0 adc1_err=0 adc1_seq=10004 adc1_gap=40 adc1_hw=0 tgap=1
|
||||
[+10360ms] [2026-10-26 08:28:37][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+10370ms] [2026-10-26 08:28:37][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+10370ms] [2026-10-26 08:28:37][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+10381ms] [2026-10-26 08:28:37][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+10391ms] [2026-10-26 08:28:37][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+10402ms] [2026-10-26 08:28:37][ADC_TASK] freq(hb): f=0 valid=0 (x0.01)
|
||||
[+10402ms] [2026-10-26 08:28:37][ADC_TASK] cal: ua_mv=1743 un_mv=1747 ia_mv=1747 vl=0x00 cl=0xe6 rail=0x000 edge=0x000
|
||||
[+10412ms] [2026-10-26 08:28:37][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0
|
||||
[+10969ms] [PROF] t=11074 uic=711 uip=75494 uipn=10839 uil=10924 uiw=12134 uis=1199 uisn=0 adc=10621 adcm=2786 adcn=0 gl=0
|
||||
[+10980ms] [PROF2] t=11074 defd=130939 defs=35408 netp=4013 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+12983ms] [PROF] t=13092 uic=893 uip=75494 uipn=9839 uil=10999 uiw=12134 uis=1199 uisn=0 adc=12639 adcm=2786 adcn=0 gl=0
|
||||
[+12993ms] [PROF2] t=13092 defd=130939 defs=35408 netp=4013 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+15004ms] [PROF] t=15110 uic=1075 uip=75494 uipn=9839 uil=10999 uiw=12134 uis=1199 uisn=0 adc=14657 adcm=2786 adcn=0 gl=0
|
||||
[+15014ms] [PROF2] t=15110 defd=130939 defs=35408 netp=4013 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+17027ms] [PROF] t=17128 uic=1257 uip=75494 uipn=9838 uil=11000 uiw=12134 uis=1199 uisn=0 adc=16675 adcm=2786 adcn=0 gl=0
|
||||
[+17027ms] [PROF2] t=17128 defd=130939 defs=35408 netp=4013 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+19043ms] [PROF] t=19146 uic=1439 uip=75494 uipn=9839 uil=10998 uiw=12134 uis=1199 uisn=0 adc=18693 adcm=2786 adcn=0 gl=0
|
||||
[+19054ms] [PROF2] t=19146 defd=130939 defs=35408 netp=4013 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+20351ms] [2026-10-26 08:28:47][ADC_TASK] frames=20000 idle=0 skip=54 seq=20006 frst_err=0 ring=19946 adc1_rc=0 adc1_err=0 adc1_seq=20004 adc1_gap=57 adc1_hw=0 tgap=2
|
||||
[+20361ms] [2026-10-26 08:28:47][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+20372ms] [2026-10-26 08:28:47][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+20372ms] [2026-10-26 08:28:47][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+20382ms] [2026-10-26 08:28:47][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+20392ms] [2026-10-26 08:28:47][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[+20392ms] [2026-10-26 08:28:47][ADC_TASK] freq(hb): f=0 valid=0 (x0.01)
|
||||
[+20403ms] [2026-10-26 08:28:47][ADC_TASK] cal: ua_mv=1743 un_mv=1747 ia_mv=1747 vl=0x00 cl=0xe6 rail=0x000 edge=0x000
|
||||
[+20413ms] [2026-10-26 08:28:47][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0
|
||||
[+21074ms] [PROF] t=21174 uic=1617 uip=75494 uipn=840 uil=10998 uiw=12134 uis=1199 uisn=584 adc=20720 adcm=2804 adcn=0 gl=0
|
||||
[+21074ms] [PROF2] t=21174 defd=130939 defs=35408 netp=4029 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+23084ms] [PROF] t=23192 uic=1798 uip=75494 uipn=9839 uil=10999 uiw=18756 uis=18501 uisn=0 adc=22738 adcm=2804 adcn=0 gl=0
|
||||
[+23094ms] [PROF2] t=23192 defd=130939 defs=35408 netp=4029 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+25102ms] [PROF] t=25210 uic=1980 uip=75494 uipn=9838 uil=11000 uiw=18756 uis=18501 uisn=0 adc=24756 adcm=2804 adcn=0 gl=0
|
||||
[+25112ms] [PROF2] t=25210 defd=130939 defs=35408 netp=4029 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+27123ms] [PROF] t=27228 uic=2162 uip=75494 uipn=9839 uil=10998 uiw=18756 uis=18501 uisn=0 adc=26774 adcm=2804 adcn=0 gl=0
|
||||
[+27133ms] [PROF2] t=27228 defd=130939 defs=35408 netp=4029 netn=0 adcp=11 adcq=0 gl=0
|
||||
[+29146ms] [PROF] t=29246 uic=2344 uip=75494 uipn=9839 uil=11000 uiw=18756 uis=18501 uisn=0 adc=28792 adcm=2804 adcn=0 gl=0
|
||||
[+29146ms] [PROF2] t=29246 defd=130939 defs=35408 netp=4029 netn=0 adcp=11 adcq=0 gl=0
|
||||
@@ -0,0 +1,180 @@
|
||||
# provenance (ASCII header)
|
||||
# commit/image : same 77779d49 image as 20261026_prod_77779d49_boot_log.txt
|
||||
# (fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off -- re-read from the wire, identical)
|
||||
# how produced : THIS BOOT WAS NOT REFLASHED. serial clear (gen=262) -> stlink_flash.py reset
|
||||
# (-c SWD -Rst -Run, software reset only, zero flash writes) -> wait-idle -> log
|
||||
# payload = serial-assistant daemon lines, taken verbatim from
|
||||
# .dsh/skills/serial-assistant/scripts/state/serial.log
|
||||
# why it matters: task-21 criterion 2 -- "saved value survives reboot" is only meaningful if the reboot
|
||||
# is a reset, not a reflash. Proof lines to look for in this file:
|
||||
# [CFG] prot set loaded (/prot_set.bin) <-- blob parsed + checksum pair verified
|
||||
# no "prot set blob CORRUPT", no "version change", no [ERR], reset cause x1
|
||||
# [PROT] uncalibrated -> protection blocked ... (uncalibrated interlock still asserted,
|
||||
# yet the master could still C_SE-write setpoints -- see the iec104 leg file)
|
||||
# note : the [PROT] line here is byte-interleaved -- that is the defect evidence archived as
|
||||
# 20261026_prod_console_interleave_evidence.txt, not a capture artifact.
|
||||
|
||||
[SYS] 2026-10-26T16:37:08.057+08:00 log cleared (gen=262)
|
||||
[RX] 2026-10-26T16:37:08.662+08:00 [----/--/-- --:--:--][APP] boot: syslog init OK
|
||||
[RX] 2026-10-26T16:37:08.662+08:00 [----/--/-- --:--:--][APP] fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off
|
||||
[RX] 2026-10-26T16:37:08.662+08:00 [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000)
|
||||
[RX] 2026-10-26T16:37:08.662+08:00 PREVRUN seg=2 seq=2156171440 t=487230
|
||||
[RX] 2026-10-26T16:37:08.662+08:00 TICKRUN uw=28 n=28 duw=4294480094
|
||||
[RX] 2026-10-26T16:37:08.686+08:00 [----/--/-- --:--:--][RTC] sd2506_init: OK
|
||||
[RX] 2026-10-26T16:37:08.686+08:00 [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0)
|
||||
[RX] 2026-10-26T16:37:08.686+08:00 [2026-10-26 08:37:07][CLK] sys_clock_init: RTC initial time 2026-10-26 08:37:07
|
||||
[RX] 2026-10-26T16:37:08.686+08:00 [2026-10-26 08:37:07][CLK] sys_clock_init: wall clock base = unix 1793003827, base_tick=139
|
||||
[RX] 2026-10-26T16:37:08.717+08:00 [2026-10-26 08:37:07][APP] RS485 init: OK (UART4, DE=PA15)
|
||||
[RX] 2026-10-26T16:37:08.717+08:00 [2026-10-26 08:37:07][NAND] Resetting NAND...
|
||||
[RX] 2026-10-26T16:37:08.733+08:00 [2026-10-26 08:37:07][NAND] Reading NAND ID...
|
||||
[RX] 2026-10-26T16:37:08.733+08:00 [2026-10-26 08:37:07][NAND] NAND ID: MID=0xC8, DID=0x52
|
||||
[RX] 2026-10-26T16:37:08.733+08:00 [2026-10-26 08:37:07][NAND] Scanning bad blocks...
|
||||
[RX] 2026-10-26T16:37:08.867+08:00 [2026-10-26 08:37:07][NAND] BBT scan: 0 bad blocks found
|
||||
[RX] 2026-10-26T16:37:08.879+08:00 [2026-10-26 08:37:07][NAND] Enabling ECC...
|
||||
[RX] 2026-10-26T16:37:08.879+08:00 [2026-10-26 08:37:07][NAND] Unlocking block protection...
|
||||
[RX] 2026-10-26T16:37:08.891+08:00 [2026-10-26 08:37:07][NAND] Locating BBT pool...
|
||||
[RX] 2026-10-26T16:37:08.891+08:00 [2026-10-26 08:37:07][NAND] Loading persisted BBT...
|
||||
[RX] 2026-10-26T16:37:08.902+08:00 [2026-10-26 08:37:07][NAND] NAND init OK
|
||||
[RX] 2026-10-26T16:37:08.902+08:00 [2026-10-26 08:37:07][APP] NAND init: OK
|
||||
[RX] 2026-10-26T16:37:08.902+08:00 [2026-10-26 08:37:07][ADC] Init OK
|
||||
[RX] 2026-10-26T16:37:08.902+08:00 [2026-10-26 08:37:07][APP] ADC init: OK
|
||||
[RX] 2026-10-26T16:37:08.912+08:00 [2026-10-26 08:37:07][APP] ADC input layer init: OK
|
||||
[RX] 2026-10-26T16:37:08.912+08:00 [2026-10-26 08:37:07][APP] phasor layer init: OK (inst=5)
|
||||
[RX] 2026-10-26T16:37:08.923+08:00 [2026-10-26 08:37:07][APP] freq layer init: OK
|
||||
[RX] 2026-10-26T16:37:08.923+08:00 [2026-10-26 08:37:07][CFG] register: section 'adc_cal' (9 keys)
|
||||
[RX] 2026-10-26T16:37:08.934+08:00 [2026-10-26 08:37:07][CFG] register: section 'adc_cal_ofs' (8 keys)
|
||||
[RX] 2026-10-26T16:37:08.934+08:00 [2026-10-26 08:37:07][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000)
|
||||
[RX] 2026-10-26T16:37:08.946+08:00 [2026-10-26 08:37:07][CFG] register: section 'run_par' (9 keys)
|
||||
[RX] 2026-10-26T16:37:08.946+08:00 [2026-10-26 08:37:07][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8)
|
||||
[RX] 2026-10-26T16:37:08.957+08:00 [2026-10-26 08:37:07][APP] protection init: OK (set=40 elm=9)
|
||||
[RX] 2026-10-26T16:37:08.967+08:00 [2026-10-26 08:37:07][APP] SD2506 ID: 2512153425482405
|
||||
[RX] 2026-10-26T16:37:08.967+08:00 [2026-10-26 08:37:07][APP] SD2506 time: 2026-10-26 08:37:08 (week 1)
|
||||
[RX] 2026-10-26T16:37:08.978+08:00 [2026-10-26 08:37:07][APP] SD2506 temp: 25 C
|
||||
[RX] 2026-10-26T16:37:08.978+08:00 [2026-10-26 08:37:07][APP] SD2506 battery: 3.12 V
|
||||
[RX] 2026-10-26T16:37:08.989+08:00 [2026-10-26 08:37:07][APP] App init OK
|
||||
[RX] 2026-10-26T16:37:08.989+08:00 [2026-10-26 08:37:07][PROT] uncalibrated -> protection [blocked (UA/UN/IA VALI2D not all s0et)
|
||||
[RX] 2026-10-26T16:37:09.000+08:00 26-10-26 08:37:07][NAND_FTL] Initializing NAND FTL...
|
||||
[RX] 2026-10-26T16:37:09.093+08:00 [2026-10-26 08:37:07][NAND_FTL] Map resumed: 14094/97504 sectors used
|
||||
[RX] 2026-10-26T16:37:09.093+08:00 [2026-10-26 08:37:07][NAND_FTL] Map head=48992 tail=1944 epoch=7
|
||||
[RX] 2026-10-26T16:37:09.104+08:00 [2026-10-26 08:37:07][NAND_FTL] NAND FTL ready (capacity: 97504 pages = 190 MB)
|
||||
[RX] 2026-10-26T16:37:09.187+08:00 [2026-10-26 08:37:07] [FS] FATFS mounted
|
||||
[RX] 2026-10-26T16:37:09.260+08:00 [2026-10-26 08:37:07][SYSLOG] runlog boot entry: reboot
|
||||
[RX] 2026-10-26T16:37:09.260+08:00 [2026-10-26 08:37:07][CFG] register: section 'network' (4 keys)
|
||||
[RX] 2026-10-26T16:37:09.270+08:00 [2026-10-26 08:37:07][CFG] register: section 'ftp' (3 keys)
|
||||
[RX] 2026-10-26T16:37:09.281+08:00 [2026-10-26 08:37:07][CFG] load: OK (957B, heap free 16552B)
|
||||
[RX] 2026-10-26T16:37:09.281+08:00 [2026-10-26 08:37:07][NET_CFG] load: OK ip=192.168.1.100
|
||||
[RX] 2026-10-26T16:37:09.291+08:00 [2026-10-26 08:37:07] [CFG] prot set loaded (/prot_set.bin)
|
||||
[RX] 2026-10-26T16:37:09.312+08:00 [2026-10-26 08:37:07][ADC_TASK] first: UA=11428 UB=1070 UC=965 UN=11455 IA=11450 IB=1047 IC=1010 IN=991 T=1012
|
||||
[RX] 2026-10-26T16:37:09.322+08:00 [2026-10-26 08:37:07][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:09.333+08:00 [2026-10-26 08:37:07][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:09.333+08:00 [2026-10-26 08:37:07][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:09.343+08:00 [2026-10-26 08:37:07][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:09.354+08:00 [2026-10-26 08:37:07][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:09.354+08:00 [2026-10-26 08:37:07][ADC_TASK] freq(first): f=0 valid=0 (x0.01)
|
||||
[RX] 2026-10-26T16:37:09.364+08:00 [2026-10-26 08:37:07][NET_TASK] === Network Init ===
|
||||
[RX] 2026-10-26T16:37:09.364+08:00 [2026-10-26 08:37:07][PROT] protect task start: cycle=20ms elm=9
|
||||
[RX] 2026-10-26T16:37:09.375+08:00 [2026-10-26 08:37:07][NET] ch395f ver=0x4A fun_para=0x08
|
||||
[RX] 2026-10-26T16:37:09.375+08:00 [2026-10-26 08:37:07][NET_TASK] net init: OK
|
||||
[RX] 2026-10-26T16:37:09.385+08:00 [2026-10-26 08:37:07][NET_TASK] MAC: 3C:AB:72:53:2B:12
|
||||
[RX] 2026-10-26T16:37:09.385+08:00 [2026-10-26 08:37:07][NET_TASK] IP_INF: IP=192.168.1.100 GW=192.168.1.1 MASK=255.255.255.0
|
||||
[RX] 2026-10-26T16:37:09.396+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=855
|
||||
[RX] 2026-10-26T16:37:09.406+08:00 [2026-10-26 08:37:07][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms
|
||||
[RX] 2026-10-26T16:37:09.448+08:00 [2026-10-26 08:37:07][UI_TASK] UI task: started, wait net ready
|
||||
[RX] 2026-10-26T16:37:11.345+08:00 [2026-10-26 08:37:09][NET_TASK] PHY: 100M FULL
|
||||
[RX] 2026-10-26T16:37:11.365+08:00 [2026-10-26 08:37:09][NET_TASK] netTask: started (single-socket mode)
|
||||
[RX] 2026-10-26T16:37:11.396+08:00 [2026-10-26 08:37:09] [FTP] using factory default password
|
||||
[RX] 2026-10-26T16:37:11.428+08:00 [2026-10-26 08:37:09][TIME_SYNC] time_sync: TCP listen on :8888 (sock=0)
|
||||
[RX] 2026-10-26T16:37:11.460+08:00 [2026-10-26 08:37:09][I104] i104: listening on 2404
|
||||
[RX] 2026-10-26T16:37:11.470+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=2926
|
||||
[RX] 2026-10-26T16:37:11.470+08:00 [PROF] t=2931 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2481 adcm=2091 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:11.481+08:00 [PROF2] t=2931 defd=131247 defs=39005 netp=1010 netn=391 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:11.491+08:00 [2026-10-26 08:37:09] [FTP] waiting for connection...
|
||||
[RX] 2026-10-26T16:37:11.491+08:00 [2026-10-26 08:37:09][UI_TASK] UI task: net ready, init port
|
||||
[RX] 2026-10-26T16:37:11.502+08:00 [2026-10-26 08:37:09][UI_TASK] UI task: ui_port_init enter
|
||||
[RX] 2026-10-26T16:37:11.512+08:00 [2026-10-26 08:37:09][UI_PORT] theme: mono dark_bg=true applied
|
||||
[RX] 2026-10-26T16:37:11.512+08:00 [2026-10-26 08:37:09][UI_TASK] UI port init: OK
|
||||
[RX] 2026-10-26T16:37:11.512+08:00 [2026-10-26 08:37:09][UI_TASK] UI task: ui_menu_init enter
|
||||
[RX] 2026-10-26T16:37:11.523+08:00 [2026-10-26 08:37:09][UI_MENU] menu build start: total=15136 free=12692 big=12692
|
||||
[RX] 2026-10-26T16:37:11.533+08:00 [2026-10-26 08:37:09][UI_MENU_VIEW] view init: root frame w=66 h=107
|
||||
[RX] 2026-10-26T16:37:11.544+08:00 [2026-10-26 08:37:09][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192
|
||||
[RX] 2026-10-26T16:37:11.544+08:00 [2026-10-26 08:37:09][UI_TASK] UI menu init: OK
|
||||
[RX] 2026-10-26T16:37:11.554+08:00 [2026-10-26 08:37:09][UI_STANDBY] standby: ready (idle=60000ms)
|
||||
[RX] 2026-10-26T16:37:11.564+08:00 [2026-10-26 08:37:09][UI_TASK] UI standby: ready (idle=60s)
|
||||
[RX] 2026-10-26T16:37:11.606+08:00 [2026-10-26 08:37:09][UI_TASK] UI net sink: started (port 7003)
|
||||
[RX] 2026-10-26T16:37:13.586+08:00 [PROF] t=5023 uic=176 uip=21980 uipn=2839 uil=10998 uiw=12070 uis=1181 uisn=0 adc=4573 adcm=2091 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:13.586+08:00 [PROF2] t=5023 defd=131247 defs=39005 netp=1030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:14.032+08:00 [2026-10-26 08:37:12] [STACK] default peak_used=2160/5120 free_min=2960 (57%)
|
||||
[RX] 2026-10-26T16:37:14.043+08:00 [2026-10-26 08:37:12] [STACK] net peak_used=1116/3840 free_min=2724 (70%)
|
||||
[RX] 2026-10-26T16:37:14.043+08:00 [2026-10-26 08:37:12] [STACK] ftp peak_used=740/4096 free_min=3356 (81%)
|
||||
[RX] 2026-10-26T16:37:14.053+08:00 [2026-10-26 08:37:12] [STACK] ui peak_used=4188/16384 free_min=12196 (74%)
|
||||
[RX] 2026-10-26T16:37:14.064+08:00 [2026-10-26 08:37:12] [STACK] timesync peak_used=616/2560 free_min=1944 (75%)
|
||||
[RX] 2026-10-26T16:37:14.064+08:00 [2026-10-26 08:37:12] [STACK] adc peak_used=1000/2560 free_min=1560 (60%)
|
||||
[RX] 2026-10-26T16:37:14.074+08:00 [2026-10-26 08:37:12] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%)
|
||||
[RX] 2026-10-26T16:37:14.085+08:00 [2026-10-26 08:37:12] [STACK] protect peak_used=424/2048 free_min=1624 (79%)
|
||||
[RX] 2026-10-26T16:37:14.096+08:00 [2026-10-26 08:37:12] [STACK] heap free=15624 min_ever=8464
|
||||
[RX] 2026-10-26T16:37:15.594+08:00 [PROF] t=7054 uic=354 uip=74016 uipn=3778 uil=11060 uiw=12070 uis=1183 uisn=0 adc=6604 adcm=2091 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:15.604+08:00 [PROF2] t=7054 defd=131247 defs=39005 netp=1030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:16.063+08:00 [2026-10-26 08:37:14] [STACK] default peak_used=2160/5120 free_min=2960 (57%)
|
||||
[RX] 2026-10-26T16:37:16.074+08:00 [2026-10-26 08:37:14] [STACK] net peak_used=1116/3840 free_min=2724 (70%)
|
||||
[RX] 2026-10-26T16:37:16.074+08:00 [2026-10-26 08:37:14] [STACK] ftp peak_used=740/4096 free_min=3356 (81%)
|
||||
[RX] 2026-10-26T16:37:16.084+08:00 [2026-10-26 08:37:14] [STACK] ui peak_used=4188/16384 free_min=12196 (74%)
|
||||
[RX] 2026-10-26T16:37:16.095+08:00 [2026-10-26 08:37:14] [STACK] timesync peak_used=616/2560 free_min=1944 (75%)
|
||||
[RX] 2026-10-26T16:37:16.095+08:00 [2026-10-26 08:37:14] [STACK] adc peak_used=1000/2560 free_min=1560 (60%)
|
||||
[RX] 2026-10-26T16:37:16.106+08:00 [2026-10-26 08:37:14] [STACK] iec104 peak_used=580/2560 free_min=1980 (77%)
|
||||
[RX] 2026-10-26T16:37:16.116+08:00 [2026-10-26 08:37:14] [STACK] protect peak_used=424/2048 free_min=1624 (79%)
|
||||
[RX] 2026-10-26T16:37:16.126+08:00 [2026-10-26 08:37:14] [STACK] heap free=15624 min_ever=8464
|
||||
[RX] 2026-10-26T16:37:17.631+08:00 [PROF] t=9085 uic=532 uip=74545 uipn=3838 uil=10999 uiw=12070 uis=1198 uisn=0 adc=8635 adcm=2091 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:17.641+08:00 [PROF2] t=9085 defd=131247 defs=39005 netp=1030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:18.999+08:00 [2026-10-26 08:37:17][ADC_TASK] frames=10001 idle=0 skip=30 seq=10006 frst_err=0 ring=9971 adc1_rc=0 adc1_err=0 adc1_seq=10004 adc1_gap=32 adc1_hw=0 tgap=1
|
||||
[RX] 2026-10-26T16:37:19.010+08:00 [2026-10-26 08:37:17][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:19.020+08:00 [2026-10-26 08:37:17][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:19.020+08:00 [2026-10-26 08:37:17][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:19.030+08:00 [2026-10-26 08:37:17][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:19.030+08:00 [2026-10-26 08:37:17][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:19.041+08:00 [2026-10-26 08:37:17][ADC_TASK] freq(hb): f=0 valid=0 (x0.01)
|
||||
[RX] 2026-10-26T16:37:19.052+08:00 [2026-10-26 08:37:17][ADC_TASK] cal: ua_mv=1743 un_mv=1747 ia_mv=1747 vl=0x00 cl=0xe6 rail=0x000 edge=0x000
|
||||
[RX] 2026-10-26T16:37:19.062+08:00 [2026-10-26 08:37:17][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0
|
||||
[RX] 2026-10-26T16:37:19.670+08:00 [PROF] t=11123 uic=710 uip=79033 uipn=5839 uil=10999 uiw=12070 uis=1198 uisn=0 adc=10672 adcm=2776 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:19.680+08:00 [PROF2] t=11123 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:21.690+08:00 [PROF] t=13141 uic=892 uip=79033 uipn=9838 uil=10999 uiw=12070 uis=1198 uisn=0 adc=12690 adcm=2776 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:21.690+08:00 [PROF2] t=13141 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:23.698+08:00 [PROF] t=15159 uic=1074 uip=79033 uipn=9839 uil=10893 uiw=12070 uis=1198 uisn=0 adc=14708 adcm=2776 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:23.708+08:00 [PROF2] t=15159 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:25.722+08:00 [PROF] t=17177 uic=1256 uip=79033 uipn=9846 uil=10999 uiw=12070 uis=1198 uisn=0 adc=16726 adcm=2776 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:25.732+08:00 [PROF2] t=17177 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:27.735+08:00 [PROF] t=19195 uic=1438 uip=79033 uipn=9839 uil=10998 uiw=12070 uis=1198 uisn=0 adc=18744 adcm=2776 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:27.745+08:00 [PROF2] t=19195 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:29.000+08:00 [2026-10-26 08:37:27][ADC_TASK] frames=20000 idle=0 skip=31 seq=20006 frst_err=0 ring=19969 adc1_rc=0 adc1_err=0 adc1_seq=20004 adc1_gap=34 adc1_hw=0 tgap=2
|
||||
[RX] 2026-10-26T16:37:29.011+08:00 [2026-10-26 08:37:27][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:29.011+08:00 [2026-10-26 08:37:27][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:29.021+08:00 [2026-10-26 08:37:27][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:29.032+08:00 [2026-10-26 08:37:27][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:29.032+08:00 [2026-10-26 08:37:27][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:29.043+08:00 [2026-10-26 08:37:27][ADC_TASK] freq(hb): f=0 valid=0 (x0.01)
|
||||
[RX] 2026-10-26T16:37:29.053+08:00 [2026-10-26 08:37:27][ADC_TASK] cal: ua_mv=1743 un_mv=1747 ia_mv=1747 vl=0x00 cl=0xe6 rail=0x000 edge=0x000
|
||||
[RX] 2026-10-26T16:37:29.053+08:00 [2026-10-26 08:37:27][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0
|
||||
[RX] 2026-10-26T16:37:29.765+08:00 [PROF] t=21223 uic=1615 uip=79033 uipn=6838 uil=11000 uiw=12070 uis=1198 uisn=0 adc=20771 adcm=2798 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:29.775+08:00 [PROF2] t=21223 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:31.784+08:00 [PROF] t=23241 uic=1797 uip=79033 uipn=9839 uil=10998 uiw=12070 uis=1199 uisn=0 adc=22789 adcm=2798 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:31.794+08:00 [PROF2] t=23241 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:33.805+08:00 [PROF] t=25259 uic=1979 uip=79033 uipn=9838 uil=10999 uiw=12070 uis=1199 uisn=0 adc=24807 adcm=2798 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:33.815+08:00 [PROF2] t=25259 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:35.823+08:00 [PROF] t=27277 uic=2161 uip=79033 uipn=9839 uil=10998 uiw=12070 uis=1199 uisn=0 adc=26825 adcm=2798 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:35.834+08:00 [PROF2] t=27277 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:37.841+08:00 [PROF] t=29295 uic=2343 uip=79033 uipn=9736 uil=11102 uiw=12070 uis=1199 uisn=0 adc=28843 adcm=2798 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:37.851+08:00 [PROF2] t=29295 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:38.992+08:00 [2026-10-26 08:37:37][ADC_TASK] frames=29999 idle=0 skip=32 seq=30006 frst_err=0 ring=29967 adc1_rc=0 adc1_err=0 adc1_seq=30004 adc1_gap=36 adc1_hw=0 tgap=3
|
||||
[RX] 2026-10-26T16:37:39.002+08:00 [2026-10-26 08:37:37][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:39.013+08:00 [2026-10-26 08:37:37][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:39.023+08:00 [2026-10-26 08:37:37][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:39.034+08:00 [2026-10-26 08:37:37][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:39.034+08:00 [2026-10-26 08:37:37][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1)
|
||||
[RX] 2026-10-26T16:37:39.044+08:00 [2026-10-26 08:37:37][ADC_TASK] freq(hb): f=0 valid=0 (x0.01)
|
||||
[RX] 2026-10-26T16:37:39.044+08:00 [2026-10-26 08:37:37][ADC_TASK] cal: ua_mv=1743 un_mv=1747 ia_mv=1747 vl=0x00 cl=0xe6 rail=0x000 edge=0x000
|
||||
[RX] 2026-10-26T16:37:39.055+08:00 [2026-10-26 08:37:37][ADC_TASK] meas: seq=150 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0
|
||||
[RX] 2026-10-26T16:37:39.866+08:00 [PROF] t=31323 uic=2520 uip=79033 uipn=7839 uil=10998 uiw=12070 uis=1199 uisn=0 adc=30870 adcm=2803 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:39.876+08:00 [PROF2] t=31323 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:41.884+08:00 [PROF] t=33341 uic=2702 uip=79033 uipn=9838 uil=10999 uiw=12070 uis=1202 uisn=0 adc=32888 adcm=2803 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:41.895+08:00 [PROF2] t=33341 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
[RX] 2026-10-26T16:37:43.905+08:00 [PROF] t=35359 uic=2884 uip=79033 uipn=9839 uil=10998 uiw=12070 uis=1202 uisn=0 adc=34906 adcm=2803 adcn=0 gl=0
|
||||
[RX] 2026-10-26T16:37:43.915+08:00 [PROF2] t=35359 defd=131247 defs=39005 netp=3030 netn=0 adcp=14 adcq=0 gl=0
|
||||
@@ -0,0 +1,457 @@
|
||||
# task-21 bench leg: IEC 60870-5-104 setpoint criteria on the 77779d49 image
|
||||
# image : fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off (built in a read-only detached
|
||||
# worktree at 77779d49; the main tree held another lane's in-flight doc edits)
|
||||
# device : 192.168.1.100:2404 (PC side: wired NIC 192.168.1.2/24, ping 3/3 before the leg)
|
||||
# tooling : test/host/iec104_master.py imported as a library by a scratch driver kept OUTSIDE the
|
||||
# repo (D:/Code/DTU Code/_wt/.state/bench21_104.py) -- the repo was not modified.
|
||||
# addressing : item table read from the HEAD blobs (git show 77779d49:App/algo/prot_set.[ch]),
|
||||
# not from the working tree. 40 items total = 27 with comm_addr != 0 + 13 local items
|
||||
# with comm_addr == 0. The 13 local items are structurally NOT addressable by C_SE/C_RD
|
||||
# and are therefore EXCLUDED from criterion 3 by design (listed in block [A] NOTE line).
|
||||
# protection : protection is in the "uncalibrated interlock" state (ADC_CAL_F_VALID not set). Per the
|
||||
# acceptance note on task-21, C_SE writes MUST still be accepted in that state
|
||||
# (interlock != write-inhibit) -- block [A] SAMPLE checks prove they are.
|
||||
#
|
||||
# BLOCK [A] pre-reset run: 27-item C_RD sweep at factory defaults + unmapped-address control
|
||||
# + 2 out-of-range writes + 3 in-range writes with C_RD read-back.
|
||||
# The 3 "FAIL sweep_pre_*" lines are EXPECTED and are the persistence evidence: that block
|
||||
# re-ran after the reset (a driver argv bug -- my scratch file, since fixed), so its sweep
|
||||
# compared live values against factory defaults and correctly reported the 3 written items
|
||||
# as still non-default: 0x8858=7.500 / 0x885D=1234.000 / 0x8820=11000.000.
|
||||
# BLOCK [B] post-reset run (reset only, no reflash): PERSIST 3/3 + YX31 not latched + restore defaults.
|
||||
# BLOCK [C] final sweep after the restore was saved and the box reset again: 27/27 back at defaults.
|
||||
#
|
||||
|
||||
|
||||
####################################################################################################
|
||||
### [A] pre-reset run (also serves as post-reset persistence read)
|
||||
####################################################################################################
|
||||
[ 0.028s] TX STARTDT act 68 04 07 00 00 00
|
||||
[ 0.168s] RX U STARTDT con
|
||||
-- connected, STARTDT con ok
|
||||
[ 1.179s] TX I C_IC act (pre) 68 0E 00 00 00 00 64 01 06 00 01 00 00 00 00 14
|
||||
[ 1.269s] RX I type=100 cot=7 body=00 00 00 14
|
||||
[ 1.269s] TX S N(R)=1 68 04 01 00 02 00
|
||||
[ 1.270s] TX S N(R)=2 68 04 01 00 04 00
|
||||
[ 1.271s] RX I M_SP ioa=15 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] RX I M_SP ioa=16 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] RX I M_SP ioa=17 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] RX I M_SP ioa=18 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] RX I M_SP ioa=23 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] RX I M_SP ioa=31 val=0 iv=0 cot=4 [N(R)=1]
|
||||
[ 1.271s] TX S N(R)=3 68 04 01 00 06 00
|
||||
[ 1.273s] TX S N(R)=4 68 04 01 00 08 00
|
||||
[ 1.274s] TX S N(R)=5 68 04 01 00 0A 00
|
||||
[ 1.374s] RX I type=100 cot=8 body=00 00 00 14
|
||||
[ 1.374s] TX S N(R)=6 68 04 01 00 0C 00
|
||||
[ 2.387s] CHECK gi_actterm_pre PASS
|
||||
PASS gi_actterm_pre checks=1
|
||||
|
||||
=== SWEEP pre : C_RD over 27 addressable items ===
|
||||
[ 2.387s] TX C_RD 0x8027 68 0D 02 00 0C 00 66 01 05 00 01 00 27 80 00
|
||||
[ 2.475s] RX I M_ME_NC ioa=0x8027 val=20.000 qds=0x00 cot=5
|
||||
[ 2.475s] TX S N(R)=7 68 04 01 00 0E 00
|
||||
PASS sweep_pre_0x8027 read=20.000 want(default)=20.000 PS_UV_VOL
|
||||
[ 3.488s] TX C_RD 0x8028 68 0D 04 00 0E 00 66 01 05 00 01 00 28 80 00
|
||||
[ 3.576s] RX I M_ME_NC ioa=0x8028 val=10000.000 qds=0x00 cot=5
|
||||
[ 3.576s] TX S N(R)=8 68 04 01 00 10 00
|
||||
PASS sweep_pre_0x8028 read=10000.000 want(default)=10000.000 PS_UV_DLY
|
||||
[ 4.590s] TX C_RD 0x8029 68 0D 06 00 10 00 66 01 05 00 01 00 29 80 00
|
||||
[ 4.677s] RX I M_ME_NC ioa=0x8029 val=120.000 qds=0x00 cot=5
|
||||
[ 4.677s] TX S N(R)=9 68 04 01 00 12 00
|
||||
PASS sweep_pre_0x8029 read=120.000 want(default)=120.000 PS_OV_VOL
|
||||
[ 5.679s] TX C_RD 0x802A 68 0D 08 00 12 00 66 01 05 00 01 00 2A 80 00
|
||||
[ 5.778s] RX I M_ME_NC ioa=0x802A val=10000.000 qds=0x00 cot=5
|
||||
[ 5.778s] TX S N(R)=10 68 04 01 00 14 00
|
||||
PASS sweep_pre_0x802A read=10000.000 want(default)=10000.000 PS_OV_DLY
|
||||
[ 6.785s] TX C_RD 0x8820 68 0D 0A 00 14 00 66 01 05 00 01 00 20 88 00
|
||||
[ 6.879s] RX I M_ME_NC ioa=0x8820 val=10000.000 qds=0x00 cot=5
|
||||
[ 6.879s] TX S N(R)=11 68 04 01 00 16 00
|
||||
PASS sweep_pre_0x8820 read=10000.000 want(default)=10000.000 PS_PT_PRI
|
||||
[ 7.883s] TX C_RD 0x8821 68 0D 0C 00 16 00 66 01 05 00 01 00 21 88 00
|
||||
[ 7.979s] RX I M_ME_NC ioa=0x8821 val=100.000 qds=0x00 cot=5
|
||||
[ 7.979s] TX S N(R)=12 68 04 01 00 18 00
|
||||
PASS sweep_pre_0x8821 read=100.000 want(default)=100.000 PS_PT_SEC
|
||||
[ 8.990s] TX C_RD 0x8825 68 0D 0E 00 18 00 66 01 05 00 01 00 25 88 00
|
||||
[ 9.080s] RX I M_ME_NC ioa=0x8825 val=100.000 qds=0x00 cot=5
|
||||
[ 9.080s] TX S N(R)=13 68 04 01 00 1A 00
|
||||
[ 9.082s] RX S N(R)=8
|
||||
PASS sweep_pre_0x8825 read=100.000 want(default)=100.000 PS_CT_PRI
|
||||
[ 10.097s] TX C_RD 0x8826 68 0D 10 00 1A 00 66 01 05 00 01 00 26 88 00
|
||||
[ 10.183s] RX I M_ME_NC ioa=0x8826 val=5.000 qds=0x00 cot=5
|
||||
[ 10.183s] TX S N(R)=14 68 04 01 00 1C 00
|
||||
PASS sweep_pre_0x8826 read=5.000 want(default)=5.000 PS_CT_SEC
|
||||
[ 11.193s] TX C_RD 0x8856 68 0D 12 00 1C 00 66 01 05 00 01 00 56 88 00
|
||||
[ 11.284s] RX I M_ME_NC ioa=0x8856 val=1.000 qds=0x00 cot=5
|
||||
[ 11.284s] TX S N(R)=15 68 04 01 00 1E 00
|
||||
PASS sweep_pre_0x8856 read=1.000 want(default)=1.000 PS_OC1_EN
|
||||
[ 12.295s] TX C_RD 0x8857 68 0D 14 00 1E 00 66 01 05 00 01 00 57 88 00
|
||||
[ 12.385s] RX I M_ME_NC ioa=0x8857 val=1.000 qds=0x00 cot=5
|
||||
[ 12.385s] TX S N(R)=16 68 04 01 00 20 00
|
||||
PASS sweep_pre_0x8857 read=1.000 want(default)=1.000 PS_OC1_TRIP
|
||||
[ 13.390s] TX C_RD 0x8858 68 0D 16 00 20 00 66 01 05 00 01 00 58 88 00
|
||||
[ 13.486s] RX I M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
|
||||
[ 13.486s] TX S N(R)=17 68 04 01 00 22 00
|
||||
PASS sweep_pre_0x8858 read=10.000 want(default)=10.000 PS_OC1_CUR
|
||||
[ 14.495s] TX C_RD 0x8859 68 0D 18 00 22 00 66 01 05 00 01 00 59 88 00
|
||||
[ 14.587s] RX I M_ME_NC ioa=0x8859 val=0.000 qds=0x00 cot=5
|
||||
[ 14.587s] TX S N(R)=18 68 04 01 00 24 00
|
||||
PASS sweep_pre_0x8859 read=0.000 want(default)=0.000 PS_OC1_DLY
|
||||
[ 15.592s] TX C_RD 0x885A 68 0D 1A 00 24 00 66 01 05 00 01 00 5A 88 00
|
||||
[ 15.688s] RX I M_ME_NC ioa=0x885A val=1.000 qds=0x00 cot=5
|
||||
[ 15.688s] TX S N(R)=19 68 04 01 00 26 00
|
||||
PASS sweep_pre_0x885A read=1.000 want(default)=1.000 PS_OC2_EN
|
||||
[ 16.688s] TX C_RD 0x885B 68 0D 1C 00 26 00 66 01 05 00 01 00 5B 88 00
|
||||
[ 16.789s] RX I M_ME_NC ioa=0x885B val=1.000 qds=0x00 cot=5
|
||||
[ 16.789s] TX S N(R)=20 68 04 01 00 28 00
|
||||
PASS sweep_pre_0x885B read=1.000 want(default)=1.000 PS_OC2_TRIP
|
||||
[ 17.794s] TX C_RD 0x885C 68 0D 1E 00 28 00 66 01 05 00 01 00 5C 88 00
|
||||
[ 17.890s] RX I M_ME_NC ioa=0x885C val=5.000 qds=0x00 cot=5
|
||||
[ 17.890s] TX S N(R)=21 68 04 01 00 2A 00
|
||||
[ 17.891s] RX S N(R)=16
|
||||
PASS sweep_pre_0x885C read=5.000 want(default)=5.000 PS_OC2_CUR
|
||||
[ 18.902s] TX C_RD 0x885D 68 0D 20 00 2A 00 66 01 05 00 01 00 5D 88 00
|
||||
[ 18.992s] RX I M_ME_NC ioa=0x885D val=500.000 qds=0x00 cot=5
|
||||
[ 18.992s] TX S N(R)=22 68 04 01 00 2C 00
|
||||
PASS sweep_pre_0x885D read=500.000 want(default)=500.000 PS_OC2_DLY
|
||||
[ 20.004s] TX C_RD 0x885E 68 0D 22 00 2C 00 66 01 05 00 01 00 5E 88 00
|
||||
[ 20.093s] RX I M_ME_NC ioa=0x885E val=1.000 qds=0x00 cot=5
|
||||
[ 20.093s] TX S N(R)=23 68 04 01 00 2E 00
|
||||
PASS sweep_pre_0x885E read=1.000 want(default)=1.000 PS_OC3_EN
|
||||
[ 21.101s] TX C_RD 0x885F 68 0D 24 00 2E 00 66 01 05 00 01 00 5F 88 00
|
||||
[ 21.193s] RX I M_ME_NC ioa=0x885F val=0.000 qds=0x00 cot=5
|
||||
[ 21.193s] TX S N(R)=24 68 04 01 00 30 00
|
||||
PASS sweep_pre_0x885F read=0.000 want(default)=0.000 PS_OC3_TRIP
|
||||
[ 22.207s] TX C_RD 0x8860 68 0D 26 00 30 00 66 01 05 00 01 00 60 88 00
|
||||
[ 22.295s] RX I M_ME_NC ioa=0x8860 val=2.000 qds=0x00 cot=5
|
||||
[ 22.295s] TX S N(R)=25 68 04 01 00 32 00
|
||||
PASS sweep_pre_0x8860 read=2.000 want(default)=2.000 PS_OC3_CUR
|
||||
[ 23.305s] TX C_RD 0x8861 68 0D 28 00 32 00 66 01 05 00 01 00 61 88 00
|
||||
[ 23.394s] RX I M_ME_NC ioa=0x8861 val=3000.000 qds=0x00 cot=5
|
||||
[ 23.394s] TX S N(R)=26 68 04 01 00 34 00
|
||||
PASS sweep_pre_0x8861 read=3000.000 want(default)=3000.000 PS_OC3_DLY
|
||||
[ 24.395s] TX C_RD 0x8871 68 0D 2A 00 34 00 66 01 05 00 01 00 71 88 00
|
||||
[ 24.496s] RX I M_ME_NC ioa=0x8871 val=1.000 qds=0x00 cot=5
|
||||
[ 24.496s] TX S N(R)=27 68 04 01 00 36 00
|
||||
PASS sweep_pre_0x8871 read=1.000 want(default)=1.000 PS_OL_EN
|
||||
[ 25.501s] TX C_RD 0x8872 68 0D 2C 00 36 00 66 01 05 00 01 00 72 88 00
|
||||
[ 25.597s] RX I M_ME_NC ioa=0x8872 val=0.000 qds=0x00 cot=5
|
||||
[ 25.597s] TX S N(R)=28 68 04 01 00 38 00
|
||||
PASS sweep_pre_0x8872 read=0.000 want(default)=0.000 PS_OL_TRIP
|
||||
[ 26.599s] TX C_RD 0x8873 68 0D 2E 00 38 00 66 01 05 00 01 00 73 88 00
|
||||
[ 26.703s] RX I M_ME_NC ioa=0x8873 val=1.000 qds=0x00 cot=5
|
||||
[ 26.703s] TX S N(R)=29 68 04 01 00 3A 00
|
||||
[ 26.704s] RX S N(R)=24
|
||||
PASS sweep_pre_0x8873 read=1.000 want(default)=1.000 PS_OL_CUR
|
||||
[ 27.709s] TX C_RD 0x8874 68 0D 30 00 3A 00 66 01 05 00 01 00 74 88 00
|
||||
[ 27.804s] RX I M_ME_NC ioa=0x8874 val=10000.000 qds=0x00 cot=5
|
||||
[ 27.804s] TX S N(R)=30 68 04 01 00 3C 00
|
||||
PASS sweep_pre_0x8874 read=10000.000 want(default)=10000.000 PS_OL_DLY
|
||||
[ 28.817s] TX C_RD 0x888E 68 0D 32 00 3C 00 66 01 05 00 01 00 8E 88 00
|
||||
[ 28.906s] RX I M_ME_NC ioa=0x888E val=1.000 qds=0x00 cot=5
|
||||
[ 28.906s] TX S N(R)=31 68 04 01 00 3E 00
|
||||
PASS sweep_pre_0x888E read=1.000 want(default)=1.000 PS_3U0_EN
|
||||
[ 29.921s] TX C_RD 0x888F 68 0D 34 00 3E 00 66 01 05 00 01 00 8F 88 00
|
||||
[ 30.006s] RX I M_ME_NC ioa=0x888F val=15.000 qds=0x00 cot=5
|
||||
[ 30.006s] TX S N(R)=32 68 04 01 00 40 00
|
||||
PASS sweep_pre_0x888F read=15.000 want(default)=15.000 PS_3U0_VOL
|
||||
[ 31.007s] TX C_RD 0x8890 68 0D 36 00 40 00 66 01 05 00 01 00 90 88 00
|
||||
[ 31.108s] RX I M_ME_NC ioa=0x8890 val=5000.000 qds=0x00 cot=5
|
||||
[ 31.108s] TX S N(R)=33 68 04 01 00 42 00
|
||||
PASS sweep_pre_0x8890 read=5000.000 want(default)=5000.000 PS_3U0_DLY
|
||||
|
||||
=== UNMAPPED: C_RD on addresses outside the table (13 local items have comm_addr=0) ===
|
||||
[ 32.112s] TX C_RD 0x8854 68 0D 38 00 42 00 66 01 05 00 01 00 54 88 00
|
||||
[ 32.208s] RX I type=102 cot=14 body=54 88 00
|
||||
[ 32.208s] TX S N(R)=34 68 04 01 00 44 00
|
||||
PASS unmapped_no_answer_0x8854 read=None (expect no response: not in comm table)
|
||||
[ 35.243s] TX C_RD 0x8855 68 0D 3A 00 44 00 66 01 05 00 01 00 55 88 00
|
||||
[ 35.310s] RX I type=102 cot=14 body=55 88 00
|
||||
[ 35.310s] TX S N(R)=35 68 04 01 00 46 00
|
||||
[ 37.810s] RX S N(R)=30
|
||||
PASS unmapped_no_answer_0x8855 read=None (expect no response: not in comm table)
|
||||
[ 38.820s] TX C_RD 0x8862 68 0D 3C 00 46 00 66 01 05 00 01 00 62 88 00
|
||||
[ 38.911s] RX I type=102 cot=14 body=62 88 00
|
||||
[ 38.911s] TX S N(R)=36 68 04 01 00 48 00
|
||||
PASS unmapped_no_answer_0x8862 read=None (expect no response: not in comm table)
|
||||
NOTE: 13 local items (comm_addr=0) are structurally NOT addressable by C_RD, hence excluded from this criterion: PS_OV_EN,PS_UV_EN,PS_RET_OVER,PS_RET_UNDER,PS_GLOBAL_EN,PS_OF_EN,PS_OF_HZ,PS_OF_DLY,PS_UF_EN,PS_UF_HZ,PS_UF_DLY,PS_RET_OF,PS_RET_UF
|
||||
|
||||
=== OOB: out-of-range must be refused, value unchanged ===
|
||||
[ 41.932s] TX C_RD 0x8858 68 0D 3E 00 48 00 66 01 05 00 01 00 58 88 00
|
||||
[ 42.012s] RX I M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
|
||||
[ 42.012s] TX S N(R)=37 68 04 01 00 4A 00
|
||||
[ 43.022s] TX C_SE sel 0x8858 = 500.000 68 12 40 00 4A 00 32 01 06 00 01 00 58 88 00 00 00 FA 43 80
|
||||
[ 43.113s] RX I type=50 cot=7 PN body=58 88 00 00 00 FA 43 80
|
||||
[ 43.113s] TX S N(R)=38 68 04 01 00 4C 00
|
||||
[ 44.122s] TX C_SE exe 0x8858 = 500.000 68 12 42 00 4C 00 32 01 06 00 01 00 58 88 00 00 00 FA 43 00
|
||||
[ 44.214s] RX I type=50 cot=7 PN body=58 88 00 00 00 FA 43 00
|
||||
[ 44.214s] TX S N(R)=39 68 04 01 00 4E 00
|
||||
PASS oob_refused_0x8858 sel_any=True sel_pn=True exe_any=True exe_pn=True PS_OC1_CUR (above max 100)
|
||||
[ 45.218s] TX C_RD 0x8858 68 0D 44 00 4E 00 66 01 05 00 01 00 58 88 00
|
||||
[ 45.314s] RX I M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
|
||||
[ 45.314s] TX S N(R)=40 68 04 01 00 50 00
|
||||
PASS oob_value_unchanged_0x8858 before=10.000 after=10.000 (refused write must not land)
|
||||
[ 46.326s] TX C_RD 0x8821 68 0D 46 00 50 00 66 01 05 00 01 00 21 88 00
|
||||
[ 46.416s] RX I M_ME_NC ioa=0x8821 val=100.000 qds=0x00 cot=5
|
||||
[ 46.416s] TX S N(R)=41 68 04 01 00 52 00
|
||||
[ 47.431s] TX C_SE sel 0x8821 = 0.500 68 12 48 00 52 00 32 01 06 00 01 00 21 88 00 00 00 00 3F 80
|
||||
[ 47.517s] RX I type=50 cot=7 PN body=21 88 00 00 00 00 3F 80
|
||||
[ 47.517s] TX S N(R)=42 68 04 01 00 54 00
|
||||
[ 48.521s] TX C_SE exe 0x8821 = 0.500 68 12 4A 00 54 00 32 01 06 00 01 00 21 88 00 00 00 00 3F 00
|
||||
[ 48.617s] RX I type=50 cot=7 PN body=21 88 00 00 00 00 3F 00
|
||||
[ 48.617s] TX S N(R)=43 68 04 01 00 56 00
|
||||
[ 48.619s] RX S N(R)=38
|
||||
PASS oob_refused_0x8821 sel_any=True sel_pn=True exe_any=True exe_pn=True PS_PT_SEC (below min 1.0)
|
||||
[ 49.630s] TX C_RD 0x8821 68 0D 4C 00 56 00 66 01 05 00 01 00 21 88 00
|
||||
[ 49.724s] RX I M_ME_NC ioa=0x8821 val=100.000 qds=0x00 cot=5
|
||||
[ 49.724s] TX S N(R)=44 68 04 01 00 58 00
|
||||
PASS oob_value_unchanged_0x8821 before=100.000 after=100.000 (refused write must not land)
|
||||
|
||||
=== SAMPLE: 3 in-range C_SE writes then C_RD ===
|
||||
[ 50.739s] TX C_SE sel 0x8858 = 7.500 68 12 4E 00 58 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 80
|
||||
[ 50.828s] RX I type=50 cot=7 body=58 88 00 00 00 F0 40 80
|
||||
[ 50.828s] TX S N(R)=45 68 04 01 00 5A 00
|
||||
[ 51.835s] TX C_SE exe 0x8858 = 7.500 68 12 50 00 5A 00 32 01 06 00 01 00 58 88 00 00 00 F0 40 00
|
||||
[ 51.929s] RX I type=50 cot=7 body=58 88 00 00 00 F0 40 00
|
||||
[ 51.929s] TX S N(R)=46 68 04 01 00 5C 00
|
||||
PASS se_accept_0x8858 sel=True/False exe=True/False (want actcon, pn=False) PS_OC1_CUR -> 7.500
|
||||
[ 52.944s] TX C_RD 0x8858 68 0D 52 00 5C 00 66 01 05 00 01 00 58 88 00
|
||||
[ 53.035s] RX I M_ME_NC ioa=0x8858 val=7.500 qds=0x00 cot=5
|
||||
[ 53.035s] TX S N(R)=47 68 04 01 00 5E 00
|
||||
PASS rd_after_se_0x8858 read=7.500 want=7.500
|
||||
[ 54.040s] TX C_SE sel 0x885D = 1234.000 68 12 54 00 5E 00 32 01 06 00 01 00 5D 88 00 00 40 9A 44 80
|
||||
[ 54.136s] RX I type=50 cot=7 body=5D 88 00 00 40 9A 44 80
|
||||
[ 54.136s] TX S N(R)=48 68 04 01 00 60 00
|
||||
[ 55.138s] TX C_SE exe 0x885D = 1234.000 68 12 56 00 60 00 32 01 06 00 01 00 5D 88 00 00 40 9A 44 00
|
||||
[ 55.237s] RX I type=50 cot=7 body=5D 88 00 00 40 9A 44 00
|
||||
[ 55.237s] TX S N(R)=49 68 04 01 00 62 00
|
||||
PASS se_accept_0x885D sel=True/False exe=True/False (want actcon, pn=False) PS_OC2_DLY -> 1234.000
|
||||
[ 56.240s] TX C_RD 0x885D 68 0D 58 00 62 00 66 01 05 00 01 00 5D 88 00
|
||||
[ 56.343s] RX I M_ME_NC ioa=0x885D val=1234.000 qds=0x00 cot=5
|
||||
[ 56.343s] TX S N(R)=50 68 04 01 00 64 00
|
||||
PASS rd_after_se_0x885D read=1234.000 want=1234.000
|
||||
[ 57.347s] TX C_SE sel 0x8820 = 11000.000 68 12 5A 00 64 00 32 01 06 00 01 00 20 88 00 00 E0 2B 46 80
|
||||
[ 57.444s] RX I type=50 cot=7 body=20 88 00 00 E0 2B 46 80
|
||||
[ 57.444s] TX S N(R)=51 68 04 01 00 66 00
|
||||
[ 57.445s] RX S N(R)=46
|
||||
[ 58.454s] TX C_SE exe 0x8820 = 11000.000 68 12 5C 00 66 00 32 01 06 00 01 00 20 88 00 00 E0 2B 46 00
|
||||
[ 58.546s] RX I type=50 cot=7 body=20 88 00 00 E0 2B 46 00
|
||||
[ 58.546s] TX S N(R)=52 68 04 01 00 68 00
|
||||
PASS se_accept_0x8820 sel=True/False exe=True/False (want actcon, pn=False) PS_PT_PRI -> 11000.000
|
||||
[ 59.558s] TX C_RD 0x8820 68 0D 5E 00 68 00 66 01 05 00 01 00 20 88 00
|
||||
[ 59.650s] RX I M_ME_NC ioa=0x8820 val=11000.000 qds=0x00 cot=5
|
||||
[ 59.650s] TX S N(R)=53 68 04 01 00 6A 00
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4011 val=0.000 qds=0x00 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4012 val=0.000 qds=0x80 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4013 val=0.000 qds=0x80 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4014 val=0.000 qds=0x00 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4015 val=0.000 qds=0x00 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4016 val=0.000 qds=0x80 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4017 val=0.000 qds=0x80 cot=1
|
||||
[ 60.150s] RX I M_ME_NC ioa=0x4018 val=0.000 qds=0x80 cot=1
|
||||
[ 60.150s] TX S N(R)=54 68 04 01 00 6C 00
|
||||
[ 60.151s] RX I M_ME_NC ioa=0x401D val=0.000 qds=0x80 cot=1
|
||||
[ 60.151s] TX S N(R)=55 68 04 01 00 6E 00
|
||||
PASS rd_after_se_0x8820 read=11000.000 want=11000.000
|
||||
|
||||
-- letting dirty setpoints flush to /prot_set.bin (5 s)
|
||||
|
||||
==== PRE: 41/41 checks PASS ====
|
||||
json -> D:\\Code\\DTU Code\\_wt\\.state\\i104_pre.json
|
||||
|
||||
|
||||
####################################################################################################
|
||||
### [B] post-reset run: persist + YX31 + restore
|
||||
####################################################################################################
|
||||
[ 0.026s] TX STARTDT act 68 04 07 00 00 00
|
||||
[ 0.137s] RX U STARTDT con
|
||||
-- connected, STARTDT con ok
|
||||
|
||||
=== PERSIST after reset: written values must survive ===
|
||||
[ 1.140s] TX C_RD 0x8858 68 0D 00 00 00 00 66 01 05 00 01 00 58 88 00
|
||||
[ 1.238s] RX I M_ME_NC ioa=0x8858 val=7.500 qds=0x00 cot=5
|
||||
[ 1.238s] TX S N(R)=1 68 04 01 00 02 00
|
||||
PASS persist_0x8858 read=7.500 want=7.500 PS_OC1_CUR
|
||||
[ 2.252s] TX C_RD 0x885D 68 0D 02 00 02 00 66 01 05 00 01 00 5D 88 00
|
||||
[ 2.339s] RX I M_ME_NC ioa=0x885D val=1234.000 qds=0x00 cot=5
|
||||
[ 2.339s] TX S N(R)=2 68 04 01 00 04 00
|
||||
PASS persist_0x885D read=1234.000 want=1234.000 PS_OC2_DLY
|
||||
[ 3.343s] TX C_RD 0x8820 68 0D 04 00 04 00 66 01 05 00 01 00 20 88 00
|
||||
[ 3.439s] RX I M_ME_NC ioa=0x8820 val=11000.000 qds=0x00 cot=5
|
||||
[ 3.439s] TX S N(R)=3 68 04 01 00 06 00
|
||||
PASS persist_0x8820 read=11000.000 want=11000.000 PS_PT_PRI
|
||||
[ 4.447s] TX I C_IC act (persist) 68 0E 06 00 06 00 64 01 06 00 01 00 00 00 00 14
|
||||
[ 4.540s] RX I type=100 cot=7 body=00 00 00 14
|
||||
[ 4.540s] TX S N(R)=4 68 04 01 00 08 00
|
||||
[ 4.541s] TX S N(R)=5 68 04 01 00 0A 00
|
||||
[ 4.543s] RX I M_SP ioa=15 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] RX I M_SP ioa=16 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] RX I M_SP ioa=17 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] RX I M_SP ioa=18 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] RX I M_SP ioa=23 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] RX I M_SP ioa=31 val=0 iv=0 cot=4 [N(R)=4]
|
||||
[ 4.543s] TX S N(R)=6 68 04 01 00 0C 00
|
||||
[ 4.543s] TX S N(R)=7 68 04 01 00 0E 00
|
||||
[ 4.544s] TX S N(R)=8 68 04 01 00 10 00
|
||||
[ 4.645s] RX I type=100 cot=8 body=00 00 00 14
|
||||
[ 4.645s] TX S N(R)=9 68 04 01 00 12 00
|
||||
PASS yx31_prot_block_off yx31=(0, False) (L5-1 checksum selfcheck must not latch)
|
||||
|
||||
=== RESTORE factory defaults ===
|
||||
[ 5.649s] TX C_SE sel 0x8858 = 10.000 68 12 08 00 12 00 32 01 06 00 01 00 58 88 00 00 00 20 41 80
|
||||
[ 5.746s] RX I type=50 cot=7 body=58 88 00 00 00 20 41 80
|
||||
[ 5.746s] TX S N(R)=10 68 04 01 00 14 00
|
||||
[ 6.759s] TX C_SE exe 0x8858 = 10.000 68 12 0A 00 14 00 32 01 06 00 01 00 58 88 00 00 00 20 41 00
|
||||
[ 6.848s] RX I type=50 cot=7 body=58 88 00 00 00 20 41 00
|
||||
[ 6.848s] TX S N(R)=11 68 04 01 00 16 00
|
||||
[ 7.863s] TX C_RD 0x8858 68 0D 0C 00 16 00 66 01 05 00 01 00 58 88 00
|
||||
[ 7.956s] RX I M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
|
||||
[ 7.956s] TX S N(R)=12 68 04 01 00 18 00
|
||||
PASS restore_0x8858 read=10.000 want(default)=10.000
|
||||
[ 8.959s] TX C_SE sel 0x885D = 500.000 68 12 0E 00 18 00 32 01 06 00 01 00 5D 88 00 00 00 FA 43 80
|
||||
[ 9.058s] RX I type=50 cot=7 body=5D 88 00 00 00 FA 43 80
|
||||
[ 9.058s] TX S N(R)=13 68 04 01 00 1A 00
|
||||
[ 9.058s] RX S N(R)=8
|
||||
[ 10.068s] TX C_SE exe 0x885D = 500.000 68 12 10 00 1A 00 32 01 06 00 01 00 5D 88 00 00 00 FA 43 00
|
||||
[ 10.160s] RX I type=50 cot=7 body=5D 88 00 00 00 FA 43 00
|
||||
[ 10.160s] TX S N(R)=14 68 04 01 00 1C 00
|
||||
[ 11.160s] TX C_RD 0x885D 68 0D 12 00 1C 00 66 01 05 00 01 00 5D 88 00
|
||||
[ 11.169s] RX I M_ME_NC ioa=0x885D val=500.000 qds=0x00 cot=5
|
||||
[ 11.169s] TX S N(R)=15 68 04 01 00 1E 00
|
||||
PASS restore_0x885D read=500.000 want(default)=500.000
|
||||
[ 12.178s] TX C_SE sel 0x8820 = 10000.000 68 12 14 00 1E 00 32 01 06 00 01 00 20 88 00 00 40 1C 46 80
|
||||
[ 12.274s] RX I type=50 cot=7 body=20 88 00 00 40 1C 46 80
|
||||
[ 12.274s] TX S N(R)=16 68 04 01 00 20 00
|
||||
[ 13.288s] TX C_SE exe 0x8820 = 10000.000 68 12 16 00 20 00 32 01 06 00 01 00 20 88 00 00 40 1C 46 00
|
||||
[ 13.375s] RX I type=50 cot=7 body=20 88 00 00 40 1C 46 00
|
||||
[ 13.375s] TX S N(R)=17 68 04 01 00 22 00
|
||||
[ 14.378s] TX C_RD 0x8820 68 0D 18 00 22 00 66 01 05 00 01 00 20 88 00
|
||||
[ 14.481s] RX I M_ME_NC ioa=0x8820 val=10000.000 qds=0x00 cot=5
|
||||
[ 14.481s] TX S N(R)=18 68 04 01 00 24 00
|
||||
PASS restore_0x8820 read=10000.000 want(default)=10000.000
|
||||
PROTOCOL ERROR: ValueError('too many values to unpack (expected 2)')
|
||||
json -> D:\\Code\\DTU Code\\_wt\\.state\\i104_post.json
|
||||
|
||||
|
||||
####################################################################################################
|
||||
### [C] final sweep: 27/27 at factory defaults after a second reset
|
||||
####################################################################################################
|
||||
[ 0.029s] TX STARTDT act 68 04 07 00 00 00
|
||||
[ 0.113s] RX U STARTDT con
|
||||
-- connected, STARTDT con ok
|
||||
|
||||
=== SWEEP default : C_RD over 27 addressable items ===
|
||||
[ 1.118s] TX C_RD 0x8027 68 0D 00 00 00 00 66 01 05 00 01 00 27 80 00
|
||||
[ 1.213s] RX I M_ME_NC ioa=0x8027 val=20.000 qds=0x00 cot=5
|
||||
[ 1.213s] TX S N(R)=1 68 04 01 00 02 00
|
||||
PASS sweep_default_0x8027 read=20.000 want(default)=20.000 PS_UV_VOL
|
||||
[ 2.215s] TX C_RD 0x8028 68 0D 02 00 02 00 66 01 05 00 01 00 28 80 00
|
||||
[ 2.221s] RX I M_ME_NC ioa=0x8028 val=10000.000 qds=0x00 cot=5
|
||||
[ 2.221s] TX S N(R)=2 68 04 01 00 04 00
|
||||
PASS sweep_default_0x8028 read=10000.000 want(default)=10000.000 PS_UV_DLY
|
||||
[ 3.225s] TX C_RD 0x8029 68 0D 04 00 04 00 66 01 05 00 01 00 29 80 00
|
||||
[ 3.321s] RX I M_ME_NC ioa=0x8029 val=120.000 qds=0x00 cot=5
|
||||
[ 3.321s] TX S N(R)=3 68 04 01 00 06 00
|
||||
PASS sweep_default_0x8029 read=120.000 want(default)=120.000 PS_OV_VOL
|
||||
[ 4.329s] TX C_RD 0x802A 68 0D 06 00 06 00 66 01 05 00 01 00 2A 80 00
|
||||
[ 4.423s] RX I M_ME_NC ioa=0x802A val=10000.000 qds=0x00 cot=5
|
||||
[ 4.423s] TX S N(R)=4 68 04 01 00 08 00
|
||||
PASS sweep_default_0x802A read=10000.000 want(default)=10000.000 PS_OV_DLY
|
||||
[ 5.423s] TX C_RD 0x8820 68 0D 08 00 08 00 66 01 05 00 01 00 20 88 00
|
||||
[ 5.523s] RX I M_ME_NC ioa=0x8820 val=10000.000 qds=0x00 cot=5
|
||||
[ 5.523s] TX S N(R)=5 68 04 01 00 0A 00
|
||||
PASS sweep_default_0x8820 read=10000.000 want(default)=10000.000 PS_PT_PRI
|
||||
[ 6.526s] TX C_RD 0x8821 68 0D 0A 00 0A 00 66 01 05 00 01 00 21 88 00
|
||||
[ 6.625s] RX I M_ME_NC ioa=0x8821 val=100.000 qds=0x00 cot=5
|
||||
[ 6.625s] TX S N(R)=6 68 04 01 00 0C 00
|
||||
PASS sweep_default_0x8821 read=100.000 want(default)=100.000 PS_PT_SEC
|
||||
[ 7.625s] TX C_RD 0x8825 68 0D 0C 00 0C 00 66 01 05 00 01 00 25 88 00
|
||||
[ 7.725s] RX I M_ME_NC ioa=0x8825 val=100.000 qds=0x00 cot=5
|
||||
[ 7.725s] TX S N(R)=7 68 04 01 00 0E 00
|
||||
PASS sweep_default_0x8825 read=100.000 want(default)=100.000 PS_CT_PRI
|
||||
[ 8.727s] TX C_RD 0x8826 68 0D 0E 00 0E 00 66 01 05 00 01 00 26 88 00
|
||||
[ 8.826s] RX I M_ME_NC ioa=0x8826 val=5.000 qds=0x00 cot=5
|
||||
[ 8.826s] TX S N(R)=8 68 04 01 00 10 00
|
||||
[ 8.827s] RX S N(R)=8
|
||||
PASS sweep_default_0x8826 read=5.000 want(default)=5.000 PS_CT_SEC
|
||||
[ 9.827s] TX C_RD 0x8856 68 0D 10 00 10 00 66 01 05 00 01 00 56 88 00
|
||||
[ 9.929s] RX I M_ME_NC ioa=0x8856 val=1.000 qds=0x00 cot=5
|
||||
[ 9.929s] TX S N(R)=9 68 04 01 00 12 00
|
||||
PASS sweep_default_0x8856 read=1.000 want(default)=1.000 PS_OC1_EN
|
||||
[ 10.933s] TX C_RD 0x8857 68 0D 12 00 12 00 66 01 05 00 01 00 57 88 00
|
||||
[ 11.029s] RX I M_ME_NC ioa=0x8857 val=1.000 qds=0x00 cot=5
|
||||
[ 11.029s] TX S N(R)=10 68 04 01 00 14 00
|
||||
PASS sweep_default_0x8857 read=1.000 want(default)=1.000 PS_OC1_TRIP
|
||||
[ 12.032s] TX C_RD 0x8858 68 0D 14 00 14 00 66 01 05 00 01 00 58 88 00
|
||||
[ 12.131s] RX I M_ME_NC ioa=0x8858 val=10.000 qds=0x00 cot=5
|
||||
[ 12.131s] TX S N(R)=11 68 04 01 00 16 00
|
||||
PASS sweep_default_0x8858 read=10.000 want(default)=10.000 PS_OC1_CUR
|
||||
[ 13.143s] TX C_RD 0x8859 68 0D 16 00 16 00 66 01 05 00 01 00 59 88 00
|
||||
[ 13.231s] RX I M_ME_NC ioa=0x8859 val=0.000 qds=0x00 cot=5
|
||||
[ 13.231s] TX S N(R)=12 68 04 01 00 18 00
|
||||
PASS sweep_default_0x8859 read=0.000 want(default)=0.000 PS_OC1_DLY
|
||||
[ 14.232s] TX C_RD 0x885A 68 0D 18 00 18 00 66 01 05 00 01 00 5A 88 00
|
||||
[ 14.332s] RX I M_ME_NC ioa=0x885A val=1.000 qds=0x00 cot=5
|
||||
[ 14.332s] TX S N(R)=13 68 04 01 00 1A 00
|
||||
PASS sweep_default_0x885A read=1.000 want(default)=1.000 PS_OC2_EN
|
||||
[ 15.334s] TX C_RD 0x885B 68 0D 1A 00 1A 00 66 01 05 00 01 00 5B 88 00
|
||||
[ 15.433s] RX I M_ME_NC ioa=0x885B val=1.000 qds=0x00 cot=5
|
||||
[ 15.433s] TX S N(R)=14 68 04 01 00 1C 00
|
||||
PASS sweep_default_0x885B read=1.000 want(default)=1.000 PS_OC2_TRIP
|
||||
[ 16.445s] TX C_RD 0x885C 68 0D 1C 00 1C 00 66 01 05 00 01 00 5C 88 00
|
||||
[ 16.534s] RX I M_ME_NC ioa=0x885C val=5.000 qds=0x00 cot=5
|
||||
[ 16.534s] TX S N(R)=15 68 04 01 00 1E 00
|
||||
PASS sweep_default_0x885C read=5.000 want(default)=5.000 PS_OC2_CUR
|
||||
[ 17.546s] TX C_RD 0x885D 68 0D 1E 00 1E 00 66 01 05 00 01 00 5D 88 00
|
||||
[ 17.635s] RX I M_ME_NC ioa=0x885D val=500.000 qds=0x00 cot=5
|
||||
[ 17.635s] TX S N(R)=16 68 04 01 00 20 00
|
||||
[ 17.637s] RX S N(R)=16
|
||||
PASS sweep_default_0x885D read=500.000 want(default)=500.000 PS_OC2_DLY
|
||||
[ 18.642s] TX C_RD 0x885E 68 0D 20 00 20 00 66 01 05 00 01 00 5E 88 00
|
||||
[ 18.737s] RX I M_ME_NC ioa=0x885E val=1.000 qds=0x00 cot=5
|
||||
[ 18.737s] TX S N(R)=17 68 04 01 00 22 00
|
||||
PASS sweep_default_0x885E read=1.000 want(default)=1.000 PS_OC3_EN
|
||||
[ 19.744s] TX C_RD 0x885F 68 0D 22 00 22 00 66 01 05 00 01 00 5F 88 00
|
||||
[ 19.838s] RX I M_ME_NC ioa=0x885F val=0.000 qds=0x00 cot=5
|
||||
[ 19.838s] TX S N(R)=18 68 04 01 00 24 00
|
||||
PASS sweep_default_0x885F read=0.000 want(default)=0.000 PS_OC3_TRIP
|
||||
[ 20.850s] TX C_RD 0x8860 68 0D 24 00 24 00 66 01 05 00 01 00 60 88 00
|
||||
[ 20.940s] RX I M_ME_NC ioa=0x8860 val=2.000 qds=0x00 cot=5
|
||||
[ 20.940s] TX S N(R)=19 68 04 01 00 26 00
|
||||
PASS sweep_default_0x8860 read=2.000 want(default)=2.000 PS_OC3_CUR
|
||||
[ 21.942s] TX C_RD 0x8861 68 0D 26 00 26 00 66 01 05 00 01 00 61 88 00
|
||||
[ 22.041s] RX I M_ME_NC ioa=0x8861 val=3000.000 qds=0x00 cot=5
|
||||
[ 22.041s] TX S N(R)=20 68 04 01 00 28 00
|
||||
PASS sweep_default_0x8861 read=3000.000 want(default)=3000.000 PS_OC3_DLY
|
||||
[ 23.045s] TX C_RD 0x8871 68 0D 28 00 28 00 66 01 05 00 01 00 71 88 00
|
||||
[ 23.141s] RX I M_ME_NC ioa=0x8871 val=1.000 qds=0x00 cot=5
|
||||
[ 23.141s] TX S N(R)=21 68 04 01 00 2A 00
|
||||
PASS sweep_default_0x8871 read=1.000 want(default)=1.000 PS_OL_EN
|
||||
[ 24.142s] TX C_RD 0x8872 68 0D 2A 00 2A 00 66 01 05 00 01 00 72 88 00
|
||||
[ 24.242s] RX I M_ME_NC ioa=0x8872 val=0.000 qds=0x00 cot=5
|
||||
[ 24.242s] TX S N(R)=22 68 04 01 00 2C 00
|
||||
PASS sweep_default_0x8872 read=0.000 want(default)=0.000 PS_OL_TRIP
|
||||
[ 25.243s] TX C_RD 0x8873 68 0D 2C 00 2C 00 66 01 05 00 01 00 73 88 00
|
||||
[ 25.342s] RX I M_ME_NC ioa=0x8873 val=1.000 qds=0x00 cot=5
|
||||
[ 25.342s] TX S N(R)=23 68 04 01 00 2E 00
|
||||
PASS sweep_default_0x8873 read=1.000 want(default)=1.000 PS_OL_CUR
|
||||
[ 26.352s] TX C_RD 0x8874 68 0D 2E 00 2E 00 66 01 05 00 01 00 74 88 00
|
||||
[ 26.444s] RX I M_ME_NC ioa=0x8874 val=10000.000 qds=0x00 cot=5
|
||||
[ 26.444s] TX S N(R)=24 68 04 01 00 30 00
|
||||
[ 26.445s] RX S N(R)=24
|
||||
PASS sweep_default_0x8874 read=10000.000 want(default)=10000.000 PS_OL_DLY
|
||||
[ 27.449s] TX C_RD 0x888E 68 0D 30 00 30 00 66 01 05 00 01 00 8E 88 00
|
||||
[ 27.546s] RX I M_ME_NC ioa=0x888E val=1.000 qds=0x00 cot=5
|
||||
[ 27.546s] TX S N(R)=25 68 04 01 00 32 00
|
||||
PASS sweep_default_0x888E read=1.000 want(default)=1.000 PS_3U0_EN
|
||||
[ 28.549s] TX C_RD 0x888F 68 0D 32 00 32 00 66 01 05 00 01 00 8F 88 00
|
||||
[ 28.647s] RX I M_ME_NC ioa=0x888F val=15.000 qds=0x00 cot=5
|
||||
[ 28.647s] TX S N(R)=26 68 04 01 00 34 00
|
||||
PASS sweep_default_0x888F read=15.000 want(default)=15.000 PS_3U0_VOL
|
||||
[ 29.649s] TX C_RD 0x8890 68 0D 34 00 34 00 66 01 05 00 01 00 90 88 00
|
||||
[ 29.748s] RX I M_ME_NC ioa=0x8890 val=5000.000 qds=0x00 cot=5
|
||||
[ 29.748s] TX S N(R)=27 68 04 01 00 36 00
|
||||
PASS sweep_default_0x8890 read=5000.000 want(default)=5000.000 PS_3U0_DLY
|
||||
|
||||
==== SWEEP: 27/27 checks PASS ====
|
||||
json -> D:\\Code\\DTU Code\\_wt\\.state\\i104_sweep.json
|
||||
@@ -0,0 +1,131 @@
|
||||
{
|
||||
"decoded_from": "utf-8",
|
||||
"note": "task-21 board_ui_nav step trace for view_set (write password 123); re-dumped with ensure_ascii so the archived file is pure ASCII",
|
||||
"trace": [
|
||||
{
|
||||
"key": "l",
|
||||
"why": "\u56de\u6839\u540e\u8865\u6536\u4e00\u6b21\uff08\u9632\u88ab\u88c1\u5f39\u6846\u6f0f\u8ba1\uff09",
|
||||
"ink": 3226,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u88c5\u7f6e\u4fe1\u606f",
|
||||
3,
|
||||
57
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "\u5728\u5217 0 \u91cc\u627e \u53c2\u6570\u5b9a\u503c",
|
||||
"ink": 3182,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u5b9e\u65f6\u6570\u636e",
|
||||
3,
|
||||
72
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "\u5728\u5217 0 \u91cc\u627e \u53c2\u6570\u5b9a\u503c",
|
||||
"ink": 3170,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u53c2\u6570\u5b9a\u503c",
|
||||
3,
|
||||
87
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "\u8fdb\u5165 \u53c2\u6570\u5b9a\u503c",
|
||||
"ink": 3888,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u53c2\u6570\u5b9a\u503c",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"\u6574\u5b9a",
|
||||
68,
|
||||
88
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "\u8fdb\u5165 \u6574\u5b9a",
|
||||
"ink": 4958,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u53c2\u6570\u5b9a\u503c",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"\u6574\u5b9a",
|
||||
68,
|
||||
88
|
||||
],
|
||||
[
|
||||
"\u53c2\u6570",
|
||||
109,
|
||||
89
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "\u5728\u5217 2 \u91cc\u627e \u5b9a\u503c",
|
||||
"ink": 4948,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"\u53c2\u6570\u5b9a\u503c",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"\u6574\u5b9a",
|
||||
68,
|
||||
88
|
||||
],
|
||||
[
|
||||
"\u5b9a\u503c",
|
||||
109,
|
||||
104
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "\u8fdb\u5165 \u5b9a\u503c",
|
||||
"ink": 512,
|
||||
"kind": "PWD",
|
||||
"page": null,
|
||||
"cols": null
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "\u8fc7\u67e5\u770b\u5bc6\u7801\uff08\u51fa\u5382 000\uff0c\u76f4\u63a5\u786e\u8ba4\uff09",
|
||||
"ink": 4373,
|
||||
"kind": "PAGE",
|
||||
"page": "view_set",
|
||||
"cols": null
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -0,0 +1,89 @@
|
||||
task-21 bench evidence: console output byte-level interleaving (2 writers on one line)
|
||||
image identity : fw build: Oct 26 2026 16:27:01 suite=NONE dstr=off (built from 77779d49, detached worktree)
|
||||
source log : .dsh/skills/serial-assistant/scripts/state/serial.log (serial-assistant daemon, COM6@115200)
|
||||
observed by : bench-runner (task-21), 2026-10-26
|
||||
mechanism claim : bytes that appear INSIDE a line belong to the HEAD of the NEXT line, which is
|
||||
correspondingly missing that head. A UART/framing error can corrupt a byte but
|
||||
can never make a line longer, and the stolen bytes always show up in order at the
|
||||
front of the neighbour. Therefore two console writers were emitting concurrently.
|
||||
rate : 2 spliced lines out of 2807 [RX] lines in this log window; both hits are the same
|
||||
writer pair, and both occurred on boots that were NOT the flash boot:
|
||||
boot A 16:28 (stlink flash -Rst -Run) -> line CLEAN
|
||||
boot B 16:37 (reset only, -Rst -Run) -> line SPLICED
|
||||
boot C 16:44 (reset only, -Rst -Run) -> line SPLICED
|
||||
i.e. 2 of 3 boots; not reproducible by construction, timing dependent.
|
||||
pair (constant) : writer mid-line = [PROT] (App/task/protect_task.c, "uncalibrated -> protection
|
||||
blocked (UA/UN/IA VALID not all set)", DBG_INFO)
|
||||
victim head = [NAND_FTL] "Initializing NAND FTL..." (defaultTask storage bring-up)
|
||||
the two run at boot time in different tasks (protectTask AboveNormal vs defaultTask Normal)
|
||||
|
||||
|
||||
==========================================================================================
|
||||
OCCURRENCE 1 (serial.log byte offsets 3410..3539 and 3540..3628)
|
||||
==========================================================================================
|
||||
--- PROT line, verbatim (may contain spliced bytes) ---
|
||||
[RX] 2026-10-26T16:37:08.989+08:00 [2026-10-26 08:37:07][PROT] uncalibrated -> protection [blocked (UA/UN/IA VALI2D not all s0et)
|
||||
--- its hexdump (129 bytes @ 3410) ---
|
||||
00000d52 5b 52 58 5d 20 32 30 32 36 2d 31 30 2d 32 36 54 |[RX] 2026-10-26T|
|
||||
00000d62 31 36 3a 33 37 3a 30 38 2e 39 38 39 2b 30 38 3a |16:37:08.989+08:|
|
||||
00000d72 30 30 20 5b 32 30 32 36 2d 31 30 2d 32 36 20 30 |00 [2026-10-26 0|
|
||||
00000d82 38 3a 33 37 3a 30 37 5d 5b 50 52 4f 54 5d 20 75 |8:37:07][PROT] u|
|
||||
00000d92 6e 63 61 6c 69 62 72 61 74 65 64 20 2d 3e 20 70 |ncalibrated -> p|
|
||||
00000da2 72 6f 74 65 63 74 69 6f 6e 20 5b 62 6c 6f 63 6b |rotection [block|
|
||||
00000db2 65 64 20 28 55 41 2f 55 4e 2f 49 41 20 56 41 4c |ed (UA/UN/IA VAL|
|
||||
00000dc2 49 32 44 20 6e 6f 74 20 61 6c 6c 20 73 30 65 74 |I2D not all s0et|
|
||||
00000dd2 29 |)|
|
||||
--- following line, verbatim (note the missing head) ---
|
||||
[RX] 2026-10-26T16:37:09.000+08:00 26-10-26 08:37:07][NAND_FTL] Initializing NAND FTL...
|
||||
--- its hexdump (88 bytes @ 3540) ---
|
||||
00000dd4 5b 52 58 5d 20 32 30 32 36 2d 31 30 2d 32 36 54 |[RX] 2026-10-26T|
|
||||
00000de4 31 36 3a 33 37 3a 30 39 2e 30 30 30 2b 30 38 3a |16:37:09.000+08:|
|
||||
00000df4 30 30 20 32 36 2d 31 30 2d 32 36 20 30 38 3a 33 |00 26-10-26 08:3|
|
||||
00000e04 37 3a 30 37 5d 5b 4e 41 4e 44 5f 46 54 4c 5d 20 |7:07][NAND_FTL] |
|
||||
00000e14 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 4e 41 4e |Initializing NAN|
|
||||
00000e24 44 20 46 54 4c 2e 2e 2e |D FTL...|
|
||||
|
||||
|
||||
==========================================================================================
|
||||
OCCURRENCE 2 (serial.log byte offsets 122942..123069 and 123070..123160)
|
||||
==========================================================================================
|
||||
--- PROT line, verbatim (may contain spliced bytes) ---
|
||||
[RX] 2026-10-26T16:44:20.822+08:00 [2026-10-26 08:44:19][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID[ not all set)
|
||||
--- its hexdump (127 bytes @ 122942) ---
|
||||
0001e03e 5b 52 58 5d 20 32 30 32 36 2d 31 30 2d 32 36 54 |[RX] 2026-10-26T|
|
||||
0001e04e 31 36 3a 34 34 3a 32 30 2e 38 32 32 2b 30 38 3a |16:44:20.822+08:|
|
||||
0001e05e 30 30 20 5b 32 30 32 36 2d 31 30 2d 32 36 20 30 |00 [2026-10-26 0|
|
||||
0001e06e 38 3a 34 34 3a 31 39 5d 5b 50 52 4f 54 5d 20 75 |8:44:19][PROT] u|
|
||||
0001e07e 6e 63 61 6c 69 62 72 61 74 65 64 20 2d 3e 20 70 |ncalibrated -> p|
|
||||
0001e08e 72 6f 74 65 63 74 69 6f 6e 20 62 6c 6f 63 6b 65 |rotection blocke|
|
||||
0001e09e 64 20 28 55 41 2f 55 4e 2f 49 41 20 56 41 4c 49 |d (UA/UN/IA VALI|
|
||||
0001e0ae 44 5b 20 6e 6f 74 20 61 6c 6c 20 73 65 74 29 |D[ not all set)|
|
||||
--- following line, verbatim (note the missing head) ---
|
||||
[RX] 2026-10-26T16:44:20.822+08:00 2026-10-26 08:44:19][NAND_FTL] Initializing NAND FTL...
|
||||
--- its hexdump (90 bytes @ 123070) ---
|
||||
0001e0be 5b 52 58 5d 20 32 30 32 36 2d 31 30 2d 32 36 54 |[RX] 2026-10-26T|
|
||||
0001e0ce 31 36 3a 34 34 3a 32 30 2e 38 32 32 2b 30 38 3a |16:44:20.822+08:|
|
||||
0001e0de 30 30 20 32 30 32 36 2d 31 30 2d 32 36 20 30 38 |00 2026-10-26 08|
|
||||
0001e0ee 3a 34 34 3a 31 39 5d 5b 4e 41 4e 44 5f 46 54 4c |:44:19][NAND_FTL|
|
||||
0001e0fe 5d 20 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 4e |] Initializing N|
|
||||
0001e10e 41 4e 44 20 46 54 4c 2e 2e 2e |AND FTL...|
|
||||
|
||||
|
||||
=== CONTRAST: the same PROT line from boot A (16:28, flash boot) -- CLEAN ===
|
||||
(from the archived boot log; note identical length minus the 3 spliced bytes)
|
||||
[+365ms] [2026-10-26 08:28:27][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set)
|
||||
|
||||
=== BYTE ACCOUNTING ===
|
||||
boot B: PROT line gained exactly 3 bytes: '[' , '2' , '0' (in that order, at 3 different insert points)
|
||||
NAND_FTL line lost exactly its first 3 bytes: '[' , '2' , '0' -> it now starts at "26-10-26 ..."
|
||||
correct head would be "[2026-10-26 08:37:07]" -> after losing "[20" it reads "26-10-26 08:37:07]"
|
||||
boot C: PROT line gained 1 byte '[' ; NAND_FTL line lost its leading '[' -> reads "2026-10-26 08:44:19][NAND_FTL]..."
|
||||
=> gained bytes == lost head, same order. Two writers, no line-level guard.
|
||||
|
||||
=== WHY IT MATTERS (not a cosmetic call) ===
|
||||
- The B6 archive row in this directory (20261012_B6_prod_boot_log_PROTECT_MISS.txt) recorded the same
|
||||
class: protectTask's start line arrived interleaved ("st[art: cycle=220ms elm=70") and was fixed by
|
||||
moving that line behind the writer-attach gate. This is the same task (protectTask) emitting an INFO
|
||||
line on the SAME boot window as the storage bring-up writer.
|
||||
- Automation impact: an anchor/marker can be silently broken by splicing. Here the surviving text still
|
||||
matched, but '@test' Required markers and the anchor count are only as reliable as this line.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,141 @@
|
||||
[
|
||||
{
|
||||
"key": "e",
|
||||
"why": "UNKNOWN 屏第 1 次:按 'e'(退避键序 'esl',可 --backoff-keys 覆盖)",
|
||||
"ink": 3226,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"装置信息",
|
||||
3,
|
||||
57
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "l",
|
||||
"why": "回根后补收一次(防被裁弹框漏计)",
|
||||
"ink": 3226,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"装置信息",
|
||||
3,
|
||||
57
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "在列 0 里找 参数定值",
|
||||
"ink": 3182,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"实时数据",
|
||||
3,
|
||||
72
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "在列 0 里找 参数定值",
|
||||
"ink": 3170,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"参数定值",
|
||||
3,
|
||||
87
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "进入 参数定值",
|
||||
"ink": 3888,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"参数定值",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"整定",
|
||||
68,
|
||||
88
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "进入 整定",
|
||||
"ink": 4958,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"参数定值",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"整定",
|
||||
68,
|
||||
88
|
||||
],
|
||||
[
|
||||
"参数",
|
||||
109,
|
||||
89
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "d",
|
||||
"why": "在列 2 里找 定值",
|
||||
"ink": 4948,
|
||||
"kind": "MENU",
|
||||
"page": null,
|
||||
"cols": [
|
||||
[
|
||||
"参数定值",
|
||||
3,
|
||||
87
|
||||
],
|
||||
[
|
||||
"整定",
|
||||
68,
|
||||
88
|
||||
],
|
||||
[
|
||||
"定值",
|
||||
109,
|
||||
104
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "进入 定值",
|
||||
"ink": 512,
|
||||
"kind": "PWD",
|
||||
"page": null,
|
||||
"cols": null
|
||||
},
|
||||
{
|
||||
"key": "e",
|
||||
"why": "过查看密码(出厂 000,直接确认)",
|
||||
"ink": 4373,
|
||||
"kind": "PAGE",
|
||||
"page": "view_set",
|
||||
"cols": null
|
||||
}
|
||||
]
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
@@ -39,6 +39,8 @@
|
||||
| 2026-10-25 | `prod`(最终主干 `1a624b1`:看门狗 v1.5 按位分账 + F3 推流心跳边界)/ **f3rounds 轮① :7003 relisten_stress 单独 30 min**(11×200=2200 个 connect/close 周期,零拒绝) | **v1.1 判据 PASS**:`task stall`=0;MISS 758 条中 NET 缺席=0(旧 12 条 NET 参与组合消失达成);推流段在途峰值 103 ms / 完成段 183 ms(UI 周期最坏 254 ms)——F2 复合零误报 + F3 阻塞型治愈的定案样本;gz 前置 6 行 ASCII 来源/判据头 | `f3rounds_r1_7003_churn_30min.log.gz` |
|
||||
| 2026-10-25 | 同固件 / **f3rounds 轮② e02_probe 单独 30 min**(50 个探针掉线窗) | **v1.1 判据 FAIL(如实申报,零放水)**:stall=8 = 3 事件(20:06:05/20:16:54/20:20:30,miss=998-1000/1187-1189/1249-1250),mask=0x1E7 纯 UI 单串×7 + 0x167 UI+I104×1,h= 环全部 ≥8 连窗真申报;**饿死型**(每样本点 uisn=0、mg=217/262、拖点不在推流段而在 feed/port 墙钟)=「reconcile 突发饿死 uiTask」登记行与 E-27/E-28 批 3 的直接立项证据;全窗无 IWDG 复位 | `f3rounds_r2_probe_30min.log.gz` |
|
||||
| 2026-10-21 | `prod` + **兜底新鲜度门停 TIM3 注入探针**(`task/adc-health-design-doc`,探针已撤)/ 开机 + 45 s | `protect` **620/2048(69%)**、`adc` 与 heap 水位同前;`[ERR][PROT] … blocked (hf=0x00000100)` +5462ms、`recovered` +5757ms、`health:` 0 次、`reset cause:` ×1 | `20261021_probe_stale_gate_boot_log.txt` |
|
||||
| 2026-10-26 | `prod`(**像来自仓外只读 detached worktree `_wt/bench-21-77779d49` @ 77779d49**;主树当时另有在飞文档改动,这份像**不含**主树未提交内容——别拿本行结论去对主树源码)/ 开机 + 30 s 空载,**@test PASS** | `protect` **492/2048(75%)**、`iec104` 540/2560(78%)、`adc` 1000/2560(60%)、`ui` 4088/16384(75%)、`default` 2160/5120(57%)、heap free=15624 **min_ever=8464**;`protection init: OK (set=40 elm=9)`、锚点 `reset cause:` ×1、**[ERR]=0 / Fault=0**、`net init: OK` **+762 ms**、身份戳 `Oct 26 2026 16:27:01 suite=NONE dstr=off` 从 hex 抠出并与线上相符、`-CmpFile` 回读 No difference found(**排在采日志之后**);⚠ **启动日志行内字节交错缺陷**:protectTask `[PROT]` 与 `[NAND_FTL]` 两个写者并发,3 次启动命中 2 次,hexdump 实证「某行内多出的字节恰等于下一行被吃掉的行首」(串口 framing 错不可能让行变长)→ 已立项派 App/log 属主 | `20261026_prod_77779d49_boot_log.txt` / `20261026_prod_77779d49_boot_log_reset_only.txt` / `20261026_prod_console_interleave_evidence.txt` |
|
||||
| 2026-10-26 | 同镜像 / **整定页两条实机判据**(主站 `test/host/iec104_master.py` 以库形式复用,驱动脚本留在仓外 `_wt/.state/bench21_104.py`,**未改仓库**;复位只用 `-Rst -Run`,**全程不重烧**) | **C_RD 27/27 可寻址项全中出厂值**(清单取自 `git show 77779d49:App/algo/prot_set.[ch]` 而非工作树;**13 个 comm_addr=0 本地项结构性不可寻址 → 明确不参与本判据**,另以 0x8854/0x8855/0x8862 三个未映射地址实证「不应答」);⚠ **未标定闭锁态下 C_SE 仍允许写**(闭锁 ≠ 禁写):0x8858=7.5 / 0x885D=1234 / 0x8820=11000 三项 sel+exe 均 actcon 且 C_RD 同值 → 仅复位后仍为 7.5/1234/11000,启动日志 `[CFG] prot set loaded (/prot_set.bin)`、CORRUPT=0、version change=0、YX31=OFF(**校验和通过**);越界写 0x8858=500(>100)、0x8821=0.5(<1) 均回 **actcon+PN** 且原值一字未变;还原默认值 → 再复位 → 27/27 回默认(双向持久化,台架留在出厂态)。屏检:整定页(123 修改密码)标题右侧**「未标定」徽标在位**(Glyph 精确命中 x=105/117/129;同页用查看密码进去无徽标 = 设计如此),**LOCK 未见且可证未闭锁**(ENTER 被消费进入数值编辑,而闭锁时 ENTER 一律不消费),全程零提交;强制真 LOCK 需篡改 `/prot_set.bin`,台架禁做 | `20261026_prod_77779d49_iec104_setpoint_leg.txt` / `20261026_prod_77779d49_ui_set_badge_uncal.png`(同名 `.bin` = 原始 3200 B 帧、可 `board_ui_nav.py --classify` 复判,但被 `.gitignore` 的 `*.bin` 全局规则挡住,**入库需 `git add -f`**;顺带一条既存事实:本目录上方 B9 那两行引用的 `20261012_B9_soe*.bin` 同样从未入库,`git ls-files` 查不到)/ `20261026_prod_77779d49_ui_set_view_readonly.png` / `20261026_prod_77779d49_ui_set_edit_enter_accepted.png` / `20261026_prod_77779d49_ui_nav_trace.json` |
|
||||
|
||||
> f3rounds 两只是**判读证据存档**(非 `[STACK]` 水位快照):源为 serial-assistant live 日志的
|
||||
> 字节偏移切片(不 clear、行边界对齐),gz 前置 ASCII 头行携带偏移窗、负载定义与 v1.1 判据
|
||||
|
||||
@@ -704,7 +704,7 @@ uint16_t ch395f_link_change_count(void);
|
||||
| 类别 | 体量 | 为什么不做 | 那它靠什么把关 |
|
||||
|---|---|---|---|
|
||||
| 芯片驱动(寄存器/时序) | `ch395f.c`(801)、`gd5f2gq5ue.c`(689)、`sd2506.c`(264)、`tpafe5160.c`(157)、`rs485.c`(79) = **1,990 行** | 把 HAL 与寄存器假到底 ≈ **重写一遍驱动**,测的是自己的桩而不是硬件行为(SPI 分频必须 8、DMA 流、I2C 时序在桩里怎么编都"对") | 板级套件(`board-test-suite` skill)+ `@test` 真机日志 + 4 个 Fault 现场;陷阱逐条登记在 `docs/问题记录/CH395F_Trap_Records.md`、`docs/问题记录/GD5F2GQ5UE_Trap_Records.md`、`docs/问题记录/SD2506_Trap_Records.md` |
|
||||
| UI 侧 | 17 个 `.c` = **1,942 行** | 与 PC 模拟器是**同一份源码**,行为回归已由 `ui-golden`(菜单 8 状态 + 内容页 18 页像素黄金参考)覆盖;再写单测是第三份重复投资 | `ui-verify` skill 五步 + `docs/UI设计/UI_自动化测试流程.md` |
|
||||
| UI 侧 | 17 个 `.c` = **1,942 行** | 与 PC 模拟器是**同一份源码**,行为回归已由 `ui-golden`(菜单 8 状态 + 内容页 27 页像素黄金参考)覆盖;再写单测是第三份重复投资 | `ui-verify` skill 五步 + `docs/UI设计/UI_自动化测试流程.md` |
|
||||
| 任务编排 | `default_task.c`(281)、`adc_task.c`(171)、`net_task.c`(123)、`protect_task.c`(90)、`ui_task.c`(71)、`rs485_task.c`(11) = **747 行** | 每个只有 4~5 个函数,主体是"按顺序调别人";真逻辑在被调模块里(那些已测或在 P1/P2)。给编排层写单测最容易写成"断言我调了几次"的自证 | 真机启动锚点计数 + IWDG `required_mask`(`@test`)+ `docs/架构设计/项目启动顺序管理.md` |
|
||||
| 内核前装配 | `app_main.c`(135) | 被测对象本身就是"`osKernelStart` 之前不许调内核 API"的时序,主机侧无法忠实复现(PC 上没有那个约束) | 同上 + `cubemx-survival` 审计 |
|
||||
|
||||
@@ -771,3 +771,4 @@ P2 5 个 2,226 行、P3 29 个 4,814 行明确不做**(四条对得上:13+5+
|
||||
未接读端而在台架上无能可见。台架与临时改动全部反向还原,设备回到产品构建并回读校验通过。
|
||||
详见 §9「第 3 轮」与 `docs/子系统设计/运行与自检记录设计说明.md` §4.4;合回主干后以 `4288658`
|
||||
回填内存台账,主干 `pre-commit run --all-files` 39 项全绿。 |
|
||||
| 2026-10-26 | UI 侧「不做」理由里的页数口径修正为 **内容页 27 页**(原写 18,与 `simulator/tests/ref/` 入库的 27 个 `shot_*.bin` 不符)|
|
||||
|
||||
@@ -372,8 +372,8 @@ cmake --build simulator/build --config Debug # 0) 构建模拟器(须 0 警
|
||||
|
||||
| 层 | 载体 | 抓住什么 |
|
||||
|---|---|---|
|
||||
| 文本层 | `check_content_pages.py` 字形模板匹配(50 条,解析字体 cmap / glyph_dsc / bitmap) | 缺字显示空白 / 标签写错等**静默失败**(不依赖 `ref/`,先于像素比对运行、失败即中止防误刷参考) |
|
||||
| 像素层 | 11 内容页 + 菜单 8 状态,与黄金参考逐字节比对 | 几何 / 样式 / 光标反显 / 整体外观 |
|
||||
| 文本层 | `check_content_pages.py` 字形模板匹配(242 条、覆盖 24 页,解析字体 cmap / glyph_dsc / bitmap) | 缺字显示空白 / 标签写错等**静默失败**(不依赖 `ref/`,先于像素比对运行、失败即中止防误刷参考) |
|
||||
| 像素层 | 27 内容页 + 菜单 8 状态,与黄金参考逐字节比对 | 几何 / 样式 / 光标反显 / 整体外观 |
|
||||
| 池水位层 | `MENU_POOL_BASELINE=5368 B` / `POOL_AFTER_ROUNDTRIP=5448 B` | LVGL 内存池泄漏 / 结构性漂移(量的是 `used`,与 `LV_MEM_SIZE` 总大小无关) |
|
||||
|
||||
### 5.3 黄金参考与字体纪律
|
||||
@@ -641,3 +641,5 @@ CI 就静默停摆(2026-10-11 实测 run 16~21 共 12 个 job 零日志)。
|
||||
| 2026-09-15 | §3.4 更新:P1-6 修复落地(基础线程策略)——USER CODE 区冗余 netTask 创建删除 + `net_task_func` 入口 `ENABLE_HW_LAYER_TESTS` 自挂起守卫;"代码事实/设计约束"按修复后现状重写(硬件层模式中断断言恢复安全、NET 层/产品仍按"netTask 恒在轮询"设计);彻底方案(`.ioc` 移除)经评估未采用。同日构建验证发现两处**存量**测试固件缺陷(与 P1-6 无关,A/B 对照确证):① `net_test_task.c` `s_rx_buf` 使用先于声明 → NET 层配置自 2026-08(88160a5)起不可编译;② 128KB 静态 RAM 预算溢出(产品镜像 123.6KB,HW 全阶段固件超 8.7KB、NET 固件超 ~28KB)——已立 P1-9/P1-10 跟踪 |
|
||||
| 2026-09-13 | 重写:对齐现测试架构——统一 `test_config.h` 套件(旧版仅描述 CH395F 单套件与 `ch395fTestTask` 旧入口);新增 @test 自动化闭环、pre-commit 门禁、UI 模拟器五步门禁、主机侧工具约定;新增"测试构建下 netTask"已知问题(旧版"硬件层模式 netTask 不创建"表述与代码不符,改为设计约束并给出重构路径);修正附录路径(旧版 `docs/测试说明/CH395F_Test_Guide.md` 等已移入 `docs/测试说明/`);新增双端注册、内存预算、陷阱沉淀要求 |
|
||||
| 2026-10-22 | §5.3 黄金参考纪律更新:`ref/*.bin` 入库(新克隆即可跑 UI 像素回归)、`.png` 仍不入库;补充"刷参考会在 `git diff` 显形,须逐页过目并在提交正文说明" |
|
||||
| 2026-10-26 | 像素层页数口径修正为 **27 内容页**(判据 = `simulator/tests/ref/` 入库的 27 个 `shot_*.bin`;旧写「11」是页面扩充前的数字)。同类陈述同步在 `UI_自动化测试流程.md` 等六处改正 |
|
||||
| 2026-10-26 | 三层断言表的文本层规模由「50 条」修正为 **242 条、覆盖 24 页**(现值取自 `simulator/tests/check_content_pages.py` 的 TEXTS 实跑计数;三张密码态无文本断言)|
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
- **初始化回归**:`App/task/ui_task.c` 已有 `UI port init: OK` / `UI menu init: OK` / `UI net sink: started`
|
||||
打印(见 `@test` 命令示例);将其加入 `-Required` 即可经串口自动回归 UI 初始化。
|
||||
- **屏幕内容回归**:由 LVGL 模拟器像素回归覆盖(文本级断言 + 11 页黄金参考 + 池水位门禁,
|
||||
- **屏幕内容回归**:由 LVGL 模拟器像素回归覆盖(文本级断言 + 27 页黄金参考 + 池水位门禁,
|
||||
见 `docs/UI设计/UI_自动化测试流程.md`);上机屏幕仍需人工目检(L3 层,见 `测试开发标准流程.md` §1)。
|
||||
|
||||
## 扩展用法
|
||||
@@ -149,3 +149,4 @@
|
||||
| 2026-10-10 | **第三批:判定可读性 + 时序 + 采集卫生**:① Forbidden 命中逐行打印行号+内容(旧只报条数);② boot_log 每行加 `[+Nms]` daemon 毫秒时基(`--raw-log` 关闭),据此量开机耗时(实测 `net init: OK` = **+537ms**;`--max-boot-ms` 默认 0 只报告);③ `--require-order` 标记先后顺序校验(全中但失序此前不可见);④ `--json` 结构化判定(退出码不变);⑤ `--keep-out`(默认 20)清理 out 目录旧产物(本机曾堆到 31+7 份);⑥ daemon 侧:无换行残行 64KB 封顶 + open/close/clear 会话边界丢弃残行 + 截头按行边界对齐(旧实现截出来的首行是半行)+ `open` 不带 `--dtr/--rts` 时保持现状、显式给则现场应用;⑦ `ports` 回 `configured_present`/`hint`,`status` 回 `rx_age_ms`。selftest 23/23、verify_log 离线回归 17/17、真机闭环 PASS |
|
||||
| 2026-10-11 | **身份戳覆盖测试宏**(N-31 复测时发现):切 `test/board/test_config.h` 的套件宏后 `app_main.c` 未被重编,测试镜像与产品镜像顶着同一个 `fw build:` 戳 → 戳校验对"两种构建互换"失明(当时只有 `-CmpFile` 回读发现镜像不同)。修复:`app_main.c` `#include "test_config.h"`(头依赖 → 改宏必重编、戳必刷新)+ 戳串追加 ` suite=<TEST_SUITE_NAME> dstr=<on|off>`(`FW_BUILD_VARIANT`,戳内容本身区分构建)。实测:`20:36:11 suite=NONE dstr=off` ↔ `20:36:40 suite=CH395F dstr=on`;`@test` 闭环对新格式 PASS(脚本无需改动,戳按"标记后连续可打印 ASCII"抠取)。失败模式表补一行:戳命中但 `suite=` 与要跑的套件不符 = 烧了产品镜像 |
|
||||
| 2026-10-22 | **自检台账判据改为「只看本次启动新增」**(修两处叠出来的假绿):① 抓取用的 FTP 登录还写着匿名,而设备自鉴权落地起就没有匿名通道 → 抓取**必然** 530 失败,旧实现又把"抓取失败"和"设备侧无此文件"都返回空、一律按"无记录 → PASS"处理 → `--require-selftest-pass` 从写下那天起没真正看过文件;② 就算抓到了,`/log/selftest.log` 是 512 条环形累计历史,"非空即 FAIL"在任何做过故障注入/长跑的设备上永远不可能 PASS(本仓台架实测 29 条记录全是 2026-10-10 ~ 10-14 留下的)。现在:烧录前取基线、启动后只判新增;抓取失败 / 无数据源 / 基线被环覆盖 **一律 FAIL**;`--selftest-scope all` 保留累计口径用于审计与首次建基线;FTP 凭据 `--ftp-user/--ftp-pass`(默认出厂 admin/admin)。凭据与判据两处都过真机:`this-run` → PASS(无新增)、`all` → FAIL(累计 29 条)、无 `device_ip` → FAIL(无数据源)。 |
|
||||
| 2026-10-26 | UI 屏幕自动化段的页数口径修正为 **27 页**黄金参考(与 `simulator/tests/ref/` 入库的 27 个 `shot_*.bin` 对齐;旧写 11)|
|
||||
|
||||
Reference in New Issue
Block a user