6、nesC编程.ppt_第1页
6、nesC编程.ppt_第2页
6、nesC编程.ppt_第3页
6、nesC编程.ppt_第4页
6、nesC编程.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

nesC编程 nesC编程 nesC语言介绍nesC编程基本概念接口 interface 模块 module 组件 configuration components 命令 command 事件 event 任务 task nesC语言介绍 nesC语言一种在C基础上扩展的编程语言 主要用于传感器网络的编程开发加州大学伯克利分校研发人员开发的这套nesC编程语言用nesC编写的微型操作系统TinyOS目前国内外很多大学和机构利用这一平台进行相关问题的研究 nesC语言介绍 TinyOS专用语言类C语言组件编程事件驱动自己的编译器编译生成C程序镜像 可移植性强编写用户程序方便 nesC编程基本概念 1 结构和内容的分离 程序由组件构成 它们装配在一起 配线 构成完整程序 2 根据接口的设置说明组件功能 接口可以由组件提供或使用 被提供的接口表现它为使用者提供的功能 被使用的接口表现使用者完成它的作业所需要的功能 nesC编程基本概念 3 接口有双向性 它们描述一组接口供给者 指令 提供的函数和一组被接口的使用者 事件 实现的函数 4 组件通过接口彼此静态地相连 这增加运行时效率 而且允许更好的程序静态分析 接口 interface nesC的接口有双向性 它们描述一个多功能的两组件 供给者和使用者 之间的交互渠道 即描述了两组件的调用关系 接口可以理解为函数原型的集合 接口 interface 如何定义接口 接口放在一个单独的文件中 nc接口的名称应与文件名对应例如interface1的接口则必须对应于文件名interface1 nc接口定义描述了一系列函数原型 command和event 接口 interface SendMsg nc interfaceSendMsg commandresult tsend uint16 taddress uint8 tlength message t msg eventresult tsendDone message t msg result tsuccess SendMsg接口类型提供者必须实现发送指令 而使用者必须实现sendDone事件 接口 interface providesinterfaceA1 提供接口 usesinterfaceA1 使用接口 providesinterfaceA1asA2 接口别名 usesinterfaceA1asA2 模块 module 模块是接口的实现者和使用者模块包含两部分内容 模块使用和提供的接口描述模块内部的实现代码模块名也必须与文件名同名 模块 module 例如 M1 ncmoduleM1 声明部分 providesinterfaceA1 usesinterfaceB1 implementation 实现部分 C代码 commandvoidA1 cmd1 callB1 cmd2 eventvoidA1 event1 组件 configuration component 组件是一个完整的配置列表 组件可以像模块一样使用外部的接口并且对外提供接口 也可以直译成配置 configuration 组件与模块一样包含两部分内容 组件使用和提供的接口描述组件内部的实现代码 配置列表 组件名也必须与文件名同名 组件 configuration component 例如 C1 ncconfigurationC1 providesinterfaceA1 implementation componentsM1 componentsM2 A1 M1 A1 M1 B1 M2 B1 components指令引出需要配置的组件 组件 configuration component 配置的方法 接口调用 usertoprovider接口实现 接口实现指定 相当于 组件 configuration component 组件 configuration 使用模块 接口1 接口2 接口1 接口2 实现模块 也是组件 接口1 接口2 接口3 命令 command 是在接口中的一种函数 这种函数要求接口的提供者实现 而接口的使用者则会调用这种函数 形象的称为command 即为接口提供的可供调用的命令 语法结构类C语言 只是在最前面增加command关键字 命令 command command定义 interfaceA1 commandintcmd1 intarg 命令 command command实现 moduleM1 providesinterfaceA1 implementation commandintA1 cmd1 intarg 命令 command command使用 moduleM2 usesinterfaceA1 implementation intret callA1 cmd1 0 x11 调用command时一定要用call命令 否则编译会出错 事件 event 也是在接口中的一种函数 这种函数要求接口的提供者调用 而接口的使用者则会实现这种函数 形象的称为event 即为接口使用者所实现的事件处理函数 语法结构类C语言 只是在最前面增加event关键字 事件 event event定义 interfaceA1 eventvoidevent1 intarg1 intarg2 可以拥有参数和返回值 事件 event event实现 moduleM1 providesinterfaceA1 implementation postA1 event1 0 x1 0 x2 发出对应的事件 实际上类同于调用事件处理函数 接口的提供者在发出事件时 必须使用关键字post 否则编译会出错 事件 event event使用 moduleM2 usesinterfaceA1 implementation eventvoidA1 event1 intarg1 intarg2 接口使用者必须实现event的具体内容 如同事件处理函数一样 任务 task 任务是TinyOS系统提供的一种特殊的机制 类同于线程 task一般为一个函数 无参数 无返回值 task可以在一般的TinyOS程序中发出 而task的执行是由TinyOS系统内核来实现的 并且task的执行是不影响调用者的 将会在发出task后的某一个时刻被调度运行 任务 task task的特点 无参数 无返回值系统会按特定的顺序调度这些tasktask间不能抢占 但是可以被中断所抢占在task未执行时 发出多少个task 都将只运

温馨提示

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

评论

0/150

提交评论