MATURITNÍ PRÁCE dokumentace Čtení informací o PC Jakub Plesník
školní rok: 2009/2013
obor: třída:
Počítačové systémy PS4B
ABSTRAKT Tato práce je součástí projektu Radhošť, který se zabývá tvorbou diagnostické aplikace cílené na Windows Xp. Aplikace je psána primárně v jazyce C++ a je tvořena ve vývojovém prostředí C++ Builder XE2, které je v práci popsáno. V práci se setkáte s problematikou obvodů Super I/O a komunikací aplikace s hardwarem pomocí ovladače Porttalk. Dále autor rozebírá jednotlivé komponenty, algoritmy a jiné technologie využité při tvorbě aplikace s grafickým rozhraním. V práci vysvětluje své postupy a obhajuje jejich použití. Autor na závěr hodnotí práci, náročnost práce a její užití v praxi. Hledá chyby, které projekt nese a nastiňuje další postup autorů projektu Radhošť.
OBSAH ÚVOD .................................................................................................................................... 7 1 CÍLE PRÁCE ............................................................................................................. 8 1.1 OBECNÝ CÍL PRÁCE ................................................................................................ 8 1.2 ROZDĚLENÍ ÚLOH V PROJEKTU ............................................................................... 8 2 VÝBĚR TECHNOLOGIÍ PRO ŘEŠENÍ ................................................................ 9 2.1 MICROSOFT VISUAL STUDIO 2010 EXPRESS .......................................................... 9 2.2 BORLAND C++ BUILDER XE2 ................................................................................ 9 2.3 NOTEPAD++ ......................................................................................................... 10 2.4 SUPER I/O ............................................................................................................ 10 2.5 PORTTALK ............................................................................................................ 11 2.6 DROPBOX ............................................................................................................. 11 2.7 ICONFINDER ......................................................................................................... 11 2.8 EVEREST ........................................................................................................... 11 3 ZPŮSOBY ŘEŠENÍ A POUŽITÉ POSTUPY ....................................................... 13 3.1 POSTUP PŘI TVORBĚ APLIKACE ............................................................................. 13 3.2 NASTAVENÍ PROJEKTU.......................................................................................... 13 3.3 SUPER I/O DATA ................................................................................................... 13 3.3.1 Přístup k Super I/O - Porttalk ....................................................................... 13 3.3.2 Interpretace dat. ............................................................................................ 14 3.3.3 Testování - Ověřování dat ............................................................................ 15 3.4 GUI- GRAPHICAL USER INTERFACE ...................................................................... 16 3.4.1 Kartová struktura .......................................................................................... 17 3.4.2 TreeView ...................................................................................................... 17 3.5 PREZENTACE DAT ................................................................................................. 18 3.5.1 Výpis ............................................................................................................ 18 3.6 GRAF .................................................................................................................... 19 3.6.1 Statistika ....................................................................................................... 20 3.6.2 Log ............................................................................................................... 21 3.7 INTEGROVÁNÍ 2. ČÁSTI PROJEKTU ....................................................................... 22 4 ZHODNOCENÍ DOSAŽENÝCH VÝSLEDKŮ .................................................... 23 4.1 CÍLE ..................................................................................................................... 23 4.1.1 Splněné cíle .................................................................................................. 23 4.2 VZHLED APLIKACE ............................................................................................... 23 4.3 KOMPATIBILITA ................................................................................................... 24 4.4 PŘESNOST DAT ..................................................................................................... 24 5 PŘÍRUČKA UŽIVATELE ...................................................................................... 25 5.1 ORIENTACE V APLIKACI ....................................................................................... 25 5.1.1 První spuštění ............................................................................................... 25
5.2 MOŽNOSTI VÝPISU................................................................................................ 26 5.3 MOŽNOSTI GRAFŮ ................................................................................................ 33 5.4 MOŽNOSTI STATISTIKY ........................................................................................ 34 6 SHRNUTÍ .................................................................................................................. 35 6.1 PROBLÉMY ........................................................................................................... 35 6.2 NÁROČNOST ......................................................................................................... 35 6.3 VYUŽITÍ ............................................................................................................... 35 6.4 DALŠÍ ROZVÍJENÍ PROJEKTU ................................................................................. 35 SEZNAM POUŽITÝCH INFORMAČNÍCH ZDROJŮ ................................................ 37
ÚVOD V době, kdy se osobní počítače sestavují na objednávku z různých komponent, je pro uživatele i pro servisního pracovníka důležité zjistit, jaké komponenty sestava obsahuje, popřípadě zjistit jejich nastavení, parametry nebo „životní“ stav. K tomuto účelu jsou vytvořeny programy spadající do kategorie diagnostika a benchmarking. Jedním z nich je například nástroj Everest. Úkolem autora bylo vytvořit diagnostickou aplikaci podobnou profesionálním programům. Pro rozsah práce se však rozhodl pro rozdělení práce na dvě a jejich spojení v jeden projekt pod názvem Radhošť. (Viz. 1.2) Autorova část má za úkol vytvořit aplikaci s grafickým rozhraním, která by byla schopnazjistit důležité informace z obvodu Super I/O. Autor tuto práci pojal jako způsob rozšíření svých znalostí a práci koncipoval pouze na jeden čip, ITE 8705F, z důvodu možnosti hlubšího zaměření na celou problematiku programování.
1 CÍLE PRÁCE Tento projekt se skládá ze dvou prací, které jsou na sobě závislé, jejich cíl je společný, ale úlohy jsou mezi autory jednoznačně rozděleny.
1.1
Obecný cíl práce
Vytvořit aplikaci s grafickým rozhraním pro operační systém Windows XP v programovacím jazyce C++, která bude mít za úkol získat informace o počítačové sestavě ze zdrojů, které nabízí hardware nebo operační systém a tato data vhodně prezentovat uživateli. K získání těchto informací je možno použít libovolné knihovny a nebyl určen žádný bližší způsob, jak informace získávat.
Doporučené zdroje pro získání dat: System Management Bios ( SMBios) a obvod SuperIO. Doporučené nástroje: Porttalk2.0, kód Marka Russinoviche.
1.2
Rozdělení úloh v projektu
Kubień Jakub: Získání informací o počítačové sestavě. Pokusit se o čtení dat ze struktury SMBios pomocí přímého přístupu do paměti, popřípadě použít jiné již známé metody pro získání těchto informací.
Plesník Jakub: Vytvoření aplikace s grafickým rozhraním pro operační systém Windows XP v jazyce C++ a pomocí ní získat a prezentovat informace o teplotách a napětích. Prezentovat informace získané první částí projektu.
2 VÝBĚR TECHNOLOGIÍ PRO ŘEŠENÍ 2.1
Microsoft Visual Studio 2010 Express
Microsoft Visual Studio 2010 Expres (dále jen VS2010E) je jedním z nejrozšířenějších vývojových prostředí. VS2010E lze použít pro vývoj konzolových aplikací, aplikací s grafickým rozhraním, ale i webových aplikací. VS2010E má několik distribucí podle požadavku na programovací jazyk. C/C++(Visual C++), VB.Net (Visual Basic.Net), C#(Visual C#). Podpory dalších jazyků (Python, Ruby nebo F# ) je možno dosáhnout instalací příslušné jazykové služby.
Obr. 1. : Microsoft Visual C++ 2010 Express Toto prostředí bylo použito na začátku tvorby, kvůli zkušenostem z výuky a mimoškolních projektů. Z důvodu nekompatibility s ovladačem Porttalk autor od tohoto vývojového prostředí musel upustit a přejít na Borland C++ Builder.
2.2
Borland C++ Builder XE2
C++ Builder je vývojové prostředí od firmy Borland, která se proslavila především díky vývojovým prostředím Turbo Pascal a Deplhi. C++ Builder je postaven na stejném prostředí jako nejnovější Delphi. Prostředí C++ Builderu není tak přehledné a líbivé jako je tomu u VS2010E, ale obsahuje veškeré nástroje potřebné k programování. Prostředí obsahuje i inteligentní nápovědu, která usnadní při psaní kódu spoustu práce.
Obr. 2.: Vývojové prostředí C++ Builder V tomto prostředí byla aplikace vytvořena. Autor se s prostředím seznamoval až během práce a kvůli tomu docházelo k častým chybám.
2.3
Notepad++
Notepad++ je editor textových souborů a zdrojových kódů pro Windows Xp. Tento program podporuje velké množství programovacích jazyků. Prostředí je jednoduché a přehledné, barevné označování syntaxí napomáhá rychlé orientaci v kódu. Notepad++ byl autorem použit z důvodu jednoduché editace zdrojových souborů. V Notepadu ++ autor pracoval především se soubory, které nebylo nutné kompilovat.
2.4
Super I/O
Super I/O je čip nacházející se na základní desce. Do čipu je integrováno několik původně nezávislých obvodů z důvodu snížení nákladů na výrobu desky. Obvod je běžně připojen na jižní můstek a to sběrnicí ISA, LPC nebo SPI. Nejběžnější zařízení, která obvod obsluhuje: sériové porty, paralelní porty (pro připojení tiskárny), PS2 porty (klávesnice/myš), teplotní a napěťová čidla, ovládání ventilátorů, disketová mechanika. [2] Autor se zaměřil na obvod ITE 8705F od firmy INTEGRATED TECHNOLOGY EXPRESS a to z důvodu, že se tento obvod nachází na jeho domácí sestavě a mohl tak
testováním a zkoumáním funkcí trávit více času, než kdyby se zaměřil čip jiný, například na čipy na školních počítačích, které byly využity ve výuce.
2.5
Porttalk
Porttalk je freeware ovladač od firmy Beyond Logic, který zprostředkovává komunikaci přes i/o porty počítače. V tomto případě se nejedná o porty pro vnější přistup k zařízení, například pomocí kabelu, ale o porty vnitřní. Ty umožňují softwarový přístup do vnitřních zařízení počítače (CMOS, Super I/O). Tyto porty se nazývají I/O porty neboli porty vstupně výstupní. Ovladač vytváří vrstvu mezi aplikací a hardwarem počítače. Porttalk je napsán v jazyce C a je určen především pro konzolové aplikace pod systémem Windows XP. S tímto ovladačem se autor setkal během výuky předmětu Měření a diagnostika. Tyto zkušenosti byly hlavním důvodem pro výběr této technologie.
2.6
DropBox
Dropbox je cloudový systém pro sdílení souborů a adresářů. Dropbox je dostupný na webu, ale je možné s ním pracovat pomocí aplikace, která je vytvořena pro několik platforem. Tento program byl využit autory projektu pro sdílení společných materiálů nebo samotného projektu, aby mohli oba autoři pracovat.
2.7
IconFinder
IconFinder je webová služba pro vyhledávání souborů .ico . Tato služba nabízí zdarma více než 300 000 ikon různých rozlišení, většinu však pod podmínkou, že nebudou použity ke komerčním účelům. Autor využil tuto službu kvůli možnosti velkého výběru ikon. Velkou výhodou je také možnost si ještě před stažením zvolit z nabídky požadované rozlišení ikony.
2.8
EVEREST
Everest je profesionální nástroj pro diagnostiku od firmy Lavalys. Jeho hlavní funkcí je výpis informací o komponentách a zařízeních v počítači. Distribuce Everest Home Edition
2.20 je jednou ze starších distribucí, ale je volně stažitelná. Postrádá však nástroje jako je Test stability systému nebo Everest Cpuid. Tyto nástroje byly pro autora stěžejní, proto musel využít trial verzi distribuce Everest Ultimate Edition. Tento program se ukázal jako ideální pro veškeré testy.
3 ZPŮSOBY ŘEŠENÍ A POUŽITÉ POSTUPY 3.1
Postup při tvorbě aplikace
1. Nastavení projektu 2. Otestování funkčnosti ovladače Porttalk 3. Vytvoření designu aplikace 4. Získání data a vytvoření výpisu 5. Ověření dat 6. Vytvoření grafické prezentace 7. Kalibrace a odstranění chyb 8. Navázání na 2. část projektu 9. Doplňky
3.2
Nastavení projektu
Ještě před zahájením tvorby aplikace, bylo nutné upravit nastavení projektu, především pro kompatibilitu s ovladačem Porttalk a také přenosnosti aplikace. 1. Project – Options – Tchar maps to – změnit z WChar-T na Char 2. Project – Options – Link with Dyn. RTL – změnit z True na False 3. Project – Options – Link with Deplhi Run. Libr. – změnit z True na False
3.3
Super I/O data
Pro projekt Radhošť je nejdůležitější tzv. Hardware monitoring, který je součástí obvodu Super I/O a sdružuje informace o teplotách, napětích a otáčkách ventilátorů. Jeho funkcí je taktéž automatické řízení ventilátorů na základě teplot systému. 3.3.1 Přístup k Super I/O - Porttalk Pro komunikaci s obvodem autor využil ovladač Porttalk 2.0. Pro jeho použití pro grafické aplikace bylo potřeba provést několik úprav, především odstranit nebo nahradit části kódu, které využívaly C syntaxe nepodporované v C++.
Ovladač se skládá ze 3 souborů (soubor .C, soubor .H, a soubor .SYS), soubory .C a .H jsou potřeba pouze před kompilací samotné aplikace, soubor Porttalk.sys je nutné nakopírovat do adresáře C:\Windows\System32\Drivers. V aplikaci, která používá Porttalk, musíme zahrnout soubor .C, ten už má v sobě zahrnut soubor .H. Oba tyto soubory postačí mít ve složce s projektem při kompilaci.[1] Komunikace je tvořena přihlašovací sekvencí, dotazem na požadovaný registr přes port 0x295 a přečtením navrácené hodnoty z portu 0x296. Veškerá čísla portů, registrů a přihlašovacích klíčů jsou uvedeny v dokumentaci pro příslušný obvod, autorem vybraný obvod ITE 8705F.[3] Kód 1. čtení napětí ze Super I/O
Tímto kódem autor posílá na port 0x295 požadavek na registr 0x20, vrácenou hodnotu, kterou upraví výpočtem (viz. 3.2.2 Interpretace dat) vloží do proměnné. 3.3.2 Interpretace dat Data se v obvodu nacházejí v registrech. Nejčastěji jsou to osmibitové registry, to znamená maximálně 255 hodnot. Problematika spočívá v řádové odlišnosti hodnot (např. napětí 0,9V; teplota 80°C). Proto hodnoty, které nemají přirozený rozsah v rozsahu registru, jsou uloženy jako podíl aktuální hodnoty s konstantou N. Takto uložené hodnoty, není možné interpretovat bez provedení výpočtu a zjištění konstanty N ( Násobitele).[4] Vz.1.: Příklad úpravy hodnoty pro registr Aktuální hodnota / N = Hodnota registru 1,648/ 0.016=103
Autor v programu zjišťuje kromě teplot také hodnoty napětí na procesoru, ve větvi +3,3V, ve větvi +5V a ve větvi +12V. Hodnoty se pohybují v rozsahu od 0V do 12V s přesností na setiny voltu. U hodnot pro procesor a větev +3,3V byl v dokumentaci pro daný obvod určený násobitel 0.016V, pro hodnoty +5V a +12V bylo potřeba násobitele vypočítat.
Dokumentace nabízí řešení, které však autor nebyl schopen realizovat kvůli chybějícím údajům. Problém byl vyřešen tzv. selským rozumem. Vz. 2.: Vzorec pro výpočet chybějícího členu při interpretaci dat Momentální hodnota registru / voltáž naměřená jinými programy = Násobitel Př.: 172/10,95=0,063662
Výsledné hodnoty jsou vypočteny s odchylkou 0,03V, která nemusí být způsobena chybou ve výpočtu, ale může být ovlivněna faktory uvedenými v kapitole 3.3.3. Zvláštnost v oblasti interpretace dat přinášejí čipy, které ukládají hodnoty teplot do 9b registrů. Osm bitů určuje hodnotu. Devátý bit určuje, zda za hodnotu patří ještě přičíst půl stupně. S tímto mechanismem se autor setkal ve výuce na čipu W83637HF od firmy Winbond. 3.3.3 Testování - ověřování dat Data, která program zjistil, bylo třeba porovnávat s daty zjištěnými jinými programy. K tomu byl využit program Everest. Srovnáním grafů, statistik i výpisu informací byly data ověřena a odchylky kalibrací minimalizovány.
Obr. 3.: Výstup grafických dat z vlastního programu
Obr. 4.: Výstup z programu Everest Ultimate Edition - nástroj Systém Stability Test Na v horní části obr.3. a obr.4. je znázorněn graf teplot. Křivky jsou si na první pohled podobné, ale nejsou shodné. Rozdíly v grafech jsou způsobeny rozdílnou obnovovací frekvencí programu, rozdílným časem přístupu k datům a také rozdílnými parametry samotné komponenty (rozměry, velikost jednoho dílku atd.). Autorovým cílem nebylo napodobovat jinou aplikaci, proto tyto rozdíly vnímal jako nepodstatné. Pro ověření statistiky bylo nutné spustit oba programy v jednu chvíli a nechat je běžet několik minut kvůli ustálení průměrné hodnoty, která by v krátkém časovém okamžiku mohla být ovlivněna zákmitem nebo chybou. Autorovi se vyplatilo využívat vnějších vlivů (snížení teploty v místnosti s testovaným zařízením) a přístrojů (fén) ke změně jinak konstantní teploty systému. Tyto simulované výkyvy teplot byly poté na obou grafech a obou statistikách jasně patrné. Toto ověření dat se dá chápat jako prokázání funkčnosti.
3.4
GUI- Graphical user interface
Autor při tvorbě aplikace musel myslet i na vzhledovou stránku aplikace a taky na pohodlí uživatelů. Cílem bylo vytvořit aplikaci přívětivou, přehlednou a snadno ovladatelnou. Autor využil k tvorbě aplikace standardní komponenty nabízené vývojovým prostředím. Níže uvádí, jaké komponenty použil a proč.
3.4.1 Kartová struktura Pro oddělení různých funkcí aplikace byla autorem použita komponenta TabControl. Tato komponenta umožňuje vytvořit „záložky“ neboli „karty“, mezi kterými se může uživatel jednoduše a přehledně pohybovat. Komponenta obsahuje jednotlivé karty, a ty následně obsahují každá vlastní obsah. Karty mají jako jedna komponenta společné vlastnosti, ale s vytvořením každé karty je možno upravovat vlastnosti jednotlivých karet. Tato možnost je však ve vývojovém prostředí poněkud nešťastně umístěna a programátorovi neznalému v prostředí může snadno uniknout.
Obr. 5.: TabControl V aplikaci autor využil tří karet kvůli členění rozdílného obsahu. Další výhodou karet je, že obsah neaktivní karty v programu stále běží. Tímto se například aplikace odlišuje od již zmiňovaného nástroje Everest, který v průběhu práce s grafy a statistikami není schopen zprostředkovat uživateli náhled na komponenty počítače. 3.4.2 TreeView TreeView je komponenta vytvářející menu se stromovou strukturou. Stromové menu bylo autorem vytvořeno z důvodu členění součástek do logických svazků, jako je „rodič“ a „dítě“. V této verzi programu ještě uživatel nemusí vidět význam tohoto řešení, ale postupem času, kdy budou přibývat informace ke všem položkám, bude potřeba informace dále členit a díky tomuto řešení to bude jednoduché a rychlé. Dalším důvodem použití této komponenty je její možnost přiřadit k položce ikonu. Toho se docílí pomocí komponenty ImageList, do které nahrajeme veškeré potřebné ikony, ImageList jim automaticky přidělí indexy. Komponentě TreeView poté přiřadíme ImageList do vlastnosti Images . V editaci komponenty poté přidělíme indexy i pro jednotlivé položky menu. Ikony se následně přiřadí k položkám odpovídajícím jejich indexům.
Obr. 5. Ukázka stromové struktury menu TreeView má však velkou nevýhodu, komponenta není schopna vytvořit událost OnClick pro jednotlivé položky menu, ale pouze na celou komponentu. Autor tento problém vyřešil načtením názvu vybrané položky menu do proměnné, jejíž obsah porovnává pomocí podmínek s názvy jednotlivých položek a následně provede požadované instrukce pro danou položku menu (viz. obr. 2).
3.5
Prezentace dat 3.5.1 Výpis
Výpis dat je použit pro data získávaná 2. částí projektu (Viz. 3.7), na obrazovku je prováděn pomocí komponenty ListBox. Výpis je realizován v závislosti na komponentu tvořící stromové menu, která určuje, co přesně má ListBox na obrazovku vypsat. Tato komponenta prezentuje výpis formou buněk (řádků). V praxi bylo využito jednoho řádku pro jednu vlastnost, to umožnilo jednoduchou editaci a přehlednost výpisu v kódu, to byl jeden z hlavních důvodů pro volbu této komponenty. V kódu je výpis realizován sérií podmínek, které se dotazují, zda právě jejich položka z menu byla vybrána. Pokud ano, vyčistí komponentu a následně vypíší svůj obsah řádek po řádku. Viz. Kód 2.
Kód 2. Výpis do komponenty ListBox
Obr. 6:Vzhled vypsaných dat
3.6
Graf
V aplikaci je použito grafů pro zobrazování teplotních změn v závislosti na čase. Pro tento účel autor využil komponentu TPerformanceGraph. Tato komponenta je určena pro tvorbu jednoduchých 2d grafů.
Obr. 7.: Komponenta pro vykreslování grafu.
Vykreslování dat do grafu funguje na principu vyznačování bodů pro danou křivku, body se automaticky spojí. V aplikaci tento proces probíhá v závislosti na časovači. Každou X. tou vteřinu na graf přibude z pravé strany jeden bod na pozici rovné aktuální hodnotě dané proměnné. Křivka je v kódu reprezentována barvou, kterou je v grafu vykreslena. Přesnost těchto dat je závislá na frekvenci obnovování. U grafu se vyskytl problém, který autor nedokázal vyřešit. Při zavedení prvního bodu se automaticky vytvoří křivka spojující vytvořený box s bodem 0, tím vznikne náběžná hrana, která je v grafu teploty nežádoucí. Dalším problémem bylo vytvořit funkci, která pole grafu vymaže. Tento problém byl vyřešen nestandardním způsobem. Pokud uživatel použije funkci Vymazat graf, graf se skryje, grafu je zadána 200x hodnota 0 do všech proměnných, což vytvoří úsečky podél celé spodní hrany grafu a tím jsou všechny dosavadní vykreslené křivky odsunuty mimo viditelnou plochu. Po vykonání těchto příkazů se graf opět zobrazí a je naplněn aktuální hodnotou. Tato funkce proběhne tak rychle, že vypadá jako pouhé vymazání dat. 3.6.1 Statistika Statistika se tvoří díky jednoduchému algoritmu, ten porovná aktuální hodnotu teploty s hodnotou v proměnné (min. nebo max.) a v případě že je podmínka splněna zapíše aktuální hodnotu do proměnné. (viz. sch. 1.) Pro hodnoty průměrné (avr.), algoritmus sčítá naměřené hodnoty a dělí je počtem hodnot, které byly sečteny. Výsledný průměr je aritmetický. Vypočtená statistická data jsou prezentována v kartě Statistiky pomocí komponent ListBox, jeden sloupec dat je jedna komponenta.
Start Min=999
Fce. zjistí aktuální teplotu NovaData = aktuální teplota
Ano NovaData < Min
Ne
Min=NovaData
Sch. 1.: Algoritmus výpočtu minimální teploty 3.6.2 Log Autor do programu vložil tzv. Log neboli záznam událostí. Jedná se o jednoduchý výpis v momentě, kdy proběhne nějaká zásadní událost, např. vymazání grafů nebo statistiky. Pro tuto funkci bylo třeba použít komponentu TDateTimePicker. Autor komponentu využívá pro zjišťování systémového data a času, které vypisuje při každé události.
Obr. 8.: Příklad výpisu událostí
3.7
Integrování 2. části projektu
V programu autor připravil pro svého spolupracovníka proměnné typů, které si vyžádal. Spolupracovník vložil do kódu funkci, která se zapne při spuštění programu a naplní připravené proměnné. Komplikace v této fázi spočívala v převodu jednotek. Např. velikost disku je vložena do proměnné v bajtech, autor musel zrealizovat převod na GigaBajty. Problém spočíval v typu proměnné, ta byla vytvořena jako řetězec znaků (String). Tyto převody byly vyřešeny jednoduchými funkcemi, které autor vytvořil. Kód 3.: Funkce Ořez ořezává řetězec o určitý počet znaků dle vstupní proměnné
.
4 ZHODNOCENÍ DOSAŽENÝCH VÝSLEDKŮ 4.1
Cíle
Cíle z původního zadání byly ve většině případů splněny, to se však nedá říct o cílech, které vznikaly v průběhu tvorby aplikace a byly spojeny s problematikami, které byly autorovi před prací na tomto projektu neznámé. Tyto nesplněné cíle jsou zařazeny mezi cíle do budoucna. (Viz. 6.1 a 6.4) 4.1.1 Splněné cíle -
Vytvoření aplikace s grafickým rozhraním
-
Navázání komunikace s obvodem Super I/O
-
Získání dat o teplotách a napětích
-
Prezentování dat uživateli (graficky, numericky)
-
Spojení dvou částí projektu
4.2
Vzhled aplikace
Aplikace vypadá již na první pohled jednoduše, tento vzhled byl autorem aplikace zamýšlen a splnil očekávání. Aplikace má nastavenu pevnou velikost okna. Aplikaci je možné minimalizovat, ale není možné ji maximalizovat. Tato funkce byla vyřazena z důvodu udržení konstantní velikosti okna. Obr. 9.: Vzhled aplikace
4.3
Kompatibilita
Aplikace je vytvořená pro Windows Xp, ale částečně funkční je i na Windows 7 a Vista. Data pro graf a statistiku jsou však striktně vázána na čip ITE 8705F. Tyto podmínky jsou velkým mínusem aplikace a je to hlavní důvod, proč není možné tuto aplikaci využít v praxi. Poslední věc, kterou aplikace potřebuje je soubor Porttalk.sys ten musí být nakopírován na adrese C:\Windows\System32\Drivers. Tento problém prozatím není ošetřen, ale jako jeden z cílů do budoucna je vytvořit instalátor, který tento systémový soubor nakopíruje na požadovanou adresu.
4.4
Přesnost dat
Data získávaná aplikací byla ověřena a porovnána s daty z profesionálních programů (Viz. 3.3.3.). Problém spočívá v odchylkách, které mezi výsledky vznikly. Graf i statistika jsou přesností dat ovlivněny především obnovovací frekvencí. Pokud by doba mezi obnovením dat byla příliš vysoká, graf bude nepřesný, protože nebude zachytávat drobné změny. Naopak pokud se data budou obnovovat příliš rychle, dojde ke zpomalení aplikace a data budou ovlivněny možnými „zákmity“. Data dvou programů nebudou nikdy 100% shodné, pokud nebude jejich obnovovací frekvence totožná a čtení prováděno právě v jeden okamžik.
5 PŘÍRUČKA UŽIVATELE 5.1
Orientace v aplikaci 5.1.1 První spuštění
Po spuštění trvá pár vteřin, než se veškeré proměnné naplní svými hodnotami.
Obr. 10.: Vzhled aplikace po spuštění 1 – Uvítací text, zobrazí se po spuštění a zmizí, jakmile uživatel označí libovolnou položku pro výpis. 2 – Stromové menu slouží jako orientace ve vypsatelných položkách. 3 – Karty neboli záložky, oddělují od sebe rozdílné funkce aplikace. 4 – Klasické menu pro ovládání programu s možností ukončit nebo zjistit informace o aplikaci.
5.2
Možnosti výpisu
Obr. 11.: Informace o základní desce Výrobce: Určuje výrobce základní desky, možná je hodnota i pro výrobce celého zařízení nebo hodnota prázdná pokud není aplikace schopna výrobce identifikovat. Typ: Určuje typ základní desky, u notebooku určuje typ celého zařízení. Typ primární sběrnice: Určuje primární sběrnici na základní desce. Typ sekundární sběrnice: Určuje sekundární sběrnici na základní desce.
Obr. 12.: Informace o procesoru spolu s jeho parametry Název: Určuje název procesoru zavedený v systému. Výrobce: Určuje výrobce daného procesoru. Typ: Výpis ve formátu Model X, Stepping Y nebo Model X, Taktováno Y. ID: Identifikační číslo procesoru. Kmitočet: Maximální kmitočet jádra procesoru. Počet jader, Počet logických procesorů. Architektura: X64 , X86 nebo Itanium-based systém. Sockety: Označuje typ socketu, v kterém je procesor umístěn. Šířka adr. a dat. sběrnice se odvíjí od architektury, ale je získávána jako samostatná inf. Cache: Udává velikosti cache pamětí.
Obr. 13.: Položka ram a výpis jejích informací Název: Tento název má pamět ram v systému. Počet modulů: Počet modulů připojených na základní desce. Velikost modulu: Velikost paměti modulu v MB. Datová šířka: Datová šířka modulu. FormFactor: Upřesnění typu paměti. Typ paměti: Základní informace o typu paměti. Detail typu: Dodatečné informace k typu paměti. Rychlost: Rychlost paměti udávaná v Hz. Informace nezjištěné se prezentují jako Null, Unknown nebo Not Suported.
Obr. 14.: Položka GPU a informace o grafice a nastavení obrazovky 1 – Informace o grafickém zařízení, pouze název 2 – Informace o nastavení grafiky na monitoru, rozlišení + obnovovací frekvence
Obr. 15.:Vypíše pouze název dalšího zařízení.
Obr. 16.: Položka HDD Informace o HDD včetně jeho parametrů. Některé hodnoty nemusí být zjištěny. Velikost disku: Velikost fyzického disku v GB. Počet hlav, cylindrů, sektorů, stop, stop na sektor. Bajtů na sektor: počet B na sektor.
Obr. 17.: Informace o Biosu a SM_Biosu 1 – Informace o BIOSU (výrobcem, název, verze) 2 – Informace o SM_Biosu (pouze Verze)
Obr. 18.: Výpis položky s informacemi o systému a uživateli 1 – Informace o systému Název: Název operačního systému. Servis pack Version: Verze servisního balíku. Architektura: Architektura systému. Seriové číslo: Unikátní číslo systému. Typ: Typ systému. 2 – Informace o uživateli
5.3
Možnosti Grafů
Nachází se v kartě grafy. Účelem grafu je přehledně a efektivně prezentovat informace o teplotách a napětích systému.
Obr. 19.: Rozbor karty grafů Červená – Nástroje grafu -
Tlačítko pro vymazání pole grafu
-
Ukazatel délky běhu grafu
Modrá – Rozsah hodnot grafu Růžová – Název grafu Oranžová – Výpis aktuálních hodnot pod grafem, barvy hodnot odpovídají barvám křivek
5.4
Možnosti Statistiky
Nachází se v kartě Statistiky. Numerickou formou prezentuje získaná a zpracovaná data o teplotách, napětích a událostech.
Obr. 20.: Rozbor karty statistik 1 – Teplotní statistika vypočítává hodnoty minimální, maximální a průměrné (Avr.). 2 – Napěťová statistika vypočítává hodnoty minimální, maximální a průměrné (Avr.). 3 – Záznam událostí programu. 4 – Ovládací tlačítka. -
Vymazat stat. – Vymaže hodnoty statistik a ty se začnou počítat od začátku.
-
Vymazat graf + stat – Vymaže hodnoty grafu i statistiky tak aby hodnoty statistiky odpovídaly vykreslenému grafu.
-
Vymazat záznam – Vymaže záznam událostí.
6 Shrnutí 6.1
Problémy
Autorovi se problémy téměř „objevovaly pod rukama“. Většina problémů při tvorbě byla ihned po vyřešení nahrazena jinými. Problémy pramenily především z nedostatečných zkušeností s tvorbou složitějších a rozsáhlejších projektů. Veškeré nevyřešené problémy autor plánuje do budoucna vyřešit. -
Rozšíření podpory čipů
-
Zlepšení přesnosti zjištěných dat
-
Oprava chyby grafů
-
Chybějící instalátor
6.2
Náročnost
Tvorba projektu byla náročná kvůli spojení několika oblastí v jednom projektu, ale především kvůli velké časové náročnosti, na jejíž úkor se nepovedlo vytvořit propracovanější aplikaci. Výhodou bylo rozdělení na dvě části, avšak ne tak velkou jak by se na první pohled mohlo zdát. Autoři museli spolupracovat a častokrát se dostával jeden do časového skluzu kvůli čekání na práci druhého. Během této práce musel autor prostudovat velké množství dokumentací, skript a dalších materiálů k dané problematice a naučit se spoustu nových věcí, které nebyly součástí výuky.
6.3
Využití
Aplikace RAT je vytvořena pro jednu sestavu, konkrétně na domácí sestavu autora. Tato práce posloužila autorovi jako bezedná studna nových informací a znalostí. Omezené využití pramení především kvůli kompatibilitě (viz. 4.3). Po vyřešení problému kompatibility by bylo možné program běžně užívat k diagnostice počítačových sestav.
6.4
Další rozvíjení projektu
Projekt podle autora není ve fázi, kdy by bylo možné ukončit jeho vývoj a nechat tuto práci za sebou jako uspokojivý výsledek své několikaměsíční snahy. V první řadě je nutné vyřešit problémy, které nebyly odstraněny během tvorby, týkají se hlavně rozšíření podpory
dalších čipů, opravení chyby grafů, vytvoření instalátoru. Následně je pak možné vymýšlet další doplňky a nástroje pro aplikaci jako například informace o ventilátorech a jejich ovládání.
SEZNAM POUŽITÝCH INFORMAČNÍCH ZDROJŮ [1] BEYOND LOGIC. Porttalk: PortTalk - A Windows NT/2000/XP I/O Port Device Driver [.pdf]. 2012 [cit. 28.2.2013]. Dostupné z: http://retired.beyondlogic.org/porttalk/porttalk.htm [2] Super I/O. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2013-02-28]. Dostupné z: http://cs.wikipedia.org/wiki/Super_I/O [3] Seznam Super I/O. In: Bios Upgrades: The Source For Bios Upgrades [online]. 2007 [cit. 2013-02-28]. Dostupné z: http://web.archive.org/web/20070929033214/http://www.esupport.com/techsuppo rt/award/superio.htm [4] INTEGRATED TECHNOLOGY EXPRESS, INC. IT8705F/IT8705AF: Preliminary Specification [.pdf]. 2003 [cit. 28.2.2013].
SEZNAM OBRÁZKŮ Obr. 1. : Microsoft Visual C++ 2010 Express Obr. 2.: Vývojové prostředí C++ Builder Obr. 3.: Výstup grafických dat z vlastního programu Obr. 4.: Výstup z programu Everest Ultimate Edition - nástroj System Stability Test Obr. 5. Ukázka stromové struktury menu Obr. 6:Vzhled vypsaných dat Obr. 7.: Komponenta pro vykreslování grafu. Obr. 8.: Příklad výpisu událostí Obr. 9.: Vzhled aplikace Obr. 10.: Vzhled aplikace po spuštění Obr. 11.: Informace o základní desce Obr. 12.: Informace o procesoru spolu s jeho parametry Obr. 13.: Položka ram a výpis jejích informací Obr. 14.: Položka GPU a informace o grafice a nastavení obrazovky Obr. 15.:Vypíše pouze název dalšího zařízení. Obr. 16.: Položka HDD Obr. 17.: Informace o Biosu a SM_Biosu Obr. 18.: Výpis položky s informacemi o systému a uživateli Obr. 19.: Rozbor karty grafy Obr. 20.: Rozbor karty statistiky
SEZNAM PŘÍLOH
CD-R – Kompletní dokumentace ve formátu .pdf CD-R – Výsledná aplikace (Výrobek)