feat(屏板): 协议层 sb_proto(帧 A 解析 / 帧 B 组帧 / CRC-16)
批 1 的 1-1:新建 Drivers/BSP/ScreenLink/sb_proto.c/h,纯逻辑、无 HAL 依赖, 可主机侧单测。屏板侧的协议事实源是 DTU-LCD 的 CRC16.c / MODBUS.c / rs485.h。 - CRC-16/MODBUS 用一张 16 位合并表(512 B,与屏板两张 8 位表同量)。可逐项 验证的关系:s_crc_table[i] == (auchCRCLo[i] << 8) | auchCRCHi[i]——屏板把 低字节表叫 Hi、高字节表叫 Lo,这正是下面那个字节序陷阱的根源。 - 帧 A 解析:先校 CRC 再看字段。地址/功能码/命令类型不符报 BSP_ERR_PARAM, CRC 不符报 BSP_ERR_CRC(调用方据此决定"计数"还是"静默丢")。RT_CMD 带 非 0 key 不报错、按 0 收——为这一项丢一帧等于丢一次刷新,代价不对等。 - 帧 B 组帧:普通图(掩码小端)+ LOGO(宽高大端 + 魔数 0x89 0x45),整帧 4208 B 重写(998 B 填充固定 0x00 且参与 CRC),组完即自校验。 LOGO 容量按字节数判(((w+7)/8)*h <= 3200)而不是像素数:161x159 只有 25599 像素,却要 3339 B 才装得下。 - 主机单测 59/59 PASSED(test/host/sb_proto/),覆盖率 74/74 行、6/6 函数。 其中两条向量是屏板自己算出来的线上字节(01 03 01 00 F0 48 与 01 03 00 09 31 DE),并按屏板 Check_CRC 的口径反查"它会认这一帧"。 - 双端注册:uvprojx 加 File + IncludePath;模拟器侧走 check_registration.py 的 MCU-only 豁免(纯逻辑,模拟器无消费路径)。 - Keil 构建 0 错误 0 警告;Code 不变——尚无调用者,链接器按未用节丢弃。 文档侧的 CRC 字节序订正见下一个提交。
This commit is contained in:
@@ -344,6 +344,14 @@
|
||||
"lines_covered": 108,
|
||||
"lines_valid": 112
|
||||
},
|
||||
"Drivers/BSP/ScreenLink/sb_proto.c": {
|
||||
"func_rate": 1.0,
|
||||
"funcs_covered": 6,
|
||||
"funcs_valid": 6,
|
||||
"line_rate": 1.0,
|
||||
"lines_covered": 74,
|
||||
"lines_valid": 74
|
||||
},
|
||||
"Drivers/BSP/UI/ui_data.c": {
|
||||
"func_rate": 0.9767,
|
||||
"funcs_covered": 42,
|
||||
@@ -607,6 +615,13 @@
|
||||
"lines_total": 961,
|
||||
"ok": true
|
||||
},
|
||||
"sb_proto": {
|
||||
"files": {
|
||||
"Drivers/BSP/ScreenLink/sb_proto.c": 74
|
||||
},
|
||||
"lines_total": 74,
|
||||
"ok": true
|
||||
},
|
||||
"sha256": {
|
||||
"files": {
|
||||
"App/util/sha256.c": 114
|
||||
@@ -741,22 +756,23 @@
|
||||
"Drivers/BSP/NET/net_socket.c",
|
||||
"Drivers/BSP/NETCFG/ftp_cfg.c",
|
||||
"Drivers/BSP/NETCFG/net_cfg.c",
|
||||
"Drivers/BSP/ScreenLink/sb_proto.c",
|
||||
"Drivers/BSP/UI/ui_data.c",
|
||||
"Drivers/BSP/UI/ui_net_sink.c",
|
||||
"Drivers/BSP/UI/ui_w_soe.c"
|
||||
],
|
||||
"totals": {
|
||||
"files_generated_excluded": 5,
|
||||
"files_tested": 46,
|
||||
"files_untested": 151,
|
||||
"func_rate": 0.9317,
|
||||
"funcs_covered": 532,
|
||||
"funcs_valid": 571,
|
||||
"line_rate": 0.8983,
|
||||
"lines_covered": 7058,
|
||||
"lines_valid": 7857,
|
||||
"modules_ok": 41,
|
||||
"modules_total": 41
|
||||
"files_tested": 47,
|
||||
"files_untested": 164,
|
||||
"func_rate": 0.9324,
|
||||
"funcs_covered": 538,
|
||||
"funcs_valid": 577,
|
||||
"line_rate": 0.8993,
|
||||
"lines_covered": 7132,
|
||||
"lines_valid": 7931,
|
||||
"modules_ok": 42,
|
||||
"modules_total": 42
|
||||
},
|
||||
"untested_sources": [
|
||||
{
|
||||
@@ -768,7 +784,7 @@
|
||||
"path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 407,
|
||||
"code_lines": 420,
|
||||
"path": "App/app/ui_data_feed.c"
|
||||
},
|
||||
{
|
||||
@@ -796,7 +812,7 @@
|
||||
"path": "Drivers/BSP/SD2506/sd2506.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 249,
|
||||
"code_lines": 263,
|
||||
"path": "App/task/adc_task.c"
|
||||
},
|
||||
{
|
||||
@@ -815,6 +831,10 @@
|
||||
"code_lines": 206,
|
||||
"path": "Drivers/BSP/CH395F/ch395f.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 206,
|
||||
"path": "Drivers/BSP/UI/ui_data.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 205,
|
||||
"path": "Drivers/BSP/UI/ui_page_net_cfg.c"
|
||||
@@ -827,14 +847,14 @@
|
||||
"code_lines": 200,
|
||||
"path": "Drivers/BSP/UI/ui_w_ytview.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 196,
|
||||
"path": "Drivers/BSP/UI/ui_data.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 157,
|
||||
"path": "Drivers/BSP/TPAFE5160/tpafe5160.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 152,
|
||||
"path": "Drivers/BSP/UI/ui_page_runreport.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 150,
|
||||
"path": "Drivers/BSP/UI/ui_page_password.c"
|
||||
@@ -844,12 +864,12 @@
|
||||
"path": "Drivers/BSP/UI/ui_page_device_info.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 134,
|
||||
"path": "App/task/protect_task.c"
|
||||
"code_lines": 135,
|
||||
"path": "App/app/app_main.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 132,
|
||||
"path": "App/app/app_main.c"
|
||||
"code_lines": 134,
|
||||
"path": "App/task/protect_task.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 129,
|
||||
@@ -999,6 +1019,10 @@
|
||||
"code_lines": 40,
|
||||
"path": "Drivers/BSP/UI/ui_page_deadband.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 36,
|
||||
"path": "Drivers/BSP/ScreenLink/sb_proto.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 36,
|
||||
"path": "Drivers/BSP/UI/ui_w_records.h"
|
||||
@@ -1115,6 +1139,18 @@
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/NETCFG/ftp_cfg.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_accident.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_alarm.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_oper.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_runlog.c"
|
||||
@@ -1127,6 +1163,14 @@
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_soe.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_start.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 22,
|
||||
"path": "Drivers/BSP/UI/ui_page_yk.c"
|
||||
},
|
||||
{
|
||||
"code_lines": 20,
|
||||
"path": "Drivers/BSP/UI/ui_net_sink.h"
|
||||
@@ -1339,6 +1383,14 @@
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_ac.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_accident.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_alarm.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_dc.h"
|
||||
@@ -1347,6 +1399,22 @@
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_device_info.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_oper.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_runreport.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_start.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 5,
|
||||
"path": "Drivers/BSP/UI/ui_page_yk.h"
|
||||
},
|
||||
{
|
||||
"code_lines": 4,
|
||||
"path": "Drivers/BSP/UI/ui_page_runlog.h"
|
||||
|
||||
Reference in New Issue
Block a user