Вход в Зоопарк ручных компьютеров
gps мониторинг, транспортная логистика, gps слежение
Как мониторить состояние аккумулятора?
"Карманная" версия Базара

 
Начать новую тему   Ответить на тему    Список Базаров Форумы Handy.ru -> Программирование для КПК
Предыдущая тема :: Следующая тема  
Автор Сообщение
okaton

Новый писатель


Зарегистрирован: 09.02.2009
Сообщения: 4

СообщениеДобавлено: Пн Фев 09, 2009 4:37    Заголовок сообщения: Как мониторить состояние аккумулятора? Ответить с цитатой

Доброго времени сутокSmile
Подскажите пожалуйста, каким образом можно мониторить состояние аккумулятора.

Пишу на Visual C# 2008
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
okaton

Новый писатель


Зарегистрирован: 09.02.2009
Сообщения: 4

СообщениеДобавлено: Чт Фев 12, 2009 9:17    Заголовок сообщения: Ответить с цитатой

Подскажите пожалуйста, вообще возможно получить текущую емкость аккумулятора?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AE

Гуру


Зарегистрирован: 21.08.2001
Сообщения: 1981
Откуда: Moscow, Russia

СообщениеДобавлено: Пт Фев 13, 2009 9:40    Заголовок сообщения: Ответить с цитатой

GetSystemPowerStatusEx2
_________________
http://aeinc.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
okaton

Новый писатель


Зарегистрирован: 09.02.2009
Сообщения: 4

СообщениеДобавлено: Пт Фев 13, 2009 21:44    Заголовок сообщения: Ответить с цитатой

использую такой код:

[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
Подскажите пожалуйста, вообще возможно получить полную и текущую емкости аккумулятора?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AE

Гуру


Зарегистрирован: 21.08.2001
Сообщения: 1981
Откуда: Moscow, Russia

СообщениеДобавлено: Вт Фев 17, 2009 3:05    Заголовок сообщения: Ответить с цитатой

Емкость как таковая (в mAh) насколько я знаю _исключительно_ редко доступна программно. Если не ошибаюсь, видел это только один раз на каком-то Symbol'овском девайсе.

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

А так ли она нужна, емкость-то? Обычно вполне достаточно текущего процента заряда обычно...

_________________
http://aeinc.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
okaton

Новый писатель


Зарегистрирован: 09.02.2009
Сообщения: 4

СообщениеДобавлено: Чт Фев 19, 2009 0:42    Заголовок сообщения: Ответить с цитатой

Нужна (очень), процент заряда с шагом 10
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AE

Гуру


Зарегистрирован: 21.08.2001
Сообщения: 1981
Откуда: Moscow, Russia

СообщениеДобавлено: Сб Фев 21, 2009 2:26    Заголовок сообщения: Ответить с цитатой

Поле BatteryLifePercent. Смотреть там же где было взято описание структуры Wink
Насчет "с шагом 10%" - это как повезет. На большинстве КПК дискретность как раз шаг 10% или даже меньше. Но есть модели у которых BatteryLifePercent принимает только три значения или вообще невалиден. Тогда можно полуыить только состояние аккумулятора (заряжен-заряжается-разряжен) по ACLineStatus и BatteryFlag.

_________________
http://aeinc.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список Базаров Форумы Handy.ru -> Программирование для КПК Часовой пояс: GMT - 10
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять вложения в этом форуме
Вы можете просматривать вложения в этом форуме



Форумы Handy.ru 


Powered by phpBB © 2001 phpBB Group