已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 48256.3-2026烟花爆竹A、B级第3部分:测试方法
- T/ZNZ 267-2024动物源性产品中牛源性成分检测 数字 PCR 法
- T/JSCTS 80-2025城市轨道交通钢轨探伤人员培训及资格规范
- T/CNCA 167.2-2025煤矿机器人通用技术要求 第2部分:管路安装机器人
- T/CBMCA 070-2025全屋空气调节系统多维评价规范
- T/CSPIA 006-2021用于人脸识别的安防摄像机图像质量评测方法
- GB/T 35795-2026全生物降解农用地面覆盖薄膜
- 2025~2026学年广东省深圳市龙岗区北师大版三年级上册课堂素养巩固练习数学试卷【附答案】
- AI赋能渔业资源养护与捕捞管理
- PFMP项目组合管理专业模拟试题(含详细答案解析)
- 河南省开封市2026届高三下学期第二次质量检测数学试题(解析版)
- 2026年消防月活动主题宣贯课件
- 2026年海水淡化处理行业深度研究报告及未来五至十年市场规模与增长潜力评估
- 2026年江苏省体育局直属事业单位招聘考试练习题含答案
- GB/T 1836-2026集装箱代码、识别和标记
- 2026年中国高端多晶硅行业市场调研分析及投资战略咨询报告
- 2026年金钥匙比赛试题及答案
- 新22J01 工程做法图集
- 粮食园区项目建议书
- 超星尔雅学习通《中国古典小说鉴赏》章节测试答案
- 银行公司授信贷前调查指引
评论
0/150
提交评论