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

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра електронні обчислювальні машини

Інформація про роботу

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Системне програмне забезпечення

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Кафедра «Електронні обчислювальні машини» / Лабораторна робота № 3 З дисципліни: «Системне програмне забезпечення» Тема: «Виведення інформації про стан батареї» Мета : Навчитись виводити інформацію про стан батареї ПК. Теоретична частина За допомогою індикатора акумулятора можна активізувати інший план живлення. Хоча індикатор акумулятора зазвичай використовується в портативних ПК, він може також відображатися на екрані настільного комп’ютера, якщо він підключений до джерела безперебійного живлення (UPS) через USB, або до іншого короткотривалого акумуляторного пристрою. Індикатор акумулятора розташований в області сповіщень на Windows панелі завдань. Індикатор акумулятора полегшує відстеження споживання електроенергії портативним ПК під час його використання. Якщо навести мишу на піктограму акумулятора, можна побачити залишок його заряду у відсотках, а також план живлення, що використовується у Windows.  Індикатор акумулятора також показує, працює портативний ПК від електромережі чи від акумулятора. Коли рівень заряду акумулятора низький, індикатор відображає сповіщення над піктограмою акумулятора. Завдання: створити просту програму яка буде показувати інформацію про стан батареї ПК. Для виконання цього задання була написана сама програма для виводу інформації про стан батареї на мові С# і DLL бібліотека з описом функцій які також будуть використовуватись при виконані наступних лабораторних з курсу СПЗ. Код DLL бібліотеки з описом функцій. #include "brightness.h" #include "gammaramp.h" extern "C" __declspec(dllexport) char * GetPowerStatus() { SYSTEM_POWER_STATUS sps; if (GetSystemPowerStatus(&sps)) { switch (sps.ACLineStatus) // печатаем статус питания { case 0: return "Відключено"; case 1: return "Підключено"; case 255: default: return "Невідомо"; break; } } return "Unknown"; } extern "C" __declspec(dllexport) char * GetBatteryFlag() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); switch (sps.BatteryFlag) // статус заряда { case 1: return "Високий"; case 2: return "Низький"; case 4: return "Критичний"; case 8: return "Заряджається"; case 128: return "Батарея відсутня"; case 255: default: return "Невідомий"; } } extern "C" __declspec(dllexport) int GetBatteryPercent() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return (int)sps.BatteryLifePercent; } extern "C" __declspec(dllexport) int GetBatteryTime() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return sps.BatteryLifeTime; } extern "C" __declspec(dllexport) int GetFullBatteryTime() { SYSTEM_POWER_STATUS sps; GetSystemPowerStatus(&sps); return sps.BatteryFullLifeTime; } Код програми using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Brightness; using System.Windows.Forms; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Collections; using System.Security; using System.Security.AccessControl; using System.Security.Permissions; using System.Diagnostics; namespace Brightness { public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern string GetPowerStatus(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern string GetBatteryFlag(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetBatteryPercent(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetBatteryTime(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern int GetFullBatteryTime(); [DllImport("brightness_dll.dll", CharSet = CharSet.Ansi)] public static extern void SetBrightness(int Brightness); private void Form1_Load(object sender, EventArgs e) { label2.Text = GetPowerStatus(); label3.Text = GetBatteryFlag(); label4.Text = GetBatteryPercent().ToString() + "%"; label5.Text = GetBatteryTime().ToString(); int total = GetBatteryTime(); if (total == -1) label5.Text = "Невідомо"; else { int s, m, h; s = total % 60; total = total / 60; m = total % 60; h = total / 60; label5.Text = h.ToString() + ":" + m.ToString() + ":" + s.ToString(); } } private void timer1_Tick(object sender, EventArgs e) { label2.Text = GetPowerStatus(); label3.Text = GetBatteryFlag(); label4.Text = GetBatteryPercent().ToString() + "%"; label5.Text = GetBatteryTime().ToString(); int total = GetBatteryTime(); if (total == -1) label5.Text = "Невідомо"; else { int s, m, h; s = total % 60; total = total / 60; m = total % 60; h = total / 60; label5.Text = h.ToString() + ":" + m.ToString() + ":" + s.ToString(); } } } } Результат виконання / При підключеному живленні / При відключеному живленні Висновок: Я навчився виводити інформації про стан батареї ПК.
Антиботан аватар за замовчуванням

06.12.2014 16:59

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!