色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Windows Mobile的系統電源狀態和電源管理策略

454398 ? 來源:博客園 ? 作者:Jason's Scribble ? 2020-10-05 17:35 ? 次閱讀

本篇將以Windows Mobile為例介紹Windows CE電源管理的實現,大體上,Windows Mobile分為Pocket PC和Smartphone兩種版本。這兩者之間的主要區別在于觸摸屏和電源模型,Smartphone采用的是“Always On”模型。為了說清楚它們的區別,我們就先從系統電源狀態說起吧(這里有些系統電源狀態是從WM5開始才有的)。

1. Windows Mobile的系統電源狀態

On:用戶與系統交互時的狀態;

BacklightOff:在一段時間內(默認15秒),如果一直沒有用戶操作(比如按下某個鍵或者觸摸屏幕),就關閉背光,這時其他的設備都沒變化。這個timeout值可以通過控制面板進行設置;

UserIdle:這個狀態只在Smartphone中被使用。經過一段稍長的時間,如果一直沒有用戶操作,就關閉背光和LCD。這個timeout值可以通過控制面板進行設置;

ScreenOff:一般由某些程序指定,才進入這個狀態。比如音樂播放器程序,當你聽音樂時按下某個鍵可以將屏幕關閉。PocketPC和Smartphone都使用這個狀態,它與UserIdle的不同在于,ScreenOff意味著“用戶主動關閉了顯示,只有當他按下電源鍵時才重新顯示”,而UserIdle意味著“用戶有段時間沒操作了,那么我們可以關閉屏幕來省電”,所以在UserIdle時,隨便按下Smartphone的哪個鍵都會啟動顯示;

Suspend:這是PocketPC的睡眠模式,幾乎所有設備都被關閉,直到某個硬件設備觸發中斷才將系統喚醒,這個timeout值可以通過控制面板進行設置(默認為3分鐘);

Resuming:這是PocketPC被喚醒后的狀態,這時屏幕是關閉的,并啟動一個15秒的計時器,在這段時間內決定接下來進入哪個狀態,如果計時器超時則重新回到睡眠狀態;

Unattended:這個狀態只在PocketPC中被使用,用戶對其不會有所察覺。有些程序,如ActiveSync每5分鐘會喚醒系統進行同步,同步完成后再讓系統繼續睡眠,這段時間不希望打擾用戶,即程序在后臺執行。

可以通過注冊表查看系統電源狀態對應的具體設備的電源狀態,[HLM\System\CurrentControlSet\Control\Power\State]。

現在我們知道,Smartphone沒有真正的睡眠模式,即使它會在一段時間后關閉背光和屏幕,但它并沒有睡著,只是休息一下眼睛罷了,它的大腦和四肢仍在正常工作。PocketPC所采用的模型比Smartphone要復雜的多,你可以按下電源鍵讓系統睡眠,在必要時,也可以喚醒系統做一些工作然后再繼續睡眠。如果你在Smartphone上運行一個桌面精靈之類的程序,她為了引起你的注意,長時間的蹦啊跳啊,不管白天還是黑夜,可想而知,你的待機時間將......

你可能會覺得PocketPC的“Sleep”模型比Smartphone的“Always On”模型要省電,其實恰恰相反。因為在系統睡眠的過程中,它需要通知所有的設備驅動,為了讓它們保存一些重要的信息并關閉相應的硬件設備,在系統被喚醒時也需要通知它們恢復先前的工作。這個過程不僅耗時還可能會耗更多的電,因為一些設備在頻繁的狀態轉換過程中會消耗比較多的能量。這也就是為什么當你收到一條短信時,睡眠狀態的PocketPC要花3到6秒的時間來處理,而Smartphone只需要幾個微秒:)

2. Windows Mobile的電源管理策略

我們可以用系統電源狀態機來簡單的描述Windows Mobile的電源管理策略,以PocketPC為例,系統電源狀態機如下圖所示:

系統內部的電源管理器負責協調電源狀態的轉換,電源狀態的轉換主要由一下幾種方式觸發:

計時器超時:SuspendTimeout和ResumingSuspendTimeout,分別對應于第一節介紹Suspend和Resuming狀態時所提到的計時器。細說起來,它們每個又有兩個值,分別對應著電源供電時和電池供電時的超時值,也就是注冊表[HLM\System\CurrentControlSet\Control\Power\Timeout]中的ACSuspendTimeout、BattSuspendTimeout、ACResumingSuspendTimeout、BattResumingSuspendTimeout;

系統調用:驅動程序或應用程序通過相應的API,請求進入某種電源狀態。這類API在前面的文章中已經有所介紹,如SetSystemPowerState、SetPowerRequirement、DevicePowerNotify等;

平臺相關的系統調用:通過PowerPolicyNotify通知電源管理器發生了某個事件,它的實現比較靈活,驅動程序或應用程序可以通過相應的參數與電源管理器進行交互,比如PPN_POWERCHANGE、PPN_SUSPENDKEYPRESSED、PPN_UNATTENDEDMODE等,參見"pmpolicy.h";

直接訪問內核對象:事件(Event)作為Windows CE系統的內核對象,可以通過事件名稱在進程間共享,因此我們可以訪問電源管理器中的兩個事件,它們的名字分別是_T("PowerManager/ReloadActivityTimeouts")、_T("PowerManager/SystemIdleTimerReset")。如果你的程序需要動態修改那幾個計時器的時間長度,可以通過第一個事件通知電源管理器重新讀取注冊表中計時器的值,而第二個事件與SystemIdleTimerReset功能一樣,可以阻止系統進入睡眠狀態。

3. Windows Mobile電源管理相關API的應用

最后,通過幾個應用場景簡單介紹一下常用的電源管理相關的API的使用:

如果你在設計的是媒體播放器程序,不希望在播放電影時,系統自動轉入Suspend狀態,這時可以每隔30秒調用一次SystemIdleTimerReset,它會幫你重置那個計時器;如果你還想同時保持背光,那么可以調用SetPowerRequirement(TEXT("BKL1:"), D0, POWER_NAME, NULL, 0);如果你提供一個按鈕允許用戶關閉屏幕,那么調用SetSystemPowerState(NULL, POWER_STATE_IDLE, 0);

如果你在設計的是天氣預報程序,需要每天早上6點在線更新天氣信息,這時可以調用CeRunAppAtTime,系統到時會被RTC中斷喚醒,還記得前面提到的那個15秒的計時器嗎,這時你的程序應該在15秒內請求進入Unattended狀態,否則系統將重新回到睡眠狀態。在處理更新的過程中,還是應該每隔30秒調用一次SystemIdleTimerReset,在處理完更新后,應該再次調用CeRunAppAtTime,并放棄Unattended狀態。請注意,在電源管理器的實現代碼中,用了一個引用計數的變量(gdwUnattendedModeRequests)統計所有對Unattended狀態的請求,所以PowerPolicyNotify(PPN_UNATTENDEDMODE, TRUE);和PowerPolicyNotify(PPN_UNATTENDEDMODE, FALSE);要成對出現,否則系統將無法回到睡眠狀態。

如果你要開發一個監控電池狀態的程序,首先應該創建一個接收狀態通知的線程,在這個線程里調用RequestPowerNotifications,這個函數的第一個參數是一個消息隊列的句柄,所以必須先創建一個消息隊列(CreateMsgQueue),第二個參數是你希望得到的通知類型,這里要用到的是PBT_POWERSTATUSCHANGE|PBT_POWERINFOCHANGE,然后線程就可以等待通知了(WaitForSingleObject),一旦有通知到來,線程通過ReadMsgQueue讀取消息的內容,再做些更新UI的工作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源管理
    +關注

    關注

    115

    文章

    6185

    瀏覽量

    144629
  • WINDOWS
    +關注

    關注

    4

    文章

    3551

    瀏覽量

    88909
  • 計時器
    +關注

    關注

    1

    文章

    426

    瀏覽量

    32752
收藏 人收藏

    評論

    相關推薦

    使用PWM實現電源管理策略

    PWM(脈沖寬度調制)是一種廣泛應用于電子設備中實現電壓調節和功率控制的技術,它通過改變信號的脈沖寬度來模擬輸出不同的電壓幅值,從而高效控制設備的工作狀態。在電源管理中,PWM技術發揮
    的頭像 發表于 11-18 16:23 ?533次閱讀

    ZVS技術在電源管理系統中的應用

    電源管理系統在現代電子設備中扮演著至關重要的角色,它負責將輸入的電能高效地轉換為設備所需的電能形式,并確保設備的穩定運行。隨著科技的進步和電子設備性能的提升,對電源
    的頭像 發表于 10-10 10:21 ?790次閱讀

    電源監控電路-電源管理芯片

    電源管理芯片(Power Management Integrated Circuits,簡稱PMIC)在電子設備系統中扮演著至關重要的角色,負責電能的變換、分配、檢測及其他電能管理的職
    發表于 09-29 15:48

    TPS2576x/TPS2577x-Q1拉電流電源策略管理

    電子發燒友網站提供《TPS2576x/TPS2577x-Q1拉電流電源策略管理.pdf》資料免費下載
    發表于 09-27 10:58 ?0次下載
    TPS2576x/TPS2577x-Q1拉電流<b class='flag-5'>電源</b><b class='flag-5'>策略</b><b class='flag-5'>管理</b>

    物聯網系統中不間斷供電電源_UPS電源管理模塊詳解

    01 物聯網系統中為什么要使用UPS電源管理模塊 在物聯網系統中,使用UPS(Uninterruptible Power Supply,不間斷電源
    的頭像 發表于 09-26 12:08 ?777次閱讀
    物聯網<b class='flag-5'>系統</b>中不間斷供電<b class='flag-5'>電源</b>_UPS<b class='flag-5'>電源</b><b class='flag-5'>管理</b>模塊詳解

    pmu電源管理芯片和DCDC區別

    電源管理芯片(Power Management Unit, PMU)和直流-直流轉換器(DC-DC Converter)是電子系統中用于電源管理
    的頭像 發表于 09-23 09:56 ?1266次閱讀

    智能電源管理技術

    智能電源管理系統是實現平臺溫度和SSD總功耗之間可接受的平衡所必需的。盡管形狀因素定義了SSD的最大功率,但主機可以使用電源狀態來更改SSD
    的頭像 發表于 08-14 09:03 ?313次閱讀

    電源管理芯片怎么測好壞

    電源管理芯片(Power Management Integrated Circuit,簡稱PMIC)是電子設備中非常重要的組成部分,它負責對電源進行管理和控制,以確保電子設備的正常運行
    的頭像 發表于 08-02 09:23 ?2031次閱讀

    電源管理芯片壞了會怎么樣

    電源管理芯片(Power Management Integrated Circuit,簡稱PMIC)是現代電子設備中不可或缺的一個組件。它負責管理設備的電源供應,確保設備在各種工作
    的頭像 發表于 08-02 09:20 ?1315次閱讀

    電源芯片測試系統:確保電源管理芯片的性能與安全

    納米軟件電源管理芯片測試系統旨在為4644電源芯片以及其它各類電源管理芯片提供自動化測試方案。區
    的頭像 發表于 05-22 18:41 ?497次閱讀
    <b class='flag-5'>電源</b>芯片測試<b class='flag-5'>系統</b>:確保<b class='flag-5'>電源</b><b class='flag-5'>管理</b>芯片的性能與安全

    電源管理芯片怎么測好壞電源芯片內部結構

    電源管理芯片(PMIC)是在單片芯片內包括多種電源軌和電源管理功能的集成電路,主要功用為在存在多個
    的頭像 發表于 04-08 16:49 ?2337次閱讀

    電源管理芯片怎么測好壞電源芯片內部結構

    電源管理芯片(PMIC)是在單片芯片內包括多種電源軌和電源管理功能的集成電路,主要功用為在存在多個電源
    的頭像 發表于 03-29 15:59 ?2929次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理</b>芯片怎么測好壞<b class='flag-5'>電源</b>芯片內部結構

    鋰離子供電系統電源管理集成電源管理芯片TPS65024x數據表

    電子發燒友網站提供《鋰離子供電系統電源管理集成電源管理芯片TPS65024x數據表.pdf》資料免費下載
    發表于 03-07 09:34 ?0次下載
    鋰離子供電<b class='flag-5'>系統</b>的<b class='flag-5'>電源</b><b class='flag-5'>管理</b>集成<b class='flag-5'>電源</b><b class='flag-5'>管理</b>芯片TPS65024x數據表

    WINDOWS系統有幾個版本

    版本,如Windows Server、Windows MobileWindows CE等。因此, Windows
    發表于 02-29 16:40

    DC電源模塊的節能與環保設計策略

    BOSHIDA DC電源模塊的節能與環保設計策略 DC電源模塊的節能與環保設計策略可以從以下幾個方面考慮: DC電源模塊的節能與環保設計
    的頭像 發表于 02-18 14:23 ?324次閱讀
    DC<b class='flag-5'>電源</b>模塊的節能與環保設計<b class='flag-5'>策略</b>
    主站蜘蛛池模板: 花蝴蝶在线直播观看| 国产午夜免费视频片夜色| 成人免费公开视频| 看 视频一一级毛片| 夜夜国产亚洲视频香蕉| 国产在线一卡二卡| 亚洲AV中文字幕无码久久| 国产精品亚欧美一区二区三区 | 成年人视频在线免费播放| 免费成人小视频| 99久久国产免费福利| 男女床上黄色| yy8090韩国理伦片在线| 日本久久精品免视看国产成人 | 青青久久网| 成人免费观看在线视频| 人妻仑乱少妇88MAV| 动漫美女被到爽了流| 双性大乳浪受噗呲噗呲h总| 国产成人无码WWW免费视频在线| 四川少妇大战4黑人| 国产黄a三级三级三级| 婷婷久久综合九色综合伊人色| 国产免费人成在线看视频| 亚洲精品国产自在在线观看| 娇喘嗯嗯 轻点啊视频福利| 中文国产乱码在线人妻一区二区 | 色戒未删减版在线观看完整| 高h 大尺度纯肉 np快穿| 小SB几天没做SAO死了H| 精品综合久久久久久8888| 最近日本MV字幕免费观看在线 | 插曲的痛30分钟视频最新章节| 日韩无码在线| 国产午夜精品理论片影院 | 亚洲成人免费| 久久青青草原精品国产软件| MMM日本兽交| 性夜a爽黄爽| 美女胸网站| 国产精品久久高潮呻吟无码|