Z-stack提供了兩種sleep模式,LITE和DEEP(PM2/PM3)。當(dāng)系統(tǒng)需 要喚醒去執(zhí)行一些周期性的事件時(shí),使用LITE sleep;當(dāng)系統(tǒng)沒(méi)有被定制周期事件而是通過(guò)外部中斷(如按鍵)來(lái)喚醒設(shè)備,使用DEEP sleep。例如帶有傳感器的終端設(shè)備,它需要周期性的喚醒發(fā)送采集的數(shù)據(jù),又如遠(yuǎn)程控制終端設(shè)備通過(guò)按鍵喚醒來(lái)發(fā)送一信息,它們的大部分時(shí)間都是處于 sleep,以降低功耗。 第一步:添加編譯選項(xiàng):POWER_SAVING 默認(rèn)情況下,Z-stack里終端設(shè)備的電源管理是關(guān)閉的。添加編譯選項(xiàng)POWER_SAVING以開(kāi)啟此功能 第二步:在f8wConfig.cfg里設(shè)置:-DRFD_RCVC_ALWAYS_ON = FALSE -DRFD_RCVC_ALWAYS_ON=FALSE 第三步:根據(jù)需要,在f8wConfig.cfg里設(shè)置三個(gè)參數(shù): -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 -DRESPONSE_POLL_RATE=100 Z-stack工程終端設(shè)備默認(rèn)情況下為電源管理關(guān)閉,自動(dòng)輪詢消息這一功能是開(kāi)啟的。這里有三個(gè)輪詢選項(xiàng),每一個(gè)都由一個(gè)不同的時(shí)間延遲參數(shù)控制。當(dāng)電源管理功能開(kāi)啟后(添加POWER_SAVING),任一個(gè)輪詢選項(xiàng)的設(shè)置都會(huì)影響到睡眠模式。時(shí)間延遲的設(shè)置不能用于DEEP skeep中的輪詢,因此限制了降低功耗。這三個(gè)輪詢選項(xiàng)分別如下: Da Queued Da Response Da 函數(shù)說(shuō)明: NLME_SetPollRate()——設(shè)置/改變網(wǎng)絡(luò)檢測(cè)速率,僅終端設(shè)備可用。 NLME_SetQueuedPollRate()——設(shè)置/改變隊(duì)列檢測(cè)速率,僅終端設(shè)備可用。 NLME_SetPollRate()——設(shè)置/改變響應(yīng)檢測(cè)速率,僅終端設(shè)備可用。 如果只是使用默認(rèn)的輪詢頻率進(jìn)入睡眠態(tài),則只能進(jìn)入LITE sleep。為了進(jìn)入DEEP sleep則必須將gNWK_POLL_RATE設(shè)為0,不讓它反復(fù)輪詢。 設(shè)置這個(gè)三個(gè)選項(xiàng)可以實(shí)現(xiàn)多種輪詢方式,例如,對(duì)于一個(gè)不需要接收消息的設(shè)備,在它加入網(wǎng)絡(luò)后,就將這三個(gè)選項(xiàng)都設(shè)為0。如果APS層使用了ACK,則必需確保在消息發(fā)送后到收到ACK這一段時(shí)間內(nèi),輪詢是使能的。 在有的系統(tǒng)中,可能需要使用可變的輪詢頻率,根據(jù)具體應(yīng)用而進(jìn)行設(shè)置。 |
|
來(lái)自: 少占魚(yú) > 《為人處事-少占魚(yú)》