当前位置: 首页 > news >正文

实习技能记录【5】-----项目中消息传递到ui层的方法

代码

while (1){osEvent evt;evt = osMailGet(ui_msg_mailbox, 0);if (evt.status == osEventMail){UI_MSG_APP_T *msg = (UI_MSG_APP_T *)evt.value.p;if (msg->cmd_type == CMD_TYPE_INNER){if (msg->cmd_code == CMD_CODE_INNER_REFRESH_NOW){lv_obj_invalidate(lv_scr_act());}}else{screen_receive_msg(msg);}ui_msg_mailbox_free(msg);}

UI线程通过消息邮箱(osMailGet(ui_msg_mailbox, 0);)非阻塞的获取到来自底层的消息
并在screen_receive_msg进一步进行消息分发

这里使用虽然的是FreeRTOS,但是osMailGet不是通用的FreeRTOS函数,是CMSIS-RTOS的接口。底层实现的原理实际上就是freeRTOS的队列。

消息分发

进入ui层之后,实际上就是通过判断当前活动的屏幕,然后把消息传入对应的屏幕对象中。

http://www.dtcms.com/a/164568.html

相关文章:

  • Knife4j 接口文档添加登录验证流程分析
  • 如何防止 ES 被 Linux OOM Killer 杀掉
  • C++日更八股--first
  • 狼人杀中的智能策略:解析AI如何理解复杂社交游戏
  • 代码随想录算法训练营 Day35 动态规划Ⅲ 0-1背包问题
  • docker学习笔记6-安装wordpress
  • 海外社交App用户留存秘籍:构建高粘性社区的算法与运营实战
  • 是否想要一个桌面哆啦A梦的宠物
  • ptpx常用操作
  • Windows系统下,导入运行 RuoYi-Vue3 项目
  • 解决ktransformers v0.3 docker镜像中 operator torchvision::nms does not exist 问题
  • mongoose插入文档,字段类型, 字段验证, 删除文档,更新文档,读取文档,查询文档的条件控制 ,字段筛选,数据排序,数据截取
  • C语言教程(二十四):C 语言中递归的详解
  • Alibaba第四版JDK源码学习笔记2025首次开源
  • C++搞定周岁.虚岁计算
  • 一页概览:统一数据保护方案
  • 【系统参数合法性校验】spring-boot-starter-validation
  • 前端Vue3 + 后端Spring Boot,前端取消请求后端处理逻辑分析
  • 【MySQL】(9) 视图
  • 跟我学C++中级篇——控制死锁
  • Qt开发:JSON字符串的序列化和反序列化
  • 【OSG学习笔记】Day 14: 操作器(Manipulator)的深度使用
  • 基于机器学习的电影票房预测
  • 万象生鲜配送系统代码2025年4月29日更新日志
  • LeetCode 155题解 | 最小栈
  • 【Leetcode 每日一题 - 补卡】2302. 统计得分小于 K 的子数组数目
  • Linux电源管理(3)_关机和重启的过程
  • 第十六届蓝桥杯 2025 C/C++组 密密摆放
  • 探索语音增强中的多尺度时间频率卷积网络(TFCM):代码解析与概念介绍
  • AI赋能的问答系统:2025年API接口实战技巧