/* * 模块名称:UI Network Sink Backend (平台后端接口) * 模块功能:抽象 RemoDispBus 服务端的平台相关操作(LCDMEM 数据源 / 远端按键注入), * 使 MCU 端与 PC 模拟器共用同一份 ui_net_sink.c 协议实现 * 适用平台:跨平台接口(MCU / PC 模拟器各提供一份实现) * 作者:王建锋 * 创建日期:2026-09-10 * 修改记录: * 2026-09-10 王建锋 创建初始版本(RemoDispBus 双端共用协议实现的平台抽象) */ #ifndef UI_NET_SINK_BACKEND_H #define UI_NET_SINK_BACKEND_H #include #include "ui_port.h" /* UI_FB_SIZE:显示几何与协议几何的单一来源 */ #ifdef __cplusplus extern "C" { #endif /* 1bpp 帧缓冲尺寸 = 屏幕令牌的帧字节数(UI_SCREEN_W*UI_SCREEN_H/8 = 3200), * 与 ui_net_sink.c 的收发缓冲同源,不再各自写死字面量 */ #define UI_NET_SINK_MONO_SIZE UI_FB_SIZE /* * 函数功能:读取当前 1bpp 屏幕位图(LCDMEM 应答的数据源) * 入口参数:out - 输出缓冲(调用方分配,≥ UI_NET_SINK_MONO_SIZE 字节) * out_size - out 容量(字节) * 返回值:0 - 成功,-1 - 失败 * 限定条件:显示子系统已初始化 * 函数说明:MCU 端从 LVGL 帧缓冲拷贝;模拟器端读回 SDL 实际呈现像素再转 1bpp */ int ui_net_sink_get_lcdmem(uint8_t *out, uint32_t out_size); /* * 函数功能:向 UI 注入一个远端按键 * 入口参数:remo_key - 远端按键码(ui_port.h 的 UI_KEY_* 之一) * 返回值:无 * 限定条件:输入子系统已初始化 * 函数说明:MCU 端经 ui_port_queue_key 缓存、由 keypad 回调上报; * 模拟器端映射为 LV_KEY_* 后经 lv_group_send_data 注入 */ void ui_net_sink_inject_key(uint8_t remo_key); #ifdef __cplusplus } #endif #endif /* UI_NET_SINK_BACKEND_H */