请问各位大佬,
1.我有个疑问,就是当使用事件集来进行业务逻辑分布执行的时候,如果由于某些突然情况,导致事件集无法继续下去,这个时候我是使用单片机复位的,请问如果我使用事件集API删除事件集,然后每个等待事件集的任务会返回非RT_EOK,在这个判定结果下,使用continue,使任务返回 循环开始的地方,那么问题来了,当继续往下执行,再次执行到等待事件集的时候,是直接返回RT_ERROR还是什么情况?
2.是否可以再次创建我删除过的事件集合,让任务继续进行下去?即事件集删除后是否可以再次重新创建?
3.我想实现,当发生突发情况下,所有等待事件集的任务返回while(1)开始的地方。
业务逻辑,当用户想重新开始时,每一个任务必须返回while(1)重新开始,但是由于小白能力有限,设计之初并没有规划好搞成了很多个任务是如下逻辑:
while(1)
{
永久等待事件1
执行业务逻辑
永久等待事件2
执行业务逻辑
永久等待事件3
执行业务逻辑
}
假如在等待事件2的时候 用户需要跳回whille重新执行,如何实现比较合理呢?
@allen752 据我所知,所谓事件集,就是说你可以同时等待多个事件的逻辑组合,你可以添加一个返回的事件,放到等待其它事件,
rt_event_recv(&event, (EVENT_FLAG1 | EVENT_FLAG_CONTINUE)
当是 EVENT_FLAG_CONTINUE 的时候执行 continue 不是 EVENT_FLAG_CONTINUE 就是 EVENT_FLAG1 继续等待下一个。这样也不用删除 event 。另一个线程从头开始 send 事件就可以
谢谢 明白了 这个方法好