Střední průmyslová škola elektrotechnická a Vyšší odborná škola, Pardubice, Karla IV. 13 Střední průmyslová škola elektrotechnická
MATURITNÍ ZKOUŠKA PRAKTICKÁ ZKOUŠKA Z ODBORNÝCH PŘEDMĚTŮ
PÍSEMNÁ PRÁCE Plánovač letů
Obor:
78-42-M/001 (39-97-5/01) technické lyceum
Třída:
4.F
Školní rok:
2007/2008 duben 2008
Tomáš Jelínek
„Prohlašuji, že jsem tuto práci vypracoval samostatně a použil jsem literárních pramenů a informací, které cituji a uvádím v seznamu použité literatury a zdrojů informací.“ V Pardubicích, dne ........................
……......................... podpis
Zadání práce 1. Ve vývojovém prostředí Borland Delphi vypracujte aplikaci podle požadavků EBA a.s., provozovatele letiště Pardubice. Aplikace musí být kompatibilní s operačním systémem Microsoft Windows XP a pracovat v rozlišení 1024×768 pixelů. 2. Aplikace graficky zobrazí na časové ose plánovaný stav využití stojánky letiště až 15 letadly za den. 3. Aplikace bude shromažďovat informace o letech do Pardubic, důležité pro obslužné, řídící a technické služby letiště. 4. Aplikace musí být přehledná a jednoduchá na ovládání.
Anotace – česky Aplikace byla vytvořena pro potřeby EBA a.s., provozovatele mezinárodního letiště Pardubice, a je využívána handlingovými agenty a členy technických služeb pro plánování letů. Přehledně graficky zobrazuje plánované lety do Pardubic a podrobné informace o nich vypíše do tabulek rozdělených pro určité skupiny zaměstnanců letiště
Annotation – English This application was built for using by EBA a. s., the operator of Pardubice international airport, and is used by handling agents and technical service crew for flight planning. It digestedly graphically displays scheduled flights to Pardubice and it writes down detail information about them into tables specified for various groups of airport employees.
Obsah PROHLÁŠENÍ AUTORA PRÁCE ................................................................................................................... 2 ZADÁNÍ PRÁCE .............................................................................................................................................. 3 ANOTACE – ČESKY ....................................................................................................................................... 4 ANNOTATION – ENGLISH ............................................................................................................................ 4 OBSAH.............................................................................................................................................................. 5 SEZNAM POUŽITÝCH ZNAČEK A SYMBOLŮ .......................................................................................... 6 1 ÚVOD .......................................................................................................................................................... 7 1.1 ORGANIZACE, ZABÝVAJÍCÍ SE LETECTVÍM .................................................................................. 7 1.2 PROVOZ LETIŠTĚ .................................................................................................................................. 8 1.3 SITA.......................................................................................................................................................... 9 2 HARDWAROVÉ A SOFTWAROVÉ POŽADAVKY ............................................................................. 10 3 INSTALACE ............................................................................................................................................. 11 4 NÁPOVĚDA.............................................................................................................................................. 12 5 OKNO APLIKACE ................................................................................................................................... 13 5.1 DATABÁZE ........................................................................................................................................... 13 5.1.1 LETIŠTĚ .............................................................................................................................................. 14 5.1.2 LETADLA A LETECKÉ SPOLEČNOSTI.......................................................................................... 15 5.2 NASTAVENÍ .......................................................................................................................................... 16 5.3 ZÁLOHA A OBNOVA DAT ................................................................................................................. 17 5.4 PŘIDÁNÍ LETU ..................................................................................................................................... 17 5.5 HISTORIE AKCÍ .................................................................................................................................... 19 5.6 TISK A OBNOVENÍ .............................................................................................................................. 19 5.7 DATUM A ČAS...................................................................................................................................... 20 5.8 ZÁLOŽKY .............................................................................................................................................. 20 5.8.1 ZÁLOŽKA „GRAF“ ............................................................................................................................ 20 5.8.2 ZÁLOŽKA „TABULKA“.................................................................................................................... 21 5.8.3 ZÁLOŽKA „CELNÍCI“ ....................................................................................................................... 21 6 PRAKTICKÁ TVORBA............................................................................................................................ 22 6.1 VLASTNÍ DATABÁZE ......................................................................................................................... 22 6.2 CESTA K DATABÁZÍM ....................................................................................................................... 22 6.3 SPUŠTĚNÍ JEDNÉ INSTANCE ............................................................................................................ 22 6.4 KÓDY ..................................................................................................................................................... 23 6.5 VÝBĚR ADREAÁŘE............................................................................................................................. 23 7 PLÁNY DO BUDOUCNA ........................................................................................................................ 25 8 ZÁVĚR ...................................................................................................................................................... 26 SEZNAM OBRÁZKŮ..................................................................................................................................... 27 SEZNAM POUŽITÉ LITERATURY A ZDROJŮ INFORMACÍ .................................................................. 28 SEZNAM POUŽITÝCH ODBORNÝCH VÝRAZŮ...................................................................................... 29 SEZNAM PŘÍLOH.......................................................................................................................................... 31
Strana 5 z 31
Seznam použitých značek a symbolů •
EBA a. s. – East Bohemian Airport a. s.
•
MHz [megahertz] – 1 MHz = 106 Hz – Hertz je jednotka frekvence, 1 Hz je počet dějů za 1 s. Ve výpočetní technice udává počet operací vykonaných procesorem za 1 s.
•
MB [megabajt] – 1 MB = 10242 B – Bajt je jednotkou počítačové datové kapacity
•
px [pixel] – obrazový bod
•
IATA – International Air Transport Association – Mezinárodní asociace leteckých dopravců
•
ICAO – International Civil Aviation Organization – Mezinárodní organizace pro civilní letectví
•
Wine – Wine Is Not Emulator – Wine není emulátor
•
PAX – Anglická zkratka passengers – cestující
•
CGO – Cargo – náklad
•
GPU – Ground power unit – pozemní zdroj energie
•
SITA – Societé International de Telecomunication Aeronautic – Mezinárodní organizace leteckých telekomunikací
Strana 6 z 31
1
Úvod Letiště Pardubice je regionální letiště se statutem veřejného mezinárodního letiště
se smíšeným civilním a vojenským provozem. Správu civilní části letiště vykonává od roku 1995 společnost East Bohemian Airport (EBA) a. s. Civilní provoz Pardubického letiště se neustále rozrůstá, rostou počty odbavených cestujících i přepraveného nákladu. Z tohoto důvodu již nebylo možné nadále plánovat celý letecký provoz v Pardubicích „na koleně“, a proto jsem byl požádán o vytvoření programu, který by nahradil zastaralé metody plánování a posunul tak Pardubické letiště o krok blíže směrem k větším českým letištím, jakými jsou Ostrava, Brno a Praha. Hlavním
požadavkem
zadavatele
byla
přehlednost
a možnost
uchování
komplexních informací o jednotlivých letech. Abych mohl program maximálně přizpůsobit potřebám zadavatele, byl jsem během tvorby aplikace seznámen s provozem na letišti, pravidly leteckého provozu i s činností mezinárodních organizací, zabývajících se civilním leteckým provozem.
1.1
Organizace, zabývající se letectvím S koncem 2. světové války vznikla potřeba sjednocovat pravidla a značení
mezinárodního leteckého provozu. Proto roku 1945 vznikla organizace Mezinárodní asociace leteckých dopravců IATA, která sdružuje více než 240 leteckých dopravců celého světa a stanovuje pravidla pro leteckou dopravu. Mimo jiných činností přiděluje třípísmenné kódy civilním letištím, dvojpísmenné kódy přepravcům a tříznakové kódy letadlům. Tyto kódy se však neshodují s označováním Mezinárodní organizace pro civilní letectví ICAO, která reguluje mezinárodní letectví a vydává podobné kódy, avšak čtyřpísmenné pro letiště, třípísmenné pro přepravce a čtyřznakové pro letadla. Je s podivem, že tyto kódy nebyly za více než půl století sjednoceny. Kódy ICAO se používají při podávání a zpracování letových plánů, zatímco kódy IATA se používají při komunikaci mezi letišti a dopravními společnostmi pro zasílání provozních zpráv, jako jsou informace o naložení letadla, počtu cestujících, pohybu letadla, popřípadě seznamy cestujících.
Strana 7 z 31
1.2
Provoz letiště O provoz na letišti se stará několik skupin zaměstnanců. O komunikaci s posádkami
letadel, leteckými dopravci a cestujícími i o odbavení se stará oddělení handlingu. Kontrolu vnášení zakázaných látek na palubu letadla a ostrahu letiště má na starosti bezpečnostní agentura. O pasovou kontrolu při letech mimo Evropskou unii se stará pohraniční policie a veškerou techniku kolem letadla, nakládku, plnění paliva a přistavení schodů zajišťuje skupina technických služeb. Dále je na letišti přítomna celní správa, která se stará o proclení zavazadel, nákladů a paliva na mezinárodních letech. Program byl původně vytvořen pouze pro potřeby handlingu a obsahoval jen základní informace, ale později byl rozšířen tak, aby uspokojil potřeby všech oddělení. Starší verze programu bez záložek a s omezenými funkcemi je ilustrována na obrázku 1.
Obr. 1 Jedna z prvních verzí programu – verze 1.2
Strana 8 z 31
1.3
SITA SITA je specializovaná síť pro posílání zpráv podobných e-mailu, jež nahradila
dálnopisnou síť. Slouží ke komunikaci mezi společnostmi leteckého průmyslu (letecké společnosti, cestovní agentury, handlingové společnosti, cargo společnosti atd.) Zprávy posílané sítí SITA mají vždy přesně definovaný formát. Okem laika se jedná o nesrozumitelné shluky písmen. Příklad takové zprávy je na místě: MVT - LH3237/01.DADHE.PRG - AD1050/1102 EA1216 DUS - PX032. Pro laika tento nesrozumitelný text říká: letadlo společnosti Lufthansa na lince 3277 s označením letadla DADHE dne 1. v měsíci odlétlo z Prahy-Ruzyně, v 10,50 hod. začalo pojíždět a z vzlétlo v 11,02 hod., přílet do Düsseldorfu je očekáván ve 12,16 hod. Na palubě je 32 pasažérů. Zprávy o pohybu letadel jsou jen jedním z mnoha standardizovaných druhů zpráv v systému SITA, jiné informují například o převáženém nákladu či o cestujících na palubě letadla. Všechny tyto informace jsou samozřejmě v koordinovaném světovém čase (UTC), podle kterého létají všechna letadla na celém světě.
Strana 9 z 31
2
Hardwarové a softwarové požadavky Aplikace je připravena pro počítače s operačním systémem Windows XP, ale lze ji
spustit i na systémech Windows 98, 2000 a Millenium Edition. Pomocí nástroje Wine lze aplikaci spustit také na počítačích s operačním systémem Linux, ve kterém pracuje korektně, jen s drobnými grafickými nepřesnostmi. Operační systém MS-DOS aplikaci nepodporuje. S jinými operačními systémy (Windows Vista, Macintosh) nebyl program testován. Minimální požadavek na procesor je frekvence 100 MHz a ke spuštění je třeba operační paměť alespoň 32 MB. Toto je považováno za minimum, neboť na počítači s horšími vlastnostmi nebyl program testován. Program není náročný ani na místo na disku a i s plnou databází mu stačí 20 MB volného místa. Důležitou podmínkou je rozlišení monitoru alespoň 1024×768 px, jinak by se formulář nezobrazil celý.
Strana 10 z 31
3
Instalace Instalace aplikace byla vytvořena v programu Inno Setup Compiler 5.2.2, který je
volně ke stažení na internetu. Pomocí této aplikace byl vytvořen jednoduchý, ale profesionálně vypadající instalační program, který nejen rozbalí všechny potřebné soubory, ale dá uživateli možnost vytvořit zástupce v nabídce Start, na panelu rychlého spuštění či na ploše. Zástupce může být na ploše umístěn pro všechny nebo jen pro aktuálního uživatele. Uživatel si také může zvolit, zda nainstaluje celý program včetně prázdných databází, či jen aplikaci s nápovědou. Další kvalitou programu Inno Setup je možnost zapisovat během instalace do konfiguračních souborů. Tato možnost byla využita, aby byla do nastavení aplikace zapsána výchozí cesta k databázím. Další užitečnou vlastností je možnost zapsání kódu v jazyce Pascal, který se vykonává v různých obdobích instalace. Tento kód byl využit k přidání mé e-mailové adresy, která po kliknutí otevře poštovního klienta s vyplněnou adresou na autora a předmětem zprávy. Dalším využitím kódu je zajištění nemožnosti spuštění procesů instalace a odinstalace a samotné aplikace současně.
Strana 11 z 31
4
Nápověda Nápověda byla vytvořena v programu HelpMaker 7.3.40.0, který je také volně ke
stažení. Program nabízí tvorbu nápovědy ve všech standardních formátech. Těmito formáty jsou html nápověda *.chm a *.htm, textová podoba *.rtf a nápověda systému Windows *.hlp. K Plánovači byla zvolena *.chm nápověda, neboť se zdá být nejpřehlednější a nabízí nejvíce možností. Byla zde snaha o přehledné členění nápovědy do kategorií a podkategorií podle toho, jak se s nimi uživatel setká. Byly přidány ilustrační obrázky z aplikace pro dobrou orientaci a hypertextové odkazy, aby bylo uživateli zrychleno hledání v nápovědě. Ke konci nápovědy jsou uvedeny řešení některých problémů, které sice nejsou předpokládány, avšak jejich výskyt nelze stoprocentně vyloučit, a kontakt na autora práce.
Strana 12 z 31
5
Okno aplikace Po spuštění programu se uživateli ihned zobrazí okno hlavního formuláře. V horní
liště jsou tlačítka pro vyvolání formulářů nastavení a zálohy a obnovení databáze uložených letů. Třetí tlačítko slouží k rozšíření lišty o tlačítka pro přístup k databázím. V pravé části lišty se nacházejí tlačítka nápovědy, informací o programu a tlačítka minimalizovat a zavřít, známá z prostředí Windows. Současnou podobu programu ve verzi 2.3 si můžete prohlédnout na obrázku 2.
Obr. 2 Hlavní okno programu
5.1
Databáze Aplikace kromě hlavní databáze, ve které jsou uchovány veškeré informace
o letech, využívá ještě databáze letišť, označení letadel a leteckých společností, které usnadňují zadávání informací o letu a zrychlují práci s aplikací.
Strana 13 z 31
5.1.1 Letiště Na formuláři databáze letišť (na obrázku 3) se nachází tabulka s vypsanými informacemi z databáze letišť. Ta shromažďuje IATA a ICAO kódy, názvy letišť a kódy států podle normy ISO 3166-1 alpha-3, které jsou převáděny na jejich názvy. Z tohoto formuláře se pomocí tlačítek dají informace v databázi přidávat, mazat či upravovat. Upravovat se dají také dvojklikem na příslušný řádek, mazat lze také stiskem klávesy delete.
Obr. 3 Formulář databáze letišť
Editace informací o letišti se provádí na jednoduchém formuláři, kam uživatel vyplní čtyřpísmenný kód ICAO, třípísmenný kód IATA, název letiště a ze seznamu vybere zemi, ve které se letiště nachází. Formulář editace letiště je zobrazen na obrázku 4.
Obr. 4 Editace informací o letišti
Strana 14 z 31
5.1.2 Letadla a letecké společnosti Databáze letadel a databáze leteckých společností se zobrazuje v totožném formuláři. Jde pouze o seznam, který lze upravovat a který se posléze zobrazuje v rozbalovacím poli v okně editace letů. Formuláře jsou ilustrovány na obrázcích 5 a 6. Pokud je v textovém poli zadán text již existujícího řetězce, je aktivní tlačítko odebrat (-). Pokud text dosud není v databázi, je přístupné tlačítko přidat (+). Kliknutím na záznam se jeho text zkopíruje do editačního pole. Poté je možno jej odebrat bez vypisování celého textového řetězce.
Obr. 5 Formulář databáze letadel
Obr. 6 Formulář databáze leteckých dopravců
Strana 15 z 31
5.2
Nastavení Formulář nastavení se vytváří při startu programu, neboť možnosti programu nejen
upravuje, ale i ukládá a načítá do celé aplikace. Zobrazení tohoto formuláře se vyvolá stisknutím tlačítka nastavení v horním panelu hlavního okna programu. V tomto okně lze nastavit, podle jakého kritéria se budou řadit lety v tabulce a grafu. Na výběr jsou možnosti řazení podle času příletu a času odletu. Dále lze nastavit barvy grafu pro plánovaný, nabízený a schválený let a parametry poznámky dne. Jelikož program bude využívat více skupin uživatel z více počítačů, je důležité, aby fungoval na lokální síti. Proto je na formuláři nastavení k dispozici nastavení cesty k databázím. Problém by mohl nastat, pokud by do databáze byla ve stejnou chvíli odeslána data z několika různých počítačů. Tento problém jsem však nemusel řešit, neboť právo upravovat databázi má pouze oddělení handlingu. Ostatní skupiny mají k dispozici pouze upravenou verzi aplikace bez možnosti editace. Všechna výše jmenovaná nastavení se ukládají do konfiguračního souboru s názvem „setting.dat“. Formulář nastavení je vyobrazen na obrázku 7.
Obr. 7 Formulář nastavení
Strana 16 z 31
5.3
Záloha a obnova dat Formulář zálohy je jednoduchým formulářem, který obsahuje pouze dvě tlačítka
a popisek, kdy byla naposledy provedena záloha. Formulář je vidět na obrázku 8. Tlačítkem zálohovat se celá databáze uloží do souboru „board.bup“ a tlačítkem obnovit se po potvrzení, že uživatel chce akci provést, naopak databáze z téhož souboru načte. Doporučuje se provádět zálohu každý den, neboť se může stát, že pokud bude program násilně ukončen v době ukládání do databáze, poškodí se data. Soubor „board.bup“ a „board.dat“ jsou po záloze totožné. V případě problémů s načítáním a spouštěním stačí změnit příponu „bup“ na „dat“ a program bude i nadále fungovat. Během testování ani praktického použití k těmto problémům nedošlo, avšak nelze vyloučit, že při dlouhodobém provozu programu může tato situace nastat.
Obr. 8 Formulář zálohy
5.4
Přidání letu Pod horní lištou vlevo se nachází tlačítko se symbolem červeného plus, které slouží
pro přidání nového letu. To vyvolá formulář, zobrazený na obrázku 9, ve kterém uživatel vyplní všechny potřebné údaje. Je třeba vyplnit datum, číslo letu a časy příletu a odletu. Lety takzvané general aviation nemají číslo letu a proto se místo něj automaticky doplňuje mezera. Číslo letu totiž program považuje za identifikátor, podle něhož pozná, zda let existuje, nebo je v databázi pro něj rezervované pouze prázdné místo. Naopak u pravidelných charterových letů a linkové dopravy se stejné údaje opakují každý týden a pro ulehčení práce s opakovaným zadáváním byl vytvořen automatický opakovač až do zadaného data. Ten přidá do každého sedmého dne od prvního data totožný let. Tyto lety však nejsou nijak dále provázány a jejich případná editace se proto musí provádět v každém z nich. Letecká společnost, která chce uskutečnit let na Pardubické letiště, musí podat žádost o slot, což je časový úsek, po který bude letadlo stát v Pardubicích. Protože letiště
Strana 17 z 31
nemá dostatečné kapacity na odbavování více letadel zároveň, musí často odmítnout časový úsek a nabídnout jiný a se společností se domluvit na kompromisu. Aby program byl připraven na plánování, udržuje v databázi čas nabízený i požadovaný, který se posléze stane i časem konečným. K odlišení plánujícího se a pevně daného letu slouží zaškrtávací políčko. Mnohdy se stává, že zaměstnanci letiště netuší, odkud letadlo přiletí, ani kam přesně bude pokračovat. Proto kromě možnosti zadat výchozí a cílové letiště kódy IATA nebo ICAO existuje možnost zadat pouze zemi místo letiště. Do databáze se ukládá pouze ICAO kód, a proto pokud je zadána pouze země, do databáze se zapisuje její ISO 3166-1 alpha-3 kód s předřazenou nulou. Dalšími zadávanými položkami jsou informace, zda bude letadlo plněno palivem, jakým množstvím a jak bude palivo zaplaceno. Dále, bude-li požadovat GPU, což je pozemní zdroj elektrické energie, který letadlo využívá, pokud při stání potřebuje elektřinu a nechce či nemůže mít zapnuté motory k její výrobě. Některá letadla mají zabudované vlastní schody ve dveřích či ocasní části, jiná potřebují schody po příletu přistavit. Pro zaznamenání potřeby pojízdných schodů slouží další políčko. Nákladní lety mohou požadovat vysokozdvižnou plošinu pro nakládku do vysokých prostor. I tato možnost zde může být zaznamenána. Dvojice políček, označené cestující a cargo, označují požadavek na odbavení cestujících a nákladu na příletu a na odletu. Všechna výše zmiňovaná políčka mají tři polohy. Prázdný čtvereček znamená, že příslušející položka nebude požadována, symbol odškrtnutí značí, že požadována bude. Pokud není se společností dohodnuto, zda položku bude vyžadovat, políčko může být začerněné. Délka odbavení označuje dobu odbavení cestujících před plánovaným odletem letadla. Prázdné pole pod délkou odbavení slouží jako krátká poznámka pro pracovníky technických služeb. Velké pole přes šířku formuláře je určeno pro libovolné další poznámky týkající se tohoto letu.
Strana 18 z 31
Obr. 9 Okno přidání / editace letu
5.5
Historie akcí Vedle tlačítka pro přidání letu jsou umístěna tlačítka zpět a vpřed, pomocí nichž lze
vrátit chybně uskutečněnou akci. Podobná tlačítka jsou známá z mnoha aplikací, avšak v Plánovači zůstávají akce historie přístupné a po restartu aplikace. Toho jsem dosáhl pomocí ukládání akcí do souborů „undo.dat“ a „redo.dat“. Každá provedená akce se tedy zapíše do prvně jmenovaného souboru a pokud je stisknuto tlačítko zpět, přepíše se do souboru druhého. Tyto soubory by časem narostly do velkých rozměrů i přesto, že by byly téměř bez využití. Proto je vedle tlačítek zpět a vpřed ještě tlačítko pro smazání této historie, které vyprázdní oba výše jmenované soubory.
5.6
Tisk a obnovení Na pravé straně formuláře jsou dále umístěna tlačítka pro tisk celého formuláře
a znovu-načtení dat z databáze, pokud byla ručně přepsána.
Strana 19 z 31
5.7
Datum a čas Pod zmiňovanými tlačítky se na každé straně formuláře nachází tlačítka pro
posunutí na předchozí a další den. Tento přechod se na kartách tabulek dá provést stiskem klávesy vlevo respektive vpravo. Přejít na libovolný den lze také pomocí kalendáře umístěného v pravém dolním rohu. Datum aktuálně zobrazovaného dne je označeno uprostřed formuláře, mezi šipkami. Aktuální čas se nachází vpravo nad kalendářem. Tento čas je řízený systémovým časem počítače a proto jeho přesnost a časové pásmo závisí na uživateli aplikace.
5.8
Záložky Pod tlačítky se nacházejí 3 záložky. Na první se nachází grafické zobrazení
naplánovaných letů a na dalších dvou jsou umístěny přehledné tabulky určené pro členy technických služeb a celní správy. Pro všechny záložky je společná poznámka. Mezi záložkami lze přepínat kombinací CTRL+TAB a opačným směrem stiskem kláves CTRL+SHIFT+TAB.
5.8.1 Záložka „graf“ Na kartě grafu se nachází grafické zobrazení jednotlivých letů. Každý let je vyznačen pruhem určité barvy, popřípadě čtverečkem označujícím začátek odbavování letu. Pruh umístěný uprostřed řádku označuje dohodnutý let, ve vrchní části časy požadované dopravcem a ve spodní části jsou znázorněny časy nabízené letištěm. Při pohybu kurzoru nad oblast letu se ve spodní části formuláře zobrazí základní informace o letu. Vedle nich se nachází poznámka dne, do které si uživatel zapisuje důležité údaje pro celý den (např. uzavření letiště pro civilní provoz, přítomné brigádníky nebo poznámky, které si vyměňují zaměstnanci různých směn). Tuto záložku nejčastěji využije oddělení handlingu, a proto jsou zde letiště vypsány kódy letiště podle parametrů IATA, které handling užívá nejčastěji. Mimo nich se za pomoci databáze letišť zobrazuje i název letiště. Pokud byl zadán pouze stát, nikoliv konkrétní letiště, zůstane pole pro kód prázdné a místo názvu letiště se zobrazí název země.
Strana 20 z 31
Nalevo od grafu jsou umístěna tlačítka se symbolem červeného X pro smazání letu, vedle jehož řádku je tlačítko umístěno a tlačítko se zeleným symbolem odškrtnutí, které vyvolá formulář editace letu, jenž je shodný s formulářem přidání letu. Pokud je zobrazován současný den, vykreslí se přes graf červená linie,
Obr. 10 Graf
5.8.2 Záložka „tabulka“ Tato karta slouží převážně pro členy technického oddělení a proto na ní jsou zobrazeny informace o palivu a technických prostředcích. IATA kódy letiště jsou nahrazeny kódem ICAO, které jsou pro techniky důležitější. Pokud byla jako místo odletu a příletu zvolena pouze země, zobrazí se její kód podle normy ISO 3166-1 alpha-3. Informace o označeném letu se zobrazují také v levé dolní části aplikace. Pohybovat se v tabulce lze pomocí šipek nahoru a dolů, šipkami vlevo a vpravo se posouvá datum na další den. Klávesou DELETE se let smaže a dvojklikem na příslušný řádek se vyvolá okno editace letu.
5.8.3 Záložka „celníci“ Kromě zobrazovaných údajů je tato záložka shodná s předchozí. Pracovníci celní správy však potřebují znát země, nikoliv letiště, odkud a kam letadlo letí. Dále se jich týkají informace o palivu, cestujících a nákladu. Klávesové příkazy jsou shodné s příkazy záložky tabulka.
Strana 21 z 31
6
Praktická tvorba Během tvorby aplikace bylo třeba řešit několik problémů. Jak vytvořit databázi, jak
k ní zajistit jednotlivé přístupy a přitom ponechat možnost přistupovat k souborům po síti a jaká data do databáze ukládat
6.1
Vlastní databáze Jelikož jsem aplikaci začal tvořit v polovině třetího ročníku a o databázových
aplikacích jsem se dozvěděl až v ročníku čtvrtém, musel jsem si vypomoci jiným způsobem, než užitím standardních postupů. Proto jsem vytvořil vlastní typy proměnných záznamového typu a jejich pole, které obsahuje 731 × 15 záznamů (po 2 roky každý den 15 letů). Aby uložený soubor s databází nezabíral příliš mnoho místa, neukládá záznamy o letu, jehož číslo má nulovou délku. Tudíž i lety bez označení mají v čísle letu alespoň jeden znak. Tímto znakem je mezera. Ostatní databáze nemají pevně danou velikost a tudíž mohou
obsahovat
libovolné
množství
dat.
Nepředpokládám
ovšem
více
než
65536 záznamů. Proto jsem délku databází omezil maximální hodnotou typu Word a ušetřil tak pár bajtů místa v paměti.
6.2
Cesta k databázím Při startu programu se ze souboru nastavení načte cesta k databázím. Pokud není
adresa zadána, nastaví se cesta k adresáři aplikace. Pokud je cesta zadaná chybně, nebo v adresáři aplikace neexistují soubory databáze, zobrazí se formulář nastavení a nelze jej zavřít, dokud nebude zadána správná cesta. Pokud by byl adresář i přes výzvu k nastavení cesty uzavřen, příkazem halt se okamžitě ukončí celá aplikace.
6.3
Spuštění jedné instance Pokud je již aplikace spuštěna a uživatel se ji pokusí spustit podruhé, nevytvoří se
její nová instance, ale původní spuštěná aplikace se přesune do popředí. To zajišťuje tato část kódu, vyvolaná ještě před inicializací aplikace.
Strana 22 z 31
CreateMutex(nil, false, 'PLÁNOVAČ'); if GetLastError = ERROR_ALREADY_EXISTS then begin ShowWindow(FindWindowW(nil, 'PLÁNOVAČ'), SW_MINIMIZE); ShowWindow(FindWindowW(nil, 'PLÁNOVAČ'), SW_RESTORE); Halt; end; Tento útržek kódu se pokusí vytvořit kritické vlákno, ke kterému nelze vícekrát přistupovat. Poté zjistí poslední chybu odeslanou systému a pokud se vytvoření vlákna nepovede a chyba zní: „Vlákno již existuje,“ zjistí, že je aplikace již spuštěná, minimalizuje původní aplikaci a opět ji obnoví, aby se dostala do popředí, a současnou aplikaci ukončí. Toto je důležité, aby uložené změny nebyly omylem přepsány z druhé instance aplikace.
6.4
Kódy Zaměstnanci letiště mnohdy nevědí, odkud letadlo přiletí a kam bude pokračovat.
Jindy, ač existují tabulky, nemohou nalézt jeden z kódů a proto musí použít jiný. Proto jsem přemýšlel, zda ke každému letu uložit veškeré informace o letišti, či jen jeden kód. Z důvodu minimalizace databáze jsem se rozhodl pro použití jediného kódu a to kódu ICAO, jelikož kód IATA není přidělován všem letištím. Pokud je zadán pouze stát, doplní se před jeho ISO 3166-1 alpha-3 označení znak „0“, pro rozpoznání, že jde o kód státu. Tak celý kód získá délku čtyř znaků, stejně jako má kód ICAO. Pokud není v databázi kód ICAO a letiště je zadáno kódem IATA, umístí se před tento kód znak „1“. Tím opět řetězec nabude délky čtyř znaků a je rozlišitelný od ostatních kódů.
6.5
Výběr adresáře Jelikož v Delphi není standardně komponenta, která by vyvolala formulář pro výběr
adresáře, hledal jsem podobné komponenty na internetu. Po odzkoušení několika příkladů jsem se rozhodl načerpat z nich znalosti a vytvořit vlastní formulář. Ten je sestaven ze
Strana 23 z 31
standardních komponent (tlačítka, rozbalovací pole, textové pole) a komponenty TShellTreeView, která zobrazí stromovou strukturu disku. Výsledný formulář (obr. 11) můžete porovnat s komponentou pbFolderDialog (obr. 12), která se nejvíce přibližovala mým představám. Tato komponenta z dílny dánské společnosti Bak-O-Soft vypadá jako komponenta pro výběr adresáře, kterou používají mnohé aplikace, avšak je distribuována jako shareware, volně pro domácí použití a nesmí být užita v programu, který je dále distribuován. Na této komponentě mi také nevyhovovalo, že nelze zapsat adresu ručně a mnohdy tím urychlit práci.
Obr. 11 Formulář pro volbu cesty k databázím
Strana 24 z 31
Obr. 12 Komponenta pbFolderDialog
7
Plány do budoucna Již v současné době pracuji na vytvoření odbavovacího systému a jsem téměř hotov
s jednoduchým vizuálním informačním systémem pro letiště Pardubice. Rád bych tyto tři aplikace propojil v jeden celek a nadále jej rozvíjel. Také bych v budoucnu chtěl vytvořit adresář a klient pro odesílání zpráv po síti SITA využívané ke komunikaci mezi letišti a leteckými společnostmi a také jej zakomponovat do této práce. K tomuto zprávovému klientovi bych přidal předdefinované zprávy, které by se automaticky doplňovaly pro každý let. V prvé řadě však chci využít nových znalostí z hodin aplikace výpočetní techniky a převést současný jednoduchý databázový systém, který jsem si pro tuto aplikaci vytvořil, do nějaké běžně využívané formy. Tím bych také umožnil využití aplikace po neomezeně dlouhou dobu bez rizika velké náročnosti na výkon počítače.
Strana 25 z 31
8
Závěr Během tvorby této aplikace jsem se naučil mnoho nového. Převážně jsem se začal
zabývat prací se soubory a to jak textovými, typovými i konfiguračními. Přemýšlel jsem i o užití komponent pro vytváření komprimovaných archivů, ale dat je relativně malé množství a neshledal jsem jejich využití opravdovým přínosem.
Strana 26 z 31
Seznam obrázků Obr. 1 Jedna z prvních verzí programu – verze 1.2...............................................................8 Obr. 2 Hlavní okno programu..............................................................................................13 Obr. 3 Formulář databáze letišť ...........................................................................................14 Obr. 4 Editace informací o letišti.........................................................................................14 Obr. 5 Formulář databáze letadel.........................................................................................15 Obr. 6 Formulář databáze leteckých dopravců ....................................................................15 Obr. 7 Formulář nastavení ...................................................................................................16 Obr. 8 Formulář zálohy........................................................................................................17 Obr. 9 Okno přidání / editace letu........................................................................................19 Obr. 10 Graf.........................................................................................................................21 Obr. 11 Formulář pro volbu cesty k databázím ...................................................................24 Obr. 12 Komponenta pbFolderDialog .................................................................................24
Strana 27 z 31
Seznam použité literatury a zdrojů informací [1] Bak-O-Soft - software for business and fun [online]. [2007] , 14. února 2008 [cit. 2008-03-22]. En. Dostupný z WWW:
. [2] General aviation - Wikipedia, the free encyclopedia [online]. [2008] , 27 February 2008 [cit. 2008-03-21]. En. Dostupný z WWW:
. [3] IATA - Wikipedie, otevřená encyklopedie [online]. [2008] , 6.3.2008 [cit. 2008-03-20]. Dostupný z WWW: . [4] IATA kód letiště - Wikipedie, otevřená encyklopedie [online]. [2008] , 27.4.2007 [cit. 2008-03-20]. Dostupný z WWW: . [5] ICAO - Wikipedie, otevřená encyklopedie [online]. [2008] , 4.3.2008 [cit. 2008-03-20]. Dostupný z WWW: . [6] ICAO kód letiště - Wikipedie, otevřená encyklopedie [online]. [2008] , 16.1.2008 [cit. 2008-03-20]. Dostupný z WWW: . [7] Inno Setup [online]. c1997-2008 , March 10, 2008 [cit. 2008-03-22]. En. Dostupný z WWW: . [8] Welcome to Wizacc [online]. c1998-2008 [cit. 2008-03-23]. En. Dostupný z WWW: . [9] Borland Software Corporation. Delphi Help. [s.l.] : [s.n.], 2002. [10] EBrána s. r. o. Letiště Pardubice [online]. c2007 [cit. 2008-03-18]. Dostupný z WWW: . [11] JELÍNKOVÁ, Martina. Využití informačních technologií na Mezinárodním letišti Pardubice. [s.l.], 2007. 37 s. Vedoucí bakalářské práce Ing. Renáta Máchová. [12] ŠINDELÁŘ, Jan. Živě.cz - Tipy a triky v Delphi, díl 7. [online]. [2001] [cit. 2008-03-19]. Dostupný z WWW: .
Strana 28 z 31
Seznam použitých odborných výrazů EBA a. s. (strany 3, 4, 6, 7, 10, 17, 22) Společnost provozující civilní letiště Pardubice
General aviation (strana 17) General aviation, neboli všeobecné letectví je jednou ze dvou kategorií civilního letectví. Do všeobecného letectví patří veškeré soukromé i
komerční lety kromě
vojenských a pravidelných letů.
Handling (strany 4, 8, 9, 16, 20) Oddělení letištního personálu, starající se o odbavení posádek a cestujících a zajišťující služby pro posádky.
Charterové lety (strana 17) Charterové lety jsou lety provozované za účelem dopravy klientů osoby, pronajímající si letadlo. Na tyto lety nelze zakoupit letenku.
IATA kódy (strany 6, 7, 14, 18, 20, 21, 23) Třímístné kódy, které se používají pro označení letišť v letových řádech aerolinek, rezervačních systémech, označení zavazadel apod. Tyto kódy přiděluje Mezinárodní asociace leteckých dopravců
ICAO kódy (strany 6, 7, 14, 18, 21, 23) Každé letiště na světě má od Mezinárodní organizace pro civilní letectví přiděleno jednoznačné čtyřmístné označení, tzv. kód letiště. Tyto kódy se používají ve veškeré oficiální dokumentaci, komunikaci, leteckých mapách apod. Kód letiště podle ICAO má systematickou strukturu: čtyřmístné označení je ve tvaru SSLL, kde SS je označení státu a LL je označení letiště v daném státu. i kódy zemí jsou přidělovány systematicky: první písmeno označuje část země, druhé písmeno pak v příslušné části označuje jeden stát.
Strana 29 z 31
ISO 3166-1 alpha-3 (strany 14, 18, 21, 23) Mezinárodní norma standardizující třípísmenné kódy států a závislých území.
pbFolderDialog (strana24) Placená komponenta Delphi
TShellTreeView (strana 23) Komponenta Delphi, zobrazující adresářovou strukturu.
pbFolderDialog (strana24) Placená komponenta Delphi
Vlákno (strana 23) Vlákno je posloupnost po sobě jdoucích operací.
Wine (strany 6, 10) Program, který umožňuje spouštění aplikací vytvořených pro operační systém Windows i v jiných systémech.
Strana 30 z 31
Seznam příloh •
Disk CD obsahující: o Tuto dokumentaci ve formátu *.doc a *.pdf o Zdrojové kódy programu Plánovač letů 2.3 o Instalační archiv programu Plánovač letů 2.3 o Soubory ukázkové databáze využívané letištěm Pardubice
Strana 31 z 31