wince中oal需要实现的电源管理函数

来源:互联网 发布:简单计算器c语言 编辑:程序博客网 时间:2024/05/01 22:30

1、oal中需要实现两个函数:

OEMIdle();//这个微软有示例代码放在%_WINCEROOT%\Platform\Common\Src\Common\Timer\Idle

OEMPowerOff();//这个一般是放在time.c中

2、挂起状态的GWES控制

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power]
 "BattPowerOff"=dword:0//使用电池作为电源的时候,在系统挂起之前没有用户输入的秒数。这里是0表示不进入电池挂起,如果改成300,表示300秒后进入节电模式
 "ExtPowerOff"=dword:0//使用外部电源时,在系统挂起之前没有用户输入的秒数。0表示不挂起系统。
 "WakeupPowerOff"=dword:0//在一个非用户时间唤醒之后,在系统挂起之前没有用户输入的秒数。
 "ScreenPowerOff"=dword:0//在GWES启动一个屏幕保护之前,没有用户输入的秒数。0表示不启动屏幕保护。

 

3、系统电源状态到设备电源状态的映射

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\NAME]

Flags:REG_DWORD:XXXX

(Default):REG_DWORD:Dx

DeviceName:REG_DWORD:Dx

以上的name表示定义的电源状态名

flags表示POWER_STATE_XXX值的掩码,在Pm.h中定义;或者是OEM定义的电源状态标志

default 所有的设备默认电源设置。当没有定义默认设置时,电源管理器假定设备的默认电源状态为D0

Dx设备的电源状态,设置为D0,D1,D2,D3,D4。这是在系统电源状态Name时设备的运行的状态

DeviceName 可选,定义default之外有特定设备电源状态需求的设备,如com1:dword:3

下面是几个例子:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\UserIdle\

    "Default"=dword:0           ; D0    set Display on when useridle

    ''Flags"=dowrd:80010001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\SystemIdle\

    "Default"=dword:0           ; D0    set Display on when systemidle