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