• No results found

5.3.4 Grafické rozhraní

Grafické rozhraní neboli GUI je navrženo ve formátu Windows Form tak, aby bylo možné v něm zobrazit všechny potřebná data. V základní verzi není přidána žád-ná grafická úprava, pouze prvky pro zobrazení dat a potřebné nastavení jazykové mutace, jak je uvedeno v zadání.

Celé grafické rozhraní je rozděleno do dvou formulářů neboli oken. Jedno pro běh samotného programu obsahující zobrazovací prvky a menu nastavení jazyka. Druhé okno slouží pro nastavení a připojené sériového portu, je možné ho vyvolat stisknu-tím tlačítka v hlavním formuláři. V obou formulářích je odebrán typický křížek pro uzavření okna a je nahrazen tlačítkem přímo ve formuláři. Toto je z důvodu řádného ukončení komunikace se sériovým portem, při jeho nesprávném odpojení by mohlo dojít k zablokování portu s nutností restartování počítače.

Obrázek 5.2: Hlavní okno aplikace

Hlavní formulář je rozdělen do čtyři částí - Zobrazovací oblast pro data, oblast pro nastavení dat, tlačítka spouštějící operace a jedno rozbalovací menu s mechanismem pro změnu jazyka apliakce.

• Část pro zobrazování dat se skládá z dvanácti prvků numericUpDown. Jed-ná se o prvek WindowsForm pro zobrazování číselných hodnot. Každý tento prvek má upravené vlastnosti pomocí kódu pro zobrazování konkrétního inter-valu hodnot s určitou přesností. U všech těchto objektů je vypnuta možnost ručního nastavování hodnot. Pro zobrazení hodnot analogových vstupů jsou prvky upraveny následovně - rozmezí zobrazovaných hodnot je upraveno na interval <-100000;1000000> s přesností na jednotky. Digitální hodnoty jsou zobrazovány v numericUpDown s přesností na jednotky a na intervalu <-10000;10000>. Jiné nastavení mají prvky pro zobrazování hodnot teplotních

senzorů. Přesnost je nastavena na dvě desetinná místa a interval zobrazova-ných hodnot je stanoven na <-20000;20000>. Všechny zobrazovací prvky jsou opatřeny popiskem ve zvoleném jazyce.

• Druhou část tvoří prvky pro nastavení teplotních čidel. Skládá se z dvanác-ti prvků numericUpDown a šesdvanác-ti objektů checkBox pro označení akdvanác-tivních teplotních čidel. Každý z numericUpDown objektů v této části má nastave-ny následující parametry - interval nastavitelných hodnot je <-1000;1000>, přesnost prvku je určena na dvě desetinná místa. U těchto prvků je možné hodnoty zapisovat i určovat pomocí šipek, které jsou součástí prvku. Následu-jí checkBox objekty, kde zaškrtnutí znamená aktivaci příslušného čidla.

• Poslední dvě části se dají považovat po spojení za ovládací panel tohoto for-muláře. Skládá se ze čtyř tlačítek a rozbalovacího menu. První z tlačítek je určeno pro vyvolání formuláře k nastavení sériového portu. Funkce a formulář nastavení budou popsány níže. Další tlačítko je určeno k zahájení komunikace, lépe řečeno spustí zobrazování dat do prvků grafického rozhraní. Toto tlačítko je označeno jako ”Display data”. Následuje tlačítko pro zastavení komunikace se zařízením a je označeno textem ”Disconnect”. Poslední tlačítkem v řadě je tlačítko zajišťující ukončení aplikace. Je nutné taktéž zmínit velmi důležitou část - rozbalovací menu pro určení jazyka aplikace. Realizováno je dvěma vlo-ženými prvky toolStripMenu, objektem ComboBox pro výběr jazykové verze a potvrzujícím tlačítkem. Ihned po zvolení jazyka a potvrzení výberu se změní texty celé aplikace pomocí funkci jenž bude popsána níže.

Obrázek 5.3: Nastavení jazyka

Druhý formulář aplikace je určen pro nastavení parametrů připojení sériového portu. Je rozdělen do dvou částí. První část je určena pro nastavení parametrů a druhou část tvoří tlačítka ovládacího panelu.

• Část formuláře pro nastavení parametrů připojení portu tvoří pět prvků com-boBox v nichž lze postupně nastavit přenosovou rychlost v jednotkách bits/sec.

Následuje nastavení počtu datových bitů, nastavení parity a počet stop bitů.

Ve všech těchto nastaveních je nutné vybrat z přednastavených hodnot, aby nedošlo k předání nesmyslných parametrů. Nejdůležitější je výběr portu ke kterému se má aplikace připojit, seznam dostupných portů je načten při ote-vření formuláře a je možné ho obnovit kliknutím na tlačítko ”Refresh”.

• Druhou částí formuláře je ovládací panel skládající se ze tří tlačítek. Již dří-ve zmíněné tlačítko ”Refresh” obnovuje seznam dostupných sériových portů a dává jej k výběru v comboBox objektu s příslušným popiskem. Následuje tla-čítko ”Save and close”. Toto tlatla-čítko uloží všechny zvolené parametry a vytvoří z nich proměnnou typu SerialPort, kterou předá hlavnímu formuláři k dalšímu zpracování. Posledním tlačítkem v panelu je ”Close”, které slouží k uzavření formuláře bez nastavení parametrů portu.

Obrázek 5.4: Nastavení COM

5.3.5 Funkce a metody grafického rozhraní

Kód grafického rozhraní obsahuje několik proměnných a metod, které je nutné po-psat. Vnitřní proměnné jsou následující:

• Res_man typu Resource manager, která slouží pro načítání jednotlivých textů z resx souborů pro zvolený jazyk. Texty jsou ze souboru načítány na základě předaného identifikátoru typu String.

• Následuje proměnná typu CultureInfo culture. V této proměnné se uchovává aktuálně zvolený jazyk aplikace

• Proměnná typu Tools je určena pro volání metod z knihovny funkcí

• Velmi duležitou proměnnou je logic typu Logic. Jedná se o třídu která řídí běh samotné aplikace.

• Poslední je časovač timer1, který zajišťuje zobrazování příslušných dat. Je mu rovněř přiřazen EventHandler, který budep opsán níže.

Formulář grafického rozhraní rovněž obsahuje několik metod nutných pro správné fungování programu, přepínání jazykových verzí nebo zobrazení dat.

• Hlavní metodou formuláře je jeho konstruktor. Nastavuje základní jazyk apli-kace (angličtina), vytváří ResourceManager s přiřazenou cestou resx soubo-rů obsahujících překlad apliakce. Dále volá metody InitializeComponent() nutné pro správné sestavení formuláře, FillTexts(), FillLanguageComboBox() a lockNumUpDowns(), které budou popsány níže.

Obrázek 5.5: Příklad RESX souboru, DE verze

• Metoda FillLanguageComboBox() vloží seznam dostupných jazyků do objektu ComboBox v hlavním formuláři

• FillTexts() pomocí výše zmíného ResourceManager přiřadí příslušné texty ve zvoleném jazyce všem objektům (popisky, tlačítka).

• Metoda vyvolaná stiskem tlačítka ”Set COM port” zobrazí formulář pro na-stavení sériového portu. Pokud je port ve zobrazeném formuláři uložen předá jeho parametry třídě Logic.

• Tlačítko ”Submit” v panelu nastavení jazyka volá metodu ”toolStripMenu-Item6_Click”, která podle vybraného jazyka v panelu přiřadí hodnotu pro-měnné culture a zavolá metodu FillTexts() pro obnovení popisků a text.

• Metoda ”button2_lick” plní funkci tlačítka ”Close”. Zkontroluje zda je připo-jen sériový port. Pokud ano tak její odpojí a následně je aplikace ukončena.

• Následující metodou je ”button3_click”, která je volána tlačítkem ”Discon-nect”. Metoda zkontroluje zda je připojen sériový port. V případě kaldného vyhodnocení podmínky je port odpojen.

• ”button4_Click” je metoda volaná tlačítkem ”Display data”. Nastavuje a spouš-tí objekt Timer. Interval časovače je 1500ms. Při uplynuspouš-tí intervalu je volán EventHandler ”timer1_Elapsed”, který bude popsán níže.

• EventHandler ”timer1_Elapsed” se dotazuje na data třídy Logic a poté je zobrazuje do příslušných prvků.

• Poslední metodou ve výčtu je ”getHeaterSettings()”. Jejím úkolem je převést kombinaci zvolených teplotních čidel ke spuštění na číslo v binární soustavě a dále ho předat třídě Logic.

5.4 Návrh grafického zpracování, možnosti rozšíření aplikace a testování

5.4.1 Návrh grafického zpracování

Jedním z požadavků zadavatele je taktéž návrh grafického zpracování aplikace. Zpra-cování by mělo odpovídat firemnímu designu, podobnému webovým stránkám firmy ATN HÖLZELGmbh. Barvy firmy jsou zelená, odstíny šedé a bílá. Design by měl rovněž obsahovat logo firmy. Návrhu grafiky dominují odstíny šedé a dále obsahuje zelenou barvu podle požadavku zadavatele. V pravém horním rohu je umístěno logo firmy ATN. Rozmístění prvků pro zobrazení dat je totožné s rozmístěním v základ-ní grafice vytvořené ve Windows Forms. Odlišné je umístězáklad-ní a uskupezáklad-ní ovládacích tlačítek v horní části návrhu. Druhou odlišností je umístění prvků pro zapnutí a vy-pnutí teplotních čidel ve spodní části návrhu. Tento návrh bude dále diskutován a upraven podle připomínek zadavatele.

5.4.2 Testování aplikace

V začátcích aplikace testování probíhalo na zapůjčené testovací desce s mikročipem.

První fáze vývoje aplikace spočívala v připojení k zařízení pomocí USB portu, na-vázání komunikace a ošetření problémových znaků v komunikaci. Zapůjčená deska dokázala odpovídat a plnit funkci čtyřech základních dotazů - stav stisknutého tla-číka, XYZ hodnoty gyroskopického senzoru, rozsvěcení LED diod a tzv LoopBack.

V této části testování vznikla tabulka problémových znaků, která byla zmíněna výše a použita ve finálním řešení.

Obrázek 5.6: Návrh grafiky aplikace

Druhá část testování spočívala v cyklických dotazech na desku pomocí časovače.

Testování probíhalo formou dotazů na XYZ gyroskopické souřadnice desky a jejich postupné vykreslování do grafu. Cílem této fáze testování bylo prověření cyklického dotazovaní, ladění případných konfliktů a nedokonalostí v komunikačním protokolu.

Poslední část testování trvala více než sedm hodin čistého času a probíhal s re-álnou IFC Standalone jednotkou. Prvním bodem této části bylo ověření funkčnosti výpočtu CRC u různých dotazů a datových rámců. Následně byla testována ko-munikace pomocí předávání dotazů a následným zobrazením zpracovaných dat ve vlastní aplikaci. Jednalo se částečně i o testování nové verze firmware pro standalone jednotku dávkovače hmot pro firmu ATN.

První dvě části testování probíhali v testovací apliakci, ze které pro finální program byli použity pouze některé metody a postupy. Finální aplikace byla použita pouze při třetí fázi testování na reálném zařízení.

5.4.3 Možnosti rozšíření aplikace

Aplikace v současné podobě je schopná vyčítat a zobrazovat data z IFC Standa-lone jednotky firmy ATN. Je ovšem již částečně připravena pro budoucí rozšíření

v podobě nastavování teplotních čidel. V následujících iteracích aplikace bude do-plněno odesílání požadovaných teplot a tolerancí teplot daných čidel. Pro odeslání bude nutné překonvertovat data do smluveného formátu podobnému typu ”single”.

To znamená požadovanou teplotu rozložit na následující části:

• Znaménkový bit

• Celá část čísla

• Desetinná část čísla

• Mocnina

Výsledné části převést do binární podoby a poté odeslat. S nastavováním teplot bude nutné taktéž odesílat rámce s příznakem pro vypnutí a zapnutí jednotlivých teplotních čidel. Tato funkcionalita je v programu již částečně zabudována v podobě metody, která generuje číslo v němž je zakódováno, která čidla se mají zapnout (po převodu čísla na binární reprezentaci 0 reprezentuje vypnuté a 1 zapnuté čidlo).

6 Závěr

Cílem práce bylo přiblížit problematiku sudových čerpadel, komunikace mezi za-řízeními a poukázat na problematiku v oblasti regulace v technice. Seznámit se s programovacími jazyky a ve vhodném jazyce navrhnout program schopný komuni-kovat s IFC standalone jednotkou, vyvinutou firmou ATN Hölzel Gmbh. Výsledný program průběžně konzultovat se zástupci výše zmíněné firmy a konečnou verzi otestovat pomocí reálného zařízení v německém městě Oppach, kde sídlí pobočka ATN Hölzel Gmbh. Architektura programu by měla být uzpůsobena k jednoduché implementaci budoucího rozšíření o další funkcionality.

Program od počátku vývoje prošel řadou iterací, a to přesněji od vývojového dia-gramu, přes dvě testovací verze, nutné k odstranění dílčích problémů, jako například navázání komunikace mezi zařízeními, přes testování cyklického přijímaní a odesílá-ní vstupodesílá-ních i výstupodesílá-ních dat, až po finálodesílá-ní verzi programu, která byla otestována na reálném zařízení.

Výsledkem této bakalářské práce je kvalitně zpracovaný program schopný komu-nikovat se standalone IFC jednotkou pomocí univerzální sérivé sběrnice, neboli USB rozhraním. Program je schopný samostatně číst data z výše zmíněné jednotky, dále je schopný detekovat problémové znaky v komunikaci s jednotkou. Dokáže určit, zdali jsou data přijata s chybou, či správně, a to s pomocí CRC, neboli kontrolního cyklického součtu. Tento program je připraven pro možnost rozšíření funkcionali-ty ovládání teplotních čidel. Přičemž toto nastavení spočívá v předání požadované teploty, určení tolerance a v neposlední řadě, také vypnutí, či zapnutí příslušného čidla. Tento software bude nadále vyvíjen pro potřeby firmy ATN Hölzel Gmbh.

Literatura

[1] ČÁPKA, David. Lekce 4 - Typový systém podruhé: Datové typy. Inetwork.cz [online]. [cit. 2019-04-28].

Dostupné z: https://www.itnetwork.cz/csharp/zaklady/

c-sharp-tutorial-typovy-system-podruhe-datove-typy-string

[2] MAHESH, Chand. Copy And Concatenate String In C. C-sharpcorner.com [online]. 18.9.2018 ©2019 [cit. 2019-04-28].

Dostupné z: https://www.c-sharpcorner.com/UploadFile/mahesh/

copy-and-concatenate-string-in-C-Sharp/

[3] Microsoft Visual Studio. Wikipedia [online]. [cit. 2019-04-28].

Dostupné z:https://en.wikipedia.org/wiki/Microsoft_Visual_Studio [4] FABIAN, David. Úvod do C++. Http://kmlinux.fjfi.cvut.cz [online]. [cit.

2019-04-28].

Dostupné z: http://kmlinux.fjfi.cvut.cz/~fabiadav/cecko/

poznamky-k-jazyku-c_plus_plus

[5] FABIAN, David. Úvod do C. Http://kmlinux.fjfi.cvut.cz [online]. [cit. 2019-04-28].

Dostupné z: http://kmlinux.fjfi.cvut.cz/~fabiadav/cecko/

poznamky-k-jazyku-c/uvod-do-c

[6] ČÁPKA, David. Úvod do jazyka Java. Itnetwork.cz [online]. [cit. 2019-04-28].

Dostupné z: https://www.itnetwork.cz/java/zaklady/

java-tutorial-uvod-do-jazyka-java

[7] FALTÝNEK, Lukáš. Jazyk C a C++. Linuxexpres.cz [online]. [cit. 2019-04-28].

Dostupné z:https://www.linuxexpres.cz/praxe/jazyk-c-a-c [8] Resource Manager Class. Microsoft.com [online]. [cit. 2019-04-28].

Dostupné z: https://docs.microsoft.com/cs-cz/dotnet/api/system.

resources.resourcemanager?view=netframework-4.8 [9] Timer. Wikipedia [online]. [cit. 2019-04-28].

Dostupné z:https://en.wikipedia.org/wiki/Timer

[10] Timer Class. Microsoft.com [online]. [cit. 2019-04-28].

Dostupné z: https://docs.microsoft.com/cs-cz/dotnet/api/system.

timers.timer?view=netframework-4.8

[11] Zpětná vazba. Eluc.kr-olomoucky.cz [online]. [cit. 2019-04-28].

Dostupné z:https://eluc.kr-olomoucky.cz/verejne/lekce/670 [12] Regelung (Natur und Technik). Wikipedia [online]. [cit. 2019-04-28].

Dostupné z: https://de.wikipedia.org/wiki/Regelung_(Natur_und_

Technik)?oldid=143722232

[13] Referenční model ISO/OSI. Mendelu.cz [online]. [cit. 2019-04-28].

Dostupné z: https://is.mendelu.cz/eknihovna/opory/zobraz_cast.pl?

cast=10010

[14] PETERKA, Jiří. Referenční model ISO/OSI - sedm vrstev. Earchiv.cz [online].

[cit. 2019-04-28].

Dostupné z:http://www.earchiv.cz/a92/a213c110.php3

[15] PETERKA, Jiří. Část XX.: Příběh Ethernetu. Earchiv.cz [online]. [cit. 2019-04-28].

Dostupné z:https://www.earchiv.cz/b06/b1200001.php3

[16] Different Types of Wireless Communication with Applications. Elprocus.com [online]. [cit. 2019-04-28].

Dostupné z:https://www.elprocus.com/types-of-wireless-communication-applications/

[17] MCKINNEY, Tom. Bezdrátová komunikace – které standardy jsou pro vás nejlepší?. Controlengcesko.com [online]. [cit. 2019-04-28].

Dostupné z: http://www.controlengcesko.com/hlavni-menu/artykuly/

artykul/article/bezdratova-komunikace-ktere-standardy-jsou-pro-vas-nejlepsi/

Zkopírovatdoschránky

[18] TIŠNOVSKÝ, Pavel. Komunikační protokol universální sériové sběrnice.

Root.cz [online]. [cit. 2019-04-28].

Dostupné z:https://www.root.cz/clanky/komunikacni-protokol-universalni-seriove-sbernice/

[19] ING. NOŽIČKA, Jan. Komunikační protokoly počítačů a počítačových sítí.

Https://docplayer.cz/ [online]. [cit. 2019-04-28].

Dostupné z:https://docplayer.cz/3428084-Komunikacni-protokoly-pocitacu-a-pocitacovych-siti.

html

[20] Komunikační protokoly. Https://is.muni.cz [online]. [cit. 2019-04-28].

Dostupné z: https://is.muni.cz/do/ics/el/sitmu/law/html/

komunikacni-protokoly.html

[21] HOLEČEK, Ondřej. CRC (kontrolní součet). Root.cz [online]. [cit. 2019-04-28].

Dostupné z:https://www.root.cz/clanky/crc-kontrolni-soucet/

[22] ATN, Hölzel GmbH. Application systems Connection boxes: Operating and installation instructions. Oppach, Německo, 2017.

[23] SLINTÁK, Stanislav. Specifikace technických vlastností IFC Standalone Vývoj softwaru. Oppach, Německo, 2018.

[24] C Guide. Microsoft.com [online]. [cit. 2019-04-28].

Dostupné z:https://docs.microsoft.com/cs-cz/dotnet/csharp/

[25] ČÁPKA, David. C Guide. Itnetwork.cz [online]. [cit. 2019-04-28].

Dostupné z: https://www.itnetwork.cz/csharp/zaklady/

c-sharp-tutorial-uvod-do-jazyka-a-dot-net-framework

Related documents