消息处理定时器.ppt_第1页
消息处理定时器.ppt_第2页
消息处理定时器.ppt_第3页
消息处理定时器.ppt_第4页
消息处理定时器.ppt_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

所有消息包的发送和接收最好都通过OS提供的消息接口来进行。 两个重要概念:PID和消息处理入口函数,消息处理过程,PID1,PID3,PID2,PID4,OS,PID的概念: PID(进程标识)是操作系统中的一个重要概念。系统中需要进行消息通信的每一个实体都需要分配一个PID。模块间通信,就是通过PID进行标识的。 对于一个普通的应用模块PID,需要向OS提供两个入口函数:初始化函数、消息处理入口函数(对于需要进行消息处理的PID必须提供消息处理入口函数)。如:消息告警PID为OS_PID_ALM,MT的PID为OS_PID_MAINTAIN等等。 注意:一个应用模块可以申请多个PID,分别进行不同的消息处 理过程。,消息处理过程,OS消息包结构: 应用模块可以将自定义的消息包数据结构 填入OS消息包的数据区中,并在消息包头 中填入消息接收者的PID以及相关信息。 PID消息包的数据结构和消息类型定义由 消息双方协商确定,OS不关心该数据结构,消息处理过程,消息包 数据区 (自定义),消息包头msghead,消息包的发送: 纠正一个错误认识:向OS申请消息包的时候不需为其申请相应的 的内存块,OS已经在系统root的时候按照预定大小完成了这项工作 (在root的同时为每一个需要处理消息的PID初始化一个消息队列)。 1。申请消息包OS_MsgAlloc 该函数返回的是OS消息包的包头指针,即ST_MSGHEAD*。 2。填写消息数据区内容MSG_GET_DATA 首先通过这个宏获得申请到的OS消息包的数据区指针,并且将自定义的消息包结构填入数据区中。 3。设定消息接收者并且发送消息 MSG_SET_RECEIVER宏设定接收者PID,OS_MsgSend 函数发送消息。,消息处理过程,消息包的处理: 纠正一个错误认识:消息接收者无需去消息队列中收取消息包, 只需向OS提供自己的消息处理入口函数,当有消息包进入队列的时 候OS会直接调用接收PID的消息处理函数进行相关处理。(如果对 消息处理的实时性要求较高的话可以相应调高该PID的优先级) 纠正错误认识二:OS消息包发送成功后,无需发送者显式的释 放它,OS会在消息被接收者处理以后完成该项工作。 几个重要的宏: MSG_GET_SENDER(获得消息发送者的PID)、MSG_GET_TYPE (获得消息类型,由消息双方协商确定),消息处理过程,定时器超时的概念: 所谓定时器超时是指定时器运行到了在启动时预先指定的时 间以后会作相应的处理(回调函数或者发送消息)。 定时器分类: tick、秒、分定时器:分别是每个tick、每秒、每分超时一次。 绝对定时器:顾名思义,也就是到了某一个绝对时间超时。 相对定时器:相对启动的时候开始一定时间以后超时。 注意:1。如无特殊说明,定时器一般都是指的相对定时器。 2。前三种定时器必须提供回调函数,定时器的使用,定时器的四种状态: create stop start 自动转换 自动转换 注意:循环定时器在超时后将直接回到运行态。,定时器的使用,空闲态,就绪态,运行态,超时态,定时器超时处理: 1。可以在start一个定时器的时候传入超时处理入口函数以及想要 传给该函数的参数(限两个),定时器超时后OS会自动调用 它的回调函数。 2。可以通过给创建PID发送TIMER_MSGTYPE_RELATIMER类 型的消息(由OS完成),来通知创建者该定时器已经超时,创 建者可以在消息处理函数中对该类型消息进行集中处理。 注意:重新启动一个正在运行的定时器不需要显式的stop它。,定时器的使用,(相对)定时器组: 可以将多个具有相同动作的定时器放在一个组中,直接利用数组 下标进行管理。在创建定时器组的同时一并将其内的所有定时器都 创建了,启动时直接使用数组下标即可。 提醒一点:应用模块自己定义的相对定时器回调函数应有三个参数, 这三个参数

温馨提示

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

评论

0/150

提交评论