Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как мониторить состояние аккумулятора? 
V
    Опции темы
okaton
Дата 9.2.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Доброго времени сутокsmile
Подскажите как мониторить состояние аккумулятора в ноутбуке
PM MAIL   Вверх
Partizan
Дата 9.2.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



okaton, google PowerStatus class


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Drabuna
Дата 9.2.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: 2
Всего: 3



SystemInformation.PowerStatus.BatteryLifePercent
PM MAIL   Вверх
okaton
Дата 9.2.2009, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Спасибо за помощьsmile

Я получил такие результаты:

  The value of the PowerStatus property is:
    PowerStatus.PowerLineStatus is: Online
    PowerStatus.BatteryChargeStatus is: Charging
    PowerStatus.BatteryFullLifetime is: -1
    PowerStatus.BatteryLifePercent is: 0,63
    PowerStatus.BatteryLifeRemaining is: -1


Что такое вот это PowerStatus.BatteryFullLifetime is: -1 и вот это PowerStatus.BatteryLifeRemaining is: -1 погуглив я не очень понял :( Почему -1 контроллер не поддерживает?

Подскажите а возможно ли вместо процентов заряда получить текущую емкость в числах? Ведь как-то же эти проценты вычисляются.

Это сообщение отредактировал(а) okaton - 9.2.2009, 18:41
PM MAIL   Вверх
Drabuna
Дата 9.2.2009, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дивелоперчег
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 27.3.2008
Где: Киев

Репутация: 2
Всего: 3



В каких числах?)
PM MAIL   Вверх
Partizan
Дата 9.2.2009, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



okaton

  The value of the PowerStatus property is:
    PowerStatus.PowerLineStatus is: Online
    PowerStatus.BatteryChargeStatus is: Charging
    PowerStatus.BatteryFullLifetime is: -1 //The reported number of seconds of battery life available when the battery is fully charged, or -1 if the battery life is unknown.

    PowerStatus.BatteryLifePercent is: 0,63
    PowerStatus.BatteryLifeRemaining is: -1 //The approximate number of seconds of battery life remaining, or –1 if the approximate remaining battery life is unknown.



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
okaton
Дата 9.2.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Drabuna, Аккумулятор характеризуется емкостью которая выражается в амперах. Вот мне они самые и нужны, если можноsmile Проценты же как-то вычисляютсяsmile Или я не прав?
PM MAIL   Вверх
Partizan
Дата 9.2.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



okaton, в WinAPI есть функция GetPwrCapabilities, через которую из структуры SYSTEM_POWER_CAPABILITIES(поле BatteryScale) можно получить структуру BATTERY_REPORTING_SCALE, в которой в савою очередь есть поля

Цитата

Members
Granularity 
The granularity of the capacity reading returned by IOCTL_BATTERY_QUERY_STATUS in milliwatt-hours (mWh). Granularity may change over time as battery discharge and recharge lowers the range of readings.

Capacity 
The upper capacity limit for Granularity. The value of Granularity is valid for capacities reported by IOCTL_BATTERY_QUERY_STATUS that are less than or equal to this capacity (mWh), but greater than or equal to the capacity given in the previous array element, or zero if this is the first array element.



Насчёт существования .NET обёрток над этим методом, мне ничего не известно...если таких нет, то придётся дёргать эту native функцию


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
okaton
Дата 9.2.2009, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Partizan, спасибо погуглужаюсь и мсдниваюсь

Это сообщение отредактировал(а) okaton - 9.2.2009, 19:57
PM MAIL   Вверх
okaton
Дата 9.2.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Что-то не выходит каменный цветок, примеров, доступных для меня, я не нашел  smile 

Зато обнаружил что такое возможно точно картинка, надеюсь что и силами шарпа тоже smile

Буду рад помощи smile

PM MAIL   Вверх
QryStaL
Дата 9.2.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 10
Всего: 32





--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
okaton
Дата 10.2.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Код

[DllImport("powrprof.dll", SetLastError = true)]
        private static extern UInt32 CallNtPowerInformation(
        Int32 InformationLevel,
        IntPtr lpInputBuffer,
        UInt32 nInputBufferSize,
        IntPtr lpOutputBuffer,
        UInt32 nOutputBufferSize
        );

        struct SYSTEM_BATTERY_STATE
        {
            public bool AcOnLine;
            public bool BatteryPresent;
            public bool Charging;
            public bool Discharging;
            public bool Spare0;
            public bool Spare1;
            public bool Spare2;
            public bool Spare3;
            public UInt32 MaxCapacity;
            public UInt32 RemainingCapacity;
            public UInt32 Rate;
            public UInt32 EstimatedTime;
            public UInt32 DefaultAlert1;
            public UInt32 DefaultAlert2;
        }

        enum InformationLevel
        {
            AdministratorPowerPolicy = 9,
            LastSleepTime = 15,
            LastWakeTime = 14,
            ProcessorInformation = 11,
            ProcessorPowerPolicyAc = 18,
            ProcessorPowerPolicyCurrent = 22,
            ProcessorPowerPolicyDc = 19,
            SystemBatteryState = 5,
            SystemExecutionState = 16,
            SystemPowerCapabilities = 4,
            SystemPowerInformation = 12,
            SystemPowerPolicyAc = 0,
            SystemPowerPolicyCurrent = 8,
            SystemPowerPolicyDc = 1,
            SystemReserveHiberFile = 10,
            VerifyProcessorPowerPolicyAc = 20,
            VerifyProcessorPowerPolicyDc = 21,
            VerifySystemPolicyAc = 2,
            VerifySystemPolicyDc = 3
        }


Это то что удалось найти. А что теперь с этим делать?
PM MAIL   Вверх
Partizan
Дата 10.2.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



okaton,  а чего, GetPwrCapabilities не подошло?


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
okaton
Дата 11.2.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Partizan, как сказать

Это сообщение отредактировал(а) okaton - 11.2.2009, 11:59
PM MAIL   Вверх
okaton
Дата 11.2.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 24.11.2006

Репутация: нет
Всего: нет



Путь который избрал я к сожалению не верен, возвращаюсь к поиску...

Partizan а как этим воспользоваться?  примеров нигде не нашел

Добавлено @ 18:41
Для WM есть такая вещь:
Код

using System.Runtime.InteropServices;


        [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;// BYTE ACLineStatus; - состояние внешнего питания
            public byte BatteryFlag; // BYTE BatteryFlag; - состояние основной батареи
            public byte BatteryLifePercent;//BYTE BatteryLifePercent; - процент зарядки основной батареи
            public byte Reserved1;
            public uint BatteryLifeTime;//DWORD BatteryLifeTime; - время, на которое хватит заряда
            public uint BatteryFullLifeTime;//DWORD BatteryFullLifeTime; - время, на которое хватит полной батареи
            public byte Reserved2;
            public byte BackupBatteryFlag;//BYTE BackupBatteryFlag; - состояние резервной батареи
            public byte BackupBatteryLifePercent;//BYTE BackupBatteryLifePercent; - процент заряда резервной батареи
            public byte Reserved3;
            public uint BackupBatteryLifeTime;//DWORD BackupBatteryLifeTime; - время остатка заряда резервной батареи
            public uint BackupBatteryFullLifeTime;//DWORD BackupBatteryFullLifeTime; - полное время резервной батареи
            //Физические характеристики батареи:
            public uint BatteryVoltage;//DWORD BatteryVoltage; - емкость батреи (mV)
            public uint BatteryCurrent;//DWORD BatteryCurrent; - ток батареи (mA)
            public uint BatteryAverageCurrent;//DWORD BatteryAverageCurrent; - средний ток
            public uint BatteryAverageInterval;//DWORD BatteryAverageInterval; - интервал изменения тока
            public uint BatterymAHourConsumed;//DWORD BatterymAHourConsumed; - емкость батареи в mAH
            public uint BatteryTemperature;//DWORD BatteryTemperature; - температура батареи
            public uint BackupBatteryVoltage;//DWORD BackupBatteryVoltage; - емкость резервной батареи
            public byte BatteryChemistry;//BYTE BatteryChemistry; - тип батареи (LION, NiCD, NIMN… )   
        }

        SYSTEM_POWER_STATUS_EX2 Status = new SYSTEM_POWER_STATUS_EX2();            

 
            GetSystemPowerStatusEx2(Status, Marshal.SizeOf(Status), false);


Но для ББ она не подходит из-за coredll.dll, а есть что-то похожее для ББ?
Мне нужно: емкость общая (вся), емкость текущая, ток разряда

Это сообщение отредактировал(а) okaton - 11.2.2009, 20:43
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.