[发明专利]事件处理方法、设备及存储介质在审
申请号: | 202010279790.7 | 申请日: | 2020-04-10 |
公开(公告)号: | CN111475263A | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 黄晓彭 | 申请(专利权)人: | 上海移为通信技术股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨俊辉;刘芳 |
地址: | 200233 上海市闵*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件 处理 方法 设备 存储 介质 | ||
本发明实施例提供一种事件处理方法、设备及存储介质。该方法可应用于搭载有嵌入式实时操作系统的终端设备,该终端设备包括第一任务,该方法包括:第一任务确定第一任务的至少一个事件的状态发生变化,第一任务向订阅第一任务的至少一个事件的任务发布事件通知消息,事件通知消息用于指示至少一个事件的状态发生变化,其中事件状态发生变化包括事件对应的数据值发生变化、数据存储地址发生变化、事件被删除的至少一项。接收到上述事件通知消息的任务可根据事件通知消息执行相应的操作。通过上述处理方法可实现对任务或事件的实时监控与通知,可实现对如图像、速度、加速度、位置、温湿度等事件的监控与通知,提升用户在终端设备上的订阅体验。
技术领域
本发明涉及嵌入式软件开发技术领域,尤其涉及一种事件处理方法、设备及存储介质。
背景技术
在嵌入式软件领域中,实时操作系统(RTOS)正得到越来越广泛的应用,种类也越来越多,例如RT-thread、FreeRTOS、uC/OS II等。其中,FreeRTOS是为数不多的同时具有实时性、开源性、可靠性、易用性、多平台支持等特点的嵌入式操作系统。
FreeRTOS提供一种事件机制,其功能主要是标记某个事件是否发生,若该事件发生,则会将相应事件标志位置为1,若该事件没有发生,事件标志位置为0。FreeRTOS中的每个任务都可以通过查询事件标志位来确定某一事件是否发生,实现多个任务的同步。一般情况下任务会堵塞,等待事件发生,事件发生后,才会执行其他事件。亦或者,任务等待一段时间,等待期间任务处于堵塞状态,超时或者事件发生后,解除堵塞状态。FreeRTOS还提供了一种通知机制,每个任务都有一个32位的通知值,即通过改变此通知值,来达到任务间的通知。
目前订阅某一事件,需要手动查询通知值,如果事件未发生,可以等待事件完成,或者等待一段时间后执行其他事件,在监控的事件较多时,上述过程较繁琐。
发明内容
本发明提供一种事件处理方法、设备及存储介质,实现对任务或事件的实时监控与通知,提升用户订阅体验。
本发明的第一方面提供一种事件处理方法,应用于终端设备,所述终端设备中包括第一任务,所述方法包括:
第一任务确定所述第一任务的至少一个事件的状态发生变化;
所述第一任务向订阅所述第一任务的所述至少一个事件的任务发布事件通知消息,所述事件通知消息用于指示所述至少一个事件的状态发生变化。
在一种可能的实现方式中,所述第一任务确定所述第一任务的至少一个事件的状态发生变化,包括:
所述第一任务通过轮询遍历事件链表中的不同事件对应的状态更新函数,确定所述第一任务的至少一个事件的状态发生变化。
在一种可能的实现方式中,所述第一任务通过轮询遍历事件链表中的不同事件对应的状态更新函数,确定所述第一任务的至少一个事件的状态发生变化,包括:
若所述第一任务的第一事件对应的状态更新函数的执行结果为第一执行结果,确定所述第一任务的第一事件的状态发生变化。
在一种可能的实现方式中,所述第一任务向订阅所述第一任务的所述至少一个事件的任务发布事件通知消息,包括:
所述第一任务采用消息队列向订阅所述第一任务的所述至少一个事件的任务发布事件通知消息。
可选的,所述第一任务的至少一个事件的状态发生变化包括以下的至少一项:
所述第一任务的至少一个事件的数据值发生变化;
所述第一任务的至少一个事件的数据存储地址发生变化;
所述第一任务的至少一个事件被删除。
可选的,所述事件通知消息包括以下的任意一项:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海移为通信技术股份有限公司,未经上海移为通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010279790.7/2.html,转载请声明来源钻瓜专利网。