全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ZIGBEE学习笔记五读取温度电量信息2011-11-15 22:231、传感器节点sensor采集数据发往收集节点collector什么时候传感器节点开始读取温度电池电量信息的?从绑定成功后开始的,看下zb_BindConfirm()这个函数:*voidzb_BindConfirm(uint16commandId,uint8status)if(status=ZB_SUCCESS)&(myAppState=APP_START)myAppState=APP_BOUND;/StartreportingsensorvaluesmyApp_StartReporting();else/Continuetodiscoveracollectorosal_start_timerEx(sapi_TaskID,MY_FIND_COLLECTOR_EVT,myBindRetryDelay);*可以看到如果绑定成功则调用myApp_StartReporting()开始报告传感器的数据值.看下myApp_StartReporting()这个函数:*/周期性地读取传感器采集的数据voidmyApp_StartReporting(void)/温度osal_start_timerEx(sapi_TaskID,MY_REPORT_TEMP_EVT,myTempReportPeriod);/电池能量osal_start_timerEx(sapi_TaskID,MY_REPORT_BATT_EVT,myBatteryCheckPeriod);HalLedSet(HAL_LED_1,HAL_LED_MODE_ON);*可以看到这里设定两个软定时器定时触发MY_REPORT_TEMP_EVT事件和MY_REPORT_BATT_EVT事件,即报告温度值事件和报告电池电量事件.注意这些事件属于ZB_USER_EVENTS,用户应用事件ZB_USER_EVENTS事件有以下这些:/Thismustbethelasteventtobeprocessed/*/Applicationosaleventidentifiers/Bitmaskofevents(from0x0000to0x00FF)#defineMY_START_EVT0x0001#defineMY_REPORT_TEMP_EVT0x0002#defineMY_REPORT_BATT_EVT0x0004#defineMY_FIND_COLLECTOR_EVT0x0008*/而ZB_USER_EVENTS=0x00FF;以上应用事件和ZB_USER_EVENTS相与都不为0,因此会执行SAPI_ProcessEvent()中以下程序:*if(events&(ZB_USER_EVENTS)/*用户应用事件*/Usereventsarepassedtotheapplicationzb_HandleOsalEvent(events);/Donotreturnhere,return0later*调用zb_HandleOsalEvent():*/SENSOR_REPORT_CMD_ID命令信息带有两个字节的负载:第一个字节指示读取的类型(温度或/电池电压);第二个字节为传感器指示值(温度或电压指示).voidzb_HandleOsalEvent(uint16event)uint8pData2;if(event&MY_START_EVT)zb_StartRequest();if(event&MY_REPORT_TEMP_EVT)/温度报告/ReadandreporttemperaturevaluepData0=TEMP_REPORT;/0x01(用来指示这是温度数据)pData1=myApp_ReadTemperature();/温度值/0xFFFE=INVALID_NODE_ADDR=ZB_BINDING_ADDRzb_SendDataRequest(0xFFFE,SENSOR_REPORT_CMD_ID,2,pData,0,AF_ACK_REQUEST,0);/*因为是周期性地读取温度电池值,则每次事件处理完后要为下一次读取而重新开启一个定时器*/osal_start_timerEx(sapi_TaskID,MY_REPORT_TEMP_EVT,myTempReportPeriod);if(event&MY_REPORT_BATT_EVT)/电池电量报告/Readbatteryvalue/Ifbatterylevellow,reportbatteryvaluepData0=BATTERY_REPORT;/0x02(用来指示这是电池能量数据)pData1=myApp_ReadBattery();zb_SendDataRequest(0xFFFE,SENSOR_REPORT_CMD_ID,2,pData,0,AF_ACK_REQUEST,0);osal_start_timerEx(sapi_TaskID,MY_REPORT_BATT_EVT,myBatteryCheckPeriod);if(event&MY_FIND_COLLECTOR_EVT)/Findandbindtoacollectordevicezb_BindDevice(TRUE,SENSOR_REPORT_CMD_ID,(uint8*)NULL);*主要涉及三个函数:myApp_ReadTemperature();myApp_ReadBattery(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届国家管网集团高校毕业生招聘笔试历年参考题库附带答案详解(浓缩500题)附参考答案详解(达标题)
- 2026国网河北省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及答案详解(易错题)
- 2026国家管网集团甘肃公司秋季高校毕业生招聘25人考试参考题库(浓缩500题)带答案详解(黄金题型)
- 2026秋季国家管网集团广西公司高校毕业生招聘考试参考试题(浓缩500题)及参考答案详解ab卷
- 国家管网集团2026届高校毕业生招聘笔试备考试题(浓缩500题)附答案详解(黄金题型)
- 国家管网集团湖南公司2026届秋季高校毕业生招聘考试参考试题(浓缩500题)及参考答案详解1套
- 2026国网江苏省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题完整参考答案详解
- 2026秋季国家管网集团东部原油储运公司高校毕业生招聘笔试参考题库(浓缩500题)含答案详解(满分必刷)
- 2026国网重庆市高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题含答案详解(模拟题)
- 2026国家管网集团广西公司秋季高校毕业生招聘笔试备考题库(浓缩500题)及答案详解(历年真题)
- 盲人推拿培训教程课件
- 学堂在线 生活英语听说 章节测试答案
- 三级安全教育试题及答案
- 小学教育论文800字范文
- 非公募项目管理制度
- 个人全额补缴社保协议书
- 2025-2030中国肌肉松弛药行业市场现状供需分析及投资评估规划分析研究报告
- T/CCSAS 023-2022危险化学品企业紧急切断阀设置和使用规范
- 《农机安全生产重大事故隐患判定标准(试行)》解读与培训
- 2025电力变压器声纹监测与诊断技术
- 军队文职招聘(中医学)笔试题库(全真题库)
评论
0/150
提交评论