WINCE 电源管理和电池驱动问题?
自己编写了电池驱动,可以正常读取电池状态和电压(通过I2C接口)?
驱动中 BatteryPDDGetStatus 中返回相应参数结构.
BOOL WINAPI
BatteryPDDGetStatus(
PSYSTEM_POWER_STATUS_EX2 pstatus,
PBOOL pfBatteriesChangedSinceLastCall
)
{
DWORD charger_voltage;
DWORD sample;
DWORD temperature = 0;
unsigned ad_number = 5;
float voltage_percent = 0;
BOOL PowerStatus;
static DWORD ChrgI = 0,ChrgIMax = 0,ChrgIMin = 0; //add,wgy, 2006.4.25
PowerStatus = IsACOnline();
// Level Indicator
if(voltage_percent >= 0.7)
pstatus->BatteryFlag |= BATTERY_FLAG_HIGH;
else if (( voltage_percent <0.70) && (voltage_percent >=0.3))
pstatus->BatteryFlag |= BATTERY_FLAG_LOW;
else if(voltage_percent<=0.20)
pstatus->BatteryFlag |= BATTERY_FLAG_CRITICAL;
pstatus->BatteryLifePercent = (BYTE) (voltage_percent * 100);
pstatus->Reserved1 = 0;
pstatus->BatteryLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->BatteryFullLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->Reserved2 = 0;
pstatus->BackupBatteryFlag = BATTERY_FLAG_UNKNOWN;
pstatus->BackupBatteryLifePercent = 0;
pstatus->Reserved3 = 0;
pstatus->BackupBatteryLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->BackupBatteryFullLifeTime = BATTERY_LIFE_UNKNOWN;
pstatus->BatteryChemistry = BATTERY_CHEMISTRY_LION;
pstatus->BatteryVoltage = terminal_voltage/BAT_MV(1000);
pstatus->BatteryCurrent = 0;
pstatus->BatteryAverageCurrent = 0;
pstatus->BatteryAverageInterval = 0;
pstatus->BatterymAHourConsumed = 0;
pstatus->BatteryTemperature = temperature;
pstatus->BackupBatteryVoltage = 0;
*pfBatteriesChangedSinceLastCall = FALSE;
return (TRUE);
}
可WINCE每次开机进入桌面 都提示对话框( Main Batteries Very Low ), 点确定后, 进入控制面板, 查看电源管理,
电源管理面板可以显示 电量百分比 相应的Main Batteries 显示 Good ,
请问那个参数返回不对?
谢谢