МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
Курсова робота
на тему:
"Розробка утиліти для оптимізація роботи комп’ютера від батареї"
З дисципліни
"Системне програмне забезпечення"
Анотація
Курсова робота з дисципліни "Системне програмне забезпечення", являється підсумком вивчення даного предмета. Під час виконання даної курсової роботи, студент повинен показати всі свої набуті знання та навики з даного предмету, виконуючи поставлене перед ним завдання.
В ході виконання даної роботи, буде розроблена програма-утиліта для оптимізації роботи комп’ютера від батареї. Основним завданням якої буде встановлення певних налаштування, для покращення роботи комп’ютера що працює від батареї.
Для даної програми буде розроблений зручний графічний інтерфейс користувача, для покращення роботи із даною утилітою.
Зміст
Вступ 3
1. Оглядовий розділ 4
2. Аналітичний розділ 7
3. Структура утиліти 10
4. Розробка утиліти 11
4.1 Вибір середовища та технології програмування 11
4.2 Розробка алгоритму роботи утиліти 11
4.3 Розробка моделі даних 14
4.4 Розробка інтерфейсу користувача 16
4.5 Розробка коду утиліти 19
5. Інструкції із експлуатації утиліти 21
6. Тестування та системні вимоги і інструкції до програми 22
Висновок 25
Список використаної літератури 26
Вступ
В наш час уже нікого не здивуєш персональним комп’ютером. Найбільшої популярності набувають портативні персональні комп’ютери, вони займають мало місця, споживають мало електроенергії, є мобільними та можуть працювати без електромережі, від батареї. Час такої роботи дещо обмежений і складає від 50 – 60 хвилин до декількох годин.
Останній параметр в значній мірі залежить від операційної системи, а саме від того як остання організовує свою роботу. На даний момент майже усі операційні системи оптимізовані для роботи на таких портативних комп’ютерах, але не зовсім так як би цього хотілось.
Хоч і операційні системи створюють різні плани енергоспоживання, та інші параметри для покращення роботи від батареї, але вони не забезпечують автоматичного переключення в той чи інший режим, даючи користувачеві змогу самому робити цей вибір. З цього виникає питання, а чи є можливість виконувати такі зміни автоматично, в залежності яке джерело живлення доступне?
Проаналізувавши інформацію по цьому питання, можна з впевненість сказати, так можливо. Для цього необхідно використовувати додаткові програми-утиліти. На даний час їх є доволі велика кількість, але в більшості випадків вони постачаються разом із драйверами, під конкретний портативний пристрій і тому можуть некоректно працювати на інших ПК. А що тоді робити тим, кого виробник не забезпечив такими утилітами.
Тому для вирішення цієї проблеми, буде розроблена власна програма–утиліта, що буде реалізовувати схожі дії, і зможе працювати на будь-якому портативному комп’ютері.
1. Оглядовий розділ
Операційні системи сімейства Windows для забезпечення можливості програмам керувати параметрами енергоспоживання, використовують Advanced Power Management (APM) і Advanced Configuration and Power Interface (ACPI).
APM розроблений в 1992 р. компаніями Microsoft і Intel, версія 1.2, розроблена в 1996 році, була останньою. Microsoft зупинив підтримку APM починаючи з Windows Vista. APM – це набір API функції, котрі дозволяють програмам керувати параметрами енергоспоживання персонального комп’ютера, сумісно із IBM PC. Реалізовані на рівні BIOS.
ACPI удосконалений інтерфейс конфігурації і управління живленням, розроблений як заміна APM. Вперше випущений в грудні 1996 року і розроблений сумісно компаніями HP, Intel, Microsoft, Phoenix і Toshiba, який визначає спільний інтерфейс для виявлення апаратного забезпечення, керування живленням та конфігурації материнської плати та пристроїв.
Специфікація 2.0 була представлена у вересні 2000 року. 2.0 поширюється на ширший спектр комп'ютерів, включаючи корпоративні сервери, настільні системи і ноутбуки. Крім того, в ACPI 2.0 додано підтримка 64-розрядних мікропроцесорів для серверів, підтримка різних типів пам'яті, пристроїв PCI і PCI-X.
Остання версія специфікації ACPI — 3.0b, випущена 10 жовтня 2006 року.
Завдання ACPI — забезпечити взаємодію між операційною системою, апаратним забезпеченням та BIOS материнської плати.
Отже сама операційна система не керує енергоспоживання комп’ютера, для цього вона використовує APM або в новіших версіях починаючи з 98 – 2000 років ACPI, що дають можливість реалізувати усі необхідні можливості по керуванню живленням.
Давайте детальніше розглянемо ACPI. Найбільш відома частина стандарту ACPI — це керування живленням, яке має два значні поліпшення в порівнянні з іншими старішими аналогічними стандартами. По-перше, ACPI проголошує концепцію, в якій в основі керування живленням є ОС. Така модель вигідно відрізняється від моделі APM, що існувала до цього, в якій за керування живленням відповідальний BIOS материнської плати, а ОС має лише обмежений вплив на цей процес. У моделі ACPI BIOS надає ОС методи для прямого деталізованого керування апаратним забезпеченням. Таким чином, ОС отримує практично повний контроль над енергоспоживанням.
Інша важлива частина цієї специфікації — це внесення можливостей по керуванню живленням на серверах та настільних комп'ютерах, які досі були доступні тільки на портативних комп'ютерах. Наприклад, система може бути переведена в стан надзвичайно низького енергоспоживання, в якому живлення подається лише на оперативну пам'ять (а може навіть вона знаходитися без живлення), але при цьому переривання деяких пристроїв (годинник реального часу, клавіатура, модем і т. д.) можуть досить швидко вивести систему з такого стану в нормальний робочий режим (тобто «пробудити» систему).
Окрім вимог до програмного інтерфейсу ACPI також вимагає спеціальної підтримки від апаратного забезпечення. Таким чином, ОС, чипсет материнської плати, додаткові компоненти і навіть центральний процесор повинні мати підтримку ACPI.
В наші дні різні версії ACPI підтримуються багатьма ОС, у тому числі, Microsoft Windows 4.10 «98» та 4.90 «ME», Windows NT 5.0 «2000» і новіше, eComStation, GNU/Linux, FreeBSD, OpenBSD і NetBSD.
Деякі технічні деталі. Інтерфейс ACPI організовується шляхом розміщення в певній області оперативної пам'яті декількох таблиць, що містять опис апаратних ресурсів і програмних методів управління ними. Кожний тип таблиці має певний формат, описаний в специфікації. Крім того, таблиці, що містять методи керування пристроями і обробники подій ACPI, містять код на мові AML — машинний незалежний набір інструкцій, представлений в компактній формі. Операційна система, підтримуюча ACPI, містить інтерпретатор AML, який транслює інструкції AML в інструкції центрального процесора, виконуючи таким чином методи або обробники подій.
Деякі з цих таблиць повністю або частково зберігають статичні дані в тому змісті, що від запуску до запуску системи, вони не змінюються. Статичні дані, як правило, створюються виробником материнської плати або BIOS і описуються на спеціальній мові ASL, а потім компілюються в представлення на AML.
Інші таблиці зберігають динамічні дані, які залежать, наприклад, від установок BIOS і комплектації материнської плати. Такі таблиці формуються на етапі виконання POST перед завантаженням операційної системи. Роль ОС в цій моделі полягає в тому, що вона переводить різні компоненти апаратного забезпечення з одного стану (наприклад, нормальний режим роботи) в інший (наприклад, режим зниженого енергоспоживання). Перехід з одного стану в інше відбувається, як правило, за подією. Наприклад, падіння температури на ядрі процесора є подією, за якою ОС може викликати метод зменшення швидкості обертання вентилятора. Інший приклад: користувач дав явну вказівку переходу системи в режим сну із збереженням оперативної пам'яті на диск, а через деякий час адміністратор мережі провів включення системи за допомогою функції WAKE-ON-LAN.
ACPI визначає стани в яких може знаходитись система. Виділяють наступні основні стани «системи в цілому»:
G0 — Working — нормальна робота.
G1 — (suspend, Sleeping, Sleeping Legacy) — машина вимкнена, проте поточний системний контекст (system context) збережений, робота м.б. продовжена без перезавантаження.
G2 — «soft-off», «soft power» — система повністю зупинена, але під напругою, готова включитися у будь-який момент. Системний контекст (system context) загублений.
G3 — «Mechanical off» — механічне виключення системи, блок живлення ATX відключений.
Крім того виділяють 5 станів сну (sleeping states) від S1 до S5.
Для кожного пристрою визначається «ступінь втрати інформації» в процесі засипання (а також де інформація д.б. збережена і звідки буде прочитана при пробудженні), і визначається час на пробудження з одного стану до іншого (наприклад, від сну до робочого стану)
Отже для за допомогою ACPI операційна система може виконувати повний контроль за енергоспоживанням системи в цілому, визначати стан системи і встановлювати відповідне енергоспоживання.
2. Аналітичний розділ
В наш час все більшої популярності набувають портативні комп’ютери, такі як ноутбуки, нетбуки та планшетні комп’ютери. Основною їх перевагою є мобільність. Дані комп’ютери оснащені батареєю і можуть працювати будь-де, чи то в дома, чи на роботі, чи в парку, тому що вони не залежать від мережі електроенергії. Працюючи від батареї, даний тип комп’ютерів виконує усі функції що і звичайний комп’ютер, про те час роботи таких комп’ютерів обмежений зарядом і ємністю батареї.
Для збільшення часу роботи портативних комп’ютерів, використовують потужні батареї, розробляють спеціально малопотужні але продуктивні компоненти, з яких складається такий комп’ютер. В цьому плані ситуація збільшення часу роботи від батареї, залежить тільки від виробників портативних комп’ютерів.
Іншим засобом збільшення часу роботи від батареї є операційна система, що керує усім комп’ютером. Операційна система не тільки організовує обчислювальний процес та взаємодію програмної частини із апаратною частиною комп’ютера, а й забезпечує розподіл енергоспоживання при допомозі системної BIOS. Усі сучасні ОС передбачають можливість роботи комп’ютера від батареї та мають ряд засобів для покращення продуктивності, та часу роботи такого комп’ютера.
Здавалось би що все вирішено. Щоб мати багато часу роботи від батареї, потрібно хороший портативний комп’ютер із потужною батареєю, який складається із малопотужних компонентів та проінстальовану сучасну операційну систему, що орієнтована на роботу комп’ютера від батареї, і цього досить. Але це не зовсім так. Хоч і ОС орієнтовані під роботу на комп’ютерах із батареєю, вони також розроблені так щоб отримувати найбільшу продуктивність від роботи комп’ютера. Для досягнення найбільшої продуктивності, потрібно задіяти усі апаратні засоби із максимальною продуктивністю, що в свою чергу потребує значних енергозатрат.
З цього виникає проблема оптимізації роботи ОС. А саме задавати ОС в певний момент часу яка продуктивність від неї потребується. Тобто не весь же час при роботі із комп’ютером, нам потрібна висока продуктивність від роботи ОС. Є моменти коли ми не виконуємо ніяких обчислень, система знаходиться в режимі очікування. В даний момент ОС не потрібно підтримувати високу продуктивність, достатньо лише виконувати деякі системні функції. В такому стані можна знизити напругу на процесор, відео карту чи інший пристрій що мало використовується.
Отже суть проблеми оптимізації ОС роботи комп’ютера від батареї, полягає в визначенні моменту «коли» і методу «як» виконати відключення того чи іншого пристрої чи зменшення на ньому живлення, або завершення процесу чи служби що є не потрібними для основного обчислювального процесу і використовують значну кількість як програмних так і апаратних ресурсів. Для цього ОС мають різні плани енергоспоживання, що визначають розподіл енергоспоживання між пристроями та визначення стану очікування, та встановлення зменшеного енергоспоживання, відключення зовнішніх пристроїв, монітору і інші програмні чи апаратні ресурси що непотрібні в даний момент.
Завданням даної курсової роботи є розробка утиліти, яка б, не здійснюючи значного впливу на обчислювальний процес, виконувала оптимізацію роботи комп’ютера при роботі від батареї.
На сьогоднішній день утиліт із подібним завданням є доволі велика кількість, більшість із них в ходять до складу драйверів що постачаються виробником портативних комп’ютерів, або входять до складу більших за функціональним обсягом утиліт. Але не зважаючи на значну кількість таких утиліт по справді корисних є мало і в більшості вони є платними.
Однією із безкоштовних утиліт схожого характеру є утиліта BatteryCare, основними особливостями якої є:
Моніторинг циклів розрядки батареї. Використовує алгоритм визначення точного моменту циклу розрядки батареї.
Повна інформація про батарею. Обраховує на основі статичних даних про заряд і розрядку батареї, часу що залишився при роботі від батареї, та виведення детальної інформації про батарею.
Відображення показників температури процесора та жорстких дисків.
Зміна планів енергоспоживання, при роботі від батареї чи від мережі.
Контроль за Windows Aero та іншими вимогливими сервісами windows.
Дана утиліта є доволі непоганою, вона дозволяє більш менш оптимізувати роботу системи та відключити деякі попередньо визначені розробником служби та сервіси системи windows. Але має і деякі недоліки, неможливість змінювати перелік служб що будуть відключатись, адже не всі служби windows необхідні при роботі від батареї.
Розроблювана утиліта повинна включити в себе, усі найкращі функціональні можливості існуючих програм і не повинна мати їхніх недоліків.
До основних функціональних можливостей повинно входити:
Отримання інформації про стан батареї;
Виконувати зміну планів енергоспоживання;
Виконувати відключення деяких систем і служб ОС, дозволю вати користувачеві самостійно складати списки програм чи служб, котрі необхідно призупинити при роботів від батареї;
Сповіщати користувача про зміну рівня батареї.
Та інші операції що дозволяють збільшити час роботи від батареї.
Окрім того утиліта повинна запускатись автоматично, розпочинаючи свою роботу разом із ОС та працювати в продовж усього часу роботи ОС.
Для розв’язання завдання даної курсової роботи цільовою ОС обрано ОС сімейства windows, версія Windows 7 та програмна платформа .NET Framework.
3. Структура утиліти
Структура програми, це відображення усіх її головних частин і блоків, а також зв’язки між ними. Для представлення структури даної утиліти використаємо інформаційну модель, приведену на рис1.
Рис1 – Інформаційна модель утиліти.
Побудова інформаційна моделі полягає у визначенні вхідних даних, вибору способу їх представлення, зберігання та визначення вихідних даних.
Представлена інформаційна модель на рис5 показує з яких частин(модулів) буде складатись розроблювана утиліта, а також відображає зв'язок між цими частинами.
Після завантаження утиліти весь контроль передається головному модулю, він виконує завантаження налаштувань, може викликати модуль зміни параметрів (таких як яскравість та план енергоспоживання). якщо необхідно змінити деякі налаштування то головний модуль викликає модуль зміни налаштувань, задаючи поточні налаштування і отримуючи нові, змінені. Під час роботи головний модуль передає події в обробник подій для опрацювання. По завершенні роботи утиліти головний модуль виконує збереження налаштувань. Загальна модель роботи утиліти приведена в додатку Б.
4. Розробка утиліти
4.1 Вибір середовища та технології програмування
Для розробки утиліти обрано середовище програмування Microsoft Visual Studio 2010, що включає в себе інтегроване середовище розробки програмного забезпечення і ряд інших інструментальних засобів, та мова програмування C#. Яка містить усі необхідні можливості, які необхідні для виконання поставлених завдань до, розроблюваної утиліти. Також буде обрана технологія об’єктно-орієнтованого програмування, котра розглядає програму як множину «об'єктів», що взаємодіють між собою
4.2 Розробка алгоритму роботи утиліти
Алгоритм – це чітко визначена послідовність дій, які необхідно виконати для обробки початкових даних і отримання результату певного типу. В цілому алгоритм відображає логіку і хід виконання програми. Для розв’язання завдання було обрано наступний алгоритм, приведений на рис2.
Рис2 – Загальна блок-схема алгоритму роботи усієї утиліти.
Отже розроблювана утиліта буде працювати за наступним алгоритмом. Спочатку завантаження утиліти, вона читає налаштування та ініціалізує значення використовуваних змінних. Потім відбувається отримання інформації про батарею і живлення, на основі цих даних визначаються список подій. Далі відбувається перевірка чи необхідно викликати обробник подій, для неопрацьованих подій. Після того як усі події опрацьовані, відбувається збереження налаштувань.
Після запуску програма ініціалізуєю змінні та читає налаштування, блок-сема функції читання налаштувань приведена на рис3. При виклику функції усі значення налаштувань обнуляється. Потім відбувається спроба прочитати значення із реєстру за встановленими шляхами, якщо це не можливо, то відбувається викликається функція встановлення значень по замовчуванню, та запису до реєстру. Потім відбувається читання значень та вихід із функції.
Рис3 – Блок-схема функції читання налаштувань.
Після того як налаштування були прочитанні потрібно їх застосувати, блок-схема функції застосування налаштувань приведена на рис4. Спочатку ми виконуємо перевірку чи потрібно приховувати системну іконку живлення, якщо потрібно то вносимо запис до реєстру, якщо ні то видаляємо. Потім перевіряємо чи встановлено параметр запускатись разом із Windows, якщо так то перевіряємо чи цей запис є і чи він вірний. Якщо запису нема чи він не вірний то виконуємо запис параметру до реєстру. Якщо параметр запускатись разом із Windows не встановлено то перевіряємо реєстр чи там є такий запис із таким параметром і видаляємо. Дана функція буде викликана мінімум 2 рази за підчас початку роботи програми під при завершенні роботи і кожного разу при зміні налаштувань.
Рис4 – Блок-схема функції застосувати налаштування.
Також важливою функцією є обробка події зміни джерела живлення, блок-схема якої приведена на рис5. Дана функцію викликається в момент виникнення події зміни джерела живлення. Працює вона за наступним алгоритмом. Спочатку визначається яке джерело зараз, потім визначається чи дозволено виконувати зміну в параметрах.
Подібною до попередньої функції є функція оброки події зміни рівня заряду. Дана функція працює за схожим алгоритмом. Спочатку визначає яке джерело на даний момент, а потім відповідно до налаштувань виконує певну дію, і окрім того оновлює інформацію про батарею.
Рис5 – Блок-схема функції обробки події зміни джерела живлення.
Решта усіх функції мають лінійний алгоритм, і призначені для виконання однієї конкретної дії.
4.3 Розробка моделі даних
Під час розробки утиліти будуть використані наступні структури даних і самі дані. Власні структури, що розроблені для функціонування утиліти:
Об’єднання CurrentBatteryStatus, для відображення поточного статусу батареї.
enum CurrentBatteryStatus : byte
{
NoSystemBattery = 0,
Charged = 1,
Charging = 2,
Discharge = 3,
Unknown = 255
}
Об’єднання TypeConvertion, для визначення типу даних в реєстрі для конвертування.
enum TypeConvertion : byte
{
Bool = 0,
Byte = 1,
Point = 225
}
Структура ShutdownItem, для створення списку програм та служб, для відключення.
struct ShutdownItem
{
public string Name;
public string Description;
}
Клас RegisterSettings для зберігання налаштувань, код даного класу із полями та методами приведений у додатку А.
Під час розробки утиліти будуть використані додаткові бібліотеки Microsoft.WindowsAPICodePack.dll і Microsoft.WindowsAPICodePack.Shell.dll які надає Microsoft безкоштовно, для програмування під Windows 7 і Vista.
Також для роботи утиліти необхідні наступні змінні:
Settings змінна класу RegisterSettings, що містить у собі усі налаштування утиліти.
CanClose зміна логічного типу, для встановлення дозволу на вимкнення програми.
PowerPlan масив рядкового типу для збереження списку планів енергоспоживання.
PowerPlanGuid масив для збереження списку Guid планів енергоспоживання.
CurPowerPlanGuid змінна рядкового типу, яка містить Guid поточного плану енергоспоживання.
PowerPlanCount цілого типу містить кількість планів енергоспоживання.
Hour, Minutes змінні цілого типу години і хвилини, що залишились при роботі від батареї.
StartWithWindows, SideBarClose, WindowsAeroClose, PowerIconHide, Batteryfull, SuspendService змінні логічного типу для застосування встановлених налаштувань.
BatteryLifePercent змінна типу числового цілого типу байт, для збереження значення заряду батареї.
4.4 Розробка інтерфейсу користувача
Інтерфейс користувача буде реалізована за допомогою використання форм, що є нащадками базового класу Form та стандартних компонентів що постачаються середовищем розробки Microsoft Visual Studio 2010 для С#.
Головна форма матиме наступний вигляд, приведений на рис6.
Рис6 – Вигляд головної форми із розташованими на ній компонентами.
Форма про програму на рис7.
Рис7 – Вигляд форми про програму із розташованими компонентами.
Форма налаштування рис8
Рис8 – Вигляд форми налаштування із розміщеними компонентами.
Форма параметри рис9.
Рис9 – Вигляд форми параметри із розміщеними компонентами.
Форма список програм та служб для відключення на рис10.
Рис10 – Вигляд форми списки на відключення із розміщеними компонентами
Форма список рис11.
Рис11 – Вигляд форми список із розташованими компонентами.
4.5 Розробка коду утиліти
Дана утиліта буде використовувати такі розроблені функції:
void DoSettings() функція для застосування нлаштувань, не повертає ніяких результатів.
void PowerSourceChanged(object sender, EventArgs e) функція обробки події зміни джерела живлення.
void BatteryLifePercentChanged(object sender, EventArgs e) функція обробки події зміни рівня заряду.
string GetBateryTimeLife() функція для отримання часу роботи від батареї, повертає час роботи від батареї.
CurrentBatteryStatus GetBatteryStatusType() функція для отримання типу статусу батареї, повертає результат типу CurrentBatteryStatus який вказує на поточний статус батареї.
string GetBatteryStatus() функція для отримання поточного статусу, результат є поточний статус батареї типу string.
bool ShowBatteryStatusImage(CurrentBatteryStatus CurrStatus) функція для відображення картинки стану батареї, вхідним параметром є змінна типу CurrentBatteryStatus що вказує на стан батареї, результатом є логічне значення істини якщо вдалось встановити картинку і логічне значення хибно якщо не вдалось.
void DisplayInformation() функція для відображення інформації про час роботи що залишився, при роботі від батареї і виведення повідомлень.
bool GetPowerPlans() функція для отримання планів енергоспоживання, результатом є істина коли вдалось отримати значення.
void NormalizePowerPlanName() функція для нормалізації назв планів енергоспоживання.
string GetCurPowerPlan() функція для отримання поточного плану енергоспоживання.
void ShowDatiles() функція що відображає додаткові деталі про батареї, такі як потужність заряду, потужість зарядки розрядки.
bool SetAero(bool enable) функція увімкнення чи вимкнення функції Windows Aero, повертає істину якщо вдалось виконати ввімкнення чи вимкнення.
FillComponents() функція для заповнення вмісту компонентів на формі налаштування, значенням налаштувань.
SaveSettings() функція збереження значень компонентів до налаштувань.
Та інші функції, які приведені в додатку А.
5. Інструкції із експлуатації утиліти
Системні вимоги та інструкції
Для коректної роботи даної утиліти необхідно:
Операційна система Windows 7 і вище;
Наявність програмної платформи .NET Framework 3.5 і вище;
Наявність 5мБ вільного місця на диску;
Наявність 15мБ вільної оперативної пам’яті;
Наявність системної батареї.
При дотриманні даних вимог програма зможе працювати на будь-якому портативному пристрої що задовольняє задані вимоги.
Короткі інструкції:
Для завантаження програми необхідно запустити виконавчий файл «Battery watcher.ехе».
При першому запуску програма встановлює свої налаштування по замовчуванню, записуючи їх до реєстру.
Для зміни налаштувань потрібно натиснути на кнопку «Налаштування» в головному вікні чи на пункт в контекстному мені на іконці в системному лотку.
При натисненні на кнопку закриття в головному вікні програма згортається до системного лотка, для виходу із програми необхідно натиснути «Вихід».
Для зміни яскравості екрану, чи зміни плану енергоспоживання потрібно натиснути на «Параметри» в головному вікні чи в контекстному меню.
6. Тестування та системні вимоги і інструкції до програми
Тестування утиліти є одним із етапів розроблення. За допомогою тестування, ми можемо дізнатися про всі її недоліки. Для тестування потрібно запустити утиліту та перевірити її працездатність, використовуючи усі можливі параметри.
Для початку тестування запустимо розроблену утиліту, для цього потрібно запустити на виконавчий файл «Battery watcher.ехе».
Завантажена програма має наступний вигляд рис12.
Рис12 – Вигляд головного вікна програми.
Спопробуємо змінити параметри системи, такі як яскравість чи план енергоспоживання.
Рис13 – Вікно зміни параметрів системи.
Спробуємо додати програму до списку програм для відключення при роботі від батареї.
Рис14 – Додавання програми до списку на відключення.
У ході тестування утиліти були виявлені деякі недоліки, такі неточне відображення яскравості дисплею після зміни поточного плану енергоспоживання. Дана помилка була виявлена і виправлена.
Під час тестування утиліти були перевірені на працездатність усі функції, у більшості випадків операції були виконанні майже миттєво, при цьому не завдавали шкоди обчислювальному процесу та роботі ОС. В результаті тестування було виявленні ділянки коду де виникала чимала затримка, що уповільнювала роботу усієї програми, для вирішення даного недоліку було оптимізовано ті ділянки коду де виникала затримка.
Загалом у ході тестування утиліти, вона виконала усі дії що були їй задані коректно. Розроблений користувацький інтерфейс виявився доволі зручним і дав змогу без жодних зусиль виконати усі необхідні дії. Розроблена утиліта є гідною заміною стандартним утилітам збіжним за функціональністю.
Висновок
В ході виконання роботи було розроблено утиліту , згідно до завдання. Було розроблено зручний користувацький інтерфейс та приведений опис використовуваних функцій, та блок–схеми до основних функцій.
Розроблена утиліта, дає змогу оптимізувати роботу портативного комп’ютера при роботі від батареї.
Дана утиліта забезпечує такі основні можливості, як:
Зміна плану енергоспоживання, при зміні джерела живлення;
Виведення різного роду повідомлень про стан та коротку інформацію про батарею, що використовується портативним комп’ютером;
Вимкнення певних програм та служб, при роботі від батареї.
Можливість без жодних додаткових зусиль змінювати план енергоспоживання та яскравість, незалежно від джерела живлення та інше.
Список використаної літератури
http://ru.wikipedia.org/wiki/APM
http://ru.wikipedia.org/wiki/ACPI
http://msdn.microsoft.com/uk-ua/
Язык программирования С# 2010 и платформа .NET 4.0, 5-е изд. : Пер. с англ. — М. : ООО "И.Д. Вильяме", 2011. — 1392 с.
С# Учебный курс. – СПб.: Питер К.: Издательская група BHV, 2003 512с.