事件驱动框架(一)

事件驱动框架(一)

说明:
  • 这篇博是在参考了QP的事件驱动框架后进行总结的内容。(注:该框架主要是一个轻量级嵌入式框架!!)这次整理算是再看一遍吧,之前看不太明白,现在又重新回顾了一下,收获颇多。但是还是可能会有些理解错误请见谅。
  • 写这篇博客之前我曾经仿照QP简化了一些策略,写了一种合作式的内核的事件驱动框架来练了下手(没有测试过是否稳定,只是目前能正常运行),然后因为项目需要,就在这个框架上搭建了一个简单的菜单界面的框架(因为屏幕功能有限所以搭的比较简单)。顺便在QP上写了一个自动生成代码的软件。因为属于框架范围,会把代码放出来。因为是第一次用C++写代码,感觉还是用不太好C++的性能。写完之后对语言的理解算又加深了一步吧= =。
  • 后面会具体介绍事件驱动框架中的状态机,事件驱动框架,追踪以及一些补充相关。

事件驱动框架的优势

事件驱动框架是一个控制倒置的框架,和传统的嵌入式编程相比,事件驱动的框架会自动选择事件派发调用执行对应程序。就像操作系统里面的进程或线程一样,它会按优先级,或时间轮转片之类的进行自动调度执行,调度的选择是运行时内核自动调节的,开发者没有参与到内核的管理。事件驱动框架的框架作用也很类似,只不过他它是对事件进行自动的选择派发。这和传统的编程开发者在逻辑上人为控制每一个过程要显得更灵活。并且,事件驱动框架的处理往往采用状态机的形式,状态机使用得当可以大大减少传统编程中复杂逻辑的if-else嵌套和各种标志位的识别。

经典的事件驱动的整体框架

下图是事件驱动框架的整体结构:
这里写图片描述

1.应用。
事件驱动框架上的应用主要是采用主动对象模型进行设计。这样可以把一个项目封装为分为多个对象进行管理,而对象是基于状态机(FSM)的设计,对象间的通信采用的是发送事件的方式进行。这种方式很试用于已存在并调用各种类型的驱动的设计。

2.事件驱动框架。
当状态机运行起来后,各应用间相互发送事件,共享资源之类的,会产生事件同时发送,响应先后的问题等。这时候就需要一个事件驱动的框架对事件进行管理和按需合理分配。这部分会在另写一篇介绍。

3.关于OS
在一些嵌入式系统会加入RTOS,而事件驱动的框架可以设计成可以加在操作系统之上的框架。应用中,通常把每一个对象绑定到一个线程上使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值