Windows CE 电源管理

Windows CE 电源管理

ID:39469979

大小:66.50 KB

页数:10页

时间:2019-07-04

Windows CE 电源管理_第1页
Windows CE 电源管理_第2页
Windows CE 电源管理_第3页
Windows CE 电源管理_第4页
Windows CE 电源管理_第5页
资源描述:

《Windows CE 电源管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、WindowsCE电源管理本文译自DouglasBoling的《ProgrammingMicrosoftWindowsCE.NET3rdEd》原文版权归原作者所有,译文版权归个人所有。WindowsCE电源管理是一个不好定性的问题,因为微软只定义了电源管理的框架,而OEM厂商往往打破了这个框架,所以该文的内容仅限于微软定义的电源管理框架,其中和实际设备情况存在差异。读者如果想正确实现电源管理相关的应用程序,最好还要仔细查阅MSDN及咨询对应的OEM厂商。本人从事过Smartphone,PocketPC设备

2、生产及开发,因此在文中加入了一些个人的见解(见译者注),本文以意译为主,可能在个别句词上与原文存在差异,想看原文的读者,请直接购买原版,禁止将本文以任何形势用于商业用途。该文只是本人翻译的一小部分,很犹豫是否应该发表其他部分,希望大家提出看法。电源管理   WindowsCE是典型的使用电池供电的系统。这使得正确操作系统十分关键,应用程序大多数时间都不需要关注WindowsCE设备的电源损耗,但是在某些时候,你可能要注意这些损耗。当用户关闭了一个使用电池的WindowsCE设备,电源系统不会关闭PC电源,

3、事实上,只是系统被挂起(译者注:这里就像有些PocketPC把关闭电源放在拔SIM卡的位置,拔出SIM卡才真正关闭电源。但是,目前包括Smartphone在内,因为硬件设备,比如CPU无法进入低功耗,所以为了省电,需要做到关闭应用处理器及大部分设备供电,然后需要唤醒时,再通过定时器或无线模块唤醒。所以不关闭电源的情况不是绝对的。)当用户打开设备电源,设备不会像PC一样重新启动,而是被唤醒,返回到与系统挂起前一样的状态。这样导致一个应用程序在唤醒后会像挂起前一样运行。事实上,应用程序根本不知道它被挂起,除非

4、它明确地请求当系统挂起时通知它。从应用程序的角度看,电源管理有三种方式,查询电源状态,改变电源状态,和防止电源状态改变。查询电源状态要查询系统当前的电源状态,你必须调用 DWORD GetSystemPowerStatusEx2 (PSYSTEM_POWER_STATUS_EX2 pSystemPowerStatusEx2,DWORD dwLen, BOOL fUpdate); 函数带了三个参数:一个指向SYSTEM_POWER_STATUS_EX2结构的指针,结构的长度,和一个布尔值,表示告诉操作系统是

5、否应该查询电池驱动来得到最后的信息或者直接返回电池缓存中的信息。系统大约每5秒查询一次电池状态,因此,如果第三个差数是FALSE,得到的数据不会太旧。结构SYSTEM_POWER_STATUS_EX2被定义为typedef struct _SYSTEM_POWER_STATUS_EX2 {    BYTE ACLineStatus;    BYTE BatteryFlag;    BYTE BatteryLifePercent;    BYTE Reserved1;    DWORD BatteryLif

6、eTime;    DWORD BatteryFullLifeTime;    BYTE Reserved2;    BYTE BackupBatteryFlag;    BYTE BackupBatteryLifePercent;    BYTE Reserved3;    DWORD BackupBatteryLifeTime;    DWORD BackupBatteryFullLifeTime;    WORD BatteryVoltage;         DWORD BatteryCurren

7、t;    DWORD BatteryAverageCurrent;    DWORD BatteryAverageInterval;    DWORD BatterymAHourConsumed;    DWORD BatteryTemperature;    DWORD BackupBatteryVoltage;    BYTE  BatteryChemistry;} SYSTEM_POWER_STATUS_EX2;   在我描述的这个巨大的结构之前,我必须告诫你,这个结构返回的数据精确程度和电池驱动

8、一样。同样的结构被传给电池驱动来查询它的状态。WindowsCE不验证电池驱动返回的数据。这个函数返回来的数据依赖于电池驱动,因此不同的系统有不同的变化。举个例子,许多系统在使用AC电源时不报告精确的电源级数;另一些系统则相反。应用程序使用GetSystemPowerStatusEx2来自动预防和检测系统是否可能运行应用程序。   第一个区域,ACLineStatus,包含一个标志,表示系统是否连接到AC电源。如果值是AC_L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。