Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсак .doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1.25 Mб
Скачать

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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]