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