基于状态机的事件驱动编程技术课件_第1页
基于状态机的事件驱动编程技术课件_第2页
基于状态机的事件驱动编程技术课件_第3页
基于状态机的事件驱动编程技术课件_第4页
基于状态机的事件驱动编程技术课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

报告人:周忠洋基于状态机的事件驱动编程技术

--前言绪论基于状态机的事件驱动编程技术介绍的内容第二版书内容上的一些变化量子平台(QP)部分概念的介绍基于状态机的事件驱动编程简单介绍基于状态机的事件驱动编程的优势“飞行射击”游戏的演示介绍的内容第二版书内容上的一些变化

提供了一套全新的软件“量子平台QP”实现QP的开源以C语言为主要的开发语言(但仍使用面向对象的设计原则)增加了两个新的组件,即支持可抢占式多任务调度(QK)和软件跟踪装置(QS)超轻量级QP-NANO版本。QP-NANO是QP/C或QP/C++特性的一个子集,是为低端8位和16位微控制器设计的

提供了一套全新的软件“量子平台QP”嵌入式编程中几个重要概念框架:可以是一个商用RTOS(uC/OS-II,ECOS),或LINUX、WINCE等等,还可以是自己写的可以做多线程调度的框架。构件:可以是驱动或中间件,或者自己写的可复用IO代码。比如:串口驱动,TCP/IP协议栈、GUI、USB驱动等等。状态模式:状态图在软件方法学和建模语言(如UML)中得到了普遍的认可,

对于事件驱动系统来说,状态图方法是一种强有力的设计方法。基于模型的开发对于当今的高复杂性、短周期的商业环境来说至关重要。使用状态图方式进行基于模型的嵌入式系统开发,很可能在更短的时间内构建更复杂而且可靠(缺陷更少)的系统。嵌入式编程中几个重要概念框架:可以是一个商用RTOS(uC/QP(QuantumPlatform)整体认识QP(QuantumPlatform)整体认识量子框架(QF)量子框架是基于事件驱动并发状态机的一种应用框架它可以简单地将整个系统分为相互独立的活动对象,每个活动对象在量子框架中被封装为一个任务,每个活动对象中都嵌入一个状态图完成所要求的任务。活动对象不共享任何数据,它们之间唯一的通信手段是通过量子框架来进行事件实例的交换,量子框架是作为“中间件”存在的。相类似的,在量子场理论中,所有相互作用都是粒子交换的结果,这就是量子框架之所以被称为“量子”的原因。量子框架(QF)量子框架是基于事件驱动并发状态机的一种应用框事件处理器(QEP)量子框架(QF)是基于有限状态机的完整实现技术,而有限状态机能够完美运行的一个核心就是状态机内部的状态转换。状态机的状态转换是由事件处理器(QEP)来完成的,事件处理器(QEP)作为应用系统的一部分与量子框架一起管理整个状态机的运转。事件处理器(QEP)支持层次式状态机,完成任意状态的进入/退出动作。事件处理器(QEP)量子框架(QF)是基于有限状态机的完整实有限状态机的简单理解

一个对象有多个状态(注意这里的“对象”与“状态”都是广义与抽象的),通过事件(event)的触发使得状态(state)之间相互跃迁(transition),可以定义在状态切换时附加的操作(op)。而我们要实现的有限状态机(finitestatemachine,以下简称FSM)便是维护与管理这一机制的代码。有限状态机的简单理解

一个对象有多个状态(注意这里的“对象”典型的有限状态机的工作原理典型的有限状态机的工作原理典型的有限状态机(FSM)转换图典型的有限状态机(FSM)转换图事件驱动编程技术的简单介绍采用不同于“反应”式事件驱动系统,而是构造了一个共同的程序结构,解决需要及时的处理异步事件的难题以一种新的思维方式思考,与传统连续化编程的方法或者说“超级循环”或RTOS的任务不同,这里的事件驱动式系统没有控制权,只有当一个事件到达了,程序被调用去处理这个事件,并且控制权很快会被释放,这个驱动式系统能够同时等待多个事件-----所谓控制反转事件驱动编程技术的简单介绍采用不同于“反应”式事件驱动系统,事件驱动编程技术的简单介绍采用了两个最有效的技术---- 层次式状态机和事件驱动框架采用以代码为中心的开发方式-----这种方式为开发者提供了一个重量级工具的轻量级替代品从事件驱动编程的角度来理解问题---帮助读者建立层次式状态机和事件驱动框架式解决问题的思考方式使用面向对象的设计原则---QP使用基本的封装概念(类class)和单一继承作为主要的定制,特例化和扩展框架到实际应用的实现机制。事件驱动编程技术的简单介绍采用了两个最有效的技术---- 层基于状态机的事件驱动编程的优势QP事件驱动平台可以做到RTOS可以做到的任何事情,而且事实上,QP包含了一个完全可抢占的实时内核和一个简单的协作式调度器。基于事件驱动状态机的解决方案能裁剪以适合最小的微控制器。例如超轻量级的QP-NANO版本在仅1-2KB字节的ROM中融合一个层次式事件处理器,一个实时框架和一个协作式或完全可抢占式的内核。事件驱动的解决方法通过结合层次式状态机很容易扩展,在管理大数目的状态化组件例如客户任务方面,非常理想。QP的嵌入式设计理念为每个组件的时间和空间性能提供了关键的的支持。基于状态机的事件驱动编程的优势QP事件驱动平台可以做到RT基于状态机的事件驱动编程的优势QP补充了GUI库,同时还

提供了高层的基于层次式状态机的“屏幕逻辑”,由GUI库处理底层的组件能在屏幕上画图。QP是大型自动化设计工具的一个超轻量化的替代品QP能为其他的一些开源软件做补充。例如:LINUX或BSD(Unix的衍生系统)基于状态机的事件驱动编程的优势QP补充了GUI库,同时还基于状态机的事件驱动编程的优势

状态机会从代码中消除许多条件语句,甚至是呈数量级的减少。由于明确了任何时刻系统的状态,所以状态机要求仅测试一个变量(状态变量)来替代为确定操作方式而测试许多变量。用状态进入和退出动作实现有保证的初始化和清除安全支持行为继承的层次式状态机。使用和维护都简单。轻易地改变状态机拓扑。提供了运行时效率和小的内存占用。基于状态机的事件驱动编程的优势

状态机会从代码中消除许多条持续等待某些外部或者内部的事件发生,比如一个时钟TICK,一个数据包的到来,一个按键被按下,或者一次鼠标的点击。确认事件后这类系统产生相应的反应,去执行相应的计算,去操作硬件或者,去产生“软”事件去触发其他的内部软件组件。持续等待某些外部或者内部的事件发生,比如一个时钟TICK,一当系统有许多可能的事件源,并且无法预测事件的到达时间和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论