Files
STM32F4-Base/scripts/test_coverage_baseline.json
T
wandering1 5224f21622 fix(NET,lftpd): 处置覆盖率照出的三处死路径(改名 + 修 timeout=0 + 激活异常集)
三处都由本轮 P1 新增的主机单测照出,用户逐条裁定后实施。共同性质:都不是改动引入
的回归,而是**从没被执行到的分支**——生产路径上要么没有调用者、要么没走边界,所以
编译器(0 错 0 警)、cppcheck、真机日志对它都无话可说。

1) 缺陷一(选 a:改名,行为零变化)
   lftpd_string_trim 的尾部循环起点落在 strlen(p) 那一格 NUL,isspace(0) 为假 →
   循环体一次都不执行,"尾部空白从未被裁",而名字承诺两头都去。改名
   lftpd_string_ltrim + 删掉那条死循环 + 在 .h/.c 写明"只去前导"。不去尾才是对的:
   RFC 959 以命令终止符 CRLF 界定命令,参数(PASS 口令、含空格的文件名)的尾随
   空格属于参数本体,去掉等于静默改数据;CRLF 已由 lftpd_inet_read_line 截断。
   调用点 lftpd.c 同步改名。全库无遗留真引用(余 6 处旧名均为解释改名历史的散文)。

2) 缺陷二(按推荐修)
   net_select 的 timeout = {0,0} 换算出 timeout_ms = 0,而退出条件写着
   if ((timeout_ms > 0) && (已用时 >= timeout_ms)) → 超时永不生效,退化成死等;
   POSIX 语义是"只查一轮立即返回"。去掉 timeout_ms > 0 这个错误前置即可。就绪
   检查在本判断之前,故有就绪时仍立刻带计数返回;同文件 net_poll_events 的
   timeout >= 0 本来就对,现在两条对齐。风险面:拿它当"非阻塞查一遍"会让 netTask
   回不到主循环,而 netTask 在 IWDG required_mask 里(串行 socket 栈唯一执行者)。

3) 缺陷三(选 ①:按 POSIX 置位)
   exceptfds 是恒为空的死参数:循环开头 p_sock == NULL → continue 先跳过,而
   check_socket_error() 只有"表项为空 / fd 越界"才返回 1,越界的 i 又不在本循环
   范围内 → 调用方按 POSIX 直觉用它收异常,永远什么都收不到,且返回码不报错。
   把异常判定提到 continue 之前:表项不存在的 fd 计入 exceptfds 与返回计数,并更新
   函数注释。选 ① 会改变返回计数语义,故补一条"未请求异常集时不计数"的用例,
   确保只查可读的老调用方不被误伤(TC-NETSEL-012b)。

测试同步翻转:原 TC-NETSEL-008 / TC-NETSEL-012 是"现状桩、改了会响",现在改成正向
契约,并新增 TC-NETSEL-012c(异常位只落到被请求的那个集合);TC-LFTSTR-005 从
"尾部不裁"的现状登记改为正向契约(尾随空格必须保留)。net_select 22/22、
lftpd_io 33/33 全绿。

@build:0 错误 0 警告。实测体积 ER_IROM1 232,512 B(快照 232,536 → **−24 B**)、
Flash 233,704 B(−20 B)、RW_IRAM1 75,272 B(+8 B 是上一提交 net_cfg 那个字节,
本批零新增)、**RW_CCM 57,376 B 不变**;四档百分比 22.2/57.4/87.9/22.3 全不变。
Code 减少 36 B 即删掉的死循环。

覆盖率台账:门禁如实报了一次 lftpd_string.c 已覆盖行 8 → 7(**代码少了一行**,不是
覆盖退化),已 --update-baseline 重登;现 22/22 套件、line=3003/3446(87.1%)、
func=236/259(91.1%)、tested_files=26、untested_files=118。

文档:主机单测覆盖率口径 §9 新增"三处死路径的处置"小节(裁定、改法、影响、钉住
它的用例一一对应),并把两处"等裁定"的登记改为已处置。

自查:coding-standard / test-cppcheck / id-check --strict(无台账外新账)/ doc-links
(35 处 = 存量)全过;八个改动文件与 HEAD 逐项比对 BOM/CR/U+FFFD/行尾无变化
(这几个文件本就不带 BOM,未被动过)。pre-commit --all-files 仍只有三条失败且与
本分支无关:mem-numbers / mem-budget(.map 与 docs/内存管理 受管快照漂移,增量见
上,按并行分支约定不在分支里 --write,等 Lead 合并后统一回填)与 ui-golden
(simulator/tests/ref/*.bin 在 .gitignore 内,新建 worktree 天生没有黄金参考)。
2026-10-23 23:44:48 +08:00

905 lines
19 KiB
JSON

{
"files": {
"App/algo/adc_health.c": {
"func_rate": 1.0,
"funcs_covered": 6,
"funcs_valid": 6,
"line_rate": 1.0,
"lines_covered": 108,
"lines_valid": 108
},
"App/algo/adc_input.c": {
"func_rate": 1.0,
"funcs_covered": 14,
"funcs_valid": 14,
"line_rate": 0.975,
"lines_covered": 117,
"lines_valid": 120
},
"App/algo/freq.c": {
"func_rate": 1.0,
"funcs_covered": 8,
"funcs_valid": 8,
"line_rate": 0.9692,
"lines_covered": 126,
"lines_valid": 130
},
"App/algo/phasor.c": {
"func_rate": 1.0,
"funcs_covered": 6,
"funcs_valid": 6,
"line_rate": 0.9818,
"lines_covered": 54,
"lines_valid": 55
},
"App/algo/prot_elm.c": {
"func_rate": 1.0,
"funcs_covered": 8,
"funcs_valid": 8,
"line_rate": 0.9717,
"lines_covered": 103,
"lines_valid": 106
},
"App/algo/prot_set.c": {
"func_rate": 0.9565,
"funcs_covered": 22,
"funcs_valid": 23,
"line_rate": 0.9665,
"lines_covered": 173,
"lines_valid": 179
},
"App/algo/sample_ring.c": {
"func_rate": 1.0,
"funcs_covered": 5,
"funcs_valid": 5,
"line_rate": 1.0,
"lines_covered": 41,
"lines_valid": 41
},
"App/cfg/cfg_file.c": {
"func_rate": 0.9615,
"funcs_covered": 25,
"funcs_valid": 26,
"line_rate": 0.8773,
"lines_covered": 572,
"lines_valid": 652
},
"App/cfg/prot_set_store.c": {
"func_rate": 1.0,
"funcs_covered": 4,
"funcs_valid": 4,
"line_rate": 0.931,
"lines_covered": 27,
"lines_valid": 29
},
"App/fs/vol_lock.c": {
"func_rate": 1.0,
"funcs_covered": 3,
"funcs_valid": 3,
"line_rate": 1.0,
"lines_covered": 17,
"lines_valid": 17
},
"App/log/soe_rec.c": {
"func_rate": 1.0,
"funcs_covered": 7,
"funcs_valid": 7,
"line_rate": 0.931,
"lines_covered": 81,
"lines_valid": 87
},
"App/protocol/iec104/iec104_asdu.c": {
"func_rate": 1.0,
"funcs_covered": 10,
"funcs_valid": 10,
"line_rate": 0.932,
"lines_covered": 96,
"lines_valid": 103
},
"App/protocol/iec104/iec104_link.c": {
"func_rate": 1.0,
"funcs_covered": 23,
"funcs_valid": 23,
"line_rate": 0.9062,
"lines_covered": 367,
"lines_valid": 405
},
"App/protocol/iec104/iec104_pts.c": {
"func_rate": 0.7647,
"funcs_covered": 13,
"funcs_valid": 17,
"line_rate": 0.6724,
"lines_covered": 117,
"lines_valid": 174
},
"App/sync/time_sync.c": {
"func_rate": 1.0,
"funcs_covered": 4,
"funcs_valid": 4,
"line_rate": 1.0,
"lines_covered": 99,
"lines_valid": 99
},
"App/util/sha256.c": {
"func_rate": 1.0,
"funcs_covered": 7,
"funcs_valid": 7,
"line_rate": 0.9737,
"lines_covered": 111,
"lines_valid": 114
},
"App/util/sys_clock.c": {
"func_rate": 1.0,
"funcs_covered": 8,
"funcs_valid": 8,
"line_rate": 0.9936,
"lines_covered": 156,
"lines_valid": 157
},
"App/util/task_prof.c": {
"func_rate": 1.0,
"funcs_covered": 9,
"funcs_valid": 9,
"line_rate": 0.9462,
"lines_covered": 88,
"lines_valid": 93
},
"App/util/task_watchdog.c": {
"func_rate": 1.0,
"funcs_covered": 8,
"funcs_valid": 8,
"line_rate": 1.0,
"lines_covered": 55,
"lines_valid": 55
},
"Drivers/BSP/GD5F2GQ5UE/nand_ftl.c": {
"func_rate": 0.6364,
"funcs_covered": 14,
"funcs_valid": 22,
"line_rate": 0.4862,
"lines_covered": 123,
"lines_valid": 253
},
"Drivers/BSP/NET/lftpd/lftpd_auth.c": {
"func_rate": 1.0,
"funcs_covered": 2,
"funcs_valid": 2,
"line_rate": 0.9737,
"lines_covered": 37,
"lines_valid": 38
},
"Drivers/BSP/NET/lftpd/lftpd_io.c": {
"func_rate": 0.3846,
"funcs_covered": 5,
"funcs_valid": 13,
"line_rate": 0.5346,
"lines_covered": 85,
"lines_valid": 159
},
"Drivers/BSP/NET/lftpd/lftpd_string.c": {
"func_rate": 1.0,
"funcs_covered": 1,
"funcs_valid": 1,
"line_rate": 1.0,
"lines_covered": 7,
"lines_valid": 7
},
"Drivers/BSP/NET/net_select.c": {
"func_rate": 1.0,
"funcs_covered": 5,
"funcs_valid": 5,
"line_rate": 0.8547,
"lines_covered": 100,
"lines_valid": 117
},
"Drivers/BSP/NETCFG/ftp_cfg.c": {
"func_rate": 1.0,
"funcs_covered": 4,
"funcs_valid": 4,
"line_rate": 0.9722,
"lines_covered": 35,
"lines_valid": 36
},
"Drivers/BSP/NETCFG/net_cfg.c": {
"func_rate": 0.9375,
"funcs_covered": 15,
"funcs_valid": 16,
"line_rate": 0.9643,
"lines_covered": 108,
"lines_valid": 112
}
},
"generated_by": "scripts/check_test_coverage.py --update-baseline",
"modules": {
"adc_health": {
"files": {
"App/algo/adc_health.c": 108
},
"lines_total": 108,
"ok": true
},
"adc_input": {
"files": {
"App/algo/adc_input.c": 120
},
"lines_total": 120,
"ok": true
},
"cfg_file": {
"files": {
"App/cfg/cfg_file.c": 652
},
"lines_total": 652,
"ok": true
},
"freq": {
"files": {
"App/algo/freq.c": 130,
"App/algo/phasor.c": 55,
"App/algo/sample_ring.c": 41
},
"lines_total": 226,
"ok": true
},
"ftp_auth": {
"files": {
"App/util/sha256.c": 114,
"Drivers/BSP/NET/lftpd/lftpd_auth.c": 38
},
"lines_total": 152,
"ok": true
},
"ftp_cfg": {
"files": {
"Drivers/BSP/NETCFG/ftp_cfg.c": 36
},
"lines_total": 36,
"ok": true
},
"iec104": {
"files": {
"App/algo/freq.c": 130,
"App/algo/phasor.c": 55,
"App/algo/prot_elm.c": 106,
"App/algo/prot_set.c": 179,
"App/algo/sample_ring.c": 41,
"App/protocol/iec104/iec104_asdu.c": 103,
"App/protocol/iec104/iec104_link.c": 405,
"App/protocol/iec104/iec104_pts.c": 174
},
"lines_total": 1193,
"ok": true
},
"lftpd_io": {
"files": {
"Drivers/BSP/NET/lftpd/lftpd_io.c": 159,
"Drivers/BSP/NET/lftpd/lftpd_string.c": 7
},
"lines_total": 166,
"ok": true
},
"nand_port": {
"files": {
"Drivers/BSP/GD5F2GQ5UE/nand_ftl.c": 253
},
"lines_total": 253,
"ok": true
},
"net_cfg": {
"files": {
"Drivers/BSP/NETCFG/net_cfg.c": 112
},
"lines_total": 112,
"ok": true
},
"net_select": {
"files": {
"Drivers/BSP/NET/net_select.c": 117
},
"lines_total": 117,
"ok": true
},
"phasor": {
"files": {
"App/algo/phasor.c": 55,
"App/algo/sample_ring.c": 41
},
"lines_total": 96,
"ok": true
},
"prot_elm": {
"files": {
"App/algo/freq.c": 130,
"App/algo/phasor.c": 55,
"App/algo/prot_elm.c": 106,
"App/algo/prot_set.c": 179,
"App/algo/sample_ring.c": 41
},
"lines_total": 511,
"ok": true
},
"prot_set": {
"files": {
"App/algo/prot_set.c": 179
},
"lines_total": 179,
"ok": true
},
"prot_set_store": {
"files": {
"App/algo/prot_set.c": 179,
"App/cfg/prot_set_store.c": 29
},
"lines_total": 208,
"ok": true
},
"sha256": {
"files": {
"App/util/sha256.c": 114
},
"lines_total": 114,
"ok": true
},
"soe": {
"files": {
"App/log/soe_rec.c": 87,
"App/protocol/iec104/iec104_asdu.c": 103
},
"lines_total": 190,
"ok": true
},
"sys_clock": {
"files": {
"App/util/sys_clock.c": 157
},
"lines_total": 157,
"ok": true
},
"task_prof": {
"files": {
"App/util/task_prof.c": 93
},
"lines_total": 93,
"ok": true
},
"time_sync": {
"files": {
"App/sync/time_sync.c": 99
},
"lines_total": 99,
"ok": true
},
"vol_lock": {
"files": {
"App/fs/vol_lock.c": 17
},
"lines_total": 17,
"ok": true
},
"watchdog": {
"files": {
"App/util/task_watchdog.c": 55
},
"lines_total": 55,
"ok": true
}
},
"note": "主机单测覆盖率基线。口径与工具链限制见 docs/测试说明/主机单测覆盖率口径.md。门禁判据:files[].lines_covered 与 funcs_covered 只增不减,下降即拦提交。",
"schema": 1,
"tested_sources": [
"App/algo/adc_health.c",
"App/algo/adc_input.c",
"App/algo/freq.c",
"App/algo/phasor.c",
"App/algo/prot_elm.c",
"App/algo/prot_set.c",
"App/algo/sample_ring.c",
"App/cfg/cfg_file.c",
"App/cfg/prot_set_store.c",
"App/fs/vol_lock.c",
"App/log/soe_rec.c",
"App/protocol/iec104/iec104_asdu.c",
"App/protocol/iec104/iec104_link.c",
"App/protocol/iec104/iec104_pts.c",
"App/sync/time_sync.c",
"App/util/sha256.c",
"App/util/sys_clock.c",
"App/util/task_prof.c",
"App/util/task_watchdog.c",
"Drivers/BSP/GD5F2GQ5UE/nand_ftl.c",
"Drivers/BSP/NET/lftpd/lftpd_auth.c",
"Drivers/BSP/NET/lftpd/lftpd_io.c",
"Drivers/BSP/NET/lftpd/lftpd_string.c",
"Drivers/BSP/NET/net_select.c",
"Drivers/BSP/NETCFG/ftp_cfg.c",
"Drivers/BSP/NETCFG/net_cfg.c"
],
"totals": {
"files_generated_excluded": 5,
"files_tested": 26,
"files_untested": 118,
"func_rate": 0.9112,
"funcs_covered": 236,
"funcs_valid": 259,
"line_rate": 0.8714,
"lines_covered": 3003,
"lines_valid": 3446,
"modules_ok": 22,
"modules_total": 22
},
"untested_sources": [
{
"code_lines": 1251,
"path": "Drivers/BSP/NET/net_socket.c"
},
{
"code_lines": 801,
"path": "Drivers/BSP/CH395F/ch395f.c"
},
{
"code_lines": 694,
"path": "Drivers/BSP/NET/lftpd/lftpd.c"
},
{
"code_lines": 689,
"path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c"
},
{
"code_lines": 458,
"path": "App/log/sys_log_mcu.c"
},
{
"code_lines": 329,
"path": "Drivers/BSP/UI/ui_menu_view.c"
},
{
"code_lines": 323,
"path": "Drivers/BSP/UI/ui_net_sink.c"
},
{
"code_lines": 300,
"path": "Drivers/BSP/UI/ui_content_page.c"
},
{
"code_lines": 287,
"path": "Drivers/BSP/NET/net_pending.c"
},
{
"code_lines": 281,
"path": "App/task/default_task.c"
},
{
"code_lines": 265,
"path": "App/log/console_log.c"
},
{
"code_lines": 264,
"path": "Drivers/BSP/SD2506/sd2506.c"
},
{
"code_lines": 263,
"path": "Drivers/BSP/NET/net_events.c"
},
{
"code_lines": 206,
"path": "Drivers/BSP/CH395F/ch395f.h"
},
{
"code_lines": 205,
"path": "Drivers/BSP/UI/ui_page_net_cfg.c"
},
{
"code_lines": 204,
"path": "Drivers/BSP/UI/ui_standby.c"
},
{
"code_lines": 202,
"path": "App/task/iec104_serv.c"
},
{
"code_lines": 191,
"path": "Drivers/BSP/NET/net_listener.c"
},
{
"code_lines": 171,
"path": "App/task/adc_task.c"
},
{
"code_lines": 171,
"path": "Drivers/BSP/NET/lftpd/lftpd_inet.c"
},
{
"code_lines": 157,
"path": "Drivers/BSP/TPAFE5160/tpafe5160.c"
},
{
"code_lines": 150,
"path": "Drivers/BSP/UI/ui_page_password.c"
},
{
"code_lines": 135,
"path": "App/app/app_main.c"
},
{
"code_lines": 129,
"path": "App/cfg/cfg_file_store_mcu.c"
},
{
"code_lines": 126,
"path": "Drivers/BSP/UI/ui_menu.c"
},
{
"code_lines": 123,
"path": "App/log/soe_store.c"
},
{
"code_lines": 123,
"path": "App/task/net_task.c"
},
{
"code_lines": 100,
"path": "Drivers/BSP/NET/net_types.h"
},
{
"code_lines": 98,
"path": "Drivers/BSP/SD2506/sd2506.h"
},
{
"code_lines": 93,
"path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.h"
},
{
"code_lines": 90,
"path": "App/task/protect_task.c"
},
{
"code_lines": 83,
"path": "Drivers/BSP/NET/net_socket.h"
},
{
"code_lines": 79,
"path": "Drivers/BSP/RS485/rs485.c"
},
{
"code_lines": 79,
"path": "Drivers/BSP/UI/ui_port.c"
},
{
"code_lines": 77,
"path": "App/algo/prot_set.h"
},
{
"code_lines": 77,
"path": "Drivers/BSP/dbg_log.h"
},
{
"code_lines": 71,
"path": "App/task/ui_task.c"
},
{
"code_lines": 62,
"path": "App/protocol/iec104/iec104_asdu.h"
},
{
"code_lines": 56,
"path": "App/protocol/iec104/iec104_link.h"
},
{
"code_lines": 54,
"path": "Drivers/BSP/TPAFE5160/tpafe5160.h"
},
{
"code_lines": 51,
"path": "App/util/task_watchdog.h"
},
{
"code_lines": 50,
"path": "App/algo/adc_health.h"
},
{
"code_lines": 44,
"path": "App/algo/adc_input.h"
},
{
"code_lines": 44,
"path": "App/log/soe_rec.h"
},
{
"code_lines": 42,
"path": "Drivers/BSP/UI/ui_content_page.h"
},
{
"code_lines": 41,
"path": "App/cfg/cfg_file.h"
},
{
"code_lines": 41,
"path": "Drivers/BSP/NET/lftpd/private/lftpd_status.h"
},
{
"code_lines": 41,
"path": "Drivers/BSP/UI/ui_page_ac.c"
},
{
"code_lines": 34,
"path": "Drivers/BSP/NETCFG/net_cfg.h"
},
{
"code_lines": 34,
"path": "Drivers/BSP/UI/ui_w_records.c"
},
{
"code_lines": 33,
"path": "Drivers/BSP/NET/net_config.h"
},
{
"code_lines": 33,
"path": "Drivers/BSP/NET/net_select.h"
},
{
"code_lines": 32,
"path": "Drivers/BSP/RS485/rs485.h"
},
{
"code_lines": 31,
"path": "App/log/sys_log.h"
},
{
"code_lines": 31,
"path": "Drivers/BSP/UI/ui_deco.c"
},
{
"code_lines": 29,
"path": "Drivers/BSP/NET/lftpd/lftpd_auth.h"
},
{
"code_lines": 28,
"path": "App/algo/prot_elm.h"
},
{
"code_lines": 28,
"path": "App/protocol/iec104/iec104_pts.h"
},
{
"code_lines": 27,
"path": "App/algo/phasor.h"
},
{
"code_lines": 27,
"path": "App/task/task_handles.h"
},
{
"code_lines": 27,
"path": "Drivers/BSP/UI/ui_page_device_info.c"
},
{
"code_lines": 26,
"path": "App/util/task_prof.h"
},
{
"code_lines": 26,
"path": "Drivers/BSP/NET/net_pending.h"
},
{
"code_lines": 25,
"path": "Drivers/BSP/UI/ui_port.h"
},
{
"code_lines": 25,
"path": "Drivers/BSP/bsp_err.h"
},
{
"code_lines": 24,
"path": "Drivers/BSP/UI/ui_tokens.h"
},
{
"code_lines": 22,
"path": "App/cfg/cfg_file_store.h"
},
{
"code_lines": 22,
"path": "App/util/sha256.h"
},
{
"code_lines": 22,
"path": "Drivers/BSP/NETCFG/ftp_cfg.h"
},
{
"code_lines": 22,
"path": "Drivers/BSP/UI/ui_page_runlog.c"
},
{
"code_lines": 22,
"path": "Drivers/BSP/UI/ui_page_selftest.c"
},
{
"code_lines": 20,
"path": "Drivers/BSP/UI/ui_page_dc.c"
},
{
"code_lines": 19,
"path": "App/log/console_log.h"
},
{
"code_lines": 19,
"path": "Drivers/BSP/UI/ui_w_records.h"
},
{
"code_lines": 18,
"path": "App/app/sys_events.h"
},
{
"code_lines": 18,
"path": "Drivers/BSP/NET/lftpd/lftpd.h"
},
{
"code_lines": 18,
"path": "Drivers/BSP/NET/net_listener.h"
},
{
"code_lines": 18,
"path": "Drivers/BSP/UI/ui_net_sink.h"
},
{
"code_lines": 17,
"path": "App/algo/sample_ring.h"
},
{
"code_lines": 16,
"path": "Drivers/BSP/UI/ui_menu_view.h"
},
{
"code_lines": 15,
"path": "App/algo/freq.h"
},
{
"code_lines": 15,
"path": "App/util/sys_clock.h"
},
{
"code_lines": 15,
"path": "Drivers/BSP/UI/ui_net_sink_backend_mcu.c"
},
{
"code_lines": 15,
"path": "Drivers/BSP/UI/ui_standby.h"
},
{
"code_lines": 14,
"path": "Drivers/BSP/UI/ui_style.c"
},
{
"code_lines": 13,
"path": "App/log/soe_store.h"
},
{
"code_lines": 13,
"path": "App/task/adc_task.h"
},
{
"code_lines": 13,
"path": "Drivers/BSP/NET/net_events.h"
},
{
"code_lines": 13,
"path": "Drivers/BSP/UI/ui_pwd_def.h"
},
{
"code_lines": 12,
"path": "App/app/app_main.h"
},
{
"code_lines": 12,
"path": "App/fs/vol_lock.h"
},
{
"code_lines": 12,
"path": "Drivers/BSP/GD5F2GQ5UE/nand_ftl.h"
},
{
"code_lines": 12,
"path": "Drivers/BSP/NET/lftpd/private/lftpd_io.h"
},
{
"code_lines": 12,
"path": "Drivers/BSP/UI/ui_net_sink_backend.h"
},
{
"code_lines": 11,
"path": "App/sync/time_sync.h"
},
{
"code_lines": 11,
"path": "App/task/net_task.h"
},
{
"code_lines": 11,
"path": "App/task/rs485_task.c"
},
{
"code_lines": 11,
"path": "App/task/rs485_task.h"
},
{
"code_lines": 11,
"path": "App/task/ui_task.h"
},
{
"code_lines": 11,
"path": "Drivers/BSP/NET/lftpd/private/lftpd_inet.h"
},
{
"code_lines": 11,
"path": "Drivers/BSP/UI/ui_menu.h"
},
{
"code_lines": 11,
"path": "Drivers/BSP/UI/ui_page_net_cfg.h"
},
{
"code_lines": 11,
"path": "Drivers/BSP/UI/ui_style.h"
},
{
"code_lines": 11,
"path": "Drivers/BSP/dbg_cfg.h"
},
{
"code_lines": 10,
"path": "App/task/default_task.h"
},
{
"code_lines": 6,
"path": "Drivers/BSP/UI/ui_page_password.h"
},
{
"code_lines": 5,
"path": "App/cfg/prot_set_store.h"
},
{
"code_lines": 5,
"path": "App/task/iec104_serv.h"
},
{
"code_lines": 5,
"path": "App/task/protect_task.h"
},
{
"code_lines": 5,
"path": "Drivers/BSP/NET/lftpd/private/lftpd_log.h"
},
{
"code_lines": 5,
"path": "Drivers/BSP/UI/ui_deco.h"
},
{
"code_lines": 5,
"path": "Drivers/BSP/UI/ui_page_ac.h"
},
{
"code_lines": 5,
"path": "Drivers/BSP/UI/ui_page_dc.h"
},
{
"code_lines": 5,
"path": "Drivers/BSP/UI/ui_page_device_info.h"
},
{
"code_lines": 4,
"path": "Drivers/BSP/UI/ui_page_runlog.h"
},
{
"code_lines": 4,
"path": "Drivers/BSP/UI/ui_page_selftest.h"
},
{
"code_lines": 3,
"path": "App/app/app_cfg.h"
},
{
"code_lines": 3,
"path": "Drivers/BSP/NET/lftpd/private/lftpd_string.h"
}
]
}