Вход в Зоопарк ручных компьютеров
gps мониторинг, транспортная логистика, gps слежение
Если вы видите баннеры при просмотре с КПК, то вам - СЮДА
Как мониторить состояние аккумулятора?
Форумы Поиск Вход Для ПК
Программирование для КПК
Пн Фев 09, 2009 4:37
okaton (Новый писатель)
Доброго времени сутокSmile
Подскажите пожалуйста, каким образом можно мониторить состояние аккумулятора.

Пишу на Visual C# 2008
Чт Фев 12, 2009 9:17
okaton (Новый писатель)
Подскажите пожалуйста, вообще возможно получить текущую емкость аккумулятора?
Пт Фев 13, 2009 9:40
AE (Гуру, Moscow, Russia)
GetSystemPowerStatusEx2
____________
http://aeinc.ru
Пт Фев 13, 2009 21:44
okaton (Новый писатель)
использую такой код:

[DllImport("coredll")]
static public extern Int32 GetSystemPowerStatusEx2(SYSTEM_POWER_STATUS_EX2 lpSystemPowerStatus, Int32 dwLen, bool fUpdate);
public class SYSTEM_POWER_STATUS_EX2
{
public byte ACLineStatus;
public byte BatteryFlag;
public byte BatteryLifePercent;
public byte Reserved1;
public uint BatteryLifeTime;
public uint BatteryFullLifeTime;
public byte Reserved2;
public byte BackupBatteryFlag;
public byte BackupBatteryLifePercent;
public byte Reserved3;
public uint BackupBatteryLifeTime;
public uint BackupBatteryFullLifeTime;
public uint BatteryVoltage;
public uint BatteryCurrent;
public uint BatteryAverageCurrent;
public uint BatteryAverageInterval;
public uint BatterymAHourConsumed;
public uint BatteryTemperature;
public uint BackupBatteryVoltage;
public byte BatteryChemistry;
}
private void button1_Click(object sender, EventArgs e)
{
SYSTEM_POWER_STATUS_EX2 Status = new SYSTEM_POWER_STATUS_EX2();
GetSystemPowerStatusEx2(Status, Marshal.SizeOf(Status), false);
textBox1.Text= Status.BackupBatteryLifePercent.ToString();
}
* This source code was highlighted with Source Code Highlighter.


Вопрос в чем, мне нужна емкость, и она вроде как есть в классе:

uint BatteryAverageCurrent; // средний ток
uint BatteryAverageInterval; // интервал изменения тока
uint BatterymAHourConsumed; // емкость батареи в mAH

* This source code was highlighted with Source Code Highlighter.


но на выходе получаю 0 на 4 устройствах Sad
Подскажите пожалуйста, вообще возможно получить полную и текущую емкости аккумулятора?
Вт Фев 17, 2009 3:05
AE (Гуру, Moscow, Russia)
Емкость как таковая (в mAh) насколько я знаю _исключительно_ редко доступна программно. Если не ошибаюсь, видел это только один раз на каком-то Symbol'овском девайсе.

Есть вероятность что эта информация доступны через дополнительные API реализованные OEM'ом (тем же Symbol'ом или HP например) - но вряд ли получится найти универсальный способ.

А так ли она нужна, емкость-то? Обычно вполне достаточно текущего процента заряда обычно...
____________
http://aeinc.ru
Чт Фев 19, 2009 0:42
okaton (Новый писатель)
Нужна (очень), процент заряда с шагом 10
Сб Фев 21, 2009 2:26
AE (Гуру, Moscow, Russia)
Поле BatteryLifePercent. Смотреть там же где было взято описание структуры Wink
Насчет "с шагом 10%" - это как повезет. На большинстве КПК дискретность как раз шаг 10% или даже меньше. Но есть модели у которых BatteryLifePercent принимает только три значения или вообще невалиден. Тогда можно полуыить только состояние аккумулятора (заряжен-заряжается-разряжен) по ACLineStatus и BatteryFlag.
____________
http://aeinc.ru

Если вы видите баннеры при просмотре с КПК, то вам - СЮДА



Форумы Handy.ru 


Powered by phpBB © 2001 phpBB Group