České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Zobrazení primárního letového displeje pomocí PC Michal Stárek
Vedoucí práce: Doc. Ing. Karel Draxler, CSc.
Studijní program: Softwarové technologie a management, Bakalářský Obor: Softwarové inţenýrství červen 2009
iv
v
Poděkování Děkuji vedoucímu práce Doc. Draxlerovi, za uvedení do problematiky letectví, která souvisí s touto prací. Dále děkuji za jeho ochotu a vstřícnost při řešení a vysvětlování úzce souvisejících problémů. Nakonec děkuji svým blízkým za pochopení a vytvoření příjemných pracovních podmínek.
vi
vii
Prohlášení Prohlašuji, ţe jsem práci vypracoval samostatně a pouţil jsem pouze podklady uvedené v přiloţeném seznamu. Nemám závaţný důvod proti uţití tohoto školního díla ve smyslu §60 Zákona č. 121/2000Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 12. 6. 2009
.......................
viii
ix
Abstract Purpose of this work is to create a program, which will display primary flight display of Airbus A320 on PC. The stress is put on authenticity of display. Document also describes showed values and method of its measurement and interpretation. Software engineering methods are used for program creation, which includes requirements gathering, analysis and design. Program is implemented using C# language and DirectX is used for displaying purposes.
Abstrakt Cílem práce je vytvořit program, který bude zobrazovat primární letový displej Airbusu A320 na PC. Důraz je kladen na realističnost zobrazení. Práce se zabývá i popisem zobrazovaných veličin a popisem způsobu jejich měření a jejich interpretace. Při tvorbě programu jsou pouţity postupy softwarového inţenýrství od sběru poţadavků přes analýzu aţ po návrh. Výsledný program je implementován v jazyce C# a pro zobrazení displeje je pouţit DirectX.
x
xi
Obsah 1 Úvod .................................................................................................................................... 1 1.1 Zadání projektu ........................................................................................................................ 1 1.2 Plán projektu ............................................................................................................................ 2 1.3 Analýza rizik .............................................................................................................................. 2 2 Technický úvod ..................................................................................................................... 5 2.1 Popis primárního letového displeje a vývoj ............................................................................. 5 2.2 EIS ............................................................................................................................................. 8 2.3 Části PFD................................................................................................................................. 10 2.4 Podrobný popis zobrazovaných veličin .................................................................................. 11 2.4.1 Specifické indikace na zemi ............................................................................................. 11 2.4.2 Zobrazení polohy ............................................................................................................. 11 2.4.3 Rychlost ........................................................................................................................... 12 2.4.4 Výška ............................................................................................................................... 14 2.4.5 Vertikální rychlost ........................................................................................................... 14 2.4.6 Kurs.................................................................................................................................. 15 2.4.7 Indikátor směru letu ........................................................................................................ 15 2.4.8 Navádění ......................................................................................................................... 16 2.4.9 ILS indikace ...................................................................................................................... 17 2.5 Popis a měření veličin zobrazených na PFD ........................................................................... 18 2.5.1 Poloha letadla.................................................................................................................. 18 2.5.2 Kurs.................................................................................................................................. 18 2.5.3 Výška ............................................................................................................................... 18 2.5.4 Rychlost ........................................................................................................................... 18 2.5.5 Vertikální rychlost ........................................................................................................... 19 2.5.6 Úhel náběhu .................................................................................................................... 19 2.6 Inerciální navigační jednotka a PFD........................................................................................ 19 2.7 Air data computer .................................................................................................................. 20 3 Analýza............................................................................................................................... 21 3.1 Požadavky ............................................................................................................................... 21 3.1.1 Funkční požadavky .......................................................................................................... 21 3.1.2 Nefunkční požadavky ...................................................................................................... 21 3.1.3 Seznam povinných zobrazovaných a změnitelných veličin ............................................. 22 3.2 Use case.................................................................................................................................. 23
xii 3.2.1 Seznam aktérů ................................................................................................................. 23 3.2.2 Diagramy ......................................................................................................................... 23 3.2.3 Scénáře ............................................................................................................................ 24 3.2.4 Tabulka mapování případů užití na funkční požadavky .................................................. 26 3.3 Analytické třídy ....................................................................................................................... 26 3.3.1 Diagram ........................................................................................................................... 26 3.3.2 Popis tříd.......................................................................................................................... 27 4 Návrh .................................................................................................................................. 29 4.1 Zvolené technologie ............................................................................................................... 29 4.2 Diagram komponent............................................................................................................... 29 4.3 Návrhové třídy ........................................................................................................................ 30 5 Implementace ..................................................................................................................... 31 5.1 Použité nástroje...................................................................................................................... 31 5.2 Nejdůležitější části kódu ......................................................................................................... 31 6 Testování ............................................................................................................................ 33 6.1 Jednotkové testy .................................................................................................................... 33 6.2 Testy GUI ................................................................................................................................ 34 7 Závěr ................................................................................................................................... 35 Příloha A Diagramy návrhových tříd ........................................................................................ 37 Příloha B Uživatelská příručka ................................................................................................. 41 Instalace ................................................................................................................................... 41 Spuštění a ovládání................................................................................................................... 41 Odinstalování / reinstalace....................................................................................................... 41 Příloha C Obsah přiloženého CD .............................................................................................. 43 Zdroje .................................................................................................................................... 45
xiii
Seznam obrázků 1.2.1 Plán projektu 1. část......................................................................................................... 2 1.2.2 Plán projektu 2. část......................................................................................................... 2 2.1.1Palubní deska kopilota 737-300 bez EFIS ............................................................................ 5 2.1.2 737 NG PFD ..................................................................................................................... 6 2.1.3 737 EADI ......................................................................................................................... 6 2.1.4 Záložní PFD ...................................................................................................................... 7 2.1.5 737 NG HUD .................................................................................................................... 7 2.2.1 Schéma A320 EIS ............................................................................................................. 8 2.2.2 Blokové schéma EIS A320 ................................................................................................. 9 2.3.1 A330 PFD........................................................................................................................10 2.4.1.1 PFD specifické indikace na zemi ....................................................................................11 2.4.2.1 PFD Indikace polohy .....................................................................................................12 2.4.3.1 PFD Rychlost ................................................................................................................13 2.4.3.2 PFD Omezení rychlosti ..................................................................................................13 2.4.4.1 PFD Výška ....................................................................................................................14 2.4.5.1 PFD Vertikální rychlost .................................................................................................14 2.4.6.1 PFD Kurs ......................................................................................................................15 2.4.7.1 PFD Indikace směru letu ...............................................................................................16 2.4.8.1 PFD Indikace požadované polohy ..................................................................................16 2.4.8.2 PFD Indikace požadované polohy v módu TRK/FPA ........................................................17 2.4.9.1 PFD Indikace ILS ...........................................................................................................17 2.6.1 Blokové schéma inerciální jednotky .................................................................................19 2.7.1 Blokové schéma air data computer ..................................................................................20 3.2.2.1 Případy užití – Okno s ovládacími prvky .........................................................................23 3.2.2.2 Případy užití – Ostatní okna ..........................................................................................24 3.3.1.1 Analytické třídy – UML DIagram ....................................................................................26 4.2.1 Diagram komponent .......................................................................................................29 A.1 Návrhové třídy – Komponenta Data....................................................................................37 A.2 Návrhové třídy – Komponenta Display ................................................................................38 A.3 Návrhové třídy – Komponenta GUI .....................................................................................38 A.4 Návrhové třídy – Komponenta Graphics engine ...................................................................39
xiv
1
1 Úvod 1.1 Zadání projektu Cílem projektu je vytvoření programu, který bude zobrazovat primární letový displej Airbusu A320. Důleţitou podmínkou je dodrţení maximální moţné podoby zobrazovaných dat se vzorem. Program bude slouţit všem uţivatelům, kteří se potřebují blíţe seznámit s indikacemi na tomto displeji. Uţivatel si bude moci vhodnou metodou měnit velikost zobrazovaných veličin a v reálném čase pozorovat vliv změny veličiny na podobu její indikace. Do budoucna se počítá s pouţitím k seznámení s měřícími systémy, které měří související veličiny. Dále je plánováno rozšíření aplikace na zobrazení dalších displejů Airbusu A320. S touto skutečností je nutno počítat při analýze, popřípadě i při návrhu aplikace. Není poţadováno, aby výsledný program byl multiplatformní. Bude tedy vyvíjen pro mezi běţnými uţivateli nerozšířenější operační systém Windows. Vzhledem k tomu, ţe se jedná o grafickou aplikaci fungující v reálném čase, bude pozornost věnována hardwarovým nárokům, které nesmí překročit únosnou mez. Program bude mít dvě nezávislá okna. Okno s ovládacími prvky pro nastavení veličin a okno se zobrazením vlastního displeje. Toto rozvrţení umoţní změnu velikosti okna dle potřeby a zobrazení okna s displejem na jiném monitoru, neţ na kterém jsou zobrazeny ovládací prvky. Při změně velikosti bude udrţován poměr stran displeje doplněním bílých pruhů na stranách, nebo nad a pod displejem. Pro určení podoby zobrazovaných prvků budou vyuţity poznatky nabyté při tvorbě technického úvodu. Tyto poznatky budou zároveň pouţity pro vytvoření doprovodných textů, které popisují význam zobrazovaných veličin a zároveň popisují systémy, které velikost těchto veličin měří. Uţivatel si bude moci tyto informace zobrazit kliknutím na ikonu nápovědy v místě, kde se budou nastavovat související veličiny. Nápověda bude zobrazena v novém okně v podobě internetové stránky s moţností přesunu na popis jiné, nebo související části pomocí odkazu. Program bude umoţňovat připojit joystick, nebo jiné polohovací zařízení, které bude pomocí dvou os simulovat pilotův ovladač a jehoţ pomocí bude moţno měnit směr, podélný a příčný náklon letadla. Uţivatel bude mít moţnost pomocí kolečka myši přiblíţit některou část displeje. V případě přiblíţení bude moci uţivatel táhnutím myši po displeji za stisknutého levého tlačítka posunout pohled a zobrazit tak jinou část displeje. Při tvorbě poţadavků musí být hlavní důraz kladen na poţadavky vyplývající ze zadání této bakalářské práce, které mají přednost před nesrovnalostmi, vyplývajícími z tohoto článku. Datum odevzdání práce je dáno na 12. 6. 2009. Datum dokončení projektu je tedy určeno na 22. 5. 2009.
2
1.2 Plán projektu Datum zahálení projektu je 20. 4. 2009. Pro vytvoření harmonogramu projektu jsem pouţil program Visio sady Office, pomocí něhoţ byl vytvořen Ganttův diagram.
Obrázek 1.2.1
Obrázek 1.2.2
1.3 Analýza rizik Analýza rizik je realizována pomocí tabulky, ve které se vyskytuje název rizika, kategorie rizika, procentuální pravděpodobnost toho, ţe riziko nastane a dopad rizika určený číselnou hodnotou od 1 do 4 (4 je nejhorší dopad). Nakonec je uveden stručný popis, jak riziku předcházet a co dělat v případě, ţe nastane. Rizika jsou seřazena podle součinu pravděpodobnosti a dopadu. Jako první je tedy uvedeno riziko s vysokou pravděpodobností s ohledem na důsledky dopadu. Tabulka 1.3.1
Riziko
Kategorie PravděpoDopad rizika dobnost
Nízký odhad velikosti projektu
Velikost produktu
Skryté poţadavky
Charakteri stika zákazníka
85%
50%
Plánované opatření
3
Důsledné rozdělení na funkční bloky, rozpoznání základních a jejich přednostní realizace
3
Časté konzultace se zákazníkem, podrobná konzultace pilotního projektu, flexibilní analýza
Reakční scénář Prodlouţení pracovní doby, dohoda o vypuštění vedlejších poţadavků, dohoda o zpoţdění dodání produktu Prodlouţení pracovní doby, okamţitá analýza problému, dohodnutí kompromisu v případě příliš velkého nárůstu rozsahu projektu
3
Nedostatečné zkušenosti
Zkušenost
50%
3
Chyby v dokumentaci
Obchodní dopad
20%
4
Ztráta přehlednosti zdrojového kódu
Velikost produktu
30%
2
Pozdní dodání
Obchodní dopad
15%
4
Defektní produkt
Obchodní dopad
15%
3
Zbytečné funkční prvky
Charakteri stika zákazníka
35%
1
Dohodnutí konzultace s odporníkem na daný Podrobná příprava a problém, zváţení pouţití prvků pouţitých vyřazení, nebo omezení v pilotním projektu poţadavku na základě konzultace se zákazníkem Vypracování dokumentace s předstihem, její Příprava na obhajobu, odeslání oponentovi ke uvedení příčiny a oprava kontrole, časová chyby rezerva pro opravu dokumentace Kvalitní analýza a návrh, udrţování kvality kódu, důsledné komentování Prodlouţení pracovní zdrojového kódu, doby, revize kódu, vyuţití generování rozdělení rozsáhlých dokumentace ze funkcí a tříd, doplnění specificky komentářů, vyhledání formátovaných kvalitnějších algoritmů komentářů, dodatečné dělení rozsáhlých funkcí a tříd Dodrţování pracovní doby a harmonogramu, kvalitní analýza rizik, Diplomatická jednání o dodrţování posunutí termínu protirizikových ukončení projektu opatření, okamţitá reakce na vyskytnuvší se rizika Podání zprávy o Důsledný sběr důvodech vedoucích k poţadavků, maximální defektu, identifikace moţný počet testů, příčiny defektu, návrh na časté a důsledné odstranění defektu, testování, konzultace jednání o posunutí se zákazníkem v termínu ukončení případě nejasností projektu Okamţité vyřazení z Časté konzultace se poţadavků, v případě, ţe zákazníkem, podrobná je jiţ prvek konzultace pilotního implementován nebude projektu, flexibilní odstraňován v případě, analýza ţe nepůsobí negativně
4
5
2 Technický úvod 2.1 Popis primárního letového displeje a vývoj Primární letový displej (anglicky primary flight display a dále jen PFD) vznikl začátkem osmdesátých let, kdy klasické analogové přístroje, které indikovaly pro pilota velice důleţité informace (polohu, rychlost, výšku, směr a vertikální rychlost letadla), byly nahrazovány CRT (Cathod ray tube) a později LCD (Liquid crystal display) displejem. I kdyţ se tato práce zabývá výhradně PFD Airbusu A320, dovolím si vývoj PFD ukázat na Boeingu 737, který díky své popularitě a mnoha fázím vývoje, prošel všemi styly zobrazování primárních letových veličin. Na obrázku 2.1.1 je zobrazena přístrojová deska kopilota jednoho z prvních Boeingů 737-300 (neměly ještě instalován EFIS, viz kapitola 2.2), na které se nachází analogové ukazatele. Na tomto panelu je v podobě displeje prezentována pouze vertikální rychlost. Důvodem bylo spojení tohoto displeje se systémem TCAS (Traffic alert and Collision Avoidance System), který sbírá zprávy od odpovídačů blízkých letadel a v případě nebezpečí kolize upozorňuje pilota na nebezpečí a zároveň pomocí tohoto displeje zobrazuje polohu a výšku blíţícího se letounu a indikuje doporučenou vertikální rychlost pro bezpečné vyhnutí obou letadel. Jedná se tedy o velice dobrý příklad toho, jak lze nahrazením obyčejného ručkového přístroje displejem, zobrazit pilotovi na jednom místě více důleţitých informací.
Obrázek 2.1.1
6 Obrázek 2.1.2 je fotografie PFD z nového typu Boeingu 737 označovaného jako „nová generace“ (737-600, -700, -800 a -900). Některé aerolinky, pravděpodobně kvůli zvyku pilotů, kteří létali se staršími typy Boeingu 737, měly na tomto displeji vykresleny veličiny v podobě klasických analogových ukazatelů, jejichţ rozmístění se podobalo rozmístění přístrojů u starších typů. Na obrázku je uvedeno rozvrţení displeje, které se v dnešní době pouţívá u všech moderních dopravních letadel.
Obrázek 2.1.2
Mezistupněm přechodu od analogových ukazatelů k výše uvedenému displeji byl CRT displej, který nahrazoval pouze ukazatele polohy (ADI – attitude director indicator) a rychlosti, jiné veličiny, jako například výška a vertikální rychlost, zůstaly ve své původní podobě. Tento mezistupeň vývoje lze vidět na obrázku 2.1.3. Postupem času se však všechny indikované veličiny přesunuly na PFD.
Obrázek 2.1.3
7 Zobrazení informací na displeji, místo pomocí analogových ukazatelů, má několik výhod. První z nich je sdruţení informací do menšího prostoru a jejich zpřehlednění. Aerolinky si mohou dle svých potřeb zobrazení mírně upravovat. U vykreslení analogových ukazatelů se však jedná o poměrně zásadní změnu, se kterou jsem se setkal pouze u Boeingu 737. V případě, ţe jedna ze zobrazovaných veličin dosáhne nějaké mezní hodnoty, je moţné její zobrazení jednoduchým způsobem zvýraznit a pomocí změny barvy zobrazované veličiny a pomocí barevného kódování je moţné určit typ a kritičnost dané odchylky. Například odchylka od vybrané výšky je indikována zvukovým signálem, ve spojení se změnou barvy ohraničení zobrazení aktuální výšky. Díky tomu je pilot schopen velice rychle identifikovat příčinu zvukového varování a adekvátně na ni reagovat. Nevýhodou můţe být, na první pohled zřejmá, nahuštěnost velkého mnoţství dat na malém prostoru. Tato nepřehlednost je eliminována intuitivním rozmístěním jednotlivých částí displeje a schopností pilota ignorovat v danou chvíli nepodstatné indikace. Analogové ukazatele však z přístrojových desek nezmizely. Důleţitost veličin zobrazovaných na PFD je natolik vysoká, ţe v případě poruchy displeje, nebo jednotky, která na něm data zobrazuje, by se pilot ocitl ve velice sloţité situaci. Úřady pro bezpečnost v civilním letectví se nespokojily ani se zálohou v podobě zdvojení PFD (jeden na straně kapitána a druhý na straně kopilota) a předpisem nařídily povinnou instalaci záloţních analogových ukazatelů. Aţ v dnešní době je jako záloha instalován třetí, poměrně o dost menší displej, který svým konceptem velice blízce připomíná PFD. Jeho podoba je na obrázku 2.1.4. Klasické ručkové ukazatele tedy z přístrojových desek moderních dopravních letounů pomalu mizí. V poslední době se začínají do nových dopravních letadel instalovat takzvané Head Up Displeje (HUD – obrázek 2.1.5), známé jiţ delší dobu z vojenských letadel. Do starších letadel jsou tyto displeje doinstalovávány dodatečně. Jedná se o skleněný průhledový displej, který si pilot sklopí přímo před sebe ve výšce očí. Na displej jsou pomocí projektoru zobrazována stejná data, jaká jsou zobrazena na PFD. Nespornou výhodou je, ţe pilot nemusí sklápět zrak na přístrojovou desku, ale všechny důleţité informace má přímo před sebou. Takto vybavená letadla mají velkou výhodu při přistání a vzletech, a to jak za běţných podmínek, tak i za sníţené viditelnosti. Obrázek 2.1.4
Obrázek 2.1.5
8
2.2 EIS EIS je zkratka pro Electronic Instrument System. Jedná se o systém, který zobrazuje všechny důleţité veličiny pro pilotování letadla na displejích a nahrazuje tak velké mnoţství ručkových ukazatelů. Skládá se ze dvou hlavních součástí. EFIS (Electronic Flight Instrument System) obstarává zobrazení primárních letových veličin a navigačních údajů. Systém ECAM (Electronic Centralized Aircraft Monitoring) poskytuje údaje o motorech a dalších důleţitých systémech letadla (Hydraulika, elektrické rozvody…). Obrázek 2.2.1 zobrazuje rozloţení součástí systému EIS na přístrojové desce Airbusu A320.
Obrázek 2.2.1
9 Na obrázku 2.2.2 je blokové schéma EIS Airbusu A320.
Obrázek 2.2.2
Celý systém se skládá ze šesti identických zobrazovacích jednotek (Display Unit), coţ jsou barevné CRT, nebo LCD monitory. Tyto jednotky přijímají kompletní obraz, který pouze zobrazují. Tento obraz vytváří tři DMC (Display Management Computer) na základě dat přijatých ze senzorů a ostatních počítačů. V běţném provozu zařizuje generování obrazů pro kapitánův primární a navigační displej a pro jeden z ECAM displejů DMC1. DMC2 generuje obraz pro primární a navigační displej kopilota a pro druhý ECAM displej. DMC3 funguje jako záloha, kterou je moţno v případě výpadku jiného DMC připojit k vypadnuvší sadě displejů. Dvě jednotky SDAC (System data acquisition concentrator) sbírají data o letadle a generují signály pro DMC a FWC (viz dále). Na základě těchto signálů jsou generovány obrazy a varovná hlášení (jak obrazová, tak zvuková). Dva Flight Warning Computer (FWC) generují varovná hlášení, poznámky a hlasová varování. Nejdůleţitější poruchy (red warnings) jsou detekovány přímo pomocí senzorů. Ostatní (amber cautions) jsou přebírány z SDAC. FWC zároveň ovládá dvě světelná tlačítka, která jsou umístěna přímo před pilotem, a která indikují výskyt nového varování.
10
2.3 Části PFD Na obrázku 1.3.1 je PFD Airbusu A330, který je stejný jako na Airbusu A320. Celý displej lze rozdělit na 8 částí. Horní část zobrazuje letové módy, levá část rychlost, střední část polohu, navádění a rádiovou výšku. Pravý a spodní okraj střední části jsou využity pro zobrazení odchylky ILS (instrument landing system). V pravé části displeje je umístěna výška a vertikální rychlost.
Obrázek 2.3.1
V levém dolním rohu jsou zobrazována radionavigační data a Machovo číslo. Spodní část je vyhrazena pro kompas a pravý dolní roh zobrazuje nastavení barometrického tlaku vzduchu pro výškoměr. Při překročení dané teploty v jednotce, která zajišťuje zobrazení PFD (display unit), jsou z důvodu snížení odběru odstraněna šedá pozadí za ukazateli směru, rychlosti, výšky a vertikální rychlosti. Pokud teplota nadále narůstá, je jednotka odpojena.
11
2.4 Podrobný popis zobrazovaných veličin 2.4.1 Specifické indikace na zemi Tyto parametry na obrázku 2.4.1.1 jsou zobrazeny, pouze pokud se letadlo nachází na zemi. Značka (1) je součet výchylek letových ovladačů pilota a kopilota, na obrázku je zobrazena výchylka pro naklonění doleva a zvednutí nosu letadla. Značka (2) je hranice maximální výchylky jednoho ovladače. Oba tyto parametry jsou zobrazeny pouze v případě, ţe je v chodu alespoň jeden motor. Pokud je k dispozici localizer (součást ILS), je k dispozici parametr (3), který při startu a přistání dává pilotovi informace o potřebné stranové výchylce pro udrţení středu přistávací dráhy. Tento parametr je zobrazen do výšky 30 stop.
Obrázek 2.4.1.1
2.4.2 Zobrazení polohy Schéma je na obrázku 2.4.2.1. Symbol letadla (1) zobrazuje polohu vůči pozadí indikujícímu horizont, země je zde zobrazena hnědou barvou a obloha modrou. Symbol je černý se ţlutým orámováním. Pokud je vybrán TRK-FPA (track – flight path angle, skutečný směr a úhel sestupu/stoupání) mód, ţluté orámování ztmavne, pokud se letadlo nenachází ve fázi startu, nebo přerušeného přistání (indikováno podle nastavení tahu motorů). Náklon letadla lze zjistit podle měřítka náklonu (2), které indikuje 0, 10, 20, 30 a 45° bočního náklonu. Tento náklon indikuje ţlutý trojúhelník (3). Pokud náklon přesáhne 45°, všechny indikované veličiny, kromě polohy, rychlosti, směru, výšky a vertikální rychlosti zmizí. Všechna zobrazení se vrátí do normálu v případě, ţe náklon klesne pod 40°. Podélný náklon lze zjistit pomocí měřítka (4). To indikuje náklon 80° nahoru a dolů. Mezi náklonem 10° dolů a 30° nahoru je měřítko rozděleno dílky po 2,5°. Při překročení náklonu 25° nahoru, nebo 13° dolů, se displej chová stejně, jako při překročení bočního náklonu 45°. Navíc se ale zachovává zobrazení zrychlení. Zobrazení se vrací do normálu v případě, ţe náklon klesne pod 22° nahoru, nebo 10° dolů. Při náklonu přesahujícím 30°nahoru jsou zobrazeny červené šipky indikující nebezpečný náklon a směřující k horizontu.
12
Obrázek 2.4.2.1
Zelené symboly (5) zobrazují omezení náklonu systémem fly by wire, který ignoruje vstupy pilotova ovladače, které by měly za následek překročení těchto limitů. Limity jsou 67° bočního náklonu, 30° nahoru a 15° dolů. Pokud je tato ochrana ztracena, jsou symboly nahrazeny symboly x jantarové barvy. Spodní část ukazatele náklonu (6) slouţí jako indikátor skluzu. Jeden centimetr výchylky indikuje 0,2 g. Maximální výchylka je 0,3 g. V případě výpadku motoru při startu, nebo přerušeném přistání symbol zmodrá (situace je indikována podle pozice vztlakových klapek, nastavení a rozdílu mezi tahem motorů). V tomto případě indikuje symbol rozdíl mezi skutečným směrem a směrem, kterým by měla mířit podélná osa trupu letadla, aby byl dosaţen optimální výkon. Modrý symbol je označován jako β target.
2.4.3 Rychlost Základní symboly jsou na obrázku 2.4.3.1. Kalibrovaná vzdušná rychlost je zobrazována pomocí měřítka a ukazatele (1). Ukazatel je statický, pohybuje se měřítko. Minimální indikovaná rychlost je 30 uzlů. Od ukazatele se můţe táhnout ţlutá šipka (2), která zobrazuje, jaké rychlosti dosáhne letadlo za 10 sekund, pokud bude dodrţeno stávající zrychlení. Šipka je zobrazena, pokud je předpokládaná změna rychlosti vyšší neţ 2 uzly a zmizí v případě, ţe změna klesne pod 1 uzel. Symbol (3) je indikátor zvolené rychlosti, kterou zadá přímo pilot (modrá barva), nebo ji určuje flight management computer (purpurová barva). Pokud je zvolená rychlost v rámci ekonomického rozsahu, je zobrazena jako symbol = (můţe být pouze purpurový), jinak je zobrazena jako trojúhelník. Pokud je zvolená rychlost mimo měřítko je její hodnota zobrazena pod, nebo nad měřítkem.
13
Obrázek 2.4.3.1
Pokud rychlost překročí mach 0.5, je Machovo číslo zobrazeno jako zelená hodnota (4). (5) Rychlost, při které zahájí flight by wire systém příslušná opatření, je zobrazena jako zelený symbol = a je umístěna na maximální rychlosti + 6 uzlů, nebo maximální mach + 0,01. Pokud při klesání kontroluje rychlost flight management system, je konkrétní zvolená rychlost nahrazena rozsahem (6) ekonomické sestupové rychlosti. Tento rozsah je dán ekonomickou rychlostí +/- 20 uzlů. Rozsah zároveň respektuje omezení maximální a minimální rychlosti.
Obrázek 2.4.3.2
Na obrázku 2.4.3.2 jsou zobrazeny indikace maximální a minimálních rychlostí. VLS (1) je minimální rychlost, kterou je možno zvolit jako cílovou (lowest selectable). Následuje minimální rychlost závislá na úhlu náběhu (2), při které systém fly by wire aktivuje protiopatření. Jako nejnižší je zobrazena rychlost, při které je docílen maximální úhel náběhu (3). Maximální rychlost (4) zobrazuje údaj v uzlech, ve velkých výškách je závislá na Machově čísle. V případě že jsou vysunuty vztlakové klapky, nebo podvozek, je zobrazena maximální rychlost pro aktuální konfiguraci. V případě poruchy, nebo výpadku systému fly by wire, je zobrazena rychlost, při které je aktivováno pádové varování (5).
14
2.4.4 Výška Výška je zobrazována pomocí stupnice a hodnoty (1), která se mění podle starších bubínkových ukazatelů. Pokud je nadmořská výška negativní vzhledem k MSA (Mezinárodní Standardní Atmosféra), je před číselným údajem uvedeno „NEG“. Ohraničení hodnoty se změní ze ţluté na jantarovou, pokud se výška nebezpečně odchýlí od vybrané. V průběhu sestupu je zobrazována vertikální odchylka (2) od vypočtené sestupové trasy, kterou vypočítává flight management system.
Obrázek 2.4.4.1
Zobrazovaný rozsah je +/- 500 stop. Modrý symbol (3) indikuje vybranou výšku, v případě nastavení vztaţného tlaku na standardní (1013 mb), zobrazuje vybranou letovou hladinu. Pokud výběr výšky zajišťuje flight management systém, je symbol purpurový. Pokud je symbol mimo měřítko, je nahrazen číselnou hodnotou nad, nebo pod měřítkem. Zobrazení nastavení vztaţného tlaku (4), je nahrazeno písmeny „STD“ v případě volby standardního tlaku. Normálně je zobrazena hodnota, se kterou je uvedeno „QNH“, nebo „QFE“.
2.4.5 Vertikální rychlost Vertikální rychlost do 6000 ft/min zobrazuje zelená ručka na stupnici (1) dělené po 500 ft/min. Pokud je vertikální rychlost vyšší neţ 200 ft/min, je zobrazena také číselná hodnota (2) indikující stovky. V případě nebezpečí kolize s jiným letadlem můţe být indikátor doplněn o označení vertikální rychlosti pro bezpečné vyhnutí. Toto doporučení indikuje a nastavuje systém TCAS.
Obrázek 2.4.5.1
15
2.4.6 Kurs Kurs je indikován pomocí stupnice a pevného ţlutého indikátoru (1). „TRU“ je zobrazeno, pokud se letoun nachází za 73° severní šířky, nebo 60° jiţní šířky a indikuje zobrazení skutečného, namísto magnetického směru. Modrý trojúhelník (2) představuje vybraný směr, nebo vybraný skutečný směr letu. Pokud je vybraná hodnota mimo stupnici, je vpravo, nebo vlevo zobrazena její číselná reprezentace.
Obrázek 2.4.6.1
Při vypnutém flight directoru (viz kapitola Navádění) je zobrazeno měřítko na umělém horizontu a zároveň je zde zobrazena vybraná hodnota. Zelený diamant (3) zobrazuje aktuální skutečný směr letu ovlivněný větrem.
2.4.7 Indikátor směru letu Flight path vector (1) je zobrazen v případě, ţe pilot na panelu výběru módů autopilota vybere TRK/FPA mód. Dává tím najevo, ţe zadává skutečný směr letu namísto směru podélné osy trupu letadla a namísto vertikální rychlosti zadává stupně odklonění vertikálního směru letu od vodorovné roviny. V případě, ţe je letadlo vybaveno head up displejem, dává zobrazení flight path vectoru pilotovi velkou výhodu v tom, ţe ukazuje přesně na místo na zemi, kam letadlo směřuje. To je výhoda především při přistání.
16
Obrázek 2.4.7.1
2.4.8 Navádění Pokud pilot ovládá letoun ručně (vypnutý autopilot) a zároveň zadává cílovou výšku a směr, je zobrazen takzvaný flight director, který zobrazuje poţadovaný podélný a příčný náklon pro dosaţení vybraných hodnot. Existují dva naprosto odlišné typy flight directoru. Jeden je pouţit při módu HDG/VS, druhý při TRK/FPA.
Obrázek 2.4.8.1
Předcházející obrázek ukazuje naváděcí pokyny při vybraném módu HDG/VS. Pokud se chce pilot drţet pokynů naváděcího systému, musí změnou podélného a příčného náklonu letadla dosáhnout toho, aby se dvě čáry (1) překříţily uprostřed indikátoru umělého horizontu (za středem pevného symbolu letadla). Pod výškou 30 ft a na zemi je zobrazen pouze ukazatel, zobrazující nutnou výchylku směrového kormidla pro udrţení středu přistávací dráhy, a to pouze v případě, ţe je zachycen localizer.
17
Obrázek 2.4.8.2
V důsledku výběru módu TRK/FPA je zobrazen flight path vector (1) a flight director (2) dostane podobu jedné čáry určující poţadovanou pozici flight path vectoru.
2.4.9 ILS indikace Instrument landing system je určen pro navedení letadla při finálním přiblíţení k přistávací dráze. Je sloţen ze dvou vysílačů. Localizer pomáhá pilotovi udrţet letoun v rovině se středem přistávací dráhy a glide slope určuje optimální sestupovou rovinu (3°).
Obrázek 2.4.9.1
Na PFD jsou zobrazeny odchylky od těchto rovin (1), (2). Cílem pro pilota je udržet obě odchylky na nule, tedy ve středu stupnice.
18
2.5 Popis a měření veličin zobrazených na PFD 2.5.1 Poloha letadla Nejedná se o polohu na Zemi, ale o úhly náklonu letadla vůči zemskému povrchu. Konkrétně se jedná o podélný náklon (náklon kolem příčné osy letadla), příčný náklon (náklon kolem podélné osy letadla). Oba údaje jsou prezentovány ve stupních. Jako doplňující informace je uváděn skluz, jehoţ indikace je vyuţita při provádění zatáčky. Pokud je při provedení zatáčky odstředivá síla nedostatečná, předměty v letadle jsou tlačeny směrem k zemi a zatáčka je označována jako skluzová. V druhém případě je odstředivá síla příliš vysoká a zatáčka označována jako výkluzová. Tento údaj je prezentován v jednotkách zemské gravitace (g). Pro zobrazení polohy a skluzu na PFD jsou vyuţity informace z inerciálních jednotek (viz kapitola 2.6). Výhodou je, ţe pro získání těchto informací není nutné mít jednotku plně zarovnanou a jsou poskytovány téměř ihned po připojení napájení k jednotce.
2.5.2 Kurs Kurs, tedy směr, kterým míří podélná osa trupu letadla, je zobrazován jednoduše pomocí kompasu. Kurs je získáván z inerciální jednotky (viz kapitola 1.6), z jejíchţ údajů lze zjistit i skutečný směr (ovlivněný větrem).
2.5.3 Výška Výška letounu je měřena dvěma nezávislými způsoby. První je zaloţen na měření tlaku vzduchu. Takto měřená výška je nazývána absolutní výška nebo výška letové hladiny. O výšku letové hladiny se jedná v případě, ţe je vztaţná úroveň tlaku nastavena na standardní hodnotu (tedy 1013 mb, nebo 29.92 in. Hg). Toto nastavení se pouţívá nad takzvanou transition altitude, která se liší podle regionů (Spojené státy 18000 stop, Česká Republika a většina dalších států 5000 stop). V případě, ţe je vztaţná úroveň tlaku nastavena na tlak změřený některou z meteorologických stanic v daném místě, ukazuje výškoměr nadmořskou výšku. Konkrétní tlak v místě, ve kterém se letadlo právě nachází, se pilot dozví od řízení letového provozu, nebo z ATIS vysílání (stanice vysílající podrobné informace o letišti a povětrnostních podmínkách na frekvenci řízení letového provozu). Druhý způsob měření výšky je rádiovou metodou. Tedy vysílání a zachytávání odrazu elektromagnetických vln od zemského povrchu. Takto měřená výška je nazývána skutečnou. Dopravní letouny tuto výšku zobrazují od 2500 stop aţ k zemi. Pilot tuto výšku vyuţívá převáţně pouze při startu a přistání.
2.5.4 Rychlost Rychlost letadla je měřena také pomocí tlaku vzduchu. V tomto případě se však měří přetlak vznikající v důsledku pohybu letounu vzduchem. Tento přetlak je měřen pomocí takzvané Pitotovy trubice. Jedná se o dutou sondu trubkovitého tvaru, která je nasměrována přesně proti proudu vzduchu, který letoun obtéká. Vzhledem k tomu, ţe s výškou, ve které se letadlo nachází, se mění zároveň tlak vzduchu, je nutné znát hodnotu statického tlaku. Takzvaná kalibrovaná vzdušná rychlost, při jejímţ měření se nebere v úvahu teplota okolního vzduchu, klesá s klesající teplotou vzduchu. Dalším důleţitým rychlostním údajem je Machovo číslo (tedy násobek rychlosti vzduchu). To je vypočítáno z celkového a statického tlaku.
19
2.5.5 Vertikální rychlost Vertikální rychlost udává rychlost změny výšky ve stopách za minutu. Její velikost je moţné získat z inerciální jednotky a jako záloha slouţí její měření zaloţené na rychlosti změny statického tlaku.
2.5.6 Úhel náběhu Měření úhlu náběhu je prováděno pomocí otáčivého křidélka umístěného na boku trupu letounu. Při letových rychlostech toto křidélko kopíruje směr obtékajícího vzduchu. Pomocí jednoduchého snímače je moţno měřit rozdíl mezi osou trupu letounu a nakloněním měřícího křidélka. Tato veličina je úhel náběhu. Úhel náběhu se mění v závislosti na kalibrované rychlosti letadla. Při rychlostech blízkých pádové rychlosti je největší, tedy osa trupu míří výš, neţ je směr letu. S rostoucí rychlostí a větším vztlaku tvořenému na křídlech pak klesá. Jeho hodnota se můţe měnit také při prudších manévrech v důsledku setrvačnosti (zatímco trup letounu jiţ míří jinam, letoun samotný se stále pohybuje původním směrem). Tento jev je velice patrný u stíhacích letounů při manévrech s vysokým přetíţením. Změřená veličina je pouţita při měření výšky a rychlosti, protoţe úhel náběhu má vliv na velikost tlaku měřenou sondami, které ho snímají.
2.6 Inerciální navigační jednotka a PFD Jedná se o soustavu tří gyroskopů (v dnešní době laserových), které detekují úhlovou rychlost na všech třech osách prostoru. Tyto gyroskopy dosahují chyby 0,01°/hodinu. Tato soustava je doplněna třemi akcelerometry. Díky této soustavě je tato jednotka schopna určit polohu, rychlost, zrychlení, relativní výšku, směr, místo na Zemi, kde se letoun právě nachází a další údaje s poměrně dost vysokou přesností. Celý systém je označován jako strap-down a na obrázku 2.6.1 je jeho blokové schéma.
Obrázek 2.6.1
20 Jedinou nevýhodou tohoto systému je, ţe po připojení napájení je nutno poměrně dlouho čekat na zarovnání. To lze urychlit zadáním přesné polohy letadla, ale i tak se doba zarovnání pohybuje okolo 10 minut. Po dobu zarovnání se letadlo nesmí pohybovat, coţ znamená, ţe pokud dojde k výpadku jednotky za letu, jiţ ji není nadále moţno vyuţívat v plném rozsahu. Na palubě moderních dopravních letadel bývají nainstalovány tři tyto jednotky.
2.7 Air data computer Air data computer (ADC) slouţí pro výpočet veličin, které jsou měřeny pomocí sond umístěných na vnější straně trupu letadla. Jedná se o sondy pro měření statického a celkového tlaku, teploty a úhlu náběhu. ADC zařizuje opravu chyby měření těchto sond a provádí poměrně sloţité výpočty, jejichţ výsledkem jsou veličiny, z nichţ některé (např. Machovo číslo, kalibrovaný rychlost a výška) jsou zobrazeny na PFD. Na obrázku 2.7.1 je blokové schéma v dnešní době pouţívaného Digital air data computeru (DADC).
Obrázek 2.7.1
21
3 Analýza 3.1 Požadavky Následuje katalog funkčních a nefunkčních poţadavků, doplněný o seznam vybraných částí PFD, které výsledný program musí zobrazovat a umoţnit změnit. Poţadavky, jejichţ číslování začíná 0, jsou nepovinné a budou realizovány v případě, ţe bude program splňovat všechny povinné poţadavky a bude čas na implementaci nepovinných poţadavků. Stejně budou doplňovány další části PFD. Seznam povinných částí PFD obsahuje rovněţ způsob, kterým bude daná veličina nastavována.
3.1.1 Funkční požadavky 1. Uţivatel můţe změnit hodnotu vybrané zobrazované veličiny (Seznam zobrazovaných a změnitelných hodnot je uveden v kapitole 3.1.3) Hodnotu bude moţno moţné změnit pomocí jezdce, editovatelného textového políčka, zaškrtávacího políčka, nebo jiného vhodného ovládacího prvku. 2. Uţivatel můţe zobrazit popis zobrazované veličiny Klinutím na tlačítko s ikonou nápovědy v příslušné podčásti okna s ovládacími prvky. 3. Uţivatel můţe zobrazit popis systému, který měří zobrazovanou veličinu Kliknutím na tlačítko s ikonou systému v příslušné podčásti okna s ovládacími prvky. 4. Uţivatel můţe ze zobrazeného popisu přejít na popis související veličiny, nebo měřícího systému Pomocí jednoduchého internetového odkazu, který se bude nacházet na stránce s popisem systému, nebo veličiny. 0.1. Uţivatel můţe vybrat připojené polohovací zařízení Po výběru této poloţky, se otevře nové okno se seznamem všech připojených zařízení. 0.2. Pomocí vybraného polohovacího zařízení můţe uţivatel měnit polohu letadla Náklonem páky joysticku vlevo, nebo vpravo, mění příčný náklon letadla a přitaţením, nebo odtlačením páky, mění podélný náklon letadla. Rychlost změny je dána velikostí odklonu páky od její středové polohy. 0.3. Uţivatel můţe zobrazit/skrýt okno s PFD Výběrem zaškrtávací poloţky hlavního menu. 0.4. Uţivatel můţe pomocí kolečka myši přiblíţit část PFD Kurzor při tom musí být umístěn nad oknem displeje. Skrolováním nahoru se obraz přibliţuje, skrolováním dolů se obraz vzdaluje. 0.5. Uţivatel můţe pomocí myši a stisknutého levého tlačítka posunout přiblíţenou část PFD Část displeje, která byla před započetím pohybu pod kurzorem, je pod ním po celou dobu stisknutí levého tlačítka udrţována pod kurzorem.
3.1.2 Nefunkční požadavky 1. Výsledná aplikace musí reprezentovat PFD v co nejrealističtější podobě Rozloţení, velikost a barva jednotlivých prvků se musí co nejvíce podobat reálné předloze.
22
2. Změna veličiny se musí okamţitě projevit na zobrazení (realtime odezva) Rychlost odezvy je závislá také na výkonu PC, na kterém je aplikace spuštěna. 3. Aplikace musí být spustitelná pod operačním systémem Windows novější verze Na operační systém musí být moţno nainstalovat .Net Framework 2.0 a DirectX 9. 4. Aplikace musí fungovat plynule na desktopovém PC Jako PC pro testování bude vybrána následující konfigurace: Procesor: AMD Athlon64 X2 4800+ Operační paměť: 2GB DDR2 800MHz Grafická karta: GeForce 8800GTS 512MB 5. Prvky měnící hodnotu zobrazovaných veličin musí být v odděleném okně od okna displeje Vhodné by bylo, aby při připojení více monitorů, bylo moţné zobrazit na jednom displej a na druhém ovládací prvky. 6. Při změně velikosti okna displeje musí být dodrţen poměr stran doplněním kontrastních pruhů Pruhy musí být kontrastní s barvou na okraji displeje, vzhledem k tomu, ţe pozadí je černé, budou pouţity bílé pruhy. 7. Popis zobrazovaných veličin a měřících systémů musí být realizován pomocí XHTML Popisy budou zobrazovány pomocí internetového prohlíţeče, stránky bude vhodné doplnit CSS souborem.
3.1.3 Seznam povinných zobrazovaných a změnitelných veličin Indikátor polohy (Attitude) Nastavitelné a zobrazované hodnoty: Příčný náklon (Roll [°]) - pomocí jezdce Podélný náklon (Pitch [°]) - pomocí jezdce Skluz (Slip [g]) - pomocí jezdce Zobrazované hodnoty nastavované jinde Kurs (Heading [°]) - nastavováno v části Kurs Rádiová výška (Radio altitude [ft]) - nastavováno v části výška Indikátor rychlosti (Speed) Nastavitelné a zobrazované hodnoty: Rychlost v uzlech (Speed [kts]) - pomocí jezdce, závislé na výšce a Machově čísle Machovo číslo (Mach number [-]) - pomocí jezdce, závislé na rychlosti a výšce Indikátor výšky (Altitude) Nastavitelné a zobrazované hodnoty: Výška ve stopách (Altitude [ft]) - pomocí číselného pole a jemné doladění pomocí jezdce, závislé na výšce v metrech Výška v metrech (Altitude [meters]) - pomocí číselného pole a jemné doladění pomocí jezdce, závislé na výšce ve stopách Rádiová výška (Radio altitude [ft]) - pomocí jezdce, zobrazena také na indikátoru polohy Indikátor vertikální rychlosti (Vertical speed) Nastavitelné a zobrazované hodnoty: Vertikální rychlost (Vertical speed [ft/min]) - pomocí jezdce
23
Indikátor kursu (Heading) Nastavitelné a zobrazované hodnoty: Kurs (Heading [°]) - pomocí jezdce, zobrazen také na indikátoru polohy Snos (Drift [°]) - pomocí jezdce
3.2 Use case 3.2.1 Seznam aktérů V případech uţití se vyskytují pouze dva aktéři. To je dáno tím, ţe systém neřeší přístupová práva. Uživatel: Je člověk, který vyuţívá program k jím daným cílům. Polohovací zařízení: Je zařízení (joystick), které je připojeno k PC, na kterém je spuštěn vyvíjený program, a které bylo uţivatelem vybráno v příslušné nabídce.
3.2.2 Diagramy Případy uţití, jejichţ číslování začíná nulou, souvisí s nepovinnými poţadavky.
Obrázek 3.2.2.1
24
Obrázek 3.2.2.2
3.2.3 Scénáře 1 Změnit hodnotu veličiny Popis: Aplikace provede změnu hodnotu a tato změna se okamţitě projeví na podobě displeje. Vstupní podmínky: Uţivatel si přeje změnit hodnotu zobrazované veličiny Scénář: 1. Uţivatel se přepne na kartu, na které je moţno veličinu změnit 2. Pomocí příslušného ovládacího prvku změní hodnotu veličiny Výstupní podmínky: Hodnota je změněna 2 Zobrazit popis veličiny Popis: Aplikace zobrazí pomocí internetového prohlíţeče popis dané veličiny Vstupní podmínky: Uţivatel si přeje zobrazit popis veličiny Scénář: 1. Uţivatel se přepne na kartu, na které se nachází ovládací prvek pro nastavení veličiny, jejíţ popis si přeje zobrazit 2. Kliknutím na tlačítko s ikonou nápovědy uţivatel otevře popis veličiny Výstupní podmínky: Je zobrazen popis poţadované veličiny 3 Zobrazit popis měřícího systému Popis: Aplikace zobrazí pomocí internetového prohlíţeče popis systému, který měří danou veličinu Vstupní podmínky: Uţivatel si přeje zobrazit popis měřícího systému Scénář:
25 1. Uţivatel se přepne na kartu, na které se nachází ovládací prvek pro nastavení veličiny, u níţ si přeje zobrazit popis měřícího systému 2. Kliknutím na tlačítko s ikonou systému uţivatel otevře popis měřícího systému Výstupní podmínky: Je zobrazen popis poţadovaného měřícího systému 4 Přejít na popis veličiny Popis: Aplikace zobrazí popis veličiny, která je měřena měřícím systémem, jehoţ popis je zobrazen Vstupní podmínky: Je zobrazen popis měřícího systému, uţivatel si přeje přejít na popis měřené veličiny Scénář: 1. Uţivatel klikne na odkaz na měřenou veličinu Výstupní podmínky: Je zobrazen popis měřené veličiny 5 Přejít na popis měřícího systému Popis: Aplikace zobrazí popis měřícího sytému, který měří veličinu, jejíţ popis je zobrazen Vstupní podmínky: Je zobrazen popis veličiny, uţivatel si přeje přejít na popis měřícího systému Scénář: 1. Uţivatel klikne na odkaz na měřící systém Výstupní podmínky: Je zobrazen popis měřícího systému 0.1 Vybrat polohovací zařízení Popis: Aplikace začne reagovat na vstup z vybraného zařízení Vstupní podmínky: Zařízení, které si uţivatel přeje vybrat, je připojeno k PC, pokud je to nutné, je nainstalován ovladač zařízení Scénář: 1. Výběrem poloţky v hlavním menu zobrazí uţivatel dialog s výběrem zařízení 2. Uţivatel vybere ze seznamu poţadované zařízení 3. Výběr potvrdí stisknutím tlačítka OK Výstupní podmínky: Aplikace reaguje na vstupy vybraného zařízení 0.2 Zobrazit okno PFD Popis: Aplikace zobrazí okno, ve kterém je vykreslen PFD Vstupní podmínky: Uţivatel si přeje zobrazit okno PFD, okno PFD je skryto Scénář: 1. Kliknutím na zaškrtávací poloţku v hlavním menu uţivatel zobrazí okno Výstupní podmínky: Je zobrazeno okno PFD 0.3 Skrýt okno PFD Popis: Aplikace skryje okno, ve kterém je vykreslen PFD Vstupní podmínky: Uţivatel si přeje skrýt okno PFD, okno PFD je zobrazeno Scénář: 1. Klinutím na zaškrtávací poloţku v hlavním menu uţivatel skryje okno Výstupní podmínky: Okno PFD je skryto 0.4 Přiblížit obraz Popis: Obraz PFD v jeho okně je zvětšen Vstupní podmínky: Uţivatel si přeje přiblíţit obraz PFD, kurzor myši se nachází nad oknem s PFD Scénář: 1. Uţivatel otočí kolečkem myši KDYŢ uţivatel otočil kolečkem myši nahoru Obraz PFD je přiblíţen JINAK Obraz PFD je oddálen Výstupní podmínky: Změna přiblíţení je okamţitě viditelná
26 0.5 Posunout obraz Popis: Přiblíţený obraz PFD je posunut Vstupní podmínky: Uţivatel si přeje posunout obraz PFD, obraz PFD je přiblíţen Scénář: 1. Uţivatel stiskne a drţí levé tlačítko myši 2. Uţivatel pohne myší ve směru posunu obrazu PFD Výstupní podmínky: Posun obrazu je okamţitě viditelný
3.2.4 Tabulka mapování případů užití na funkční požadavky Případ užití Požadavek
1
1 X 2 3 4 0.1 0.2 X 0.3 0.4 0.5
2
3
X
X
0.1 0.2 0.3 0.4 0.5
X
3.3 Analytické třídy
Obrázek 3.3.1.1
5
X
Tabulka 3.2.4.1
3.3.1 Diagram
4
X X
X X X
27
3.3.2 Popis tříd Joystick Třída je zodpovědná za udrţování informací o uţivatelem vybraném zařízení. Vlákno joystickThread kontroluje vstup metodou checkJoystickInput a na základě výchylky ovladače upravuje data v přidělené instanci třídy AircraftPrimaryFlightData. Pfd Třída je zodpovědná za vykreslování obrazu primárního letového displeje pomocí graphicsDevice v metodě draw, která je neustále volána ve vlákně drawThread. Vykreslení probíhá vykreslením všech vlastněných instancí DisplayPart. Při tom musí být dodrţeno jejich pořadí. AircraftPrimaryFlightData Sdruţuje primární letové veličiny a umoţňuje změnit bočný a podélný náklon pomocí metod rollChange a pitchChange. Tyto metody zajistí i potřebnou změnu ostatních závislých veličin. Metoda updateValues zajišťuje změnu závislých veličin podle doby, která uběhla od poslední změny. Doba je předávána jako parametr timeStep. Metoda je pouţívána pro potřeby animace a jednoduché simulace letu. DisplayPart Třída vykresluje, na základě dat z vlastněné instance třídy AircraftPrimaryFlightData, učitou část displeje. Ke kreslení vyuţívá vlastněné instance GraphicsPrimitive. GraphicsPrimitive Sdruţuje informace o jednoduchém grafickém tvaru (čára, text) a umoţňuje jeho vykreslení pomocí metody draw. Description Třída umoţňuje zobrazit internetovou stránku pomocí metody showPage. Stránku zobrazuje ve vlastněném internetovém prohlíţeči webBrowser. Tato třída bude pouţívána pro zobrazení popisů veličin a měřících systémů. Attitude, Altitude, Heading, Speed, VerticalSpeed Tyto třídy člení data v AircraftPrimaryFlightData do skupin a jsou pouţity hlavně z důvodu zpřehlednění.
28
29
4 Návrh 4.1 Zvolené technologie Vzhledem k tomu, ţe aplikace bude vytvářena pro operační systém Windows, bude pro komunikaci se vstupním zařízením (joystick) a pro vykreslování grafických prvků pouţit DirectX. V případě komunikace s externím zařízením se jedná pravděpodobně o nejpohodlnější způsob komunikace. Pro zobrazování je tato technologie vhodná kvůli jejímu přímému přístupu ke grafickému zařízení a tím umoţněné akceleraci. Konkrétně budou pouţity součásti Direct input a Direct3D. Pro implementaci bude poţit jazyk C# a vývojové prostředí Visual Studio 2008. K běhu aplikace tedy bude potřeba .Net Framework 2.0. V případě spojení .Net Framework a DirectX se hovoří o takzvaném Managed DirectX. Ten pro komunikaci s daným zařízením pouţívá třídy Device. U Direct input se pomocí Device čte stav vstupního zařízení (u joysticku například výchylka na ose x). Direct3D Device umoţňuje vykreslovat základní tvary (trojúhelníky, čáry), s jeho pomocí se nastavují transformace a vytvářejí Mesh objekty, které udrţují informace o skupinách bodů, které tvoří grafický objekt.
4.2 Diagram komponent Diagram komponent popisuje součásti, ze kterých je výsledná aplikace sestavena. Tyto součásti spolu komunikují pomocí interface, nebo pomocí tříd, které poskytují jiné součásti moţnost volat metody, nebo pracovat s veřejnými členskými proměnnými (v tomto případě se nejedná o interface). Na obrázku 4.2.1 je diagram komponent vytvářené aplikace.
Obrázek 4.2.1
Komponenta GUI, která zajišťuje komunikaci s uţivatelem, obsahuje objekt, který zajišťuje kontrolu vstupu joysticku. Vyuţívá komponentu Aircraft data, v níţ nastavuje veličiny související s letounem a dále vyuţívá komponentu Display, pomocí níţ vykresluje PFD. Komponenta Display potřebuje přístup k datům letadla, na jejichţ základě vykresluje jednotlivé části PFD, a také vyuţívá komponentu Graphics engine, která jí umoţňuje vykreslovat základní grafické tvary.
30
4.3 Návrhové třídy Diagramy jsou kvůli jejich velikosti umístěny v příloze A. Zde je uveden popis vývoje analytických tříd na návrhové. Do komponenty GUI přešli analytické třídy Joystick, Pfd a Description. Třídy Pfd a Description se přeměnily na formuláře. Přibyl formulář Controls, který umoţňuje nastavovat jednotlivé veličiny a zároveň zařizuje řízení celé aplikace. Nový je také formulář JoystickSelect, který umoţňuje výběr vstupního zařízení. Komponenta Data se skládá z analytických tříd, které udrţují informace o jednotlivých veličinách. Tyto třídy přešly do návrhu beze změn. Komponenta Display je celá zaloţena na analytické třídě DisplayPart. Vzhledem k tomu, ţe jednotlivé části displeje vyţadují individuální implementaci jejich zobrazení, vzniklo celkem 6 tříd, které jsou odvozené od DisplayPart a překrývají její metodu draw. Komponenta Graphics engine je celá zaloţena na analytické třídě GraphicsPrimitive. Při návrhu přibyla nová třída GraphicsPrimitiveComposition, která pomocí jednoduchého seznamu umoţňuje vytvořit mnoţinu základních tvarů, které lze následně v pořadí jejich přidání jedním příkazem vykreslit. Nakonec ještě přibyly čtyři nové třídy odvozené od analytické třídy GraphicsPrimitive, které reprezentují konkrétní základní tvary. Jedná se o třídy Line, Quad, Ring a Text.
31
5 Implementace 5.1 Použité nástroje Pro implementaci aplikace jsem vyuţil Visual Studio 2008. Jedná se o velice komplexní nástroj, pomocí něhoţ je moţné vytvořit a spravovat nejen zdrojový kód, ale i diagramy tříd, které jsou přímo propojeny s kódem, a změna jedné části se automaticky projeví na té druhé. Dále je v tomto prostředí moţné jednoduše vytvářet a spouštět jednotkové testy nad konkrétními třídami. Poslední moţností, kterou jsem vyuţil, je jednoduché vytvoření instalačního balíčku, kde stačí pouze nastavit instalované výstupy a součásti jednotlivých projektů. I kdyţ jsem projekt vytvářel sám, rozhodl jsem se pouţít repositář, který umoţňuje jednoduše verzovat projekt a hlavně umoţňuje návrat k některé z předchozích verzí v případě provedení neuváţených změn, jejichţ odstranění můţe být zbytečně zdlouhavé. Pro instalaci Subversion serveru jsem pouţil balíček Svn1ClickSetup staţený z http://svn1clicksetup.tigris.org/, který umoţňuje jednoduchou metodou server nainstalovat i nakonfigurovat. Nakonec jsem ještě musel nainstalovat AnkhSVN modul pro Visual Studio, který mu umoţňuje přístup k SVN serveru, který v mém případě běţel na localhost.
5.2 Nejdůležitější části kódu Nejsloţitějším výpočtem, který souvisí s primárními letovými veličinami, je výpočet Machova čísla. double v0 = (tcbSpeed.Value * 1.8532) / 3.6; double ph = Math.Pow(Math.Pow(1013, 0.19026) * (1 - (double)nudAltitudeMeters.Value / 44330.0), 1.0 / 0.19026); double pd = 1013 * (Math.Pow((Math.Pow((v0 / 340.294), 2) / 5) + 1, 3.5) - 1); double M = Math.Pow(5 * (Math.Pow(pd / ph + 1, 2.0 / 7.0) - 1), 0.5);
Na tomto kódu je ukázán postup výpočtu při známé výšce a kalibrované rychlosti. Na prvním řádku je převod kalibrované rychlosti v uzlech na rychlost v metrech za sekundu. V ADC se Machovo číslo počítá ze známého statického a celkového tlaku podle následujícího vzorce.
Přičemţ pd je rozdíl celkového a statického tlaku a p h je statický tlak. Před tímto výpočtem je tedy nutné zjistit rozdíl celkového a statického tlaku z kalibrované rychlosti a statický tlak z výšky. Toho se dosáhne úpravou následujících vzorců.
Tento vzorec slouţí pro výpočet kalibrované rychlosti a lze z něho vyjádřit pd, vz0 je rychlost zvuku (340,294 m/s) a p0 je vztaţná úroveň tlaku, u níţ dosazuji její standardní hodnotu 1013 mb.
Z rovnice pro výpočet výšky lze po dosazení vztaţné úrovně tlaku p 0 (stejně jako u rychlosti 1013 mb) jednoduše vyjádřit statický tlak ph.
32 Další zajímavou částí kódu je vytvoření základního tvaru prstenec z trojúhelníků. Prstenec je sloţený z několika čtyřúhelníků. Jejich počet je zadáván při jeho vytváření. K vytvoření prstence je vyuţita chráněná metoda createRing třídy GraphicsPrimitive. Tuto metodu vyuţívá konstruktor třídy Ring, který umoţňuje ještě zadat dva úhly pro vytvoření výseče. static protected Mesh createRing(Device device, Color color, double x, double y, double r1, double r2, int numSegs, double deg1, double deg2) { double deg1r = deg1 * (Math.PI / 180); double deg2r = deg2 * (Math.PI / 180); double segDeg = (deg2r - deg1r) / numSegs; List
segments = new List(); List<short> segmentIndices = new List<short>(); for (int i = 0; i < numSegs; i++) { CustomVertex.PositionColored[] tempVert; short[] tempInd; createRingSegment(color, x, y, r1, r2, deg1r + i * segDeg, deg1r + (i + 1) * segDeg, out tempVert, out tempInd); segments.AddRange(tempVert); for (int j = 0; j < tempInd.Length; j++) segmentIndices.Add((short)(tempInd[j] + (i * 4))); } Mesh res = new Mesh(2 * numSegs, 4 * numSegs, MeshFlags.Managed, CustomVertex.PositionColored.Format, device); res.SetVertexBufferData(segments.ToArray(), LockFlags.Discard); res.SetIndexBufferData(segmentIndices.ToArray(), LockFlags.Discard); return res; } static private void createRingSegment(Color color, double x, double y, double r1, double r2, double deg1, double deg2, out CustomVertex.PositionColored[] vertices, out short[] indices) { double dx1 = r2 * Math.Cos(deg1); double dy1 = r2 * Math.Sin(deg1); double dx2 = r2 * Math.Cos(deg2); double dy2 = r2 * Math.Sin(deg2); double dx3 = r1 * Math.Cos(deg2); double dy3 = r1 * Math.Sin(deg2); double dx4 = r1 * Math.Cos(deg1); double dy4 = r1 * Math.Sin(deg1); vertices = new CustomVertex.PositionColored[4]; vertices[0].Position = new Vector3((float)(x - dx1), (float)(y + dy1), 0); vertices[0].Color = color.ToArgb(); vertices[1].Position = new Vector3((float)(x - dx2), (float)(y + dy2), 0); vertices[1].Color = color.ToArgb(); vertices[2].Position = new Vector3((float)(x - dx3), (float)(y + dy3), 0); vertices[2].Color = color.ToArgb(); vertices[3].Position = new Vector3((float)(x - dx4), (float)(y + dy4), 0); vertices[3].Color = color.ToArgb(); indices = new short[6]; indices[0] = 0; indices[1] = 1; indices[2] = 3; indices[3] = 1; indices[4] = 2; indices[5] = 3; }
Poslední částí kódu, o které se chci zmínit je vykreslování PFD. To probíhá neustále ve vlákně drawThread, které má nastavenu normální prioritu.Toto vlákno je nutné pozastavit v případě, ţe není k dispozici komponenta, na kterou se kreslí (FrmPfd). To nastane při změně velikosti formuláře, nebo při jeho skrytí. V tomto případě jsem pouţil metodu suspend třídy Thread. Tato metoda sice není doporučena, ale pro tento účel je dostačující. Nedoporučena je z následujícího důvodu: Vlákno můţe zablokovat nějaký zdroj, a pokud je v tu chvíli pozastaveno, zůstane zdroj zablokovaný. Tato situace však v tomto případě nastat nemůţe. Pro znovurozběhnutí vlákna je pouţita metoda resume.
33
6 Testování Testování aplikace probíhalo po celou dobu vývoje aplikace a krátkou dobu po jejím dokončení. Jednalo se jak o white-box testování, tak i o black-box testování. V prvním případě se jednalo hlavně o jednotkové testy, které jsou blíţe popsány v kapitole 6.1, kde bylo hlavním cílem projít a ověřit funkčnost všech větví testovaného kódu. Druhý způsob testování byl vyuţit při testech grafického uţivatelského rozhraní (GUI – Graphics user interface), kdy byly testovány všechny funkce rozhraní, bez ohledu na znalost pokrytí kódu. Tyto testy jsou blíţe popsány v kapitole 6.2.
6.1 Jednotkové testy Tyto testy jsem aplikoval pouze na komponentu data. U tříd z ostatních komponent by byly tyto testy natolik sloţité, ţe by příliš zvětšily rozsah této práce. Například u komponent display a graphics engine, by bylo velice sloţité kontrolovat výstup jednotlivých metod, které něco vykreslují. Mimo jiné by bylo velice sloţité v rámci testu poskytovat komponentám zařízení, na které by mohly své výsledky vykreslovat. Kaţdopádně byly tyto komponenty dostatečně a důsledně otestovány v rámci GUI testů. Třídy v komponentě data jsou jednotkovými testy pokryty ze 100%. Stejně je na tom pokrytí jejich metod a vlastností. Při kaţdém testu je postupováno stejným způsobem. Nejprve jsou předloţena standardní data a je zkontrolován výsledek. Dále jsou předloţeny mezní hodnoty a nakonec je pouţito několik náhodných hodnot, které rozsahem překračují mezní hodnoty na obou stranách spektra. Při současném stavu aplikace projdou všechny testy, kromě testů tří metod, které nejsou doposud implementovány. Jedná se o metody, které zajišťují jednoduchou změnu dat na základě změny polohy, a které souvisí s pouţitím vstupního polohovacího zařízení. Tyto metody nejsou doposud implementovány. Následuje příklad jedné metody z jednotkového testu třídy Speed. /// <summary> ///A test for SpeedValue /// [TestMethod()] public void SpeedValueTest() { Speed target = new Speed(); //Test meznich hodnot target.SpeedValue = 0; double expected = 0; double actual = target.SpeedValue; Assert.AreEqual(expected, actual); target.SpeedValue = 400; expected = 400; actual = target.SpeedValue; Assert.AreEqual(expected, actual); target.SpeedValue = 450; expected = 400; actual = target.SpeedValue; Assert.AreEqual(expected, actual); target.SpeedValue = -5; expected = 0; actual = target.SpeedValue; Assert.AreEqual(expected, actual); //Test 50 nahodnymi vstupy double randomVal; Random randomizer = new Random();
34 for (int i = 0; i < 50; i++) { randomVal = (randomizer.NextDouble() - 0.5) * 1200; target.SpeedValue = randomVal; expected = randomVal; if (randomVal > 400) expected = 400; if (randomVal < 0) expected = 0; actual = target.SpeedValue; Assert.AreEqual(expected, actual); } }
6.2 Testy GUI V tomto případě jsem vyuţil manuálních testů, které jsem prováděl po dokončení kaţdé etapy implementace. S kaţdou novou verzí byly otestovány i nové funkce aplikace. Testoval jsem hlavně funkci jednotlivých ovládacích prvků, které nastavují zobrazované veličiny, a v případě ţe jiţ bylo implementováno jejich zobrazení, kontroloval jsem jeho správnost a kvalitu. Test právě doimplementované funkčnosti jsem provedl ihned po provedení kompilace. Takto byly všechny funkce důsledně otestovány a při jejich testování jsem většinou testoval náhodně i některé jiné funkce, například moţnost skrytí okna s displejem, jeho přesunutí a změnu jeho velikosti. Výhodou tohoto stylu testování je, ţe v případě výskytu výjimky, odkáţe vývojové prostředí přímo na místo v kódu, kde k výjimce došlo. Díky tomu lze rychle identifikovat příčinu, opravit chybný kód a po provedení kompilace zopakovat kroky testu, které k výjimce vedly. Díky tomu, ţe vše se odehrává v poměrně rychlém časovém sledu, není třeba dokumentovat postupy jednotlivých testů, protoţe tester, který je v tomto případě i programátorem, má příčiny, části chybného kódu i testovací proceduru v hlavě. Jedinou nevýhodou je nemoţnost odkázání se na některý ze starších testů kvůli některé z výjimek. Tento postup testování lze označit jako white i black box. Tester si je vědom části kódu, které potřebuje dosáhnout, a protoţe je zároveň programátorem, je pro něho snadné vymyslet způsob, jak se k němu dopracovat. O black box testování jde v případě, ţe v rámci testů potřebuje provést operaci, u které nepřemýšlí nad jejími důsledky z pohledu spouštění jednotlivých částí kódu.
35
7 Závěr Podařilo se splnit cíl projektu, kterým bylo vytvoření programu, který zobrazuje PFD. Podařilo se splnit všechny povinné poţadavky. Zobrazení je téměř totoţné s reálnou předlohou. Změna veličin je intuitivní a její projevení v reálném čase funguje i na počítačích s méně výkonnou konfigurací, neţ jaká je uvedena v nefunkčních poţadavcích. Moţnost rozšiřitelnosti aplikace je na velice vysoké úrovni. Není problém přidat část jiţ existujícího displeje, nebo displej nový. Stejně tak by neměla být problematická editace a doplnění html souborů s popisem veličin a měřících systémů. Plán projektu byl překročen o necelý týden. Důvodem byl špatný odhad pracovní doby. K dispozici bylo v některých dnech méně času, neţ bylo původně předpokládáno. Na vině byl i špatný odhad délky trvání implementace, který byl dán nemoţností srovnání takto rozsáhlého projektu s projektem podobným. Z očekávaných rizik se prozatím vyskytlo pouze jedno. Jedná se o nízký odhad velikosti projektu. Toto riziko bylo hodnoceno jako nejnebezpečnější (velká moţnost výskytu a poměrně silný dopad). Jedná se o špatný odhad doby implementace. Naštěstí se podařilo riziko, které vzniklo i přes dodrţování protirizikových opatření, odhalit v počátku a po aplikování reakčního scénáře potlačit jeho dopad téměř na nulu. Do budoucna by bylo vhodné doimplementovat nepovinné poţadavky. Tedy moţnost změny náklonů pomocí vstupního polohovacího zařízení a moţnost přiblíţení části displeje a jeho posunování v přiblíţeném reţimu. Díky snadné rozšiřitelnosti, by nemělo být problematické, přidat například zobrazení navigačního, nebo některého ze systémových displejů. Vhodné by bylo doplnění zobrazení PFD o například maximální rychlost, vybranou rychlost a výšku a jiné detaily. Po doplnění dalších funkcí se jiţ můţe projevit náročnost celé aplikace na PC s niţším výkonem. V tomto případě by stála za úvahu implementace grafického engine v jazyce C++, coţ by vyţadovalo hlubší znalost DirectX, ale mohlo by výrazně zvýšit rychlost zobrazování.
36
37
Příloha A Diagramy návrhových tříd Tyto diagramy byly vytvořeny v programu Visual Studio 2008 a v souvislosti s vývojem kódu byly automaticky neustále aktualizovány. Reflektují tedy přesně stav tříd tak, jak jsou implementovány. U formulářů byly kvůli zpřehlednění diagramu schovány některé členské proměnné a metody ošetřující události. Pro detailní prohlíţení diagramů je vhodné vyuţít projekt, který je na přiloţeném CD.
Obrázek A.1
38
Obrázek A.2
Obrázek A.3
39
Obrázek A.4
40
41
Příloha B Uživatelská příručka Poţadavky aplikace: Operační systém Windows .Net Framework 2.0 DirectX 9.0c Doporučená konfigurace PC: Procesor 2 GHz Operační paměť 1 GB grafická karta s podporou DirectX a 32 MB paměti
Instalace Pro instalaci aplikace je doporučeno pouţít jeden z instalačních balíčků, které jsou na přiloţeném CD. Konkrétně se jedná o soubor .exe a .msi. Po spuštění jednoho z těchto dvou souborů je uţivatel informován o tom, jakou aplikaci instaluje. Zkontrolujte, zda jde skutečně o poţadovanou aplikaci a pokračujte stiskem tlačítka next. V dalším kroku zadejte sloţku, do které chcete aplikaci nainstalovat a zvolte, zda bude přístupná všem uţivatelům PC, nebo pouze Vám. Po zadání poţadovaných informací pokračujte stiskem tlačítka next. V dalším kroku potvrďte instalaci aplikace stiskem tlačítka next. Počkejte, neţ se aplikace nainstaluje. Po dokončení instalace zavřete instalační okno stiskem tlačítka close.
Spuštění a ovládání Po instalaci by se na ploše měla objevit ikona aplikace A320_PFD. Aplikace spustíte dvojklikem na tuto ikonu. Okno s displejem můţete libovolně přesunovat a měnit jeho velikost stejným způsobem, jako u jiných oken operačního systému Windows. Okno můţete skrýt pomocí hlavního menu okna s ovládacími prvky. Nastavování veličin se provádí výběrem záloţky s příslušnou kategorií veličiny a následným posunutím jezdce, nebo změnou hodnoty v editovatelném poli. Aplikaci ukončíte kliknutím na kříţek v pravém horním rohu okna s ovládacími prvky.
Odinstalování / reinstalace Pro odinstalování aplikace spustě znovu soubor, pomocí kterého jste aplikaci nainstalovali, nebo ji najděte v seznamu aplikací v poloţce přidat nebo odebrat programy v ovládacích panelech. Po spuštění odinstalace zvolte, zda chcete aplikace přeinstalovat, nebo odinstalovat. První volbu zvolte v případě, ţe máte problémy s funkcí, nebo spuštěním aplikace poté, co Vám nějakou dobu běţela bez problémů. Druhou volbu vyberte, pokud chcete aplikaci smazat z PC. Po výběru akce pokračujte stiskem tlačítka finish. Počkejte, aţ se vybraná akce dokončí. Po skončení akce ukončete instalátor stiskem tlačítka close.
42
43
Příloha C Obsah přiloženého CD Přiloţené CD obsahuje následující soubory a sloţky: index.html install.txt A320_PFD_setup.msi A320_PFD_setup.exe
Stránka s informacemi o CD a s odkazy na ostatní soubory a sloţky Popis postupu instalace aplikace Instalační balíček aplikace Instalační soubor aplikace
exe\
Sloţka obsahující nainstalovanou aplikaci Sloţka obsahující stránky zobrazované jako popis veličin
html\ src\
A320_PFD\ A320_PFD\ A320_PFD_setup\ A320_PFD_Test\ text\
Sloţka obsahuje zdrojové kódy a další součásti projektů aplikace Sloţka obsahuje solution pro Visual Studio 2008 Sloţka s projektem vlastní aplikace Sloţka s projektem pro vytvoření instalačního balíčku Sloţka s jednotkovými testy
Sloţka obsahující tento text bakalářské práce ve formátu PDF
44
45
Zdroje Následující zdroje byly pouţity při tvorbě této práce. Jedná se o zdroje informací a obrázků. PALLET, E.H.J. Aircraft instruments and integrated systems. Longman, 1998. DRAXLER, Karel. Přístrojové systémy letadel I. ČVUT, 2003. Drunken Hyena : DirectX 9 Tutorials - .Net [online]. [2005] [cit. 2009-06-12]. Dostupný z WWW: . DirectX 9 Tutorial using C# [online]. [2005] [cit. 2009-06-12]. Dostupný z WWW: . Instalace SVN Serveru [online]. 26. 2. 2007 [cit. 2009-06-12]. Dostupný z WWW: . Boeing 737 Flight Instruments [online]. c1999 [cit. 2009-06-12]. Dostupný z WWW: . Pics from the office [online]. 2008 [cit. 2009-06-12]. Dostupný z WWW: . A320-Indicating_and_Recording_Systems.pdf. Www.smartcockpit.com [online]. 2006 [cit. 2009-0612]. Dostupný z WWW: .