5.5 多播组 多播组API由下列函数表示: 。NWK_GrouplsMember()-检查节点是否是一个组成员 。NWK_GroupAdd()-增加节点到组 。NWK_GroupRemove()-从组移除节点 使用多播组API NWK_GroupAdd(0x1234); if (NWK_GroupIsMember(0x1234)) { // Now node is a member of 0x1234 } NWK_GroupRemove(0x1234); // Node is no longer a member of the group 5.6 路由表管理 路由表API由下列函数表示: 。NWK_RouteFindEntry()-在路由表中找到一个匹配请求的目的地址 。NWK_RouteNewEntry()-在路由表中分配一个新的输入项 。NWK_RouteFreeEntry()_释放以前分配的输入项 。NWK_RouteNextHop()_获取请求目的地的路由上的下一跳变节点的网络地址 。NWK_RouteTable()_获取输入路由表的指针 创建一个静态路由 NWK_RouteTableEntry_t *entry; entry = NWK_RouteNewEntry(); entry->fixed = 1; entry->multicast = 0; entry->score = 1; entry->dstAddr = 5; entry->nextHopAddr = 1; 5.7 忙状态管理 网络层为栈忙状态管理提供一个API。这个API由以下函数表示: 。NWK_Lock()-更加锁计数 。NWK_Unlock()-减少锁计数 锁定记数器的正值将使NWK_Busy()返回一个真值 。这种行为可以用来协调应用程序之间的部分和具体的服务和应用程序之间的操作。nwk_lock()和nwk_unlock()必须总是配对使用以这个特定的顺序 建立一个静态路由。 NWK_Lock(); // NWK_Busy() will return true until corresponding NWK_Lock() is called NWK_Unock(); // NWK_Busy() will return false unless another lock is set by the stack or // another part of the application 5.8 网络层电源管理 网络层提供了API来管理无线传输电源状态。API由以下函数表示: 。NWK_Busy()- 检查是否堆栈准备好休眠(在这时没有帧被处理) 。NWK_SleepReq() - 请求切换无线传输器进入休眠模式。这个功能只在NWK_Busy()近回真值。无线传输在函数返回时休眠;没有确认的回调函数。 。NWK_WakeupReq() - 要求将无线电收发器转换为活动模式。无线电收发器是在 函数返回时唤醒;没有特殊的确认回调。 无线传输电源管理 case APP_STATE_PREPARE_TO_SLEEP: { if (!NWK_Busy()) { NWK_SleepReq(); appState = APP_STATE_SLEEP; } } break; ... case APP_STATE_WAKEUP: { NWK_WakeupReq(); appState = APP_STATE_SEND; } break;
|