Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пошук проблем енергоспоживання




Насправді, те, що легко налаштувати з використанням графічного меню, можна налаштувати за допомогою консольної утиліти powerсfg.exe. Розповідати тонкощі роботи з цією утилітою я не буду, все ж таки робота з нею не є простою справою. Але існує одна чудова функція цієї утиліти, яка допоможе знайти проблемні місця в роботі ноутбука і посприяє більш тонкої настройки планів електроживлення.

Для запуску утиліти слід запустити командну консоль з правами Адміністратора. Введіть CMD в полі Швидкого пошуку. У результатах виберіть cmd.exe з розділу Програми, натисніть на ньому правою кнопкою миші і виберіть пункт "Запуск від імені Адміністратора" (якщо робота відбувається від імені Користувача, буде потрібно ввести пароль Адміністратора). Відкриється командна консоль з підвищеними правами.

Рис. 1.3. Запуск командного консолі з підвищенням прав

У нашому випадку, файл був створений в корені диска D: і називається енергією report.html.

Відкривши цей файл за допомогою Internet Explorer, можна переглянути звіт про проблеми з енергоспоживанням та рекомендації щодо їх усунення.

Рис. 1.4. Файл-звіт про діагностику ефективності енергоспоживання


2. Аналіз задачі розробки утиліта моніторингу та контролю енергоспоживанням портативних комп’ютерів та способи її вирішення

 

2.1.Аналіз задачі розробки утиліта моніторингу та контролю енергоспоживанням портативних комп’ютерів

Кожен портативний комп’ютер може працювати від мережі або батареї. Батарея має обмежений час для підтримання енергії в портативному комп’ютері. Тому для зручного та ефективного використання портативних комп’ютерів було створено різні плани енергоспоживання, які мають рівні від обмеження продуктивності комп’ютера для забезпечення більшого часу роботи від батареї до максимальної продуктивності коли потрібно максимальну продуктивність комп’ютера з значною втратою максимального часу роботи від батареї. Управління цією системою включає в себе наступні можливості:

1. керування яскравістю екрану;

2. виведення стану підключення до мережі;

3. виведення стану зарядки батареї у відсотках;

4. виведення часу до повної розрядки батареї;

5. вибір плану енергоспоживання.

Реалізацію цих можливостей здійснює програма «Утиліта моніторингу та контролю енергоспоживанням портативних комп’ютерів». Жодна операційна система на сьогоднішній день не може обійтися без зручної і ефективної програми енергоспоживання. З зростаючими потужностями портативних комп’ютерів зростає і їх енерговитрати, які потрібно збалансовувати для зручного користування.

Можливість швидкого доступу до потрібної інформації та зручний інтерфейс є першочерговими вимогами до програми енергоспоживання, яка розробляється у курсовому проекті. Адже інтерфейс програми енергоспоживання розробляється спеціально для зручного користування у всіх операційній системі Windows. У програмі енергоспоживання буде об'єднано найнеобхідніші для користувача функції для роботи з файловою системою в наочному і простому вигляді.

2.2.Способи вирішення поставленої задачі

У курсовому проекті поставлену задачу можна вирішити за допомогою системних викликів операційної системи Windows. Адже за допомогою системних викликів ми можемо доступитися до ядра операційної системи та здійснити необхідні нам операції з енергоспоживанням. Крім цього потрібно забезпечити інтерфейс роботи з користувачем. Для вирішення поставленої задачі у курсовому проекті розроблений алгоритм роботи утиліти моніторингу та контролю енергоспоживанням портативних комп’ютерів, яка наведена на рис. 2.1.

Робота програми починатиметься з ініціалізації компонентів, яка включатиме в себе створення віконного інтерфейсу, ініціалізації полів та кнопок інтерфейсу. Після ініціалізації компонентів програми буде здійснений системний виклик для отримання інформації про енергоспоживання, які доступні на портативному комп’ютері. Наступним кроком буде отримання інформації про яскравість екрану та відображення цієї інформації у відповідних полях інтерфейсу програми. Ці дії будемо реалізовувати за допомогою системних викликів, які повертатимуть нам стан та рівень заряду батареї та яскравості екрану. Після виконання описаних вище етапів програма перейде у режим очікування дії від користувача.

При зміненні повзунка рівня яскравості змінюється яскравість екрану що дає зменшити споживання енергії екрану і більшої роботи від батареї. Або для кращої передачі насиченості кольорів, тобто збільшення яскравості екрану при перегляді медіа файлів або потужних ігор.

Для кращого планування продуктивності або зменшення витрат є список планів енергоспоживання. Кожен з цих планів має свої налаштування, які певним чином впливають на продуктивність комп’ютера, що дозволяє ще краще організувати витрати портативного комп’ютера.

Отже, робота утиліта моніторингу та контролю енергоспоживанням портативних комп’ютерів у курсовому проекті буде основана на використанні системних викликів операційної системи Windows.

 

Рис. 2.1. Граф-схема роботи програми енергоспоживання

 

 


3.Розробка утиліти контролю і моніторингу енергоспоживанням портативних комп’ютерів

Дана програма має такі основні функціональні вузли:

- керування яскравістю екрану;

- виведення інформації про стан батареї;

- виведення інформації про стан плану енергоспоживання;

- зміна плану енергоспоживання.

Вузол «Керування яскравістю екрану» дозволяє користувачеві зменшити або збільшити яскравість екрану відповідно, якщо збільшити яскравість батарея розрядиться швидше, якщо зменшити повільніше.

Вузол «Виведення інформації про стан батареї» виводить інформацію про батарею, чи заряджається вона чи ні, скільки часу залишилось до повної розрядки батареї.

Вузол «Стан плану енергоспоживання» звертається до реєстру, вибирає дані про стани енергоспоживання і виводить їх користувачі.

Вузол «Зміна плану енергоспоживання» звертається до системи і відправляє запит на зміну плану енергоспоживання.


3.1.Вибір технології програмування

Для виконання поставленого завдання використано мову програмування C# та середовище програмування Microsoft Visual Studio 2012.

Вибір мови програмування можна обґрунтувати тим, що мова C# має у своєму складі безліч класів та методів для роботи з файловою системою, процесами та потоками ОС Windows. У цієї мови є багато можливостей для реалізації найскладніших алгоритмів і роботи з операційною системою та апаратним середовищем. Також у мові програмування C# зручно працювати з технологією Windows Form.

Середовище програмування Microsoft Visual Studio 2012 має ряд переваг, таких як:

ü зручна робота з графічним інтерфейсом за допомогою технології Windows Forms;

ü підтримка.NET Framework;

ü має у своєму складі редактор коду з підтримкою технології IntelliSense і можливістю найпростішого рефакторінгу коду;

ü вбудований відлагоджувач може працювати не тільки як відлагоджувач рівня програмного коду, а також як відлагоджувач машинного рівня.


3.2. Розробка вузла керування яскравістю екрану.

Керування яскравістю екрану передбачає звернення до gdi32.dll і встановлення коефіцієнту яскравості системи.

Рис. 3.1. Граф-схема вузла керування яскравістю екрану

Для початку розпочинається робота вузла керування яскравістю екрану і звернення до інтерфейсу Microsoft Windows Graphics Device, що дозволяє програмі використовувати графіку і форматований текст на відео екран. Далі виведення інформації про поточний рівень яскравості екрану. Ми можемо змінити за допомогою повзунка вибрати рівень яскравості екрану. Після цього зчитується вибраний рівень на повзунку та зменшується або збільшується яскравість самого екрану та відбувається завершення роботи цього вузла.

Для того, щоб отримати коефіцієнт яскравості використовується:

BOOL WINAPI GetDeviceGammaRamp(

HDC hDC,

LPVOID lpRamp

);

Функція GetDeviceGammaRamp отримує криву гамма-корекції (gamma ramp) на платах прямого виводу зображення кольорового дисплея, що мають драйвери, які підтримують завантажені криві гамма-корекції в апаратних засобах. Повертаються значення TRUE або FALSE.

Для встановлення коефіцієнту яскравості використовується:

BOOL WINAPI SetDeviceGammaRamp(

HDC hDC,

LPVOID lpRamp

);

Функція SetDeviceGammaRamp встановлює криву гамма-корекції (gamma ramp) на платах прямого виводу зображення кольорового дисплея, що мають драйвери, які підтримують завантажені криві гамма-корекції в апаратних засобах. Використовувана бібліотека Gdi32.lib.

hDC Визначає контекст пристрою розглянутої плати прямого виводу зображення кольорового дисплея.

lpRamp Вказує на буфер, куди функція може помістити поточну криву гамма-корекції плати кольорового дисплея. Крива гамма-корекції визначається в трьох масивах з 256 елементів величиною в СЛОВО (WORD), кожен з яких містить відповідність між значеннями RGB в буфері зображення і значеннями в цифровому аналоговому конвертері (ЦАП). Послідовність масивів є - червоний, зелений, синій.

Повертаються значення. Якщо ця функція завершується успішно, повертається значення - TRUE. Якщо ця функція завершується помилкою, повертається значення - FALSE.

 


3.3. Розробка вузла виведення інформації про стан батареї.

Для того щоб отримати дані про стан батареї використовуються WinApi функції для роботи з батареєю.

Рис. 3.2. Граф-схема алгоритму вузла перегляду сервісів

Перше відбувається початок роботи вузла виведення інформації про стан батареї та виведення статусу зарядки від мережі Power on/off. Також отримуємо значення рівня заряду батарея та переводимо значення в співвідношення заряду батареї в відсотки. Далі обраховуємо час до повної розрядки батареї, також з урахуванням рівня енергозабезпечення максимальний час роботи від батареї до її повного розряду. І завершення роботи вузла.

Для отримання списку всіх сервісів використовуються WinApi функції

GetSystemPowerStatus(&sps).

switch (sps.ACLineStatus)

{

case 0:

return "Power off";

case 1:

return "Power on";

case 255:

default:

return "Невідомо";

break;

}

sps.ACLineStatus – повертає статус живлення «Power on», «Power off», «невідомо».

 

 

switch (sps.BatteryFlag)

{

case 1:

return "Високий";

case 2:

return "Низький";

case 4:

return "Критичний";

case 8:

return "Заряджається";

case 128:

return "Батарея відсутня";

case 255:

default:

return "Невідомий";

}

sps.BatteryFlag – повертає статус заряду "Високий", "Низький", "Критичний", "Заряджається", "Батарея відсутня", "Невідомий".

 

 

return (int)sps.BatteryLifePercent;

sps.BatteryLifePercent – повертає значення в відсотках статусу заряду.

return sps.BatteryLifeTime;

sps.BatteryLifeTime – повертає значення, що вказує на час приблизного живлення від батареї.

return sps.BatteryFullLifeTime;

sps.BatteryFullLifeTime – повертає максимальне значення часу живлення від батареї.

 

3.4. Розробка вузла виведення інформації про стан плану енергоспоживання

Даний вузол звертається до реєстру Windows і отримує дані про стан енергоспоживання. Доступ до реєстру забезпечується функціями стандартної бібліотека.NET.

Рис. 3.3. Граф-схема алгоритму інформації про стан енергозбереження

Перше відбувається початок роботи вузла виведення інформації про стан плану енергоспоживання. Далі проходить отримання доступу до реєстру windows даної операційної системи. Відкриття гілки, яка відповідає за план енергоспоживання та отримання інформації про відповідні рівні енергоспоживання з наявних. Далі отримуємо активний план енергоспоживання портативного пристрою. Завершення роботи з реєстром до якого ми звертались. Після всього цього відбувається завершення роботи цього вузла.

Щоб отримати дані про план енергоспоживання використовується:

RegistryKey Key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes");

Звертається до реєстру Windows з планами енергоспоживання портативного комп’ютера.

string[] powers = Key.GetSubKeyNames();

Active = (string)Key.GetValue("ActivePowerScheme");

Виводить план живлення портативного комп’ютера, який активний.


3.5. Розробка вузла зміни плану енергоживлення.

Для того щоб змінити план енергоживлення використовується системна утиліта Powercfg.

Рис. 3.4. Граф-схема алгоритму

 

Перше відбувається початок роботи вузла зміни плану енергоживлення. Наступним робимо аналіз та виведення поточного плану енергоживлення. Вибираємо новий план заощадження енергії з переліку можливих в списку, після цього встановлюється доступ до утиліти «powercfg». Після встановлення доступу до утиліти, відбудеться заміна поточного плану заощадження енергії на встановлений новий план. І після цього відбудеться завершення цього вузла.

Щоб змінити поточний план енергоживлення використовується:

private void ChangePow(RadioButton rb)

{

Active = (string)pow[rb.Text];

ProcessStartInfo prc = new ProcessStartInfo("Powercfg", "-setactive " + Active);

prc.WindowStyle = ProcessWindowStyle.Hidden;

Process.Start(prc);

}

ProcessStartInfo – визначає набір значень, використовуваних при запуску процесу.

Powercfg – за допомогою програми Powercfg можна змінити параметри електроживлення та налаштувати комп'ютер на використання за замовчуванням чекаючого або сплячого режиму.

prc.WindowStyle – повертає або задає стиль кордону вікна.

ProcessWindowStyle.Hidden – вказано, яким чином має виглядати нове вікно при запуску процесу системою. Hidden – прихований стиль вікна. Система відображає приховане вікно, чи не прорисовуючи його. Приховане вікно може обробляти повідомлення від системи або від інших вікон, але не може обробляти введення від користувача або відображати висновок.

Process.Start – запускає ресурс процесу, певний властивістю StartInfo цього компонента Process, і пов'язує його з компонентом.

 

 


4.Опис інтерфейсу.

Програма «Утиліта моніторингу та контролю енергоспоживанням портативних комп’ютерів» можна запустити з виконавчого файлу Brightness.exe. Для її запуску необхідно платформу.NET 2.0, Windows не нижче 2000 встановлений на портативний ПК.

Дана програма є досить простою у використанні.

Рис. 4.1. Головне вікно програми

В програмі приступні наступні функції:

- зміна яскравості екрану;

- зміна плану енергоживлення;

- відображення інформації про батарею.

Керування яскравістю екрану відбувається з допомогою рухомого повзунка, перетягуючи його в ліву частину яскравість зменшується, а в праву збільшується.

Вибір плану енергоспоживання відбувається з допомогою перемикачів, кожному перемикачеві відповідає один план енергоживлення

Блок відображення стану батареї є дуже простим і інформативним він швидко реагує на всі зміни пов’язані з роботою батареї





Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 344; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.