feat(ui)+chore(docs): UI 补齐清单清空;数据可信销项与「卡」号清退
本笔含两组收尾工作(同一工作区内交错在 6 个共享文档/门禁配置里, 拆开会产生"文档声称的页数与树里黄金数不一致"的中间提交,故合为一笔): 一、UI 补齐(清单清空) - 新建 6 个内容页模块:ui_page_accident / oper / alarm / start / yk 复用 ui_w_records 共享组件(分页、空态"无记录"、按实例读盘缓存), 记录层与五个写入点已由道F task-10 / 道G task-12 落地,本批只补页面; ui_page_runreport 为 13 行 2 页只读统计,四个数逐个挂范围标签 (自电池周期 / 本次开机),boot_ready=0 显 "--" 不显 0。 - 数据面:ui_data_info_t 尾部追加 9 字段,ui_data_feed 用 boot_stats_get() + iec104_serv_get_stats() 纯搬运;模拟器填确定值假数据 (差异登记 docs/测试说明/模拟器差距清单.md §2.3 两行)。 - 接线:菜单树 6 叶绑 #page=,绑定叶 22→28、UI_PAGE_MAP_COUNT=28; 字库 185→218 字 / 280→313 字形;双端注册 uvprojx +30、CMakeLists +6。 - 回归:内容页黄金 53→60(含 runreport_p2 真拍第 2 页),文本断言 425 正向 / 36 反向;存量 53 张逐字节零漂移;记录 5 页各用独立空目录 (模拟器把操作留痕写进 cwd 的 sim_oper.log,共用 tmp 会让空态拍不到)。 二、数据可信销项 + 「数据可信」任务卡号整族清退 - 删除已闭环的"已知电压注入验证"行与闭环结论块(证据在 docs/硬件平台/ADC通道映射说明.md §8.1 与 docs/测试说明/ADC前端注入验证流程.md §5~§7),§5 标识列改语义短语。 - 卡 0/0b/1~12 共 14 个号全仓 288 站点 / 56 文件清退成语义短语, 代码注释、测试、门禁配置与文档一并改;换算表入 docs/编号规范.md §9.3。 这一族是中文前缀,不进 check_ids 语料,刻意不入 id_aliases.json。 验证(实测) - @build 0 错 0 警:Code=236456 RO=28124 RW=1876 ZI=137084; RAM +464 B(RW +304 / ZI +160),RW_IRAM1 62.2% / RW_CCM 87.9%, 体积同码凭证与 RAM 台账已回填。 - check_menu_rows 8 状态 rc=0(池 5368/5448 常量未动); check_content_pages 60 页 rc=0;check_font_charset / registration / coding-standard / bom-drift / mojibake / doc-links --all / layer-deps / nested-comment 全 rc=0;check_ids --strict 无错误;主机单测 ui_data 295 / boot_stats 21 / sys_log_mcu 141 / soe 32 / soe_store 27。 未做(不是遗漏) - 六页真机判据(真记录翻页、掉电保持、清除后归零、boot_count 自增、 拔 RTC 电池落 RESTARTED、IWDG 复位落 rst_cause、主站连一次 conn_up+1) 已登记 docs/任务规划/登记簿.md §7;模拟器结构上照不到。 - docs/产品需求/产品需求设计文档.md 属另一条在飞改动,本笔不含; 其中我已同步 6 处现状数字(28 叶 / 60 页 / 218 字),随该笔入库。
This commit is contained in:
@@ -88,7 +88,7 @@ extern "C" {
|
||||
* 真值语义(现场口径 = docs/任务规划/数据可信.md §2.6 的承诺边界 + §4.2 三态
|
||||
* 可用性;契约文档原先写的"0 = 原始码值(未标定)"是标定落地前的旧口径,
|
||||
* 已按本表更正,勿再照抄旧表述):
|
||||
* ENG_PIN 引脚电压 V —— 现状:adc_cal 的 ROM 默认系数是「数据可信」卡 1 定死
|
||||
* ENG_PIN 引脚电压 V —— 现状:adc_cal 的 ROM 默认系数是「数据可信」量程口径冻结定死
|
||||
* 的引脚侧 LSB(TPAFE 152.59 uV/码、STM32 805.66 uV/码),采样环
|
||||
* 折算出来的就是 ADC 引脚电压,不是端子二次值
|
||||
* ENG_SEC 二次值 —— 电气 8 路 adc_cal_flags() 的 VALID 全置位(拿到端子变比
|
||||
@@ -210,6 +210,20 @@ typedef struct {
|
||||
char build_date[UI_DATA_DATE_LEN]; /* 程序日期(编译期) */
|
||||
char sw_sum[UI_DATA_SUM_LEN]; /* 软件校验;无构建期 CRC 步骤 = "--" */
|
||||
char ftp_user[UI_DATA_FUSER_LEN]; /* FTP 登录用户名(只显名,不显口令) */
|
||||
/* ── 运行报告四数(2026-10-28 UI 补齐「运行报告」;BSP 侧只搬运、不算第二份,
|
||||
* 口径唯一出处 = App/util/boot_stats.h 的四数台账与 App/task/iec104_serv.h
|
||||
* 的观测计数注;屏上文案(含"禁写终身次数"这类口径)归 UI 页面侧
|
||||
* <Drivers/BSP/UI/ui_page_runreport.c>,分层方向由 layer-deps 门禁守护 ── */
|
||||
uint32_t boot_count; /* 上电次数(掉电保持,自 RTC 电池周期起);
|
||||
boot_seq_state == 0(UNKNOWN)时不可信 */
|
||||
uint8_t boot_seq_state; /* 0 未知 / 1 首次启用 / 2 延续 / 3 电池域掉过重开 */
|
||||
uint8_t boot_write_failed; /* 1 = 本次自增没写回 RTC SRAM(账本只会少不会重) */
|
||||
uint8_t rst_cause; /* 本次开机复位原因编码(BOOT_STATS_CAUSE_*) */
|
||||
uint8_t boot_ready; /* 0 = 开机账本未初始化 → 整组按占位显示,不得读成 0 */
|
||||
uint32_t iec104_conn_up; /* 主站接入次数(本次开机以来,跨重连不清零) */
|
||||
uint32_t iec104_apdu_tx; /* 成功发出的 APDU 帧数(短写不算,落在 tx_fail) */
|
||||
uint32_t iec104_tx_fail; /* 发送短写/失败次数 */
|
||||
uint32_t iec104_rx_bytes; /* 收到的**字节**数(帧边界在 link 层,serv 看不见帧) */
|
||||
} ui_data_info_t;
|
||||
|
||||
/* ── 初始化 ───────────────────────────────────────────────────────────────── */
|
||||
|
||||
+370
-173
@@ -324,6 +324,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x7f, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x80,
|
||||
|
||||
/* U+4E0A "上" */
|
||||
0x8, 0x1, 0x0, 0x20, 0x4, 0x0, 0xfc, 0x10,
|
||||
0x2, 0x0, 0x40, 0x8, 0x1, 0x0, 0x20, 0x7f,
|
||||
0xf0,
|
||||
|
||||
/* U+4E3B "主" */
|
||||
0x8, 0x0, 0x80, 0x0, 0x3f, 0xe0, 0x40, 0x8,
|
||||
0x1, 0x3, 0xfe, 0x4, 0x0, 0x80, 0x10, 0x7f,
|
||||
@@ -398,6 +403,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x3f, 0xf8, 0x20, 0xa, 0x2, 0x20, 0x82, 0x60,
|
||||
0x30,
|
||||
|
||||
/* U+5199 "写" */
|
||||
0xff, 0xf4, 0x4, 0x80, 0x1f, 0xe2, 0x0, 0x80,
|
||||
0x1f, 0xf0, 0x2, 0x0, 0x5f, 0xe8, 0x1, 0x1,
|
||||
0xc0,
|
||||
|
||||
/* U+51FA "出" */
|
||||
0x4, 0x8, 0x89, 0x11, 0x22, 0x27, 0xfc, 0x8,
|
||||
0x1, 0x4, 0x21, 0x84, 0x30, 0x87, 0xff, 0x80,
|
||||
@@ -436,6 +446,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x7f, 0xe8, 0x1, 0x8, 0x21, 0x4, 0x20, 0xbf,
|
||||
0x90, 0x82, 0x14, 0x42, 0x48, 0x42, 0xff, 0x80,
|
||||
|
||||
/* U+539F "原" */
|
||||
0x7f, 0xe8, 0x81, 0x7f, 0x28, 0x25, 0xfc, 0xa0,
|
||||
0x97, 0xf2, 0x10, 0x4a, 0x8a, 0x4a, 0x98, 0x80,
|
||||
|
||||
/* U+53C2 "参" */
|
||||
0x10, 0x4, 0x11, 0xff, 0x4, 0xf, 0xfe, 0x45,
|
||||
0x13, 0x15, 0x89, 0x6, 0xf, 0x8, 0xe, 0x3e,
|
||||
@@ -445,6 +459,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xfb, 0xe1, 0x44, 0x28, 0xc5, 0x15, 0x14, 0xa2,
|
||||
0x88, 0x21, 0x4, 0x51, 0x4a, 0x4a, 0x10, 0x80,
|
||||
|
||||
/* U+53D1 "发" */
|
||||
0x9, 0x11, 0x12, 0x20, 0x7f, 0xf1, 0x0, 0x20,
|
||||
0x7, 0xe1, 0x44, 0x25, 0x8, 0x42, 0x36, 0x18,
|
||||
0x30,
|
||||
|
||||
/* U+53D6 "取" */
|
||||
0xfc, 0x9, 0x79, 0x25, 0x3c, 0xa4, 0x94, 0xf2,
|
||||
0x92, 0x52, 0x64, 0xf8, 0x81, 0x28, 0x28, 0x80,
|
||||
@@ -453,6 +472,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0xc0, 0x60, 0x30, 0x18, 0xc, 0x6, 0x3,
|
||||
0x1, 0xff, 0xc0, 0x40,
|
||||
|
||||
/* U+53EF "可" */
|
||||
0xff, 0xe0, 0x8, 0x1, 0x3f, 0x24, 0x24, 0x84,
|
||||
0x90, 0x93, 0xf2, 0x40, 0x40, 0x8, 0x7, 0x0,
|
||||
|
||||
/* U+53F7 "号" */
|
||||
0x3f, 0x84, 0x10, 0x82, 0x1f, 0xc0, 0x1, 0xff,
|
||||
0xc4, 0x1, 0x0, 0x3f, 0xc0, 0x8, 0x1, 0x0,
|
||||
@@ -478,10 +501,25 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xc0, 0x3, 0xfe, 0x40, 0x48, 0x9, 0xff, 0x20,
|
||||
0x20,
|
||||
|
||||
/* U+5468 "周" */
|
||||
0x3f, 0xe4, 0x4, 0x88, 0x97, 0xd2, 0x22, 0x7f,
|
||||
0xc8, 0x9, 0x7d, 0x28, 0xa5, 0xf5, 0x0, 0xc0,
|
||||
0x70,
|
||||
|
||||
/* U+56DE "回" */
|
||||
0xff, 0xe0, 0x18, 0x6, 0x79, 0x92, 0x64, 0x99,
|
||||
0xe6, 0x1, 0x80, 0x7f, 0xf8, 0x4,
|
||||
|
||||
/* U+56E0 "因" */
|
||||
0xff, 0xf0, 0x6, 0x10, 0xc2, 0x1b, 0xfb, 0x8,
|
||||
0x62, 0x8c, 0x89, 0xa0, 0xb0, 0x7, 0xff, 0xc0,
|
||||
0x10,
|
||||
|
||||
/* U+56F4 "围" */
|
||||
0xff, 0xf0, 0x6, 0x10, 0xdf, 0xd8, 0x43, 0x3e,
|
||||
0x61, 0xd, 0xfd, 0x84, 0xb0, 0xb6, 0x10, 0xff,
|
||||
0xf0,
|
||||
|
||||
/* U+5730 "地" */
|
||||
0x21, 0x4, 0x20, 0x95, 0x92, 0xdf, 0x72, 0x5a,
|
||||
0x49, 0x49, 0x2b, 0x25, 0x6, 0x87, 0x10, 0x81,
|
||||
@@ -507,6 +545,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xaa, 0x48, 0x89, 0x11, 0x4, 0x21, 0x4, 0x40,
|
||||
0x80,
|
||||
|
||||
/* U+5931 "失" */
|
||||
0x4, 0x4, 0x80, 0x90, 0x1f, 0xc4, 0x41, 0x8,
|
||||
0x1, 0x7, 0xff, 0xa, 0x2, 0x20, 0x82, 0x60,
|
||||
0x30,
|
||||
|
||||
/* U+5B50 "子" */
|
||||
0x3f, 0x80, 0x20, 0x8, 0x2, 0x0, 0x41, 0xff,
|
||||
0xc1, 0x0, 0x20, 0x4, 0x0, 0x80, 0x70, 0x0,
|
||||
@@ -540,6 +583,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xff, 0x80, 0x20, 0xa, 0x2, 0x80, 0xbf, 0xe8,
|
||||
0x2, 0x0, 0x80, 0x60, 0x17, 0xfc,
|
||||
|
||||
/* U+5E27 "帧" */
|
||||
0x20, 0x84, 0x13, 0xe3, 0xd4, 0x4a, 0xbf, 0x54,
|
||||
0x6a, 0xad, 0x55, 0xba, 0xa4, 0x54, 0x85, 0x11,
|
||||
0x10,
|
||||
|
||||
/* U+5E38 "常" */
|
||||
0x24, 0x82, 0xa3, 0xff, 0xc0, 0x13, 0xf8, 0x41,
|
||||
0xf, 0xe0, 0x20, 0x7f, 0xc8, 0x89, 0x13, 0x2,
|
||||
@@ -565,6 +613,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xc5, 0x20, 0xa4, 0x54, 0x84, 0xfd, 0x40, 0x47,
|
||||
0xf0,
|
||||
|
||||
/* U+5F00 "开" */
|
||||
0x7f, 0xc2, 0x20, 0x44, 0x8, 0x81, 0x11, 0xff,
|
||||
0xc4, 0x40, 0x88, 0x21, 0x4, 0x21, 0x4, 0x0,
|
||||
|
||||
/* U+5F02 "异" */
|
||||
0x7f, 0xc8, 0x9, 0xff, 0x20, 0x4, 0x2, 0x7f,
|
||||
0xc4, 0x20, 0x84, 0xff, 0xe2, 0x10, 0x82, 0x20,
|
||||
@@ -575,6 +627,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x1f, 0x40, 0x88, 0x10, 0x82, 0x14, 0x79, 0xf0,
|
||||
0x10,
|
||||
|
||||
/* U+5F15 "引" */
|
||||
0x0, 0xfc, 0x42, 0x21, 0x1f, 0x8c, 0x6, 0x3,
|
||||
0xf1, 0x8, 0x84, 0x42, 0x2e, 0x10,
|
||||
|
||||
/* U+5F3A "强" */
|
||||
0x7, 0xdc, 0x88, 0x91, 0x13, 0xee, 0x11, 0x1f,
|
||||
0xe2, 0x4f, 0x49, 0x2f, 0xe4, 0x20, 0x85, 0x67,
|
||||
@@ -649,6 +705,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xcd, 0x27, 0x3f, 0x26, 0x25, 0x44, 0xaf, 0xb9,
|
||||
0x10,
|
||||
|
||||
/* U+6389 "掉" */
|
||||
0x21, 0x4, 0x3f, 0xc4, 0x17, 0xf2, 0x82, 0x5f,
|
||||
0xce, 0xf, 0x7f, 0x21, 0x5, 0xfc, 0x84, 0x30,
|
||||
0x80,
|
||||
|
||||
/* U+63A5 "接" */
|
||||
0x22, 0x4, 0x20, 0xbf, 0xfa, 0x22, 0x28, 0x5f,
|
||||
0xcc, 0x47, 0x7f, 0x22, 0x44, 0xc8, 0x86, 0x37,
|
||||
@@ -669,6 +730,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x4f, 0xbf, 0x8, 0x2f, 0xe4, 0x70, 0x95, 0x34,
|
||||
0x90,
|
||||
|
||||
/* U+6536 "收" */
|
||||
0x12, 0x12, 0x42, 0x48, 0x49, 0xf9, 0x45, 0x34,
|
||||
0xa4, 0x95, 0x94, 0xd1, 0x12, 0x50, 0x51, 0xc,
|
||||
0x10,
|
||||
|
||||
/* U+6545 "故" */
|
||||
0x22, 0x4, 0x40, 0x88, 0x7d, 0xf2, 0x44, 0x44,
|
||||
0xbe, 0x94, 0x52, 0x8a, 0x91, 0x23, 0xea, 0x46,
|
||||
@@ -730,6 +796,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x5, 0x41, 0x24, 0x44, 0x57, 0xf4, 0x10, 0x2,
|
||||
0x0,
|
||||
|
||||
/* U+673A "机" */
|
||||
0x20, 0x4, 0xf0, 0x92, 0x7a, 0x42, 0x48, 0xe9,
|
||||
0x1b, 0x25, 0x24, 0x24, 0x84, 0x94, 0xa2, 0x98,
|
||||
0x30,
|
||||
|
||||
/* U+677F "板" */
|
||||
0x20, 0x64, 0xf0, 0x90, 0x7a, 0x2, 0x7e, 0xea,
|
||||
0x5b, 0x4d, 0x2a, 0x25, 0x44, 0x90, 0xa5, 0x19,
|
||||
@@ -775,6 +846,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x0, 0x81, 0x28, 0x45, 0x11, 0x10, 0x41, 0x10,
|
||||
0x10,
|
||||
|
||||
/* U+6B63 "正" */
|
||||
0x7f, 0xc0, 0x80, 0x10, 0x2, 0x2, 0x40, 0x4f,
|
||||
0x89, 0x1, 0x20, 0x24, 0x4, 0x83, 0xff, 0x80,
|
||||
|
||||
/* U+6B7B "死" */
|
||||
0xff, 0xe4, 0x40, 0x88, 0x1d, 0x14, 0xa5, 0x55,
|
||||
0x4, 0xc0, 0x90, 0x22, 0x28, 0x46, 0x7, 0x80,
|
||||
@@ -789,6 +864,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x3, 0x40, 0xa8, 0x24, 0x98, 0x88, 0x10, 0x86,
|
||||
0x0,
|
||||
|
||||
/* U+6C60 "池" */
|
||||
0x2, 0x10, 0x41, 0x4b, 0x9, 0xa1, 0x65, 0x34,
|
||||
0x9c, 0x90, 0x92, 0x12, 0xca, 0x42, 0x40, 0x87,
|
||||
0xf0,
|
||||
|
||||
/* U+6CE2 "波" */
|
||||
0x1, 0x10, 0x21, 0x7f, 0x88, 0x91, 0x11, 0x3f,
|
||||
0x95, 0x10, 0xa2, 0x12, 0x8a, 0x22, 0x4a, 0x16,
|
||||
@@ -839,6 +919,16 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x8, 0xa3, 0x14, 0xa2, 0x84, 0x88, 0x91, 0x14,
|
||||
0x10,
|
||||
|
||||
/* U+72D7 "狗" */
|
||||
0x12, 0xa, 0x40, 0x8f, 0xaa, 0x19, 0x82, 0x2f,
|
||||
0x4d, 0x2a, 0xa5, 0x97, 0xa2, 0x84, 0x40, 0xb0,
|
||||
0x60,
|
||||
|
||||
/* U+72EC "独" */
|
||||
0x21, 0x14, 0x21, 0x4, 0x57, 0xf2, 0x92, 0x52,
|
||||
0x5a, 0x4d, 0x7f, 0x21, 0x4, 0x24, 0x87, 0xe7,
|
||||
0x90,
|
||||
|
||||
/* U+7528 "用" */
|
||||
0x7f, 0xd1, 0x14, 0x45, 0xff, 0x44, 0x51, 0x17,
|
||||
0xfd, 0x11, 0x44, 0x51, 0x18, 0x1c,
|
||||
@@ -867,6 +957,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xc8, 0x13, 0xfe, 0xa0, 0x47, 0xf8, 0x81, 0x1f,
|
||||
0xe0,
|
||||
|
||||
/* U+77E5 "知" */
|
||||
0x20, 0x4, 0x0, 0xf7, 0xa8, 0x99, 0x12, 0x22,
|
||||
0x7f, 0xc8, 0x89, 0x29, 0x24, 0xbd, 0x14, 0xc0,
|
||||
0x0,
|
||||
|
||||
/* U+7801 "码" */
|
||||
0xf, 0xde, 0x8, 0x91, 0x12, 0x24, 0x44, 0xef,
|
||||
0xf4, 0xa, 0x81, 0x5f, 0xae, 0x5, 0x40, 0x80,
|
||||
@@ -895,6 +990,21 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x9c, 0x43, 0x48, 0xa7, 0xc4, 0x20, 0x84, 0x17,
|
||||
0xf0,
|
||||
|
||||
/* U+7A97 "窗" */
|
||||
0x4, 0x1f, 0xfe, 0x44, 0x92, 0x40, 0x80, 0xff,
|
||||
0x92, 0x12, 0xfa, 0x72, 0x49, 0x89, 0x49, 0x3f,
|
||||
0xe0,
|
||||
|
||||
/* U+7ACB "立" */
|
||||
0x8, 0x0, 0x80, 0x0, 0x3f, 0xe0, 0x0, 0x1,
|
||||
0x8, 0x20, 0x84, 0x11, 0x2, 0x20, 0x8, 0x7f,
|
||||
0xf0,
|
||||
|
||||
/* U+7AD9 "站" */
|
||||
0x41, 0x4, 0x20, 0x4, 0x7c, 0xf0, 0x11, 0x22,
|
||||
0x15, 0xfa, 0xa1, 0x24, 0x26, 0x87, 0x1f, 0x82,
|
||||
0x10,
|
||||
|
||||
/* U+7AEF "端" */
|
||||
0x81, 0x9, 0x24, 0x24, 0xf7, 0xf0, 0x1, 0x5f,
|
||||
0xe8, 0x45, 0x7f, 0x4a, 0xa5, 0x57, 0x2a, 0x84,
|
||||
@@ -925,6 +1035,16 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x13, 0x1f, 0x18, 0x0, 0x86, 0xc3, 0x6, 0x0,
|
||||
0x20,
|
||||
|
||||
/* U+7EDF "统" */
|
||||
0x21, 0x4, 0x11, 0x1f, 0xc8, 0x8e, 0x24, 0x48,
|
||||
0x51, 0xff, 0x95, 0x2, 0x86, 0x53, 0x12, 0x84,
|
||||
0x30,
|
||||
|
||||
/* U+7EED "续" */
|
||||
0x21, 0x4, 0xf9, 0x4, 0x4b, 0xfe, 0x2, 0x45,
|
||||
0x11, 0x67, 0x94, 0xf, 0xe6, 0x23, 0x9, 0x6,
|
||||
0x10,
|
||||
|
||||
/* U+7EF4 "维" */
|
||||
0x22, 0x84, 0x49, 0x1f, 0xca, 0x4e, 0xc8, 0x4f,
|
||||
0xd1, 0x27, 0xa4, 0x7, 0xe6, 0x93, 0x12, 0x3,
|
||||
@@ -940,15 +1060,30 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xf, 0xe1, 0x4, 0x20, 0x84, 0x90, 0x92, 0x7f,
|
||||
0xf0,
|
||||
|
||||
/* U+811A "脚" */
|
||||
0x4, 0x1c, 0x9e, 0xba, 0xd2, 0x5e, 0x4b, 0x5d,
|
||||
0x69, 0x2f, 0x45, 0xaa, 0xb5, 0xde, 0x82, 0x30,
|
||||
0x40,
|
||||
|
||||
/* U+81EA "自" */
|
||||
0x8, 0x8, 0x3f, 0xf0, 0x18, 0xf, 0xfe, 0x3,
|
||||
0x1, 0xff, 0xc0, 0x60, 0x3f, 0xf0,
|
||||
|
||||
/* U+8282 "节" */
|
||||
0x11, 0x2, 0x23, 0xff, 0x88, 0x80, 0x1, 0xff,
|
||||
0x82, 0x10, 0x42, 0x8, 0x41, 0x18, 0x20, 0x4,
|
||||
0x0,
|
||||
|
||||
/* U+82AF "芯" */
|
||||
0x11, 0x2, 0x23, 0xff, 0x88, 0x80, 0x0, 0x8,
|
||||
0x4, 0x82, 0x92, 0x50, 0x2a, 0x16, 0x42, 0x87,
|
||||
0xc0,
|
||||
|
||||
/* U+8303 "范" */
|
||||
0x11, 0x1f, 0xfc, 0x44, 0x20, 0x2, 0xfc, 0x10,
|
||||
0xa2, 0x12, 0x42, 0x9, 0x85, 0x5, 0x20, 0xc3,
|
||||
0xf0,
|
||||
|
||||
/* U+8377 "荷" */
|
||||
0x11, 0x1f, 0xfc, 0x44, 0x17, 0xf2, 0x4, 0x9e,
|
||||
0xb2, 0x52, 0x4a, 0x4f, 0x49, 0x9, 0x1, 0x20,
|
||||
@@ -969,6 +1104,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x82, 0x8f, 0xff, 0x0, 0xf, 0xf8, 0x82, 0x1f,
|
||||
0xc0,
|
||||
|
||||
/* U+8BA1 "计" */
|
||||
0x41, 0x4, 0x20, 0x4, 0x0, 0x8e, 0x10, 0x5f,
|
||||
0xc8, 0x41, 0x8, 0x29, 0x6, 0x20, 0x84, 0x0,
|
||||
0x80,
|
||||
|
||||
/* U+8BA4 "认" */
|
||||
0x41, 0x4, 0x20, 0x4, 0x0, 0x8e, 0x10, 0x42,
|
||||
0x8, 0xa1, 0x14, 0x2a, 0x86, 0x88, 0x91, 0x4,
|
||||
@@ -1009,6 +1149,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x91, 0x12, 0x22, 0x44, 0x41, 0x60, 0xc3, 0x60,
|
||||
0x10,
|
||||
|
||||
/* U+8D25 "败" */
|
||||
0x1, 0x1f, 0x22, 0x28, 0x55, 0xfa, 0xc5, 0x54,
|
||||
0xaa, 0x95, 0x52, 0xaa, 0x84, 0x21, 0x4a, 0x46,
|
||||
0x30,
|
||||
|
||||
/* U+8D8A "越" */
|
||||
0x20, 0xa4, 0x13, 0xdf, 0x92, 0x42, 0x4b, 0xeb,
|
||||
0x49, 0xb5, 0x25, 0xb1, 0x74, 0x47, 0x80, 0x5f,
|
||||
@@ -1059,6 +1204,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0x4a, 0x51, 0x54, 0x2c, 0x45, 0x9, 0x40, 0x47,
|
||||
0xf0,
|
||||
|
||||
/* U+9001 "送" */
|
||||
0x88, 0x88, 0xa0, 0x0, 0xf, 0xec, 0x20, 0x84,
|
||||
0x1f, 0xfa, 0x10, 0x45, 0x9, 0x11, 0x41, 0x5f,
|
||||
0xf0,
|
||||
|
||||
/* U+901A "通" */
|
||||
0x9f, 0x88, 0x90, 0xc, 0xf, 0xed, 0x24, 0xbf,
|
||||
0x94, 0x92, 0xfe, 0x52, 0x4a, 0x59, 0x0, 0x5f,
|
||||
@@ -1123,6 +1273,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xc4, 0x80, 0x90, 0x11, 0x2, 0x90, 0x61, 0x88,
|
||||
0x0,
|
||||
|
||||
/* U+95E8 "门" */
|
||||
0x9f, 0xd0, 0x10, 0x6, 0x1, 0x80, 0x60, 0x18,
|
||||
0x6, 0x1, 0x80, 0x60, 0x18, 0x6, 0x7,
|
||||
|
||||
/* U+95ED "闭" */
|
||||
0x80, 0x13, 0xf0, 0x6, 0x11, 0x84, 0x6f, 0xd8,
|
||||
0x46, 0x31, 0x94, 0x69, 0x18, 0xc6, 0x7,
|
||||
@@ -1175,6 +1329,11 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
0xd0, 0x2, 0x7f, 0x49, 0x29, 0x25, 0x8b, 0x26,
|
||||
0x10,
|
||||
|
||||
/* U+9996 "首" */
|
||||
0x20, 0x82, 0x23, 0xff, 0x82, 0x7, 0xfc, 0x80,
|
||||
0x9f, 0xf2, 0x2, 0x7f, 0xc8, 0x9, 0xff, 0x20,
|
||||
0x20,
|
||||
|
||||
/* U+9A8C "验" */
|
||||
0x1, 0x1c, 0x20, 0x8a, 0x52, 0x2a, 0x83, 0x4f,
|
||||
0xbc, 0x0, 0x92, 0x39, 0x5a, 0xa8, 0x52, 0x37,
|
||||
@@ -1304,8 +1463,8 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 513, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 529, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 546, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 563, .adv_w = 192, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 576, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 563, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 580, .adv_w = 192, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 593, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 610, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 627, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
@@ -1323,101 +1482,101 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 831, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 848, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 865, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 882, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 896, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 912, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 929, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 945, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 961, .adv_w = 192, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 973, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 990, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1007, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1024, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1041, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1058, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1072, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1089, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1106, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1123, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1140, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1157, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1173, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1190, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1207, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1224, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1241, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1258, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1272, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1289, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1306, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1323, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1340, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1357, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1374, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1391, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1408, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1425, .adv_w = 192, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1439, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1456, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1473, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1490, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1507, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1524, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 882, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 899, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 916, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 930, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 946, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 962, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 979, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 995, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1012, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1028, .adv_w = 192, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
|
||||
{.bitmap_index = 1040, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1056, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1073, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1090, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1107, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1124, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1141, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1158, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1172, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1189, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1206, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1223, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1240, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1257, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1274, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1291, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1308, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1324, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1341, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1358, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1375, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1392, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1409, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1423, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1440, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1457, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1474, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1491, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1508, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1525, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1541, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1558, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1575, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1592, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1609, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1626, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1643, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1660, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1677, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1694, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1711, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1728, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1745, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1762, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1779, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1795, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1808, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1825, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1575, .adv_w = 192, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1589, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1606, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1623, .adv_w = 192, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 1637, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1654, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1671, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1688, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1705, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1722, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1739, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1756, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1773, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1790, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1807, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1824, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1841, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1858, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1872, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1889, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1906, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1923, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1940, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1957, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1974, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1991, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2008, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2025, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2042, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2059, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2076, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2092, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2109, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2126, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2143, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2160, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2177, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2194, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2211, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2228, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2245, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2262, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2279, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2296, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2310, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2327, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2344, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2361, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 2376, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2393, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2410, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2426, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2443, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1858, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1875, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1892, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1909, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1926, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1943, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1960, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1977, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 1994, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2011, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2027, .adv_w = 192, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 2040, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2057, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2073, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2090, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2104, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2121, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2138, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2155, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2172, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2189, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2206, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2223, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2240, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2257, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2274, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2291, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2308, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2325, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2341, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2357, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2374, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2391, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2408, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2425, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2442, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2459, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2476, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2493, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
@@ -1427,61 +1586,94 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
{.bitmap_index = 2561, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2578, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2595, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2612, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2629, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2646, .adv_w = 192, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 2612, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2626, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2643, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2660, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2677, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2694, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2711, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2728, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2745, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2762, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2779, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2796, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2813, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2830, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2847, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2864, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2881, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2898, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2915, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2932, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2949, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2966, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2983, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3000, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3017, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3034, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3051, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3068, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3085, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3102, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3119, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3135, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3152, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3169, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3186, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3203, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3220, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3237, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3254, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3271, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3286, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3301, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3318, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3335, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3352, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3369, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3386, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3402, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3419, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3436, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3453, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3470, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3487, .adv_w = 192, .box_w = 2, .box_h = 4, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 3488, .adv_w = 192, .box_w = 2, .box_h = 6, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 3490, .adv_w = 165, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = -1} /* U+25B6 */
|
||||
{.bitmap_index = 2677, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 2692, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2709, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2726, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2743, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2759, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2776, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2792, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2809, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2826, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2843, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2860, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2877, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2894, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2911, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2928, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2945, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2962, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2979, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2996, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3013, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3030, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3047, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3064, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3081, .adv_w = 192, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3095, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3112, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3129, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3146, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3163, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3180, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3197, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3214, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3231, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3248, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3265, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3282, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3299, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3316, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3333, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3350, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3367, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3384, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3401, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3418, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3435, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3452, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3469, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3486, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3503, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3520, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3537, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3554, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3571, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3588, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3605, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3622, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3639, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3655, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3672, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3689, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3706, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3723, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3740, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3757, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3774, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3791, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3806, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3821, .adv_w = 192, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 3836, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3853, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3870, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3887, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3904, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3921, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3937, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3954, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3971, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3988, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 4005, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 4022, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 4039, .adv_w = 192, .box_w = 2, .box_h = 4, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 4040, .adv_w = 192, .box_w = 2, .box_h = 6, .ofs_x = 2, .ofs_y = 0},
|
||||
{.bitmap_index = 4042, .adv_w = 165, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = -1} /* U+25B6 */
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
@@ -1489,29 +1681,34 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
|
||||
*--------------------*/
|
||||
|
||||
static const uint16_t unicode_list_1[] = {
|
||||
0x0, 0x1, 0x2, 0x2ca0, 0x2ca9, 0x2cdb, 0x2d2b, 0x2d2c,
|
||||
0x2d44, 0x2d96, 0x2ded, 0x2dee, 0x2dfc, 0x2e7d, 0x2e81, 0x2edc,
|
||||
0x3005, 0x300c, 0x3011, 0x3013, 0x309a, 0x30a6, 0x30d6, 0x30ed,
|
||||
0x3148, 0x31b6, 0x31da, 0x322b, 0x3262, 0x326c, 0x3276, 0x3283,
|
||||
0x3297, 0x32a8, 0x32cc, 0x32cf, 0x32ea, 0x357e, 0x35d0, 0x35e0,
|
||||
0x362b, 0x37ad, 0x37b6, 0x39f0, 0x39f7, 0x39f8, 0x3a3a, 0x3a3e,
|
||||
0x3a66, 0x3c92, 0x3cd8, 0x3d14, 0x3d2f, 0x3d46, 0x3d96, 0x3da2,
|
||||
0x3daf, 0x3dda, 0x3df2, 0x3df3, 0x3df5, 0x3ea1, 0x3edb, 0x3f02,
|
||||
0x3f0f, 0x40d7, 0x40eb, 0x4135, 0x4136, 0x4144, 0x4145, 0x420e,
|
||||
0x4245, 0x4247, 0x4249, 0x436d, 0x43e5, 0x43e8, 0x4410, 0x4414,
|
||||
0x4480, 0x4485, 0x4496, 0x44de, 0x45a0, 0x45a8, 0x45bf, 0x45ca,
|
||||
0x45cc, 0x461f, 0x4685, 0x46a7, 0x46c1, 0x46d7, 0x4760, 0x48c1,
|
||||
0x49c0, 0x49c1, 0x4a1b, 0x4a55, 0x4ae2, 0x4b82, 0x4be1, 0x4beb,
|
||||
0x4c28, 0x4ca5, 0x4cc9, 0x4f59, 0x50e7, 0x50e8, 0x5156, 0x53c8,
|
||||
0x53d5, 0x53ec, 0x5571, 0x5594, 0x55ab, 0x56a1, 0x570c, 0x570e,
|
||||
0x57da, 0x5872, 0x58ab, 0x598f, 0x59cc, 0x5b1b, 0x5b9b, 0x5d5f,
|
||||
0x5d68, 0x5d94, 0x5df1, 0x5e0e, 0x608a, 0x614f, 0x6217, 0x66ec,
|
||||
0x6765, 0x6a06, 0x6a44, 0x6a4f, 0x6a50, 0x6a5e, 0x6a82, 0x6a8f,
|
||||
0x6a97, 0x6bbf, 0x6c2a, 0x6c93, 0x6e0f, 0x6e1d, 0x6e33, 0x6e67,
|
||||
0x6e70, 0x6e71, 0x6e74, 0x6ea0, 0x6eba, 0x6ef3, 0x6f05, 0x6f88,
|
||||
0x6fed, 0x7067, 0x706d, 0x706f, 0x733f, 0x7345, 0x73a1, 0x73b9,
|
||||
0x741f, 0x748d, 0x7494, 0x7498, 0x74d2, 0x7504, 0x753c, 0x7596,
|
||||
0x7602, 0x7715, 0x7731, 0x7828, 0x792c, 0x7d78, 0xddac, 0xddba
|
||||
0x0, 0x1, 0x2, 0x2ca0, 0x2ca9, 0x2caa, 0x2cdb, 0x2d2b,
|
||||
0x2d2c, 0x2d44, 0x2d96, 0x2ded, 0x2dee, 0x2dfc, 0x2e7d, 0x2e81,
|
||||
0x2edc, 0x3005, 0x300c, 0x3011, 0x3013, 0x3039, 0x309a, 0x30a6,
|
||||
0x30d6, 0x30ed, 0x3148, 0x31b6, 0x31da, 0x322b, 0x323f, 0x3262,
|
||||
0x326c, 0x3271, 0x3276, 0x3283, 0x328f, 0x3297, 0x32a8, 0x32cc,
|
||||
0x32cf, 0x32ea, 0x3308, 0x357e, 0x3580, 0x3594, 0x35d0, 0x35e0,
|
||||
0x362b, 0x37ad, 0x37b6, 0x37d1, 0x39f0, 0x39f7, 0x39f8, 0x3a3a,
|
||||
0x3a3e, 0x3a66, 0x3c92, 0x3cc7, 0x3cd8, 0x3d14, 0x3d2f, 0x3d46,
|
||||
0x3d96, 0x3da0, 0x3da2, 0x3daf, 0x3db5, 0x3dda, 0x3df2, 0x3df3,
|
||||
0x3df5, 0x3ea1, 0x3edb, 0x3f02, 0x3f0f, 0x40d7, 0x40eb, 0x4135,
|
||||
0x4136, 0x4144, 0x4145, 0x420e, 0x4229, 0x4245, 0x4247, 0x4249,
|
||||
0x436d, 0x43d6, 0x43e5, 0x43e8, 0x4410, 0x4414, 0x4480, 0x4485,
|
||||
0x4496, 0x44de, 0x45a0, 0x45a8, 0x45bf, 0x45ca, 0x45cc, 0x45da,
|
||||
0x461f, 0x4685, 0x46a7, 0x46c1, 0x46d7, 0x4760, 0x48c1, 0x49c0,
|
||||
0x49c1, 0x4a03, 0x4a1b, 0x4a55, 0x4ae2, 0x4b00, 0x4b82, 0x4be1,
|
||||
0x4beb, 0x4c28, 0x4ca5, 0x4cc9, 0x4f59, 0x50e7, 0x50e8, 0x5156,
|
||||
0x5177, 0x518c, 0x53c8, 0x53d5, 0x53ec, 0x5571, 0x5594, 0x55ab,
|
||||
0x5685, 0x56a1, 0x570c, 0x570e, 0x57da, 0x5872, 0x58ab, 0x5937,
|
||||
0x596b, 0x5979, 0x598f, 0x59cc, 0x5b1b, 0x5b9b, 0x5d5f, 0x5d68,
|
||||
0x5d7f, 0x5d8d, 0x5d94, 0x5df1, 0x5e0e, 0x5fba, 0x608a, 0x6122,
|
||||
0x614f, 0x61a3, 0x6217, 0x66ec, 0x6765, 0x6a06, 0x6a41, 0x6a44,
|
||||
0x6a4f, 0x6a50, 0x6a5e, 0x6a82, 0x6a8f, 0x6a97, 0x6bbf, 0x6bc5,
|
||||
0x6c2a, 0x6c93, 0x6e0f, 0x6e1d, 0x6e33, 0x6e67, 0x6e70, 0x6e71,
|
||||
0x6e74, 0x6ea0, 0x6ea1, 0x6eba, 0x6ef3, 0x6f05, 0x6f88, 0x6fed,
|
||||
0x7067, 0x706d, 0x706f, 0x733f, 0x7345, 0x73a1, 0x73b9, 0x741f,
|
||||
0x7488, 0x748d, 0x7494, 0x7498, 0x74d2, 0x7504, 0x753c, 0x7596,
|
||||
0x7602, 0x7715, 0x7731, 0x7828, 0x7836, 0x792c, 0x7d78, 0xddac,
|
||||
0xddba
|
||||
};
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
@@ -1522,12 +1719,12 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
|
||||
},
|
||||
{
|
||||
.range_start = 9654, .range_length = 1, .glyph_id_start = 280,
|
||||
.range_start = 9654, .range_length = 1, .glyph_id_start = 313,
|
||||
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
|
||||
},
|
||||
{
|
||||
.range_start = 8544, .range_length = 56763, .glyph_id_start = 96,
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 184, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
.unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 217, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 模块名称:UI Page 事故记录(事故记录内容页)
|
||||
* 模块功能:事故记录叶子节点(node 34,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经 ui_w_records
|
||||
* 注入 reader 取自 sys_log(/log/accid.log,容量上限 512 条,满时删除重建);
|
||||
* 空日志显示单条伪行"无记录";向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 记录口径(本文件只读显示、不实现写入方;权威表 App/log/README.md §五类记录):
|
||||
* 触发判据 = 元件 asserted 上升沿**且**该元件跳闸投退项 = 1(跳闸型动作);
|
||||
* 写入点 = App/task/protect_task.c 的 s_log_active_edge();
|
||||
* "记录类型 = 日志 ID 本身"(一类记录一个文件,记录体内没有类型字段位,
|
||||
* Lead 裁定 2026-10-26)——本页只读 accid.log 一个文件,不做跨文件混排。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真 NAND 上真实记录的翻页读取、
|
||||
* 掉电后记录保持、清除记录后本页归零这三件事都要上板复核;模拟器侧该文件
|
||||
* 没有写入方,像素黄金只能验空态"无记录"。
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」:照 ui_page_runlog.c 同构,
|
||||
* 分页 / 空态 / 按实例读盘缓存全部复用 ui_w_records,
|
||||
* 本文件不重复实现,也不改共享组件)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "ui_page_accident.h"
|
||||
#include "ui_w_records.h"
|
||||
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/*
|
||||
* 记录页薄跳板:内容全部走 ui_w_records 共享组件(W6 合并先例)。
|
||||
* 实例 s_rec 携带记录源编号与**本实例自己的**读盘缓存——多页共用组件代码,
|
||||
* 但缓存不得共享,否则切页会命中上一记录号而显示另一页的陈旧行(静默错数据)。
|
||||
*/
|
||||
static ui_w_records_t s_rec = { UI_W_REC_LOG_ACCIDENT };
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(动态;每条记录 2 行,空日志 = 单条伪行"无记录")
|
||||
* 入口参数:无
|
||||
* 返 回 值:总行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t pg_count(void) {
|
||||
return ui_w_records_count(&s_rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取数(转调共享组件;偶数行 = 时间戳、奇数行 = 描述)
|
||||
* 入口参数:row - 全局行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲(本组件恒写空串) char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static void pg_refresh(uint16_t row, char *name, char *value) {
|
||||
ui_w_records_refresh(&s_rec, row, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=accident 绑定引用):
|
||||
* 动态列表页——每记录 2 行、UI_LIST_ROWS 行/页;band_h=UI_ROW_BAND_H(同 AC/DC 约定:
|
||||
* selectable 页选中行黑字必须配白带,band_h=0 会致选中行不可见)
|
||||
*/
|
||||
const content_page_def_t ui_page_accident_desc = {
|
||||
.id = "accident",
|
||||
.title = "事故记录",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = pg_count,
|
||||
.refresh = pg_refresh,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* 模块名称:UI Page 事故记录(事故记录内容页)
|
||||
* 模块功能:事故记录叶子节点(node 34,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经
|
||||
* ui_w_records 注入 reader 取自 sys_log(/log/accid.log;本文件不 include
|
||||
* sys_log.h——task-6 分层收紧);空日志显示单条伪行"无记录";
|
||||
* 向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」;记录层与写入点已由
|
||||
* 道F task-10 / 道G task-12 落地,本批只补页面)
|
||||
*/
|
||||
#ifndef UI_PAGE_ACCIDENT_H
|
||||
#define UI_PAGE_ACCIDENT_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):事故记录页(描述符 .id = "accident");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=accident 注记绑定引用(定义于 ui_page_accident.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_accident_desc;
|
||||
|
||||
#endif /* UI_PAGE_ACCIDENT_H */
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 模块名称:UI Page 保护告警(保护告警内容页)
|
||||
* 模块功能:保护告警叶子节点(node 36,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经 ui_w_records
|
||||
* 注入 reader 取自 sys_log(/log/alarm.log,容量上限 1024 条,满时删除重建);
|
||||
* 空日志显示单条伪行"无记录";向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 记录口径(本文件只读显示、不实现写入方;权威表 App/log/README.md §五类记录):
|
||||
* 触发判据 = 元件 asserted 上升沿**且**跳闸投退项 = 0 或该元件无此项(告警型动作);
|
||||
* 写入点 = App/task/protect_task.c 的 s_log_active_edge();
|
||||
* "记录类型 = 日志 ID 本身"(一类记录一个文件,记录体内没有类型字段位,
|
||||
* Lead 裁定 2026-10-26)——本页只读 alarm.log 一个文件,不做跨文件混排。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真 NAND 上真实记录的翻页读取、
|
||||
* 掉电后记录保持、清除记录后本页归零这三件事都要上板复核;模拟器侧该文件
|
||||
* 没有写入方,像素黄金只能验空态"无记录"。
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」:照 ui_page_runlog.c 同构,
|
||||
* 分页 / 空态 / 按实例读盘缓存全部复用 ui_w_records,
|
||||
* 本文件不重复实现,也不改共享组件)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "ui_page_alarm.h"
|
||||
#include "ui_w_records.h"
|
||||
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/*
|
||||
* 记录页薄跳板:内容全部走 ui_w_records 共享组件(W6 合并先例)。
|
||||
* 实例 s_rec 携带记录源编号与**本实例自己的**读盘缓存——多页共用组件代码,
|
||||
* 但缓存不得共享,否则切页会命中上一记录号而显示另一页的陈旧行(静默错数据)。
|
||||
*/
|
||||
static ui_w_records_t s_rec = { UI_W_REC_LOG_ALARM };
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(动态;每条记录 2 行,空日志 = 单条伪行"无记录")
|
||||
* 入口参数:无
|
||||
* 返 回 值:总行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t pg_count(void) {
|
||||
return ui_w_records_count(&s_rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取数(转调共享组件;偶数行 = 时间戳、奇数行 = 描述)
|
||||
* 入口参数:row - 全局行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲(本组件恒写空串) char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static void pg_refresh(uint16_t row, char *name, char *value) {
|
||||
ui_w_records_refresh(&s_rec, row, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=alarm 绑定引用):
|
||||
* 动态列表页——每记录 2 行、UI_LIST_ROWS 行/页;band_h=UI_ROW_BAND_H(同 AC/DC 约定:
|
||||
* selectable 页选中行黑字必须配白带,band_h=0 会致选中行不可见)
|
||||
*/
|
||||
const content_page_def_t ui_page_alarm_desc = {
|
||||
.id = "alarm",
|
||||
.title = "保护告警",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = pg_count,
|
||||
.refresh = pg_refresh,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* 模块名称:UI Page 保护告警(保护告警内容页)
|
||||
* 模块功能:保护告警叶子节点(node 36,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经
|
||||
* ui_w_records 注入 reader 取自 sys_log(/log/alarm.log;本文件不 include
|
||||
* sys_log.h——task-6 分层收紧);空日志显示单条伪行"无记录";
|
||||
* 向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」;记录层与写入点已由
|
||||
* 道F task-10 / 道G task-12 落地,本批只补页面)
|
||||
*/
|
||||
#ifndef UI_PAGE_ALARM_H
|
||||
#define UI_PAGE_ALARM_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):保护告警页(描述符 .id = "alarm");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=alarm 注记绑定引用(定义于 ui_page_alarm.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_alarm_desc;
|
||||
|
||||
#endif /* UI_PAGE_ALARM_H */
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 模块名称:UI Page 操作记录(操作记录内容页)
|
||||
* 模块功能:操作记录叶子节点(node 35,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经 ui_w_records
|
||||
* 注入 reader 取自 sys_log(/log/oper.log,容量上限 512 条,满时删除重建);
|
||||
* 空日志显示单条伪行"无记录";向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 记录口径(本文件只读显示、不实现写入方;权威表 App/log/README.md §五类记录):
|
||||
* 触发判据 = 人工/远端操作留痕:定值保存、强制复归、对时(8888 与 104)、清除记录;
|
||||
* 写入点 = App/task/default_task.c(定值保存)、App/protocol/iec104/iec104_pts.c(复归与整定写入)、App/task/iec104_serv.c 与 App/sync/time_sync.c(对时)、App/log/sys_log_mcu.c(清除记录留痕,OPER 自身除外);
|
||||
* "记录类型 = 日志 ID 本身"(一类记录一个文件,记录体内没有类型字段位,
|
||||
* Lead 裁定 2026-10-26)——本页只读 oper.log 一个文件,不做跨文件混排。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真 NAND 上真实记录的翻页读取、
|
||||
* 掉电后记录保持、清除记录后本页归零这三件事都要上板复核;模拟器侧该文件
|
||||
* 没有写入方,像素黄金只能验空态"无记录"。
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」:照 ui_page_runlog.c 同构,
|
||||
* 分页 / 空态 / 按实例读盘缓存全部复用 ui_w_records,
|
||||
* 本文件不重复实现,也不改共享组件)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "ui_page_oper.h"
|
||||
#include "ui_w_records.h"
|
||||
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/*
|
||||
* 记录页薄跳板:内容全部走 ui_w_records 共享组件(W6 合并先例)。
|
||||
* 实例 s_rec 携带记录源编号与**本实例自己的**读盘缓存——多页共用组件代码,
|
||||
* 但缓存不得共享,否则切页会命中上一记录号而显示另一页的陈旧行(静默错数据)。
|
||||
*/
|
||||
static ui_w_records_t s_rec = { UI_W_REC_LOG_OPER };
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(动态;每条记录 2 行,空日志 = 单条伪行"无记录")
|
||||
* 入口参数:无
|
||||
* 返 回 值:总行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t pg_count(void) {
|
||||
return ui_w_records_count(&s_rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取数(转调共享组件;偶数行 = 时间戳、奇数行 = 描述)
|
||||
* 入口参数:row - 全局行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲(本组件恒写空串) char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static void pg_refresh(uint16_t row, char *name, char *value) {
|
||||
ui_w_records_refresh(&s_rec, row, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=oper 绑定引用):
|
||||
* 动态列表页——每记录 2 行、UI_LIST_ROWS 行/页;band_h=UI_ROW_BAND_H(同 AC/DC 约定:
|
||||
* selectable 页选中行黑字必须配白带,band_h=0 会致选中行不可见)
|
||||
*/
|
||||
const content_page_def_t ui_page_oper_desc = {
|
||||
.id = "oper",
|
||||
.title = "操作记录",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = pg_count,
|
||||
.refresh = pg_refresh,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* 模块名称:UI Page 操作记录(操作记录内容页)
|
||||
* 模块功能:操作记录叶子节点(node 35,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经
|
||||
* ui_w_records 注入 reader 取自 sys_log(/log/oper.log;本文件不 include
|
||||
* sys_log.h——task-6 分层收紧);空日志显示单条伪行"无记录";
|
||||
* 向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」;记录层与写入点已由
|
||||
* 道F task-10 / 道G task-12 落地,本批只补页面)
|
||||
*/
|
||||
#ifndef UI_PAGE_OPER_H
|
||||
#define UI_PAGE_OPER_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):操作记录页(描述符 .id = "oper");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=oper 注记绑定引用(定义于 ui_page_oper.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_oper_desc;
|
||||
|
||||
#endif /* UI_PAGE_OPER_H */
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "ui_page_registry.h"
|
||||
|
||||
#include "ui_page_ac.h"
|
||||
#include "ui_page_accident.h"
|
||||
#include "ui_page_alarm.h"
|
||||
#include "ui_page_calib.h"
|
||||
#include "ui_page_clear.h"
|
||||
#include "ui_page_clock.h"
|
||||
@@ -18,15 +20,19 @@
|
||||
#include "ui_page_deadband.h"
|
||||
#include "ui_page_device_info.h"
|
||||
#include "ui_page_net_cfg.h"
|
||||
#include "ui_page_oper.h"
|
||||
#include "ui_page_password.h"
|
||||
#include "ui_page_reset.h"
|
||||
#include "ui_page_runlog.h"
|
||||
#include "ui_page_runreport.h"
|
||||
#include "ui_page_selftest.h"
|
||||
#include "ui_page_soe.h"
|
||||
#include "ui_page_start.h"
|
||||
#include "ui_page_view_param.h"
|
||||
#include "ui_page_view_plate.h"
|
||||
#include "ui_page_view_set.h"
|
||||
#include "ui_page_view_word.h"
|
||||
#include "ui_page_yk.h"
|
||||
#include "ui_page_yx.h"
|
||||
|
||||
const ui_page_entry_t g_ui_page_map[UI_PAGE_MAP_COUNT] = {
|
||||
@@ -50,8 +56,14 @@ const ui_page_entry_t g_ui_page_map[UI_PAGE_MAP_COUNT] = {
|
||||
{ 29u, &ui_page_comm_desc }, /* node 29 通讯设置 */
|
||||
{ 30u, &ui_page_net_cfg_desc }, /* node 30 网口设置 */
|
||||
{ 33u, &ui_page_soe_desc }, /* node 33 SOE记录 */
|
||||
{ 34u, &ui_page_accident_desc }, /* node 34 事故记录 */
|
||||
{ 35u, &ui_page_oper_desc }, /* node 35 操作记录 */
|
||||
{ 36u, &ui_page_alarm_desc }, /* node 36 保护告警 */
|
||||
{ 37u, &ui_page_start_desc }, /* node 37 保护启动 */
|
||||
{ 38u, &ui_page_yk_desc }, /* node 38 遥控记录 */
|
||||
{ 39u, &ui_page_selftest_desc }, /* node 39 自检记录 */
|
||||
{ 40u, &ui_page_runlog_desc }, /* node 40 运行记录 */
|
||||
{ 41u, &ui_page_runreport_desc }, /* node 41 运行报告 */
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -25,7 +25,7 @@ typedef struct {
|
||||
const content_page_def_t *desc; /* 页面描述符(Flash const) */
|
||||
} ui_page_entry_t;
|
||||
|
||||
#define UI_PAGE_MAP_COUNT 22u /* 绑定了内容页的叶子数 */
|
||||
#define UI_PAGE_MAP_COUNT 28u /* 绑定了内容页的叶子数 */
|
||||
|
||||
extern const ui_page_entry_t g_ui_page_map[UI_PAGE_MAP_COUNT];
|
||||
|
||||
|
||||
@@ -0,0 +1,276 @@
|
||||
/*
|
||||
* 模块名称:UI Page RunReport(运行报告内容页)
|
||||
* 模块功能:运行报告叶子节点(node 41,父节点「记录查询」)的内容页数据——13 行只读统计,
|
||||
* 分 2 页(UI_LIST_ROWS=8 行/页 → 8 + 5);数据全部经 ui_data 装置信息帧下发
|
||||
* (写侧 App/app/ui_data_feed.c 搬 boot_stats_get() 与 iec104_serv_get_stats(),
|
||||
* 本文件零 App include,分层方向由 layer-deps 门禁守护)
|
||||
* 口径纪律(判据 docs/任务规划/UI补齐.md §2「运行报告」行 + App/util/boot_stats.h 四数台账):
|
||||
* ① **四个数逐个挂范围标签**,不许含糊——上电次数=自 RTC 电池周期(换电池即清零,
|
||||
* **禁写终身次数**,固件里压根没有跨开机计数器)、复位原因/运行时长/104 统计
|
||||
* =本次开机以来(104 四枚跨重连不清零,但**断电即归零**);
|
||||
* ② boot_ready==0(账本未初始化)或 seq_state==0(UNKNOWN)时上电次数显示 "--"
|
||||
* 而不是 0——把"没有数"洗成"0 次"是最坏的一种误导;
|
||||
* ③ write_failed==1 单独占一行("未写回"):后果是账本**少计**,绝不会重复计数
|
||||
* (掉电保持数 +1 后先写 SRAM 再发布,写失败仍按内存值显示);
|
||||
* ④ 运行时长是 tick 回绕口径(32 位 ms ≈ 49.7 天、uptime_s ≈ 136 年),
|
||||
* 显示按"天 + 时时:分分"退化(与装置信息页同一 ASCII 记法,见 di_fmt_uptime),
|
||||
* **不做跨开机累计**(用户裁定 2026-10-27)
|
||||
* 几何余量(2026-10-28 黄金目检):「自电池周期」5 字 x12px 从 x=101 起、右缘 161,**余量 0**——
|
||||
* 值列再加字或换字号必切边;要扩文案必须先减字或改标签列宽度,别直接加字。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真机上电一次看 boot_count +1、
|
||||
* 拔电换电池后 seq_state 落 RESTARTED、IWDG 复位后 rst_cause 落 IWDG、
|
||||
* 主站连一次看 conn_up +1 —— 模拟器无 boot_stats(依赖 SD2506 I2C 与 RCC_CSR)
|
||||
* 与 104 协议栈,黄金参考拍的是固定假数据
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(形态照 ui_page_device_info.c 的行表 + 值格式化,
|
||||
* 分页与选中带照 ui_page_deadband.c 的列表页几何)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include <string.h>
|
||||
|
||||
#include "ui_page_runreport.h"
|
||||
|
||||
#include "ui_data.h"
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 私有宏定义区 */
|
||||
|
||||
#define RR_ROW_N 13u /* 行数(2 页:8 + 5) */
|
||||
#define RR_INVALID "--"
|
||||
#define RR_SEC_PER_DAY 86400u
|
||||
|
||||
/* 复位原因编码(与 App/util/boot_stats.h 的 BOOT_STATS_CAUSE_* 一一对应;
|
||||
* 这里刻意写成数字常量并在注释里钉死映射——BSP 不得 include App 头,
|
||||
* 编码变更由 test/host/ui_data 的搬运断言与 App/log/README 口径联动发现 */
|
||||
#define RR_CAUSE_UNKNOWN 0u
|
||||
#define RR_CAUSE_IWDG 1u
|
||||
#define RR_CAUSE_WWDG 2u
|
||||
#define RR_CAUSE_SFT 3u
|
||||
#define RR_CAUSE_POR 4u
|
||||
#define RR_CAUSE_PIN 5u
|
||||
#define RR_CAUSE_BOR 6u
|
||||
|
||||
/* 上电次数可信度编码(BOOT_STATS_SEQ_*) */
|
||||
#define RR_SEQ_UNKNOWN 0u
|
||||
#define RR_SEQ_FRESH 1u
|
||||
#define RR_SEQ_CONTINUED 2u
|
||||
#define RR_SEQ_RESTARTED 3u
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/* 行名表(Flash;四数各自挂范围行,口径不许含糊) */
|
||||
static const char *const s_names[RR_ROW_N] = {
|
||||
"上电次数", "计数范围", "计数可信", "计数写回", "复位原因",
|
||||
"复位范围", "运行时长", "时长范围", "主站接入",
|
||||
"发送帧数", "发送失败", "接收字节", "统计范围",
|
||||
};
|
||||
|
||||
/* 帧缓存:发布序号变化才整帧拷一次(同装置信息页口径) */
|
||||
static ui_data_info_t s_info;
|
||||
static uint32_t s_seq;
|
||||
|
||||
/* 函数定义区 */
|
||||
|
||||
/*
|
||||
* 函数功能:取用最新装置信息帧(只在发布序号变化时整帧拷)
|
||||
* 入口参数:无
|
||||
* 返 回 值:1 - 有可用帧;0 - 首帧未到或本帧无效 uint8_t
|
||||
* 限定条件:uiTask 绘制上下文
|
||||
*/
|
||||
static uint8_t rr_frame_ready(void) {
|
||||
uint32_t now = ui_data_info_seq();
|
||||
|
||||
if (now != s_seq) {
|
||||
s_seq = now;
|
||||
if (ui_data_info(&s_info) != 0) {
|
||||
(void)memset(&s_info, 0, sizeof(s_info));
|
||||
return 0u;
|
||||
}
|
||||
}
|
||||
return (s_info.valid != 0u) ? 1u : 0u;
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:开页复位缓存(强制下一次绘制重取最新帧,避免停在上一帧的计数上)
|
||||
* 入口参数:无
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:开页时由框架调用
|
||||
*/
|
||||
static void rr_init(void) {
|
||||
s_seq = 0u;
|
||||
(void)memset(&s_info, 0, sizeof(s_info));
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:复位原因编码 → 屏上中文(5 字以内,避免挤压值列)
|
||||
* 入口参数:cause - 复位原因编码(RR_CAUSE_*) uint8_t
|
||||
* 返 回 值:中文标签(Flash 字面量,恒非 NULL) const char *
|
||||
* 限定条件:编码越界(含 SD2506 诊断混进来的位)一律落"未知",不猜
|
||||
*/
|
||||
static const char *rr_cause_str(uint8_t cause) {
|
||||
const char *p;
|
||||
|
||||
switch (cause) {
|
||||
case RR_CAUSE_IWDG: p = "独立看门狗"; break;
|
||||
case RR_CAUSE_WWDG: p = "窗口看门狗"; break;
|
||||
case RR_CAUSE_SFT: p = "软件复位"; break;
|
||||
case RR_CAUSE_POR: p = "上电复位"; break;
|
||||
case RR_CAUSE_PIN: p = "引脚复位"; break;
|
||||
case RR_CAUSE_BOR: p = "掉电复位"; break;
|
||||
default: p = "未知"; break;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:上电次数可信度编码 → 屏上中文
|
||||
* 入口参数:state - 可信度编码(RR_SEQ_*) uint8_t
|
||||
* 返 回 值:中文标签(Flash 字面量,恒非 NULL) const char *
|
||||
* 限定条件:编码越界一律"未知"
|
||||
* 函数说明:RESTARTED 的屏上话是"掉电重开"——它指的是 RTC 电池域掉过电
|
||||
* (计数值本身还在,但跨不掉电那段已经不可信),不是"整机重启过"
|
||||
*/
|
||||
static const char *rr_seq_str(uint8_t state) {
|
||||
const char *p;
|
||||
|
||||
switch (state) {
|
||||
case RR_SEQ_FRESH: p = "首次启用"; break;
|
||||
case RR_SEQ_CONTINUED: p = "延续"; break;
|
||||
case RR_SEQ_RESTARTED: p = "掉电重开"; break;
|
||||
default: p = "未知"; break;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:格式化运行时长(本次开机以来,秒)
|
||||
* 入口参数:sec - 秒数 uint32_t
|
||||
* a_buf - 输出缓冲 char *
|
||||
* a_cap - 缓冲容量 uint32_t
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:a_buf/a_cap 有效
|
||||
* 函数说明:>= 1 天走 "%ud%02u:%02u"(ASCII 小写 d,避免为"天"字扩字模);
|
||||
* < 1 天走 "%02u:%02u:%02u"。与装置信息页同一记法,两页不许各写一套
|
||||
*/
|
||||
static void rr_fmt_uptime(uint32_t sec, char *a_buf, uint32_t a_cap) {
|
||||
uint32_t day = sec / RR_SEC_PER_DAY;
|
||||
uint32_t rem = sec % RR_SEC_PER_DAY;
|
||||
|
||||
if (day > 0u) {
|
||||
(void)lv_snprintf(a_buf, a_cap, "%luud%02lu:%02lu",
|
||||
(unsigned long)day, (unsigned long)(rem / 3600u),
|
||||
(unsigned long)((rem % 3600u) / 60u));
|
||||
} else {
|
||||
(void)lv_snprintf(a_buf, a_cap, "%02lu:%02lu:%02lu",
|
||||
(unsigned long)(rem / 3600u),
|
||||
(unsigned long)((rem % 3600u) / 60u),
|
||||
(unsigned long)(rem % 60u));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(固定 12 行,分 2 页)
|
||||
* 入口参数:无
|
||||
* 返 回 值:行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t rr_count(void) {
|
||||
return RR_ROW_N;
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取名/值(13 行,见 s_names 表)
|
||||
* 入口参数:row - 行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲 char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文;首帧未到时数值行一律 "--"(不显示 0 冒充有数)
|
||||
*/
|
||||
static void rr_refresh(uint16_t row, char *name, char *value) {
|
||||
const uint32_t cap = (uint32_t)UI_BUF_STRLEN;
|
||||
uint8_t ready;
|
||||
|
||||
if (row >= RR_ROW_N) {
|
||||
value[0] = (char)0;
|
||||
return;
|
||||
}
|
||||
(void)lv_snprintf(name, cap, "%s", s_names[row]);
|
||||
ready = rr_frame_ready();
|
||||
|
||||
if (ready == 0u) {
|
||||
(void)lv_snprintf(value, cap, "%s", RR_INVALID);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (row) {
|
||||
case 0u: /* 上电次数 */
|
||||
if ((s_info.boot_ready == 0u) || (s_info.boot_seq_state == RR_SEQ_UNKNOWN)) {
|
||||
(void)lv_snprintf(value, cap, "%s", RR_INVALID);
|
||||
} else {
|
||||
(void)lv_snprintf(value, cap, "%lu", (unsigned long)s_info.boot_count);
|
||||
}
|
||||
break;
|
||||
case 1u: /* 计数范围 */
|
||||
(void)lv_snprintf(value, cap, "%s", (s_info.boot_ready == 0u) ? "未知" : "自电池周期");
|
||||
break;
|
||||
case 2u: /* 计数可信(四态;未初始化落"未知") */
|
||||
(void)lv_snprintf(value, cap, "%s", rr_seq_str(s_info.boot_seq_state));
|
||||
break;
|
||||
case 3u: /* 计数写回 */
|
||||
(void)lv_snprintf(value, cap, "%s",
|
||||
(s_info.boot_write_failed != 0u) ? "未写回" : "正常");
|
||||
break;
|
||||
case 4u: /* 复位原因 */
|
||||
(void)lv_snprintf(value, cap, "%s", rr_cause_str(s_info.rst_cause));
|
||||
break;
|
||||
case 5u: /* 复位范围 */
|
||||
(void)lv_snprintf(value, cap, "%s", "本次开机");
|
||||
break;
|
||||
case 6u: /* 运行时长 */
|
||||
rr_fmt_uptime(s_info.uptime_s, value, cap);
|
||||
break;
|
||||
case 7u: /* 时长范围 */
|
||||
(void)lv_snprintf(value, cap, "%s", "本次开机");
|
||||
break;
|
||||
case 8u:
|
||||
(void)lv_snprintf(value, cap, "%lu", (unsigned long)s_info.iec104_conn_up);
|
||||
break;
|
||||
case 9u:
|
||||
(void)lv_snprintf(value, cap, "%lu", (unsigned long)s_info.iec104_apdu_tx);
|
||||
break;
|
||||
case 10u:
|
||||
(void)lv_snprintf(value, cap, "%lu", (unsigned long)s_info.iec104_tx_fail);
|
||||
break;
|
||||
case 11u:
|
||||
(void)lv_snprintf(value, cap, "%lu", (unsigned long)s_info.iec104_rx_bytes);
|
||||
break;
|
||||
default: /* 统计范围 */
|
||||
(void)lv_snprintf(value, cap, "%s", "本次开机");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=runreport 绑定引用):
|
||||
* 只读列表页——selectable=1 走真分页(13 行 / UI_LIST_ROWS 行 = 2 页,页脚真实页码);
|
||||
* band_h=UI_ROW_BAND_H(选中行黑字须配白带);无写入口,故无保存态/无三态
|
||||
*/
|
||||
const content_page_def_t ui_page_runreport_desc = {
|
||||
.id = "runreport",
|
||||
.title = "运行报告",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = rr_count,
|
||||
.init_cb = rr_init,
|
||||
.refresh = rr_refresh,
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* 模块名称:UI Page RunReport(运行报告内容页)
|
||||
* 模块功能:运行报告叶子节点(node 41,父节点「记录查询」)的内容页数据——12 行只读
|
||||
* 统计(上电次数/计数范围/计数写回/复位原因/复位范围/运行时长/时长范围/
|
||||
* 主站接入/发送帧数/发送失败/接收字节/统计范围),数据全部取自 ui_data 装置
|
||||
* 信息帧(App 层装配,本文件零 App include);向框架 ui_content_page 提供
|
||||
* 页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「运行报告」;数据面 = 道G task-12 的
|
||||
* boot_stats 开机账本 + iec104_serv 观测计数 + 现成
|
||||
* uptime_s,本批只做搬运与屏上文案)
|
||||
*/
|
||||
#ifndef UI_PAGE_RUNREPORT_H
|
||||
#define UI_PAGE_RUNREPORT_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):运行报告页(描述符 .id = "runreport");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=runreport 注记绑定引用(定义于 ui_page_runreport.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_runreport_desc;
|
||||
|
||||
#endif /* UI_PAGE_RUNREPORT_H */
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 模块名称:UI Page 保护启动(保护启动内容页)
|
||||
* 模块功能:保护启动叶子节点(node 37,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经 ui_w_records
|
||||
* 注入 reader 取自 sys_log(/log/start.log,容量上限 1024 条,满时删除重建);
|
||||
* 空日志显示单条伪行"无记录";向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 记录口径(本文件只读显示、不实现写入方;权威表 App/log/README.md §五类记录):
|
||||
* 触发判据 = 元件 picked 上升沿(越限电平,早于或等于动作);
|
||||
* 写入点 = App/task/protect_task.c 的 s_log_active_edge();
|
||||
* "记录类型 = 日志 ID 本身"(一类记录一个文件,记录体内没有类型字段位,
|
||||
* Lead 裁定 2026-10-26)——本页只读 start.log 一个文件,不做跨文件混排。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真 NAND 上真实记录的翻页读取、
|
||||
* 掉电后记录保持、清除记录后本页归零这三件事都要上板复核;模拟器侧该文件
|
||||
* 没有写入方,像素黄金只能验空态"无记录"。
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」:照 ui_page_runlog.c 同构,
|
||||
* 分页 / 空态 / 按实例读盘缓存全部复用 ui_w_records,
|
||||
* 本文件不重复实现,也不改共享组件)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "ui_page_start.h"
|
||||
#include "ui_w_records.h"
|
||||
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/*
|
||||
* 记录页薄跳板:内容全部走 ui_w_records 共享组件(W6 合并先例)。
|
||||
* 实例 s_rec 携带记录源编号与**本实例自己的**读盘缓存——多页共用组件代码,
|
||||
* 但缓存不得共享,否则切页会命中上一记录号而显示另一页的陈旧行(静默错数据)。
|
||||
*/
|
||||
static ui_w_records_t s_rec = { UI_W_REC_LOG_START };
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(动态;每条记录 2 行,空日志 = 单条伪行"无记录")
|
||||
* 入口参数:无
|
||||
* 返 回 值:总行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t pg_count(void) {
|
||||
return ui_w_records_count(&s_rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取数(转调共享组件;偶数行 = 时间戳、奇数行 = 描述)
|
||||
* 入口参数:row - 全局行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲(本组件恒写空串) char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static void pg_refresh(uint16_t row, char *name, char *value) {
|
||||
ui_w_records_refresh(&s_rec, row, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=start 绑定引用):
|
||||
* 动态列表页——每记录 2 行、UI_LIST_ROWS 行/页;band_h=UI_ROW_BAND_H(同 AC/DC 约定:
|
||||
* selectable 页选中行黑字必须配白带,band_h=0 会致选中行不可见)
|
||||
*/
|
||||
const content_page_def_t ui_page_start_desc = {
|
||||
.id = "start",
|
||||
.title = "保护启动",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = pg_count,
|
||||
.refresh = pg_refresh,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* 模块名称:UI Page 保护启动(保护启动内容页)
|
||||
* 模块功能:保护启动叶子节点(node 37,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经
|
||||
* ui_w_records 注入 reader 取自 sys_log(/log/start.log;本文件不 include
|
||||
* sys_log.h——task-6 分层收紧);空日志显示单条伪行"无记录";
|
||||
* 向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」;记录层与写入点已由
|
||||
* 道F task-10 / 道G task-12 落地,本批只补页面)
|
||||
*/
|
||||
#ifndef UI_PAGE_START_H
|
||||
#define UI_PAGE_START_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):保护启动页(描述符 .id = "start");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=start 注记绑定引用(定义于 ui_page_start.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_start_desc;
|
||||
|
||||
#endif /* UI_PAGE_START_H */
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* 模块名称:UI Page 遥控记录(遥控记录内容页)
|
||||
* 模块功能:遥控记录叶子节点(node 38,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经 ui_w_records
|
||||
* 注入 reader 取自 sys_log(/log/yk.log,容量上限 256 条,满时删除重建);
|
||||
* 空日志显示单条伪行"无记录";向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 记录口径(本文件只读显示、不实现写入方;权威表 App/log/README.md §五类记录):
|
||||
* 触发判据 = 104 遥控的选择 / 执行 / 拒绝(含未知类型与参数越界);
|
||||
* 写入点 = App/protocol/iec104/iec104_pts.c 的遥控段;
|
||||
* "记录类型 = 日志 ID 本身"(一类记录一个文件,记录体内没有类型字段位,
|
||||
* Lead 裁定 2026-10-26)——本页只读 yk.log 一个文件,不做跨文件混排。
|
||||
* 台架待补(不在本批,已登记 docs/任务规划/登记簿.md):真 NAND 上真实记录的翻页读取、
|
||||
* 掉电后记录保持、清除记录后本页归零这三件事都要上板复核;模拟器侧该文件
|
||||
* 没有写入方,像素黄金只能验空态"无记录"。
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」:照 ui_page_runlog.c 同构,
|
||||
* 分页 / 空态 / 按实例读盘缓存全部复用 ui_w_records,
|
||||
* 本文件不重复实现,也不改共享组件)
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "ui_page_yk.h"
|
||||
#include "ui_w_records.h"
|
||||
|
||||
#include "ui_tokens.h"
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/*
|
||||
* 记录页薄跳板:内容全部走 ui_w_records 共享组件(W6 合并先例)。
|
||||
* 实例 s_rec 携带记录源编号与**本实例自己的**读盘缓存——多页共用组件代码,
|
||||
* 但缓存不得共享,否则切页会命中上一记录号而显示另一页的陈旧行(静默错数据)。
|
||||
*/
|
||||
static ui_w_records_t s_rec = { UI_W_REC_LOG_YK };
|
||||
|
||||
/*
|
||||
* 函数功能:总行数(动态;每条记录 2 行,空日志 = 单条伪行"无记录")
|
||||
* 入口参数:无
|
||||
* 返 回 值:总行数 uint16_t
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static uint16_t pg_count(void) {
|
||||
return ui_w_records_count(&s_rec);
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:逐行取数(转调共享组件;偶数行 = 时间戳、奇数行 = 描述)
|
||||
* 入口参数:row - 全局行下标 uint16_t
|
||||
* name - 名输出缓冲 char *
|
||||
* value - 值输出缓冲(本组件恒写空串) char *
|
||||
* 返 回 值:无 void
|
||||
* 限定条件:uiTask 绘制上下文(经框架回调)
|
||||
*/
|
||||
static void pg_refresh(uint16_t row, char *name, char *value) {
|
||||
ui_w_records_refresh(&s_rec, row, name, value);
|
||||
}
|
||||
|
||||
/*
|
||||
* 页面描述符(外部链接:生成物 ui_page_registry.c 按菜单树 #page=yk 绑定引用):
|
||||
* 动态列表页——每记录 2 行、UI_LIST_ROWS 行/页;band_h=UI_ROW_BAND_H(同 AC/DC 约定:
|
||||
* selectable 页选中行黑字必须配白带,band_h=0 会致选中行不可见)
|
||||
*/
|
||||
const content_page_def_t ui_page_yk_desc = {
|
||||
.id = "yk",
|
||||
.title = "遥控记录",
|
||||
.selectable = 1u,
|
||||
.top_y = UI_LIST_TOP,
|
||||
.pitch = UI_ROW_PITCH,
|
||||
.band_h = UI_ROW_BAND_H,
|
||||
.text_dy = 0,
|
||||
.left_x = UI_LIST_LEFT_X,
|
||||
.right_x = UI_LIST_RIGHT_X,
|
||||
.rows_per_page = UI_LIST_ROWS,
|
||||
.count_cb = pg_count,
|
||||
.refresh = pg_refresh,
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* 模块名称:UI Page 遥控记录(遥控记录内容页)
|
||||
* 模块功能:遥控记录叶子节点(node 38,父节点「记录查询」)的内容页数据——动态列表,
|
||||
* 每条记录 2 行(偶数行 = 时间戳、奇数行 = 描述),可移选分页;数据经
|
||||
* ui_w_records 注入 reader 取自 sys_log(/log/yk.log;本文件不 include
|
||||
* sys_log.h——task-6 分层收紧);空日志显示单条伪行"无记录";
|
||||
* 向框架 ui_content_page 提供页面描述符(零 LVGL 对象)
|
||||
* 适用平台:STM32F407ZGTx / PC 模拟器(两端共用)
|
||||
* 作者:DTU 项目组
|
||||
* 创建日期:2026-10-28
|
||||
* 修改记录:
|
||||
* v1.0 2026-10-28 DTU 项目组 创建(UI 补齐「记录 5 页」;记录层与写入点已由
|
||||
* 道F task-10 / 道G task-12 落地,本批只补页面)
|
||||
*/
|
||||
#ifndef UI_PAGE_YK_H
|
||||
#define UI_PAGE_YK_H
|
||||
|
||||
#include "ui_content_page.h"
|
||||
|
||||
/*
|
||||
* 页面描述符(Flash const):遥控记录页(描述符 .id = "yk");
|
||||
* 由生成物 ui_page_registry.c 按菜单树 #page=yk 注记绑定引用(定义于 ui_page_yk.c)
|
||||
*/
|
||||
extern const content_page_def_t ui_page_yk_desc;
|
||||
|
||||
#endif /* UI_PAGE_YK_H */
|
||||
@@ -52,7 +52,7 @@ static const char *const s_type_name[UI_W_SOE_T_COUNT] = {
|
||||
"压板投入", /* 4 软压板投入 */
|
||||
"采样闭锁", /* 5 采样故障闭锁 */
|
||||
"采样恢复", /* 6 采样故障恢复 */
|
||||
"未标定闭锁", /* 7 未标定闭锁(照 App/log/soe_rec.h 与 数据可信 卡5 的原词,
|
||||
"未标定闭锁", /* 7 未标定闭锁(照 App/log/soe_rec.h 与「数据可信」未标定即闭锁的原词,
|
||||
* 不缩成"标定闭锁"——那个写法可以读成"把标定闭锁了",
|
||||
* 而这一行要说的是"因未标定而闭锁",一字之差含义相反) */
|
||||
"标定复归", /* 8 标定复归 */
|
||||
|
||||
Reference in New Issue
Block a user