- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
路由器/终端:上电运行,仍然是地址检测,之后就是通道扫描寻求是否有存在的网络,一旦检测到存在网络并成功加入该网络,此时红灯点亮,也就表明路由器成功加入了网络。此时液晶同样会有相应指示: 之后按下协调器 UP,路由器的绿灯闪几下;按下路由器的 UP,那么协调器的绿灯也会闪几下;如果有更多的节点,同样类似,只要是该设备的节点就能接收到闪烁小灯的信息。 如果按一下协调器的 RIGHT,再按下路由器的 UP,此时协调器就没有反应,表明 协调器已经退出组1;但是再按下协调器RIGHT,在按路由器的 UP就与上一步类 似了。路由器与此类似可以通过 RIGHT 退出/加入组 1。 内部函数简介 主函数为ZSEG int main(),基本上都是初始化函数,其中有几个重要函数,例如osal_start_system(),它的功能是进入操作系统;zmain_ext_addr(),它的功能是初始化64位扩展地址,即检测 FLASH 中的物理地址,因为这个地址在 FLASH中是固定的存储空间,一旦为有效地址就退出函数,一旦为无效地(0xFFFFFFFFFFFFFFFF),那么就对其物理地址进行简单的初始化并检测按键。 初始化任务函数 SampleApp_Init(),SampleApp_TaskID = task_id, 初始化应用建立的任务 ID 号,不同的任务对应不同的ID号;SampleApp_NwkState = DEV_INIT,初始化应用设备的网络状态,一旦网络设备状态发生变化就会引发相应的任务函数。 事件处理函数SampleApp_ProcessEvent(),一旦 SampleApp_TaskID任务的某个OSAL 事件发生,那么就可以通过调用该函数来处理。在SampleApp_ProcessEvent()中有一个事件处理循环,循环检测是哪个事件发生,部分程序如下: if ( events SYS_EVENT_MSG ) { MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) { switch ( MSGpkt-hdr.event ) {………… 可以看到是通过检测 SYS_EVENT_MSG 是否有事件信息发生。 switch ( MSGpkt-hdr.event ) ,这里是判断 SYS_EVENT_MSG 事件类型,不同的 SYS_EVENT_MSG 类型需要不同的处理。 比如发生按键事件: case KEY_CHANGE,就会调用按键处理函数SampleApp_HandleKeys( ); 地址模式 typedef enum { afAddrNotPresent = AddrNotPresent, afAddr16Bit = Addr16Bit, afAddrGroup = AddrGroup, afAddrBroadcast = AddrBroadcast } afAddrMode_t; 单点传输,这是标准地址模式,被用于发送一个数据包到网络中单个已知地址的设备。这个addrMode 参数被设置为 Addr16Bit,目的网络地址在数据包中一同被发送。 间接传输,数据包中的最终目的地址不识别的时候使用。该模式被 AddrNotPresent 设置,而且目的地址没有被指定。 广播传输,该模式在应用层想发送一个数据包到所有网络中的所有设备时被使用。该地址模式被 AddrBroadcast 被设置,目的地址被设置为下列值之一: (0xFFFF)-信息将被发送到网络中的所有设备(包括休眠的设备)。对于休眠的设备,这个信息将被保持在它的父节点,直到 该 休 眠 设 备 获 得 该 信 息 或 者 该 信 息 时 间 溢 出。 (0xFFFD) –该信息将被发送到网络中有接收器并处于除了休眠模式设备的所有设备。 (0xFFFC) –该信息被发送到所有路由器(包括协调器) 。 组地址,该模式用于应用层想发送一个数据包到一个设备组的时候。该地址模式被afAddrGroup 设置这个组标志符。用 该 特 性 之 前,在 网 络 中 , 组 不 得 不 被 定 义。 重要设备地址,一个应用可以能想知道它自身和父节点的地址,用下面的函数可以得到设备的地址: NLME_GetShortAddr() – 返回该设备的 16 位网络地址 NLME_GetExtAddr() –返回该设备的 64 位扩展地址.用下面的函数可以得到该设备的父节点的地址。 NLME_Get
文档评论(0)