Files
STM32F4-Base/Drivers/BSP/UI/ui_net_sink_backend_mcu.c
T
wandering1 34528a9798 UI 代码纳入规范检查:大括号 K&R 化、strcpy 换 memcpy 等违规修复
- pre-commit 配置:移除 Drivers/BSP/UI/ 整目录排除,14 个 UI 源文件全部受 cppcheck + 规范检查
- ui_net_sink.c:11 处 Allman 大括号归并 K&R,i/c 声明改即用
- ui_port.c:7 处大括号归并
- ui_net_sink_backend_mcu.c:2 处大括号归并
- ui_menu_view.c:menu_frame_t 指针改 const
- ui_page_net_cfg.c:6 处 strcpy 改 memcpy

验证:pre-commit 全钩子通过、模拟器 0 警、菜单/内容页像素回归 PASS、Keil 0 错 0 警
2026-09-13 19:38:14 +08:00

51 lines
1.6 KiB
C

/*
* 模块名称:UI Network Sink Backend (MCU 实现)
* 模块功能:RemoDispBus 服务端在 MCU 端的平台相关操作——
* 读取 LVGL 帧缓冲(LCDMEM 数据源)与经 ui_port 注入远端按键
* 适用平台:STM32F407ZGTx
* 作者:王建锋
* 创建日期:2026-09-10
* 修改记录:
* 2026-09-10 王建锋 创建初始版本(双端共用 ui_net_sink 的平台后端)
*/
#include "ui_net_sink_backend.h"
#include <string.h>
#include "ui_port.h"
/*
* 函数功能:读取 LVGL 帧缓冲为 1bpp 位图(LCDMEM 数据源)
* 入口参数:out - 输出缓冲(≥ UI_NET_SINK_MONO_SIZE 字节)
* out_size - out 容量(字节)
* 返回值:0 - 成功,-1 - 参数或帧缓冲无效
* 限定条件:ui_port_init() 已成功
* 函数说明:帧缓冲本就是 1bpp(布局与协议一致),直接整帧拷贝
*/
int ui_net_sink_get_lcdmem(uint8_t *out, uint32_t out_size) {
const uint8_t *fb;
if (out == NULL || out_size < UI_NET_SINK_MONO_SIZE) {
return -1;
}
fb = ui_port_get_framebuffer();
if (fb == NULL) {
return -1;
}
memcpy(out, fb, UI_NET_SINK_MONO_SIZE);
return 0;
}
/*
* 函数功能:向 UI 输入队列注入一个远端按键
* 入口参数:remo_key - 远端按键码(UI_KEY_* 之一)
* 返回值:无
* 限定条件:无
* 函数说明:缓存后由 keypad 读取回调在下次轮询上报(键码映射在 ui_port 内完成)
*/
void ui_net_sink_inject_key(uint8_t remo_key) {
ui_port_queue_key(remo_key);
}