43 lines
959 B
C
43 lines
959 B
C
/**
|
|
* @file ui_task.c
|
|
* @brief UI 主任务:等待网络就绪 -> 初始化显示/菜单/推流 -> 周期刷新
|
|
* @note 单任务内同时驱动 LVGL 刷新与网络推流轮询,避免任一方阻塞导致界面不刷新。
|
|
*/
|
|
#include "ui_task.h"
|
|
|
|
#include "cmsis_os.h"
|
|
#include "sys_events.h"
|
|
|
|
#include "ui_port.h"
|
|
#include "ui_menu.h"
|
|
#include "ui_net_sink.h"
|
|
|
|
static void ui_task_wait_net_ready(void)
|
|
{
|
|
if (sys_evtHandle != NULL) {
|
|
osEventFlagsWait(sys_evtHandle, SYS_EVT_NET_READY,
|
|
osFlagsWaitAny, osWaitForever);
|
|
}
|
|
}
|
|
|
|
void ui_task_func(void *argument)
|
|
{
|
|
(void)argument;
|
|
|
|
ui_task_wait_net_ready();
|
|
|
|
if (ui_port_init() != 0) {
|
|
for (;;) { osDelay(1000); }
|
|
}
|
|
if (ui_menu_init() != 0) {
|
|
for (;;) { osDelay(1000); }
|
|
}
|
|
ui_net_sink_start(UI_NET_SINK_PORT);
|
|
|
|
while (1) {
|
|
ui_port_step(10);
|
|
ui_net_sink_poll();
|
|
osDelay(10);
|
|
}
|
|
}
|