VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
NÁVRH A REALIZACE PROGRAMU PRO MĚŘICÍ PŘÍSTROJ EXFO FTB-5700
BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS
AUTOR PRÁCE AUTHOR
BRNO 2015
RADEK STŘÍTESKÝ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS
NÁVRH A REALIZACE PROGRAMU PRO MĚŘICÍ PŘÍSTROJ EXFO FTB-5700 DESIGN AND REALISATION OF A PROGRAM FOR MEASURING EQUIPMENT EXFO FTB-5700
BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS
AUTOR PRÁCE
RADEK STŘÍTESKÝ
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2015
Ing. PETR MÜNSTER, Ph.D.
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací
Bakalářská práce bakalářský studijní obor Teleinformatika Student: Ročník:
Radek Stříteský 3
ID: 154876 Akademický rok: 2014/2015
NÁZEV TÉMATU:
Návrh a realizace programu pro měřicí přístroj EXFO FTB-5700 POKYNY PRO VYPRACOVÁNÍ: Cílem bakalářské práce je návrh a realizace vlastního programu, který by umožňoval ovládání měřicího přístroje EXFO FTB-5700. Kromě automatického měření bude navržený software obsahovat i plánovač měření a modul pro vyhodnocení dlouhodobých měření. DOPORUČENÁ LITERATURA: [1] FILKA, M. Optoelektronika : Pro telekomunikace a informatiku. Vyd. 1. Brno : Centa, 2009. 369 s. ISBN 978-80-86785-14-1. [2] COLLINGS, B., HEISMANN, F., LIETAERT, G. Reference Guides to Fiber Optic Testing, Vol. 2, JDSU : 2010, p. 146. Termín zadání:
9.2.2015
Termín odevzdání:
2.6.2015
Vedoucí práce: Ing. Petr Münster, Ph.D. Konzultanti bakalářské práce:
doc. Ing. Jiří Mišurec, CSc. Předseda oborové rady
UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
ABSTRAKT
Hlavním cílem mé bakalá ské práce je realizace programu pro automatizované m ení disperze optick˝ch sítí. Práce v první ásti stru n vysv tluje optická vlákna, disperze a typy jejího m ení. Je zde popsaná chromatická (CD) a polariza ní vidová (PMD) disperze. Dále je v práci popsané programování pro Windows pomocí Windows 32 API. Jedná se zejména o popis vytvo ení okna aplikace, práce klávesnice a myöi ve Windows, zasílání zpráv procedu e okna a ovládací prvky ve Windows. V poslední ásti je popis realizace programu a podrobn jöí popis nejd leûit jöích funkcí. Také se zde nachází v˝sledné grafy CD a PMD z testovacích automatizovan˝ch m ení.
KLÍ OVÁ SLOVA optické vlákno, disperze, FTB 5700, Windows 32 API
ABSTRACT
Main goal of my Bachelor’s thesis is to realize the program for the automatic measurement of optical networks. First part of this project describes the optical fiber, dispersion and types of measurement. There are described chromatic (CD) and polarization mode (PMD) of dispersion. There is described the programming for Windows by using Windows 32 API. Main part are description of creating window of application, work of keyboard and mouse in Windows, sending messages to window procedure and controlling parts in Windows. There is a description of the program and more detailed description of the most important functions in the last part. We can also find here the graphs CD and PMD from the testing automatic measurements.
KEYWORDS optical fiber, dispersion, FTB 5700, Windows 32 API
ST ÍTESK›, Radek Návrh a realizace programu pro m ící p ístroj EXFO FTB-5700: bakalá ská práce. Brno: Vysoké u ení technické v Brn , Fakulta elektrotechniky a komunika ních technologií, Ústav telekomunikací, 2015. 47 s. Vedoucí práce byl Ing. Petr Münster, Ph.D.
PROHLÁäENÍ Prohlaöuji, ûe svou bakalá skou práci na téma „Návrh a realizace programu pro m ící p ístroj EXFO FTB-5700“ jsem vypracoval samostatn pod vedením vedoucího bakalá ské práce a s pouûitím odborné literatury a dalöích informa ních zdroj , které jsou vöechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalá ské práce dále prohlaöuji, ûe v souvislosti s vytvo ením této bakalá ské práce jsem neporuöil autorská práva t etích osob, zejména jsem nezasáhl nedovolen˝m zp sobem do cizích autorsk˝ch práv osobnostních a/nebo majetkov˝ch a jsem si pln v dom následk poruöení ustanovení § 11 a následujících autorského zákona . 121/2000 Sb., 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), ve zn ní pozd jöích p edpis , v etn moûn˝ch trestn právních d sledk vypl˝vajících z ustanovení ásti druhé, hlavy VI. díl 4 Trestního zákoníku . 40/2009 Sb.
Brno
...............
.................................. (podpis autora)
POD KOVÁNÍ D kuji vedoucímu práce panu Ing. Petrovi Münsterovi, Ph.D. za velmi uûite nou metodickou pomoc a cenné rady p i zpracování bakalá ské práce.
Brno
...............
.................................. (podpis autora)
Faculty of Electrical Engineering and Communication Brno University of Technology Purkynova 118, CZ-61200 Brno Czech Republic http://www.six.feec.vutbr.cz
POD KOVÁNÍ V˝zkum popsan˝ v této bakalá ské práci byl realizován v laborato ích podpo en˝ch z projektu SIX; registra ní íslo CZ.1.05/2.1.00/03.0072, opera ní program V˝zkum a v˝voj pro inovace.
Brno
...............
.................................. (podpis autora)
OBSAH Úvod
11
1 Optická vlákna 1.1 Druhy optick˝ch vláken . . . . . . . . . . . . . . 1.1.1 Jednovidová . . . . . . . . . . . . . . . . . 1.1.2 Mnohavidová s konstantním indexem lomu 1.1.3 Mnohavidová s gradientním indexem lomu 1.2 Disperze v optick˝ch vláknech . . . . . . . . . . . 1.2.1 Chromatická disperze CD . . . . . . . . . 1.2.2 Polariza ní vidová disperze PMD . . . . . 1.3 M ení disperze optick˝ch vláken . . . . . . . . . 1.3.1 M ení chromatické disperze . . . . . . . . 1.3.2 M ení polariza ní vidové disperze . . . .
12 12 13 13 13 13 14 15 15 15 16
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
2 M ící p ístroj 18 2.1 P ístroj FTB 200 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Modul FTB 5700 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Metody automatizovaného ovládání programu 3.1 Ovládání pomocí klikání myöi . . . . . . . . . . 3.2 Ovládání pomocí API . . . . . . . . . . . . . . . 3.3 P ístup k programu pomocí Windows 32 . . . . 3.3.1 Handle . . . . . . . . . . . . . . . . . . . 3.3.2 Vlastní okno aplikace . . . . . . . . . . . 3.3.3 Práce myöi ve Windows . . . . . . . . . 3.3.4 Práce klávesnice ve Windows . . . . . . 4 Praktická ást 4.1 Popis metody eöení . . . . . . . . . . . . . . 4.1.1 Platforma m ícího p ístroje FTB-200 4.1.2 V˝b r metody eöení . . . . . . . . . . 4.1.3 Grafické prost edí programu . . . . . . 4.2 Realizace programu . . . . . . . . . . . . . . . 4.2.1 Realizace Win32 Aplikace . . . . . . . 4.2.2 Ovládání m ícího programu . . . . . . 4.3 Automatizované m ení disperzí . . . . . . . . 4.3.1 M ení optické trasy . . . . . . . . . . 4.3.2 V˝sledky a vyhodnocení . . . . . . . .
. . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . .
20 20 21 21 21 21 24 26
. . . . . . . . . .
29 29 29 29 30 30 30 34 38 38 39
5 Záv r
42
Literatura
43
Seznam symbol , veli in a zkratek
44
Seznam p íloh
45
A Spuöt ní m ení
46
B Obsah p iloûeného CD
47
SEZNAM OBRÁZK 1.1 1.2 1.3 1.4 1.5 2.1 2.2 3.1 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9
Struktura optického vlákna . . . . . . . . . . . . . . . . . . . . . . . Pr b h chromatické disperze . . . . . . . . . . . . . . . . . . . . . Metoda fázového posunu . . . . . . . . . . . . . . . . . . . . . . . . Metoda zpoûd ní impuls . . . . . . . . . . . . . . . . . . . . . . . Metoda interferometrická . . . . . . . . . . . . . . . . . . . . . . . . M ící platforma FTB 200 (p evzaté z www.profiber.eu) . . . . . . Grafické rozhraní programu pro m ení disperzí optick˝ch vláken . . Prost edí programu Auto Mouse Clicker . . . . . . . . . . . . . . . Vzhled programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hlavní funkce m ení . . . . . . . . . . . . . . . . . . . . . . . . . . Struktura oken standardního programu m ení . . . . . . . . . . . . CSV soubor s v˝pisem dat z HTML soubor . . . . . . . . . . . . . Zapojení m ení s p ístrojem EXFO FTB - 200 (EXFO p evzaté z www.profiber.eu) . . . . . . . . . . . . . . . . . . . . . . . . . . . Chromatická disperze vlákna - smotané vlákno . . . . . . . . . . . . Chromatická disperze vlákna - reálné vlákno . . . . . . . . . . . . . Polariza ní vidová disperze - smotané vlákno . . . . . . . . . . . . . Polariza ní vidová disperze - reálné vlákno . . . . . . . . . . . . . .
. . . . . . . . . . . .
12 14 15 16 17 18 19 20 33 35 36 39
. . . . .
39 40 40 41 41
SEZNAM TABULEK 3.1 3.2 3.3 3.4 3.5
Identifikátory pro typy „handle“ . . . . . . . . . Vysv tlení p edpon konstant identifikátor . . . . Zprávy vyvolané kliknutím myöi . . . . . . . . . . Virtuální kódy klávesnice . . . . . . . . . . . . . . Vysv tlení p edpon konstant identifikátor . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
21 22 25 28 28
ÚVOD Cílem bakalá ské práce je návrh a realizace programu, kter˝ by umoû oval automatické ovládání m ícího programu na p ístroji EXFO FTB 200. Platforma FTB 200 s modulem FTB 5700 obsahuje program pro m ení chromatické a polariza ní vidové disperze optického vlákna. Standardní program na p ístroji neumoû uje automatické ovládání a neobsahuje plánova úloh. Plánova úloh je vhodn˝ pro n kolikanásobné m ení disperze ur itého optického vlákna v p edem ur en˝ch asov˝ch intervalech. Disperze, zvláöt polariza ní vidová disperze, je dynamicky se m nící hodnota vlivem okolního prost edí. V první ásti bakalá ské práce se tená seznámí s obecnou charakteristikou optického vlákna. Vysv tlení chromatické a polariza ní vidové disperze a její vlivy na p enos optick˝m vláknem. Je zde uvedeno n kolik metod pro m ení disperze. Dalöí ást práce obsahuje popis m ícího p ístroje s m ícím modulem. Je zde uveden stru n˝ popis p ístroje FTB 200 a modulu FTB 5700 pro m ení chromatické a polariza ní vidové disperze. Dále je v bakalá ské práci uvedeno n kolik metod eöení automatického ovládání programu. Jsou zde obecn popsány metody pro implementaci automatického ovládání m ícího p ístroje. Podrobn tu je popsán p ístup k programu pomocí Windows 32. Je zde popsáno okno aplikace ve Windows. Vysv tleny tu jsou zprávy myöi a klávesnice ur ené pro ur itou aplikaci. Poslední a nejd leûit jöí ásti práce je návrh a realizace programu, kter˝ ovládá m ení. Nachází se zde popis vybrané metody ovládání m ení, problémy s vytvoením grafického programu pro m ící p ístroj, samotná realizace automatizovaného ovládání a testovací automatizované m ení optick˝ch vláken.
11
1
OPTICKÁ VLÁKNA
Optické vlákno je dielektrická struktura v töinou válcové symetrie. P enos informace sv tlovodem umoû uje sv teln˝ paprsek. Nositelem signálu jsou neutrální fotony, které na sebe vzájemn nep sobí. P i p enosu nevznikají ûádná elektrická ani magnetická pole. Optick˝ spoj je tvo en modulovan˝m zdrojem zá ení, optick˝m prost edím a p ijíma em zá ení. Oblast optického zá ení sahá od 100 nm do 1 mm. Pro optick˝ p enos informace má uûöí v˝znam oblast mezi 0,4 aû 1,7 µm. V této oblasti mají materiály pouûívané pro v˝robu vláken nejmenöí útlum. P enos informace optick˝m vláknem je zaloûena na totálním odrazu na rozhraní dvou optick˝ch prost edí s rozdíln˝m indexem lomu. Vlákno je tvo eno válcov˝m dielektrick˝m jádrem s indexem lomu n1 a dielektrick˝m pláöt m s indexem lomu n2 (obr. 1.1). Platí, ûe n1 > n2 . U paprsk , které vstupují do jádra pod menöím úhlem neû ◊ podle rovnice 1.1, dochází na rozhraní jádro - pláö k totálnímu odrazu [3]. cos ◊ =
n2 n1
(1.1)
Obr. 1.1: Struktura optického vlákna
1.1
Druhy optick˝ch vláken
Sv tlovody rozd lujeme podle materiálu a technologie p enosu. Nej ast ji se pro v˝robu sv tlovod pouûívá k emenné sklo, které má nejmenöí útlum. Podle technologie p enosu je d líme na jednovidová a mnohavidová. Mnohavidová optická vlákna dále d líme na vlákna s konstantním indexem lomu jádra a pláöt a na vlákna gradientní s prom nn˝m indexem lomu. 12
1.1.1
Jednovidová
Jednovidová vlákna mají mal˝ pr m r jádra a umoû ují p enos pouze jediného (základního) vidu. U t chto vláken lze dosáhnout niûöích hodnot útlumu. Mal˝ pr m r jádra je naopak nev˝hodou pro navázání sv tla do vlákna. Nej ast ji se pouûívají pro dálkové p enosy [3].
1.1.2
Mnohavidová s konstantním indexem lomu
Tyto vlákna se vyzna ují jednoduchou v˝robou a manipulací. Jejich nev˝hodou je naopak v töí útlum, disperze a malá p enosová kapacita. Vlákna tohoto typu jsou nejvíce pouûívaná na krátké vzdálenosti [3].
1.1.3
Mnohavidová s gradientním indexem lomu
Vlákna mnohavidová s gradientním indexem lomu se vyzna ují zm nou indexu lomu v pr ezu jádra. Maximální hodnota indexu lomu je v ose jádra a sm rem od osy se zmenöuje. Vlákno s gradientním indexem lomu se vyzna uje menöí disperzí, menöím útlumem a sloûit jöí v˝robou. Vyuûívají se pro st edn velké p enosy, s v˝hodou pro multiplexní p enosy [3].
1.2
Disperze v optick˝ch vláknech
Disperze pat í k nejd leûit jöím parametr m optick˝ch vláken, ur uje öí ku pásma a tím i p enosovou rychlost. Disperze vln v optick˝ch vláknech zp sobuje zkreslení p enáöeného signálu, které je definováno jako rozdíl öí ky impulsu v polovin v˝öky na konci a na za átku vlákna. Materiálová disperze je zp sobena kmito tovou závislostí na indexu lomu vlákna. Ve sv tlovodu se materiálová disperze kombinuje s disperzí vlnovodovou, která je ovlivn na geometrick˝mi a materiálov˝mi parametry sv tlovodu. V˝sledn˝ ú inek materiálové a vlnovodové disperze b˝vá ozna ován jako chromatická disperze. Polariza ní vidová disperze (PMD) je dalöím faktorem ovliv ující kvalitu p enosu optick˝m vláknem. Hlavní p í inou PMD je asymetrie optického vlákna. Polariza ní vidová disperze je prom nná v ase a závisí na celé ad faktor jako je pouûit˝ materiál, instalace kabelu a vn jöí vlivy. Dále existuje vidová disperze, která se vyskytuje pouze u mnohavidov˝ch vláken. Disperze je zp sobena rozdílnou rychlostí öí ení jednotliv˝ch vid [4].
13
1.2.1
Chromatická disperze CD
Se vzr stající pot ebou p enosov˝ch kapacit a pouûíváním hustého vlnového multiplexu DWDM (Dense Wavelength Division Multiplex) bylo pot eba za ít m it chromatickou disperzi. P i DWDM se najednou öí í sloûky signálu s rozdílnou vlnovou délkou jinou rychlostí. Tím se nám budou n které sloûky vstupního impulsu signálu p i pr chodu optick˝m vláknem zpoû ovat. Impuls se za ne asov roztahovat a zdeformovan˝ impuls bude zasahovat do vedlejöích bitov˝ch mezer a dojde ke zkreslení p enáöené informace. Velikost disperze optického vlákna udává koeficient chromatické disperze D, definované vztahem 1.2 [4]. D(⁄) =
dtg (⁄) , d(⁄)
(1.2)
kde tg je celkové zpoûd ní signálu p i pr chodu vláknem. Hodnota koeficientu udává rozöí ení impulsu v ps, zdroje zá ení se spektrální poloöí kou 1 nm, po pr chodu vláknem 1 km. Obvykl˝ pr b h chromatické disperze je uveden na obr. 1.2. Technologicky se dá p ipravit vlákno, aby se chromatická disperze v oblasti kolem 1,55 µm blíûila k nule. Tyto p ípady vláken DS (Dispersion Shifted) se d lí na vlákna s posunutou disperzní charakteristikou a plochou disperzní charakteristikou [4].
Obr. 1.2: Pr b h chromatické disperze Se stále pouûívan jöím DWDM nastal problém u staröích poloûen˝ch vláken, jak kompenzovat chromatickou disperzi. Nejpouûívan jöím eöením je pouûít DCF (Disperzion Compensation Fiber) s vysokou hodnotou záporné chromatické disperze. Kompenzace trasy se provádí napojením tohoto vlákna na konci trasy [10].
14
1.2.2
Polariza ní vidová disperze PMD
PMD (Polarization Mode Dispersion) je zkreslení jednotlivého impulsu procházejícího ve dvou na sebe kolm˝ch polariza ních rovinách. Tento jev je zp soben˝ kruhovou nesymetrií optického vlákna, která vzniká p i montáûi nebo v˝rob vlákna. Polariza ní vidová disperze na krátk˝ch vzdálenostech p ibliûn do 10 km je definovaná vztahem 1.3 [4]. P MD =
· l
,
(1.3)
kde l - délka trasy a · - zpoûd ní signálu. Pro v töí vzdálenosti se öí í nelineárn , definované vztahem 1.4 [4]. · P MD = Ô , l
1.3 1.3.1
(1.4)
M ení disperze optick˝ch vláken M ení chromatické disperze
Metoda fázového posuvu a diferenciálního posuvu Metoda fázového posuvu je uvedena jako referen ní metoda pro m ení chromatické disperze. Schéma metody je uvedeno na obr. 1.3. Metoda spo ívá v porovnávání zm ené fáze na konci trasy s fází vstupního signálu. Informace o vstupní fázi je k detektoru p enáöena pomocí referen ní trasy (nap . jiné vlákno v kabelu). K m ení se pouûívá modulovan˝ zdroj zá ení na n kolika vlnov˝ch délkách. Jako detektor je pouûit nap íklad vektorvoltmetr.[5] V praxi se více vyuûívá metoda diferenciálního fázového posuvu. Metoda je zaloûena na m ení rozdílu fází signálu na r zn˝ch vlnov˝ch délkách. Referen ní trasa odpadá, p esto se pouûívají dv vlákna. Jedno jako m ené a druhé jako komunika ní, po kterém ovládáme vysíla .[5]
Obr. 1.3: Metoda fázového posunu
15
Metoda interferometrická Metoda vhodná pro m ení krátk˝ch úsek vláken o celkové chromatické disperzi nejv˝öe jednotek ps, vyûívá se p edevöím pro laboratorní m ení. Interferometrická metoda je zaloûena na interferenci mezi zá ením z m eného a referen ního vlákna, pomocí které se zjiö uje fázov˝ rozdíl obou signál . [5] Metoda zpoûd ní impuls
v asové oblasti
Do trasy jsou poslány impulzy o r zn˝ch vlnov˝ch délkách v p esn˝ch rozestupech. Zpoûd ní vlivem chromatické disperze se ur uje z porovnání rozestup impuls na vstupu a na v˝stupu vlákna. Schéma metody je uvedeno na obr 1.4. P esnost m ení je dána m ící soustavou a samotnou chromatickou disperzí. Impulzy se navzájem vzdalují a hlavn roztahují, coû zp sobuje problemati t jöí stanovení polohy impulz . [5]
Obr. 1.4: Metoda zpoûd ní impuls
1.3.2
M ení polariza ní vidové disperze
Polariza ní vidová disperze se za ala m it aû p i nástupu vyööích p enosov˝ch rychlostí (od 10 Gbit/s). Jedná se o jev v˝razn slaböí v porovnání s chromatickou disperzí. Naopak je to jev zcela náhodn˝, kter˝ závisí i na montáûi a vlivu okolního prost edí. Jev proto nejde správn spo ítat a musí se m it od stádia v˝roby aû po uvedení optické trasy do provozu. Nutnost m ení platí p edevöím pro staröí poloûená vlákna. Polariza ní vidovou disperzi jde velmi obtíûn , draze a ne zcela správn kompenzovat. Metoda interferometrická Tato metoda je zaloûena na interferenci nízkokoherentního optického zá ení. Tento signál vstupuje p es polarizátor do m ené optické trasy. Na konci trasy je pouûit Michelson v interferometr. Metoda je zobrazena na obr. 1.5. Interferometr se skládá z polarizátoru, dvou zrcadel (jedno pohyblivé), interferometru a detektoru. Optické
16
zá ení se v interferometru rozd lí do dvou v tví. Jedna v tev je zakon ena pevn˝m zrcadlem a druhá pohybliv˝m zrcadlem, které m ní fázov˝ posun signál . Odraûen˝m signálem pomocí interference na detektoru zjiö ujeme polariza ní vidovou disperzi. Metoda je rychlá, odolná v i vibracím a umoû uje m it PMD od 0,1 ps aû 100 ps. [5]
Obr. 1.5: Metoda interferometrická
Metoda P-OTDR Metoda P-OTDR (Polarisation OTDR) vyuûívá metody zp tného rozptylu OTDR. Metoda je zaloûena na vysílání signálu do optického vlákna a ze zp tného rozpt˝leného zá ení vlivem Rayleighova zp tného rozptylu. Pro anal˝zu PMD pot ebujeme informace o lokálním dvojlomu a vazební délce. Pouûijeme metodu skenování vlnové délky nebo metodu stupn polarizace DOP. [6]
17
2
M
ÍCÍ P ÍSTROJ
M ící univerzální platforma FTB 200 je produktem firmy EXFO. EXFO poskytuje servis pro provozovatele bezdrátov˝ch a pevn˝ch sítí a v˝robc za ízení v telekomunika ním pr myslu. Firma nabízí inova ní eöení pro správu a údrûbu telekomunika ních sítí.
2.1
P ístroj FTB 200
Platforma FTB 200 poskytuje testování optick˝ch a ethernetov˝ch sítí. Umoû uje vloûení více jak 30 modul pro r zné testování sítí. Platforma poskytuje vysok˝ v˝po etní v˝kon pro pokro ilé testovací aplikace. M ící p istroj umoû uje p enos dat do cloudu nebo do p ipojeného externího úloûiöt [1].
Obr. 2.1: M ící platforma FTB 200 (p evzaté z www.profiber.eu)
2.2
Modul FTB 5700
Modul FTB umoû uje m ení chromatické a vidové polariza ní disperze. Kombinace CD a PMD do jednoho usnad uje technik m práci a as. FTB 5700 je speciáln navrûen pro dneöní vysokorychlostní sít a umoû uje pln automatizované m ení s vyhodnocením nam en˝ch hodnot. Nev˝hodou je absence plánova e úloh pro 18
opakované m ení optické trasy. P ístroj vykonává m ení z jednoho konce vlákna s vyuûitím Fresnelovu odrazu na konci vlákna. Modul umoû uje m it vlákna do délky 120 km. Na obr. 2.2 je znázorn ní prost edí aplikace pro m ení CD a PMD [2].
Obr. 2.2: Grafické rozhraní programu pro m ení disperzí optick˝ch vláken
19
3
METODY AUTOMATIZOVANÉHO OVLÁDÁNÍ PROGRAMU
Automatizované ovládání programu lze eöit n kolika zp soby. Níûe je popis metod a jejich v˝hody a nev˝hody.
3.1
Ovládání pomocí klikání myöi
Na automatizované ovládání myöi existuje mnoho voln dostupn˝ch program (nap . Auto Mouse Clicker). V töina t chto program umoû uje automatické nahrávání událostí myöi a klávesnice nebo ru ní zápis posloupnosti událostí. Voliteln se zaznamenávají tyto události: kliknutí myöi, pohyb myöi, zpoûd ní mezi jednotliv˝mi událostmi a vstupy z klávesnice. Prost edí programu Auto Mouse Clicker se záznamem událostí je na obr. 3.1. Na klávesové zkratky aplikace pro m ení CD a PMD nereaguje. Hlavní nev˝hodou automatizovaného klikání je nemoûnost dynamicky m nit posloupnost událostí p i m ení. V dalöí ásti je nastín no n kolik metod pro automatické ovládání programu.
Obr. 3.1: Prost edí programu Auto Mouse Clicker
20
3.2
Ovládání pomocí API
API (Application Programming Interface) ozna uje rozhraní pro programování aplikací. Jde o sbírku procedur, funkcí a t íd, které m ûe programátor pouûívat. Pomocí API lze nap íklad p istupovat k opera nímu systému, b ûící aplikaci, p ipojenému za ízení a webové aplikaci. API nám umoû uje snáze a rychleji komunikovat a vym ovat data s aplikacemi druh˝ch stran.
3.3
P ístup k programu pomocí Windows 32
Opera ní systém je definován sv˝m API. Obsahuje vöechna volání funkcí, které m ûe aplikace b ûící na opera ním systému ûádat. Obecn platí, ûe Windows API z stává konzistentní od Windows 1.0. Jedin˝mi zm nami jsou rozöí ení a p echod z 16bitové na 32bitovou (64bitovou) architekturu procesor . Windows API definuje mnoho funkcí pro grafiku (GDI), zvuk, ovládací za ízení, sít a mnoho dalöích.
3.3.1
Handle
Ve Windows je handle ukazatel na ukazatel, ukazuje na adresu uloûenou v tabulce Windows. Tento zp sob adresování je ve Windows nezbytn˝, protoûe správce pam ti asto p esouvá objekty v pam ti. Pokud by aplikace pracovala pouze s ukazateli pro p ístup k objekt , v˝sledkem by byly neplatné ukazatele. Z toho d vodu Windows pouûívá handle. Jedná se jednoduöe o íslo, které odkazuje na objekt. Skute ná hodnota handle je pro nás nev˝znamná, avöak modul Windows p esn ví, jak jej pouûít. Handle jsou ve Windows pouûity velmi asto, hodn funkcí vrací handle a mnoho dalöích funkcí pouûije handle jako vstupní parametr. Rozliöujeme t i hlavní identifikátory handlu popsané v tab 3.1. Dále se m ûeme setkat s HICON (handle ikony), HCURSOR (handle kurzoru myöi) a HBRUSH (handle grafického öt tce) [9]. Tab. 3.1: Identifikátory pro typy „handle“ Identifikátor HISTANCE HWND HDC
3.3.2
V˝znam Handle „instance“ - tedy programu samotného Handle okna Handl kontextu za ízení
Vlastní okno aplikace
Nejnápadn jöí okna ve Windows jsou okna aplikací, která mohou obsahovat záhlaví, panel nástroj , posuvníky, seznamy, tla ítka, textová pole a jiné. Kaûd˝ z t chto 21
objekt je oknem [8]. Názvy identifikátor Názvy identifikátor jsou psány velk˝mi písmeny a jsou definovan˝ v hlavi kov˝ch souborech Windows. Za ínají dvou nebo t ípísmennou p edponu, za kterou následuje podtrûítko. Vysv tlení v˝znamu p edpon vysv tluje tab. 3.2. Tém kaûdá íselná konstanta ve Windows má identifikátor [8]. Tab. 3.2: Vysv tlení p edpon konstant identifikátor P edpona Konstanta CS Volba stylu t ídy CW Moûnosti pro vytvá ení okna DT Moûnosti pro psaní textu IDI Identifika ní íslo (ID) ikony IDC Identifika ní íslo (ID) kurzoru MB Moûnosti dialogu se zprávou SND Moûnosti zvuku CWM Zprávy Windows WS Styl okna
Registrace t ídy okna Vytvo ené okno je vûdy zaloûeno na t íd okna. T ída okna ur uje proceduru, která zpracovává zprávy ur ené oknu. Na jedné t íd m ûe b˝t zaloûeno více prvk . P i vytvo ení okna se definují dalöí charakteristiky oken, které jsou pro okno jedine né. [7] Vytvo ení okna T ída okna definuje obecné charakteristiky okna, funkcí CreateWindow zadáme podrobn jöí informace o oknu. Informace p edávané funkcí RegisterClass jsou zadány v datové struktu e, informace p edané CreateWindow jsou zadány jako samostatné parametry funkce. Zde je volání funkce: [7] hwnd = CreateWindow (szAppName, TEXT ("Pokus"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
//název t ídy okna //záhlaví okna //styl okna //v˝chozí pozice x //v˝chozí pozice y //v˝chozí velikost x //v˝chozí velikost y
22
NULL, NULL, hInstance, NULL);
//handle rodi ovského okna //handle nabídky okna //handle instance programu //parametry pro vytvo ení
Zobrazení okna Po dokon ení funkce CreateWindow vznikne ve Windows nové okno. Tím Windows alokoval ást pam ti pro uloûení informace o okn . Pozd ji tuto pam najde pomocí handle okna. Pro zobrazení okna na obrazovce je pot eba vyvolat dalöí dv funkce. První z nich je ShowWindows. Prvním parametrem je handle vytvo eného okna, druh˝m parametrem potom hodnota iCmdShow. Druh˝ parametr ur uje typ zobrazení okna, tedy zda normáln , minimalizovan nebo maximilizovan . Druhou funkcí je UpdateWindow, která okno na displeji zobrazí [7]. Smy ka zpráv Po zobrazení okna na displeji se musí program p ipravit na tení vstupu z klávesnice a myöi od uûivatele. Windows pro kaûd˝ program udrûuje frontu zpráv. Kdyû uûivatel vyvolá událost klávesnicí nebo myöí, Windows tuto událost p evede na zprávu a uloûí do fronty zpráv programu. Program následn vybírá zprávy z fronty následovn : While (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); }
Prom ná msg je struktura typu MSG, která vypadá následovn : typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; }
Voláním funkce GetMesseage vyzvedneme zprávu ze smy ky zpráv. Parametry krom prvního jsou nastaveny na NULL nebo 0, coû zna í, ûe program vyûaduje vöechny zprávy pro vöechna okna vytvo ená programem. [7] Struktura zprávy MSG je následující: • hwnd - Handle okna, kterému je zpráva sm rována. • message - Identifikátor zprávy, kter˝ íseln ozna uje zprávu. 23
• • • •
wParam - 32bitov˝ parametr zprávy, v˝znam a hodnota závisí na typu zprávy. lParam - 32bitov˝ parametr, kter˝ taky závisí na konkrétní zpráv . time - as, kdy byla zpráva umíst na do fronty zpráv. pt - Sou adnice myöi v ase, kdy byla zpráva umíst na do fronty zpráv.
Procedura okna Registrace okna, vytvo ení okna, zobrazení okna a vyzvedávání zpráv byla jen reûie. Skute ná innost programu za íná aû v procedu e okna. Procedura okna ur uje, jak bude okno reagovat na vstup od uûivatele. Vûdy je p i azena ur ité t íd okna, kterou voláme funkcí RegisterClass. Procedura okna má následující tvar: LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Parametry funkce jsou shodné s prvními ty mi poloûkami ve struktu e MSG. Pokud program vytvo í více oken zaloûen˝ch na jedné t íd , hwnd udává aktuální okno, které má obdrûet zprávu. Procedury okna nevolají programy p ímo, jsou volány samostatn z Windows. Program m ûe nep ímo volat procedury okna pomocí funkce SendMessage. [7]
3.3.3
Práce myöi ve Windows
Kdyû uûivatel Windows pohne myöí, Windows p esune na displeji malou bitmapu, takzvan˝ kurzor. P esné místo na obrazovce ur uje „kurzor myöi“. Kurzor má jeden bod zvan˝ jako „hork˝ bod - hot spot“. Tento bod ur uje p esnou polohu na obrazovce. Windows podporuje n kolik druh kurzor . Nejpouûívan jöí kurzorem je sklon ná öipka (IDC_ARROW), kter˝ má hork˝ bod na öpi ce öipky. Dále se asto pouûívají kurzory typu k íû (IDC_KROS) a p es˝pací hodiny (IDC_WAIT). Programáto i aplikací si také mohou navrhnout svoje vlastní kurzory myöi. V˝chozí kurzor pro ur ité okno je zadán p i definici struktury t ídy okna, nap íklad: [7] wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
Pomocí tla ítek myöi m ûeme provád t následující innosti: • Clicking - Stisknutí a uvoln ní tla ítka. • Double-clicking - Stisknutí a uvoln ní tla ítka myöi dvakrát za sebou. • Dragging - Pohyb myöi p i sou asném p idrûení tla ítka. Zprávy myöi Procedura okna dostává zprávy od myöi, kdyû myö p ejede p es okno nebo uûivatel uvnit okna klikne. Zprávy jsou p edány, i kdyû okno není aktivní nebo nemá fokus pro vstup. P esunutí myöi v klientské oblasti okna vyvolá zprávu WM_MOUSE_MOVE pro proceduru okna. Kdyû je kliknutí myöi provedeno uvnit klientské oblasti okna, procedura okna dostane zprávy uvedené v tab. 3.3 [7]. 24
Tab. 3.3: Zprávy vyvolané kliknutím myöi Tla ítko P i stisku P i uvoln ní P i druh˝m stisku Levé WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK Prost ední WM_MBUTTONDOWN WM_MBUTTONUP WM_MBUTTONDBLCLK Pravé WM_RBUTTONDOWN WM_RBUTTONUP WM_RBUTTONDBLCLK U t chto zpráv obsahuje lParam polohu myöi. Sou adnice x se nachází ve spodním slov parametru, naopak sou adnice y v horním slov parametru. Sou adnice myöi vzhledem k hornímu rohu okna m ûeme vy íst pomocí následujících maker: x = LOWORD (lParam) ; y = HIWORD (lParam) ;
Hodnoty wParam ur ují stav kláves Shift a Ctrl a tla ítek myöi. MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFT MK_CONTROL
Levé tla ítko je stisknuto. Prost ední tla ítko je stisknuto. Pravé tla ítko je skisknuto. Klávesa Shift je stisknuta. Klávesa CTRL je stisknuta.
S klikáním myöi mohou nastat zvláötní situace. Nap íklad procedura okna dostane zprávu WM_LBUTTONUP, aniû by d íve dostala zprávu WM_LBUTTONDOWN. K tomu dojde v p ípad p esunutí stisknutého tla ítka a uvoln ní v naöem sledovaném okn . Naopak m ûe procedura okna dostat zprávu WM_LBUTTONUP bez p edchozí zprávy WM_LBUTTONUP. [7] Existují dv vyjímky z uveden˝ch p íklad : • Procedura okna m ûe myö uv znit v okn . Díky uv zn ní myöi dostává procedura okna zprávy dále i po p esunutí myöi z klientské oblasti okna. • Kdyû se nachází na obrazovce modální systémové okno 1 . nebo modální systémové okno se zprávou. Dvojklik myöi Dvojklik myöí m ûeme definovat jako dv kliknutí myöi v blízkém prostoru a ur itém intervalu. Blízk˝ prostor m ûeme definovat následovn : öirok˝ jako pr m rná öí ka znaku v textu a vysok˝ jako polovina v˝öky znaku. Interval mezi kliknutím se naz˝vá „rychlost dvojitého kliknutí“, m ûeme ji m nit v ovládacích panelech Windows. Aby procedura okna dostávala zprávy poklepání myöi, musíme zadat identifikátor CS_DBLCLKS ve struktu e t ídy okna p ed voláním funkce RegisterClass [7]. wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS) ; 1
Modální systémová okna zamezují uûivateli p epnout se do jiného okna.
25
P i nezadání identifikátoru CS_DBLCLKS do struktury t ídy dostane procedura okna následující zprávy: WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDOWN WM_LBUTTONUP
Po p idání stylu CS_DBLCLKS do struktury t ídy, dostane procedura následující zprávy: WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK WM_LBUTTONUP
Zprávy po dvojím kliknutí myöí se zpracovávají snadn ji, pokud první kliknutí provádí díl í ást akcí, které provádí dvojklik myöi.
3.3.4
Práce klávesnice ve Windows
Klávesnice má dlouhou historii po ínaje Remingtonov˝m psacím strojem z roku 1874. První programáto i pouûívali klávesnici pro d rování d rn˝ch ötítk a pozd ji k ovládání terminálu pro ovládání velk˝ch sálov˝ch po íta . V dneöní dob se klávesnice zna n liöí, obsahují funk ní klávesy, klávesy pro pohyb kurzoru a obvykle samostatnou íselnou klávesnici [7]. Vstup z klávesnice je p edáván pomocí zpráv do procedury okna aplikace Windows. V opera ním systému Windows existuje celkem 8 r zn˝ch zpráv, p ibliûn polovinu z nich reáln vyuûíváme p i programování aplikací pro Windows. M ûeme nap íklad ignorovat stisk kláves, které ovládají systémové funkce. Systémové funkce vetöinou zahrnují klávesu Alt [7]. Fokus okna Klávesnice u osobních po íta musí b˝t sdílena mezi vöemi b ûícími aplikacemi ve Windows. Klávesnice musí b˝t sdílena také mezi vöemi okny ur ité aplikace. Program pro vyzvedávání zpráv z fronty zpráv vyuûívá struktura MSG. Ve struktu e poloûka hwnd ur uje handle okna, které má dostat zprávu. Pomocí funkce patchMessage ve smy ce zpráv jsou zprávy zasílány procedu e ur itého okna. Zpráva p ijde procedu e okna, které má práv vstupní fokus. Okno se vstupním fokusem m ûe b˝t aktivní okno nebo potomek okna (dce iné okno) nebo dce iné okno aktivního dce iného okna a tak dále. Aktivní okno je vûdy na nejvyööí úrovni (handle jeho rodi ovského okna je NULL). Dce iné okno m ûe mít vstupní fokus
26
pouze pokud je potomkem aktivního okna. Vstupní fokus dce in˝ch oken poznáme pomocí blikajícího kurzoru nebo te kované áry po obvodu. Pomocí zachytávání zpráv WM_SETFOCUS a WM_KILLFOCUS procedura okna dokáûe ur it, zda její okno má vstupní fokus. Zpráva WM_SETFOCUS oznamuje, ûe dostává vstupní fokus a zpráva WM_KILLFOCUS oznamuje, ûe vstupní fokus ztrácí [7]. Zprávy vyvolané stiskem kláves Po stisku klávesy uloûí Windows zprávu WM_KEYDOWN nebo WM_SYSKEYDOWN do fronty zpráv okna, které má práv vstupní fokus. Po uvoln ní klávesy uloûí Windows zprávu WM_KEYUP nebo WM_SYSKEYUP do fronty zpráv okna. Zprávy obvykle p icházejí v párech. P i stisknuté klávese posílají Windows posloupnost zpráv WM_KEYDOWN (WM_SYSKEYDOWN) a po uvoln ní klávesy jednu zprávu WM_KEYUP (WM_SYSKEYUP). as, kdy byla klávesa stisknuta, m ûeme ur it voláním funkce GetMessageTime [7]. Systémové zprávy se t˝kají stisk kláves, které jsou nejd leûit jöí pro samotn˝ Windows. Zprávy WM_SYSKEYDOWN a WM_SYSKEYUP se p eváûn generují pro klávesy stisknuté p eváûn v kombinaci s klávesou Alt. Tyto zprávy se starají nap íklad p epínání aktivního okna (ALT + TAB) nebo ukon ení aplikace (Alt + F4) [7]. Virtuální kódy kláves Virtuální kód klávesy je uloûen v parametru wParam u zpráv WM_KEYDOWN, WM_SYSKEYDOWN WM_KEYUP a WM_SYSKEYUP. Virtuální kód ur uje, která klávesa byla stisknuta nebo uvoln na, mají nej ast ji názvy za ínající na VK_. Kódy jsou definované v hlavi kovém souboru WINUSER.H. Tabulka 3.4 ukazuje názvy s íseln˝mi údaji a klávesu z kompatibilní klávesnice IBM, která tomuto kódu odpovídá. Tabulka dále ukazuje, zda klávesa je pot eba, aby Windows fungoval správn . V tab 3.5 jsou nejpouûívan jöí virtuální kódy kláves, jedná se o virtuální kódy kláves s písmeny a íslicemi na hlavní klávesnici [7].
27
Tab. 3.4: Virtuální kódy klávesnice Desítková Hex Identifikátor soustava 8 08 VK_BACK 9 09 VK_TAB 12 0C VK_CLEAR 13 16 17 18 20 27 32
0D 10 11 12 14 1B 20
VK_RETURN VK_SHIFT VK_CONTROL VK_MENU VK_CAPITAL VK_ESCAPE VK_SPACE
je pot eba? • •
• • • • • • •
IBM-kompatibilní klávesnice Klávesa Backpace Klávesa Tab Klávesa 5 na íselné klávesnici s vypnut˝m NumLock Klávesa Enter Klávesa Shift Klávesa Ctrl Klávesa Alt Klávesa CapsLock Klávesa Esc Mezerník
Tab. 3.5: Vysv tlení p edpon konstant identifikátor Desítková Hex Identifikátor je pot eba? soustava 48_57 30_39 éádn˝ • 65_90 41_5A éádn˝ •
28
IBM-kompatibilní klávesnice 0 aû 9 na hlavní klávesnici A aû Z
4
PRAKTICKÁ
ÁST
Praktická ást bakalá ské práce se zab˝vá automatizovan˝m ovládáním m ícího p ístroje EXFO FTB - 200. M ící p ístroj m í chromatickou s polariza ní vidovou disperzí pomocí dodávaného programu v˝robcem, kter˝ umoû uje vûdy pustit pouze jedno m ení disperzí. M ení disperzí je vhodné m it v delöím asovém úseku po n kolika díl ích m eních pro lepöí vyhodnocení v˝sledk chromatické a polariza ní vidové disperze. Automatizované ovládání p ístroje umoûní efektivn jöí vyuûití stávajícího m ícího p ístroje FTB - 200 a p iblíûení p ístroj m z vyööích ad, které v základu obsahují plánova úloh m ení. V první ásti je eöena problematika eöení a návrh metody eöení. Dalöí ást obsahuje návrh a realizaci programu, kter˝ ovládá stávající program od v˝robce. Poslední ást této kapitoly je v nována reálnému m ení disperzí optick˝ch vláken pomocí automatizovaného m ení a vyhodnocení dlouhodob˝ch v˝sledk .
4.1
Popis metody eöení
Nejvíce asov náro né na této práci bylo vybrání metody ovládání a vypo ádání se se vöemi nástrahami p ístroje. Je zde popsán v˝b r metody, programovacího jazyka a potíûe s nasazením grafické aplikace na p ístroj.
4.1.1
Platforma m ícího p ístroje FTB-200
Na m ícím p ístroji b ûí opera ní systém XP. Jako úloûiöt slouûí 8 GB flash disk. Disk je rozd len na systémov˝ a datov˝ oddíl. Na systémovém disku je nainstalovan˝ pouze opera ní systém XP, vöechny dalöí programy a data se nacházejí na datovém oddílu. Na systémov˝ oddíl nelze doinstalovat dalöí programy v töí neû cca 150 MB pro nedostate né místo na disku. Toto omezení nám zt ûuje nasazení grafické aplikace (nemoûnost nainstalovat Microsoft .NET Framework).
4.1.2
V˝b r metody eöení
Nejlepöí volbou pro automatizované m ení v p ístroji EXFO by bylo naprogramovat cel˝ m ící program znovu. P ekáûkou tu je absence API od v˝robce pro m ící modul FTB-5700. V˝robce EXFO nemá zve ejn n˝ API na své webové stránce a na email nereagoval. Problém by se dal vy eöit zp tn˝m inûen˝rstvím, coû by bylo velice asov náro né a sloûité. Ovládání pomocí automatického ovládání myöí je velice jednoduché, ale nejde v bec p edvídat chování programu.
29
Byla vybrána metoda ovládání standardního programu dalöím programem vytvo en˝m v rámci bakalá ské práce. Pomocí vytvo eného programu p istupujeme k standardnímu programu prost ednictvím knihovny Windows API. Tímto zp sobem je moûné ovládat program intuitivn a p edcházet nastávajícímu chodu m ení. Program byl psán ve v˝vojovém prost edí Microsoft Visual Studio 2010 s vyuûitím programovacího jazyka Visual C++.
4.1.3
Grafické prost edí programu
V p edcházející semestrální práci bylo ovládání programu eöeno pomocí konzolové aplikace. Pro snazöí ovládání m ícího programu byl vytvo en grafick˝ program. Pro nemoûnost vyuûití Microsoft .NET frameworku byl zhotoven program jen pomocí Windows API. Musíme zde eöit registraci t ídy okna a následné vytvo ení okna, smy ku zpráv, proceduru okna a zpracování zpráv.
4.2
Realizace programu
Je zde popsán návrh a realizace programu, dále jsou poté vyjmenovány a vysv tleny nejd leûit jöí ásti a jednotlivé funkce z programu. Cel˝ program v etn zdrojov˝ch kód je p iloûen na CD.
4.2.1
Realizace Win32 Aplikace
Cel˝ program je sloûen˝ ze t í základních stavebních prvk , které jsou nezbytn nutné pro chod nejjednoduööího programu ve Windows. Hlavní ásti programu jsou: • smy ka zpráv, • registrace t ídy okna a vytvo ení okna, • procedura okna a zpracování zpráv. Následn jsou základní ásti kódu programu vloûeny do práce a stru n popsány. Vzhled v˝sledné aplikace je uveden na obr. 4.1. Smy ka zpráv Smy ka zpráv je umíst na uvnit hlavní funkce naöeho programu WinMain. Cel˝ náö program b ûí v téhle jediné smy ce zpráv. Funkce GetMessage vezme zprávu z fronty zpráv aplikace a odeöle ji k dalöímu zpracování. Jedinou v˝jimkou je zpráva WM_QUIT, p i které funkce GetMessage vrátí 0 a smy ka zpráv je ukon ena. Posléze dojde k ukon ení celé funkce WinMain a tím pádem celé aplikace.
30
Uvnit smy ky zpráv jsou funkce TranslateMessage a DispatchMessage. První funkce p ekládá virtuální kódy zpráv klávesnice a generuje dalöí znakové zprávy. Funkce DispatchMessage odeöle zprávu do procedury p ísluöného okna. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShow) { if ( !InitApp() ) return FALSE; g_hInstance = hInstance; while ( GetMessage(&msg, NULL, 0, 0) ) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
Registrace t ídy okna V naöem programu máme zaregistrovanou jedinou vlastní t ídu okna, kterou vyuûívá hlavní okno aplikace. Dalöí prvky naöí aplikace jsou tla ítka, která vyuûívají systémovou t ídu. Tuto t ídu nemusíme ani nem ûeme vytvá et. Níûe je uvedena registrace t ídy, která definuje ur ité vlastnosti pro následn vytvo ené hlavní okno aplikace. WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wc.hInstance = g_hInstance; wc.lpfnWndProc = WindowProcMain; wc.lpszClassName = _MainClassName; wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); wc.style = CS_HREDRAW | CS_VREDRAW; if ( !RegisterClassEx(&wc) ) return FALSE;
Pomocí funkce CreateWindowsEx si vytvo íme hlavní okno aplikace zaloûené na t íd vytvo ené v p edeölém kroku. P i vytvá ení okna jsou definované dalöí vlastnosti.
31
//hlavní okno g_hwndMain = CreateWindowEx(0, _MainClassName, _AppName, WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 400, 550, NULL, NULL, g_hInstance, NULL); if ( g_hwndMain == NULL ) return FALSE;
Dále jsou vytvá ena okna zaloûena na systémové t íd BUTTON. Zde je p íklad vytvo ení tla ítka Start pro spouöt ní m ení. // button Start g_hwndStart = CreateWindowEx(0, TEXT("BUTTON"), TEXT("START"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 310, 75, 25, g_hwndMain, (HMENU)NULL, g_hInstance, NULL); if ( g_hwndStart == NULL ) return FALSE;
Procedura okna Zprávy, na které chceme reagovat, zachytáváme v procedu e okna pomocí p íkazu switch. Vöechny zprávy (v etn t ch, na které reagujeme) posíláme pomocí funkce DefWindowProc k v˝chozímu zpracování. Ve zkrácené procedu e okna z naöeho programu rozliöujeme zprávy WM_COMMAND a WM_DESTROY. Pomocí filtru zpráv WM_COMMAND reagujeme na stisk tla ítek. Po doru ení zprávy WM_DESTROY vloûíme do smy ky zpráv zprávu WM_QUIT, kterou realizujeme pomocí funkce PostQuitMessage. Touto zprávou ukon íme cel˝ program. LRESULT CALLBACK WindowProcMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch ( uMsg ) { case WM_COMMAND: if ( lParam == (LPARAM)g_hwndStart){ hlavniFunkce(); } break; case WM_DESTROY: PostQuitMessage(0); break;
32
} return DefWindowProc(hwnd, uMsg, wParam, lParam); }
Popis ovládacích prvk programu Na obr. 4.1 je vzhled vytvo eného programu pro automatizované m ení. Nastavení automatizovaného ovládání je velice snadné a intuitivní. P ed za átkem m ení je t eba v levém sloupci vybrat celkovou dobu m ení a v pravém sloupci as opakování díl ích m ení. P i spuöt ní programu jsou standardn vybrané první moûnosti z asové nabídky m ení. U programu nelze vybrat nelogické asy m ení (celkovou dobu m ení menöí neû as opakování). V kaûdém sloupci jsou vûdy aktivní pouze prvky, které jsou vhodnou kombinací k vybranému prvku v druhém sloupci. Program dále obsahuje hlavní nabídku s nápov dou k m ení. Nakonec m ení spustíme tla ítkem START, ímû se hlavní m ící program p epne do pop edí a spustí se automatizované m ení.
Obr. 4.1: Vzhled programu
33
4.2.2
Ovládání m ícího programu
Ovládání je realizováno pomocí zasílání zpráv stávajícímu programu pro m ení disperzí pomocí naöí aplikace. P ed za átkem automatizovaného m ení je t eba spustit program „Compact Toolbox“ a spustit modul SEDA pro m ení disperzí. Dále vybereme moûnost m ení CD, PMD nebo ob m ení najednou viz obr.2.2. Následn spustíme naöí aplikaci, vybereme celkovou dobu m ení v levém sloupci a dobu jednoho díl ího m ení ve sloupci pravém a nakonec klikneme na tla ítko START. Tím se spustí hlavní funkce programu hlavníFunkce, která se stará o celé ovládání m ení. Nejd leûit jöí ásti funkce a její vno ené funkce si popíöeme. Hlavní funkce ovládání m ení Hlavní funkce programu se stará o ovládání m ení disperzí. V˝vojov˝ diagram funkce je na obr.4.2. Cel˝ Kód je vloûen do cyklu while s podmínkou true, tento cyklus slouûí pouze pro okamûité ukon ení funkce p i chyb ovládání pomocí p íkazu break. Funkce nejd íve zjistí handly vöech prvk , pomocí kter˝ch budeme ovládat m ení. Dále se uloûí systémov˝ as za átku m ení pro synchronizaci celého m ení podle definovan˝ch as m ení uûivatelem. Dále funkce obsahuje cyklus while, kter˝ se stará o ovládání m ení. Vno ená funkce start se stará o spuöt ní a ur ení konce jednotlivého m ení. Po skon ení m ení se musí uloûit binární data u ud lat report do html souboru. O tuto problematiku se starají funkce Save a Report. Následuje cyklus while pro ekání na dalöí spuöt ní m ení. Synchronizace je provád na pomocí porovnání as v sekundách. Porovnává se aktuální as s asem za átku m ení, kter˝ je nav˝öen o ur it˝ asov˝ interval. while(kolik > 0){ start(); save(); if(report())break; //casovaní if(kolik !=1){ while(true){ Sleep(1000); t_ted=time(NULL); if((t_start+merS*pocet)
34
Obr. 4.2: Hlavní funkce m ení Na konci hlavní funkce je vloûena funkce zapis(), která se stará o v˝pis nam en˝ch v˝sledk z jednotliv˝ch m ení do jednoho CSV souboru. Dále si popíöeme jednotlivé funkce, které se starají o ovládání m ení.
35
Získání handlu oken Nejd íve si pomocí programu Window Detective zjistíme strukturu m ící programu. Struktura programu je na obr. 4.3, kde m ûeme vid t název t ídy, íslo handlu a pojmenování prvku. Pro získání handlu hlavního okna pouûijeme funkci FindWindows, která má dva parametry. První parametr je název t ídy okna, druh˝m parametrem je název okna. Funkce vrací aktuální handle okna.
Obr. 4.3: Struktura oken standardního programu m ení Dalöí handly dce in˝ch prvk hlavního okna získáme pomocí funkce FindWindowEx, která má 4 vstupní parametry. T etí a tvrt˝ parametr je shodn˝ s funkcí FindWindows. Prvním parametrem je handle rodi ovského okna a druh˝m parametrem je handle dce iného okna. Z d vodu stejn˝ch t íd oken v celém programu a absence názv dce in˝ch oken není p esn definované, na jak˝ handle nám funkce vrátí hodnotu. Potom je návratová hodnota handlu vûdy na první okno na dané úrovni. Pomocí funkce GetWindow najdeme handle na dalöí okna ve stejné úrovni. Funkce má dva parametry. Prvním z nich je handle ze stejné úrovn , druh˝ parametr ozna uje jaké okno hledáme. M ûeme se posunout na první, poslední, následující nebo p edcházející index okna v dané úrovni. V ukázce z programu viz níûe vidíme pouûití funkcí FindWindow, FindWindowEx a GetWindow. Dále je pouûita funkce ShowWindow pro maximalizování m ícího programu a funkce SetForegroundWindow vloûí podproces, kter˝ vytvo il zadané okno do pop edí a aktivuje okno. Aktivní okno pot ebujeme pro ovládání m ení. h_seda = FindWindow(NULL, L"SEDA"); if(NULL != h_seda){ ShowWindow(h_seda,SW_MAXIMIZE);
36
SetForegroundWindow(h_seda); h_results = FindWindowEx(h_seda, NULL, L"WindowsForms10.Window.8.app.0.378734a", L"Results"); if (h_results==NULL){ MessageBox(NULL, L"Error handle Results.", _T("Chyba"), MB_OK); return 1; } h_pMenu= GetWindow(h_results,GW_HWNDNEXT); if (h_pMenu==NULL){ MessageBox(NULL, L"Error handle pMenu.", _T("Chyba"), MB_OK); return 1; } }
Spouöt ní m ení O spuöt ní m ení se stará funkce start, která nejd íve poöle zprávy PostMessage handlu tla ítka START. Zprávy s druh˝m parametrem WM_LBUTTONDOWN a WM_LBUTTONUP vykonají stisk tla ítka a m ení je spuöt no. Tla ítko je v pr b hu m ení p ejmenováno na Stop, konec jednotlivého m ení poznáme pomocí p ejmenování tla ítka zp t na Start. Text z tla ítka zjistíme zasláním zprávy SendMessage s parametrem WM_GETTEXT. Tato funkce je umíst na v nekone né smy ce while, p i p ejmenováni tla ítka zp t dojde k ukon ení cyklu. void start(void){ Sleep(1000); PostMessage(h_start, WM_LBUTTONDOWN, 0,0); PostMessage(h_start, WM_LBUTTONUP, 0, 0); Sleep(5000); TCHAR a~[10]; char xx [10] = "Start"; USES_CONVERSION; TCHAR* b = A2T(xx); while(true){ SendMessage(h_start, WM_GETTEXT, sizeof(a), LPARAM(a)); if(_tcscmp(a, b)==0) break; Sleep(1000); } }
Uloûení m ení Kaûdé m ení je nutné uloûit jako binární data a posléze vytvo it HTML soubor z binárního souboru. P i ukládáni prvního m ení je vytvo ena nová sloûka, do které se ukládají vöechny nam ené v˝sledky. Celé ukládání soubor je eöeno zasíláním
37
zpráv tla ítk m a pomocí funkce keybd_event, která simuluje stisk kláves na klávesnici. Pomocí virtuálních kláves je nap íklad eöeno otevírání jiû vytvo ené sloûky. V˝pis nam en˝ch hodnot do CSV souboru Z kaûdého HTML souboru se vypisuje do CSV souboru datum, as a nam ené v˝sledky. V HTML souboru se vyhledávají ur ité jedine né et zce a následn se vkládají do CSV souboru. Funkce pro vytvo ení CSV souboru rozpoznává typ m ení disperze (CD, PMD, ob najednou) a podle typu pojmenovává v˝sledn˝ soubor s v˝sledky. Níûe je zkrácen˝ v˝pis pro vypisování datu m ení do CSV souboru. Program hledá v souboru et zec „dat“, kter˝ se v souboru vyskytuje práv jeden. Následn posko í o 162 znak vp ed (v html souboru tagy formátování stránky) a vypíöe datum do souboru. Ukázka v˝sledného CSV souboru je na obr. 4.4. //zkrácen˝ v˝pis kódu FILE *fhtml,*fcsv; fhtml = fopen(html, "r"); fcsv=fopen(csv,"w"); ... //datum if (z==’d’ && zz==’a’ && zzz==’t’){ for( m; m <162;m++){ zzz = fgetc(fhtml); } fputc(’"’,fcsv); for(n;n<9;n++){ zzz = fgetc(fhtml); fputc(zzz, fcsv); } fputc(’"’,fcsv); fputc(’,’,fcsv); } ...
4.3
Automatizované m ení disperzí
Automatizované m ení bylo testováno v celém pr b hu realizace programu. Program je pln optimalizovan˝ na dlouhodobá m ení disperzí.
4.3.1
M ení optické trasy
V laborato i byly provedeny dva t ídenní testy m ení disperzí. Zapojení optické trasy s m ícím p ístrojem je na obr. 4.5. První m ení bylo provedeno na vlákn smotaném v laborato i. M ení bylo nastavené s opakováním kaûd˝ch 15 min, tedy
38
Obr. 4.4: CSV soubor s v˝pisem dat z HTML soubor celkem 288 díl ích m ení. Druhé testovací m ení bylo nastaveno s opakováním kaûdou hodinu a bylo provedeno na optickém testovacím vlákn mezi VUT a Masarykovou univerzitou. M ení bylo provád no kaûdou hodinu.
Obr. 4.5: Zapojení m ení s p ístrojem EXFO FTB - 200 (EXFO p evzaté z www.profiber.eu)
4.3.2
V˝sledky a vyhodnocení
Z kaûdého m ení disperzí je vytvo en graf chromatické a polariza ní vidové disperze v závislosti na ase. 39
Na obr. 4.6 je graf chromatické disperze optického vlákna m ené na cívce v laborato i. Hodnoty kolísají mezi hodnotami 16,53 ps/(nm*km) a 16,61 ps/(nm*km), kolísání se vyskytuje hlavn v první polovin asového intervalu. Druhá polovina m ení je stálejöí, z ejm zp sobeno menöími ot esy v laborato i o víkendu.
Obr. 4.6: Chromatická disperze vlákna - smotané vlákno Na dalöím grafu na obr. 4.7 je chromatická disperze optického vlákna, které je poloûeno mezi univerzitami v Brn . Nam ené koeficienty CD jsou v celém pr b hu p ibliûn konstantní.
Obr. 4.7: Chromatická disperze vlákna - reálné vlákno Koeficient polariza ní vidové disperze v obou m eních kolísá. Na rozdíl od chromatické disperze je PMD jev nestál˝. Vliv na v˝sledek m ûe mít poruöená geometrie, 40
vnit ní pnutí nebo teplota vlákna. Graf polariza ní vidové disperze vlákna umíst ného v laborato i je na obr. 4.8 a vlákna poloûeného mezi univerzitami je na obr. 4.9.
Obr. 4.8: Polariza ní vidová disperze - smotané vlákno
Obr. 4.9: Polariza ní vidová disperze - reálné vlákno
41
5
ZÁV R
V bakalá ské práci jsem se zab˝val návrhem a realizací programu pro automatické ovládání m ícího programu v p ístroji EXFO. V první ásti jsem se zab˝val optick˝mi vlákny a popisem chromatické a polariza ní vidové disperze. V této ásti se nachází také metody jejího m ení. Dále jsem eöil, jak automatizované ovládání eöit. V úvahu p icházelo n kolik variant. Nejprecizn jöí metodou je vytvo it cel˝ m ící program zaloûen˝ na API k m ícímu modulu. Bohuûel v˝robce API neposkytuje ani na vyûádání. Naopak nejjednoduöí metodou je automatizované klikání kurzorem myöi na p edem definované místo na obrazovce. Velkou nev˝hodou je p edem ur en˝ statick˝ as mezi klikáním a velká pravd podobnost naruöení automatizovaného ovládání jinou vyskakovací aplikací. Nakonec byla vybrána metoda ovládání m ícího programu pomocí dalöího programu. V˝sledkem bakalá ské práce je zhotovení programu, kter˝ ovládá stávající m ící program. Program zjiö uje ísla handl oken a zasílá jim zprávy s p íkazy. Dále program vyvolává virtuální stisk kláves pro usnadn ní ovládání m ení. V˝sledkem automatizovaného m ení je sloûka s binárními a html soubory nam en˝ch dat. Navíc program vytvo í z html soubor jeden CSV soubor s hodnotami a asem ze vöech m ení. Poslední ást bakalá ské práce je v nována testovacímu automatizovanému m ení disperzí. M ení není provád no za ú elem zkoumání nam en˝ch dat disperzí optick˝ch vláken, ale za ú elem demonstrace funk nosti programu. V prvních zkuöebních testech automatizovaného m ení docházelo k chybám, které byly následn odstra ovány. Program v aktuální verzi b ûí bezchybn .
42
LITERATURA [1] EXFO Electro-Optical Engineering Inc.: FTB-200 Compact Platform [online], [cit. 8. 12. 2014]. Dostupné z URL:
. [2] EXFO Electro-Optical Engineering Inc.: FTB-5700 Single-Ended Dispersion Analyzer [online], [cit. 8. 12. 2014]. Dostupné z URL: . [3] Filka, M. P enosová media. Skripta. VUT FEKT, Brno 2012 [4] Filka, M. Optoelektronika pro telekomunikace a informatiku. Vyd. 1. Brno: Miloslav Filka, 2009, 369 s. ISBN 978-80-86785-14-1.2 [5] HÁJEK, M., HOLOME EK, P. M ení chromatické a polariza ní vidové disperze jednovidov˝ch optick˝ch tras [online], [cit. 5. 12. 2014]. Dostupné z URL: . [6] HÁJEK, M., HOLOME EK, P. POTDR - lokalizace úsek se zv˝öenou hodnotou PMD v optick˝ch trasách [online], [cit. 6. 12. 2014]. Dostupné z URL: . [7] PETZOLD, Charles Programování ve Windows: legendární publikace o programování Win32 API. Vyd. 1. Praha: Computer Press, 1999, xxiii, 1216 s. ISBN 80-722-6206-8. [8] BOHÁ , A. Win32 API : kompletní reference programátora pro Windows 95 a Windows NT : pr vodce v˝vojá e. 1. vyd. Brno: Unis publishing, 1997, 669 s. ISBN 80-860-9706-4. [9] MATOUäEK, David. Visual C 6.0: v˝vojové prost edí. 1. vyd. P eklad Alois Bohá . Praha: BEN, 2003, 359 s. ISBN 80-730-0130-6. [10] KARASEK, Miroslav a Tomas ZAHRADKA. Disperze signalu v optickych vlaknovych vlnovodech. Vyd. 1. Praha: Academia, 1990, 130 p. Studie CSAV, 1990, c. 8. ISBN 80-200-0216-2.
43
SEZNAM SYMBOL , VELI IN A ZKRATEK API
Application Programming Interface
EXFO
EXperts in Fibre Optics
CD
Chromatic Dispersion
CSV
Comma-separated values
DCF
Dispersion Compensating Fiber
DS
Dispersion Shifted
DOP
Degree Of Polarization
DWDM
Dense wavelength division multiplexing
HTML
Hyper Text Markup Language
IBM
International Business Machines Corporation
OTDR
optical time-domain reflectometer
PMD
Polarization Mode Dispersion
POTDR
Polarization OTDR
tg
celkové zpoûd ní signálu
l
délka vlákna
D
disperze
n1 , n2
index lomu sv tla
„
mezní úhel
⁄
vlnová délka ·
zpoûd ní signálu
44
SEZNAM P ÍLOH A Spuöt ní m ení
46
B Obsah p iloûeného CD
47
45
A
SPUäT NÍ M
ENÍ
M ení je moûné vyzkouöet na p ístroji FTB - 200 v laborato i optick˝ch sítí. Pro spuöt ní programu je nutné zkopírovat knihovnu „msvcr100d.dll“ do system32 nebo do ko enového adresá e programu. P ed spuöt ním automatizovaného m ení je nutné spustit program dodávan˝ v˝robcem a vybrat typ m ení (CD a PMD) disperze optického vlákna. Dále v naöem vytvo eném programu vybrat celkovou dobu m ení a as opakování jednotliv˝ch díl ích m ení. Tla ítkem Start se spustí m ení, tím se hlavní m ící program maximalizuje a nastaví do pop edí. V˝sledkem automatizovaného m ení jsou binární a html soubory z díl ích m ení. Soubory se nacházejí ve vytvo ené sloûce pojmenované „Auto. mereni dd. mm. rrrr hh mm ss“ v adresá i „D:/Documents and Settings/Operator/My Documents/CDPMD“. V˝sledn˝ CSV soubor se souhrnem nam en˝ch hodnot se ve vytvo ené sloûce nachází téû.
46
B
OBSAH P ILOéENÉHO CD
Na p iloûeném CD se nachází bakalá ská práce, spustiteln˝ program, knihovna pot ebná ke spuöt ní programu a sloûka se zdrojov˝mi kódy. Aplikace byla testována ve Visual Studio 2010.
47