• No results found

Struktura aplikace

3 Tvorba aplikace

3.5 Struktura aplikace

Během tvorby samotné aplikace bylo využito několik různých komponent.

Nejčastěji se zde objevuje komponenta zvaná TLabel neboli nálepka. Tato komponenta zobrazuje obsažený text. V této aplikaci slouží především jako popisná část funkčních členů ale i jako informace o aktuální hodnotě jednotlivých prvků jako je rychlost automobilu, převodový stupeň nebo úhel natočení volantu.

Dalším hojně využitým prvkem v aplikaci je TButton neboli tlačítko. Tlačítka zde slouží jak k vyvolání akce jako například nastavení CAN kódů, jejich uložení či nahrání. Tlačítky je interpretováno i několik prvků, u kterých se takto přepínají stavy zapnuto a vypnuto, například alternátor, motor atd.

Rychlost automobilu, převodový stupeň a úhel natočení volantu jsou řešeny pomocí komponent TScrollbar. Scrollbar vypadá jako horizontální či vertikální pruh,

na jehož koncích jsou šipky a někde na pruhu leží táhlo. Pruh obsahuje určitý rozsah hodnot a táhlo určuje právě jednu hodnotu z tohoto rozsahu. Táhlem se dá posouvat přímo pomocí kurzoru nebo krajních šipek. Šipky posouvají s táhlem o jednu hodnotu na kliknutí. Pro rychlost automobilu byla využita další komponenta a tou je TGauge.

Gauge vypadá jako ručičkové budíkové měřidlo ve tvarů půlkruhu. Gauge tedy v aplikaci graficky znázorňuje tachometr v automobilu. Jeho ručička ukazuje hodnotu aktuální rychlosti nastavenou na scrollbaru.

Ukládání a nahrávání knihoven je prováděno komponentami TSaveDialog a TOpenDialog, které nejsou graficky nijak znázorněny, ale v praxi otevírají nabídku pro uložení a otevření souboru.

Aby si mohl uživatel při vytváření, ukládání a nahrávání CAN kódů zvolit jednotlivé prvky, jsou zde komponenty TRadioGroup a TRadioButton. Radiobutton jsou položky, které je možné zatrhnout. Radiogroup je jakousi podložkou pro radiobuttony. Všechny radiobuttony v jednom radigroupu jsou seskupeny a může být zatržen vždy jen jeden z nich.

Jednotlivá okna, která se objeví po kliknutí na tlačítko nastavení CAN kódu, jsou reprezentována komponentou TPanel. Panel je plocha obdélníkového či čtvercového tvaru, se skoseným hranami, což vytváří dojem plasticity. Všechny komponenty vložené na panel náleží panelu a jsou s ním pevně spjaty. Když je tohoto panelu v aplikaci zapotřebí, pak se objeví a když je nastaveno, co bylo potřeba, zase zmizí.

Další velmi důležitá komponenta pro tuto aplikaci je TMemo. Memo by se dalo pojmenovat jako sdělení. Graficky je znázorněno jako okno libovolné velikosti, které obsahuje řádky textu. Tento text je možné vložit za běhu aplikace, nebo se dá použít jako výstup z aplikace pro uživatele. Zde je použito několik těchto komponent pro práci s daty zadanými uživatelem. Tyto jsou ovšem před uživatelem skryty a uživatel vidí jen ty komponenty, které slouží k výpisu CAN identifikátorů a hodnot pro jednotlivé prvky automobilu. Tyto informace by byly ve skutečnosti posílány po CAN BUS sběrnici mezi jednotlivými uzly a následně vyhodnocovány řídící jednotkou, která by podle těchto informací prováděla další akce.

Pole pro zápis hodnot uživatelem do aplikace jsou tvořena komponentou TEdit.

Edit je jednořádkové pole, do kterého je možné uživatelem zapsat text. V aplikaci je délka zapisovaného textu omezena na počet míst, jenž je pro daný prvek potřeba.

Jako poslední komponenty byly použity TBevel a TImage. Ty slouží pouze ke grafickému doladění aplikace. Bevel slouží k orámovaní jednotlivých sekcí pro lepší přehlednost a orientaci a pomocí image je možné nahrát do aplikace obrázek. Obrázek zde slouží jako logo aplikace.

3.5.2 Zdrojový kód

Ve zdrojovém kódu je často využíváno podmínek „if“, které rozhodují, zda je splněna jistá okolnost a jaká část kódu se v takovémto případě má vykonat. Například pokud je v radioboxu zaškrtnutý radiobutton pro motor, pak se pomoci tlačítek nastavení, uložení a nahrání pracuje s daty, které přísluší tomuto prvku.

Jelikož uživatel zadává do aplikace data v hexadecimální soustavě a jednotlivé komponenty pracují v dekadické soustavě, vyskytl se problém při potřebě převodu hexadecimálního čísla na číslo dekadické. Pro převod z dekadického čísla na hexadecimální existuje příkaz „inttohex“, ovšem příkaz pro zpětný chod neexistuje.

Proto bylo potřeba tento problém vyřešit jiným způsobem. Bylo by možné vymyslet a napsat vlastní funkci pro převod z hexadecimální soustavy na dekadickou, ale problém byl vyřešen jiným způsobem.

Protože do komponenty edit je možné zapsat cokoliv, tak její výstup není číselného datového typu, ale typu textového řetězce „string“. Takto zadaná hodnota uživatelem se v aplikaci uloží do pomocné komponenty memo, taktéž jako řetězec string. Existuje příkaz pro převod řetězce string na dekadické číslo „strtoint“. Pokud se tedy vezme hexadecimální číslo zapsané jako řetězec string a před něho se přidá příznak

„$“ a toto zkombinované se zadá do funkce „strtoint“ pak dostaneme z hexadecimálního čísla dekadické.

Samotné ukládání vytvořených CAN kódů probíhá tak, že se uživateli objeví nabídkové okno, ve kterém si může vybrat, kam na svém počítači chce nastavení uložit a pod jakým názvem. Automaticky se vytvoří textový soubor obsahující uložené nastavení pod zvoleným jménem. Pokud chce uživatel nahrát do aplikace již uložené nastavení, pak se mu otevře nabídkové okno, ve kterém si zvolí soubor, do kterého

uložil již nějaké nastavení a potvrdí výběr. Uživateli jsou automaticky zobrazovány jen textové soubory, pro lepší přehlednost.

Zbytek zdrojového kódu je sestaven ze specifických příkazů pro jednotlivé komponenty. Tyto příkazy zajišťují jednotlivé vazby mezi komponentami, a aby aplikace správně reagovala na uživatelovi podněty. Pro účel této práce není potřeba zde všechny tyto příkazy vypisovat a vysvětlovat. V případě potřeby je na přiloženém nosiči CD celý zdrojový kód k dispozici. Přiložené CD obsahuje digitální podobu bakalářské práce, zdrojový kód aplikace i samotnou aplikaci.

Obr.6 : Vývojové diagramy aplikace

Related documents