Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra Softwarového inženýrství
Bakalářská práce
Systém pro zpracování dat ze sportovních radarů a jejich export Martin Polívka
Vedoucí práce: Ing. Jiří Dostál
15. května 2013
Poděkování Chtěl bych poděkovat všem, kteří mi poskytli potřebné informace o zařízeních použitých v této práci. Děkuji za zapůjčení sportovního radaru a také za možnost vyzkoušet si práci s videokartou. V neposlední řadě děkuji svému vedoucímu a také rodině a kamarádům, kteří mě morálně podporovali.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 15. května 2013
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2013 Martin Polívka. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Polívka, Martin. Systém pro zpracování dat ze sportovních radarů a jejich export. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2013.
Abstract This Bachelor thesis is analyzing possibilities of sport radars and how to use them in television broadcasts. Implemented application is used for saving measured data from radars and to export them to selected output formats. Main output format is using videocard, which is generating videosignal. Keywords radar, sport, java, export, television, online, decklink
Abstrakt Tato práce se zabývá analýzou a určením možností sportovních radarů a jejich využití v televizním vysílání. Zároveň s prací byla implementována aplikace, která umožňuje ukládání hodnot naměřených připojenými sportovními radary a jejich následný export do vybraných výstupních kanálů. Hlavním výstupním kanálem je videokarta, která vytváří videosignál pro video režii používanou při živých televizních přenosech. Klíčová slova radar, sport, java, export, video, režie, decklink ix
Obsah Úvod
1
1 Analýza 1.1 Sportovní radar . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Televizní vysílání . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Dostupná řešení . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 6 8
2 Návrh 11 2.1 Spojení zařízení . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Realizace 3.1 Hlavní okno aplikace . . 3.2 Nastavení . . . . . . . . 3.3 Zpracování dat z radaru 3.4 Export vybraných dat . 3.5 Testování . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
19 19 20 20 21 23
Závěr
27
Literatura
29
A Uživatelská příručka A.1 Systémové požadavky A.2 Instalace . . . . . . . A.3 Začínáme . . . . . . A.4 Nastavení . . . . . .
31 31 31 32 32
. . . .
. . . .
. . . .
. . . . xi
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
A.5 Rozšíření pro export . . . . . . . . . . . . . . . . . . . . . . A.6 Ovládání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.7 Ukončení aplikace . . . . . . . . . . . . . . . . . . . . . . . .
34 35 36
B Programátorská příručka 37 B.1 Vývojové prostředí . . . . . . . . . . . . . . . . . . . . . . . 37 B.2 Použité knihovny . . . . . . . . . . . . . . . . . . . . . . . . 37 B.3 Zdrojový kód . . . . . . . . . . . . . . . . . . . . . . . . . . 38 C Seznam použitých zkratek
39
D Obsah přiloženého CD
41
xii
Seznam obrázků 1.1 1.2 1.3
Sportovní radar Stalker Sport 2 . . . . . . . . . . . . . . . . . . Správné umístění radaru . . . . . . . . . . . . . . . . . . . . . . Video režie Blackmagic Design ATEM 1 M/E Broadcast Panel .
2.1 2.2 2.3 2.4
Wireless LAN UART Serial Port modul Blackmagic Design DeckLink Studio . . Návrh základních tříd . . . . . . . . . . Use Case diagram aplikace . . . . . . . .
. . . .
12 13 15 16
3.1 3.2
Stavový diagram naměřené hodnoty . . . . . . . . . . . . . . . . Testování výstupu z videokarty . . . . . . . . . . . . . . . . . .
21 24
A.1 Správce zařízení systému Windows . . . . . . . . . . . . . . . . A.2 Hlavní okno aplikace . . . . . . . . . . . . . . . . . . . . . . . .
33 36
xiii
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4 5 8
Seznam tabulek 1.1
Příklad formátu zpráv . . . . . . . . . . . . . . . . . . . . . . .
xv
6
Úvod Radarové systémy se v poslední době hojně používají k měření rychlosti vozidel. Postupně pronikají i do sportu, kde se s jejich pomocí měří výkony sportovců. Díky rozvoji audiovizuálních služeb se začínají hledat další možnosti, čím diváka více zaujmout. V dnešní době se například při tenisovém utkání měří rychlost podání, která je zobrazována na panelech u hřiště a často také v televizním vysílání. Cílem mé práce je vytvořit aplikaci, která dokáže převést, uložit a následně exportovat data ze sportovních radarů do živého televizního vysílání. Analyzuji a připravím systém pro jeden nebo více sportovních radarů, které připojím k počítači. Na počítači bude spuštěna aplikace, která dokáže data z radaru zpracovat a nabídne administrátorovi možnost exportovat vybrané naměřené hodnoty z radarů do zvolených exportních kanálů. Počítač připojím pomocí videokarty k video režii, která je schopná zpracovat exportovaná data a vložit je do televizního přenosu. Exportních kanálů bude mít administrátor na výběr více. Pokusím se aplikaci a exportní kanály přizpůsobit živému televiznímu vysílání.
1
Kapitola
Analýza 1.1
Sportovní radar
Sportovní radar je radar, určený pro měření rychlosti ve sportech. Poprvé se začal používat pro měření rychlosti nadhozu v americkém baseballu. V dnešní době se používá například v tenise, kde se měří rychlost podání. Sportovní radar funguje na základě tzv. Dopplerova jevu. To je jev, který popisuje změnu vlnové délky a frekvence v přijímaném signálu oproti vysílanému. Při měření rychlosti radar vyšle signál o určité frekvenci, který se po odrazu od předmětu vrátí zpět k radaru. Ten změří jeho frekvenci a z rozdílu obou frekvencí vypočítá rychlost, kterou se měřený objekt pohybuje. Existují jednodušší typy sportovních radarů, které umějí změřit pouze rychlost objektu a složitější, které dokáží vypočítat i vzdálenost objektu. Mezi největší výrobce radarů a radarových systémů patří firma Stalker Sport, která na trhu působí od roku 1989. Specializuje se na americký trh, ale jejich výrobky je možné koupit i u nás.
1.1.1
Použitý radar
Já mám k dispozici jednoduchý radar od společnosti Stalker Radar uvedený na obrázku 1.1, který měří pouze rychlost objektu. Jedná se o pistolový radar Stalker Sport 2 [7], který je možné připojit k počítači pomocí komunikačního portu, přes který dokáže odesílat naměřená data. Rozdíly v komunikaci mezi radary stejné firmy jsou minimální, proto se budu snažit výslednou aplikaci přizpůsobit pomocí individuálního nastavení tak, aby ji bylo možné použít s co největším množstvím radarů různých typů a případně i od různých výrobců. 3
1
1. Analýza
Obrázek 1.1: Sportovní radar Stalker Sport 2
Radar má obrazovku, kde zobrazuje aktuální nastavení a naměřenou rychlost. Napájen je tužkovými bateriemi v rukojeti a může být připevněn na stojan. Nevýhodou radaru je, že nemá žádný konektor pro zvláštní napájení a v případě vybitých baterií se radar musí vypnout a baterie vyměnit. To může být problém při déle trvajících utkáních. Výrobce udává provozní dobu radaru na přibližně 5 hodin. Jediná možnost je připojit radar do elektrické zásuvky pomocí konektoru pro export. Ten já budu využívat pouze pro export a tak budu spoléhat na dostatečnou kapacitu baterií. Další informace o radaru je možné získat v manuálu od výrobce [8].
1.1.2
Nastavení radaru
Radar měří rychlost třemi způsoby. Prvním způsobem změří rychlost jednorázově při stisknutí tlačítka. Další možností je měření stisknutím tlačítka. To určuje začátek a konec měření. Mezi těmito stisky radar stále měří jednu hodnotu za druhou. V posledním případě je radar přepnut, aby měřil neustále, a stisknutí spouště na měření nemá vliv. Tento způsob využiji ve vytvářené aplikaci a proud dat, který mi radar odešle, zpracuji přímo v ní. Radar lze přepnout na zobrazování rychlosti v kilometrech, nebo mílích za hodinu. Zároveň je možné nastavit nejmenší zobrazovanou naměřenou rychlost, aby se předešlo zobrazování rychlosti z pohybu hráčů po hřišti. Toto nastavení je u většiny radarů omezeno na vybrání nejmenší rychlosti 4
1.1. Sportovní radar
Obrázek 1.2: Správné umístění radaru
z několika nabízených. Pro zpřesnění měření můžeme v nastavení změnit úhel, v kterém je radar umístěn vzhledem k pohybu objektu, který měříme. V případě, že se měřený objekt pohybuje přímo k nám, nebo od nás, není nastavení potřeba, protože nemá žádný vliv na výsledek. Zadaný úhel se při výpočtu používá k upřesnění naměřené rychlosti. V případě, že je nastavený jiný úhel, než nulový, je rychlost přepočítávána pomocí následujícího vzorečku, kde v0 je naměřená rychlost a d je úhel mezi postavením radaru a trajektorií měřeného předmětu.
v=
v0 cos d
Výrobce radaru doporučuje umisťovat radar tak, aby úhel při měření rychlosti byl co nejmenší. To znamená umístění radaru přímo proti pohybujícímu se předmětu, nebo přímo za předmět. Při použití radaru ve sportech je takové umístění většinou nemožné a malá odchylka v měření se zanedbává. Tuto odchylku můžeme eliminovat použitím více radarů. Například při tenisovém zápase mohou být radary rozmístěny v rozích hřiště a při podání se použijí pouze dva, které jsou v trajektorii míčku. Použití více radarů může zpřesnit výsledky měření. 5
1. Analýza Tabulka 1.1: Příklad formátu zpráv Celé číslo ’ 50(CR)’ ’050(CR)’ ’50(CR)’
1.1.3
’ 5(CR)’ ’005(CR)’ ’5(CR)’
Číslo s desetinami ’ 50.1(CR)’ ’ 5.1(CR)’ ’050.1(CR)’ ’005.1(CR)’ ’50.1(CR)’ ’5.1(CR)’
Komunikace
Radar je možné připojit k počítači, či jinému zařízení pomocí sériového portu, po kterém se odesílají naměřená data. Sériový port je vidět na obrázku 1.1. Formát odesílaných dat je možné změnit v nastavení radaru. Tam se nastavuje i přenosová rychlost portu. Radar odesílá 4 byty dat (6 v případě rozlišení na desetiny) které obsahují naměřenou rychlost. V posledním bytu odešle hodnotu 0x0D (CR), která znamená konec zprávy. V případě rozlišení na desetiny se v čtvrtém bytu odešle desetinná čárka (byte 0x2E) a v pátém bytu se odešle číslice desetiny. Všechna data jsou odesílána v ASCII kódování pomocí 8 datových bitů bez parity a s jedním závěrečným bitem. Formát zprávy pro celou část rychlosti můžeme rozlišit na 3 typy. V prvním se na nevyužitá místa před číslo přidávají mezery, v druhém se přidávají nuly a v třetím případě se rychlost odesílá pouze v potřebném počtu bytů. Příklad formátování zprávy je v tabulce 1.1. Nastavení formátu zprávy je možné změnit v nastavení radaru. Výrobce doporučuje používat formát s doplněním nul před naměřenou rychlost v případě dalšího zpracování a v případě přímého zobrazení například na grafickém panelu je upřednostněn třetí formát, kde se odesílá jen potřebný počet bytů.
1.2
Televizní vysílání
Cílem mé práce je použít hodnoty, naměřené radarem, v televizním vysílání. Budu se soustředit na živý přenos, protože ten je složitější a nepřipouští žádné časové prodlevy. To znamená, že aplikace musí komunikovat v reálném čase s video zařízením, kterému odešle videosignál. Pro živý přenos je nejdůležitější režie, která videosignál zpracovává. Na obrázku 1.3 je zobrazena profesionální režie od společnosti Blackmagic Design. 6
1.2. Televizní vysílání
1.2.1
Video režie
Video režie je zařízení, do kterého jsou přivedeny všechny video signály. Režie má jeden hlavní výstup a její obsluha rozhoduje, jaký vstupní signál se na něj odešle. Režie zajišťuje tzv. frame sync vstupních signálů. To znamená, že při střihu nedochází k přeskočení obrazu. Grafika se při živém přenosu do režie posílá po video vstupu, resp. vstupech. Krátké grafické sekvence lze nahrát přímo do režie, například pomocí FTP nebo USB. Tuto grafiku ale není možné během přenosu měnit a tak se používá pouze pro předěly a loga. Další důležitou funkcí režie, používanou při živém vysílání, je klíčování. Tuto funkci mají jen pokročilejší video režie. Klíčováním se vkládá grafika do obrazu. Jako příklad grafiky může být skóre a čas při hokejovém zápase, nebo rychlost a pořadí závodníka při sjezdovém lyžování. Klíčovat lze několika způsoby. 1.2.1.1
Color key - klíčování na barevné pozadí
V případě použití tohoto klíčování je grafika zobrazena na zeleném, případně modrém pozadí. Při vložení grafiky přes obraz režie barevné pozadí odstraní. Jedná se o nejjednodušší způsob klíčování, známého například z filmových triků. Při práci s grafikou se ale moc nepoužívá, protože nelze zajistit částečnou průhlednost grafiky. 1.2.1.2
Luma key - klíčování jasem
Grafika je tvořena pomocí dvou signálů. Obrazový signál (fill signal) obsahuje grafiku a jasový signál (luma key) obsahující informace o průhlednosti grafiky. Černá v jasu určuje průhlednost, bílá viditelnost a stupně šedi částečnou průhlednost. Vynásobením obou signálů pak získáme výslednou grafiku s průhlednými prvky. Pomocí tohoto klíčování se dá vytvořit velmi efektní grafika, která se v živých přenosech používá nejčastěji. 1.2.1.3
Key with alpha - dva kanály
Při použití tohoto klíčování obsahuje signál grafiku a zároveň alfa kanál. Alfa kanál obsahuje informace o průhlednosti. V porovnání s předchozím klíčováním není potřeba jasový signál, vše je zakódováno v jednom signálu. Tento typ klíčování je poměrně nový a používá se hlavně u grafiky, která je uložena přímo v režii. Je podporován zatím pouze menším počtem režií. 7
1. Analýza
Obrázek 1.3: Video režie Blackmagic Design ATEM 1 M/E Broadcast Panel
1.3
Dostupná řešení
Sportovní radary se hojně využívají ve sportovních utkáních, kde je naměřená rychlost zobrazována na velkých panelech na hřišti. Většinou se jedná o radar, který je připojený přímo k panelu, či tabuli a naměřená rychlost je ihned zobrazována pomocí zobrazovacího softwaru v panelu. Radary jsou také často používány pro soutěže o nejtvrdšího střelce, nebo pro určení rychlosti běhu v daném místě. Divák se na zobrazovací panel se zájmem podívá, protože může porovnávat výkony jednotlivých sportovců. Proto jsou tyto panely využívány i k reklamním účelům. Firmy, poskytující tyto systémy, je dodávají jako komplexní řešení a nenabízejí pouze jejich část. Jediný dostupný je program ATS [9] od firmy Stalker Radar, který dokáže zpracovávat naměřené údaje a dopočítávat vzdálenosti a zrychlení měřených objektů. Je dodávaný zároveň se sportovním radarem. Jeho použití je podle výrobce hlavně v měření a testování zrychlení automobilů. Další možností je zakoupit starší software Speed Acquisition Software [11], který je přizpůsobený pro týmové sporty, jako je fotbal, nebo hokej. Software dokáže ukládat údaje nejen o rychlosti k jednotlivým, předem definovaným hráčům. Neexistuje veřejně dostupná aplikace, která by umožňovala ukládání naměřených rychlostí z jednoho, či více připojených radarů a následný ex8
1.3. Dostupná řešení port vybraných hodnot. Výše uvedený software je možné použít pouze na zpracování dat z radaru, ale není přizpůsoben k exportu do televizního vysílání. Hlavním cílem mé aplikace by mělo být přímé spojení s video režií, která exportovaná data dokáže zpracovat a zobrazit v televizním vysílání. Zároveň se pokusím aplikaci obohatit dalšími výstupními kanály, které by mohly být užitečné pro zobrazování naměřených údajů. Nepodařilo se mi zjistit, jak mají tento systém vyřešené společnosti, které divákům poskytují rychlosti podání při tenisových zápasech. Pravděpodobně jde o vlastní řešení společnosti, které může být komplexní a podporuje měření dat radarem až po export do režie. Je také možné, že jde pouze o aplikaci, která zpracovává data z radarů, zobrazuje je na obrazovce a operátor výslednou rychlost přepisuje do jiného zařízení, které vytvoří grafiku a ta se odešle jako videosignál do režie.
9
Kapitola
Návrh 2.1
Spojení zařízení
Pro funkční systém potřebuji připojit sportovní radar k počítači, na kterém bude spuštěna moje aplikace pro zpracování dat. Aplikace bude umožňovat export dat přes vybraný exportní kanál do video režie. Video režii je možné k počítači připojit několika způsoby podle požadavků. V případě, že budu chtít použít videokartu, budu muset použít stolní počítač.
2.1.1
Připojení radaru
Sportovní radar má sériový port, který se v dnešní době příliš nepoužívá. Proto použiji USB převodník, který v počítači vytvoří virtuální komunikační port a pomocí něj radar připojím. Převodník je zařízení, které převádí sériová data do USB formátu a zpět. Připojí se do USB portu počítače a obsahuje sériový port, kam se připojí radar. Vybral jsem si převodník vestavěný do USB konektoru, protože je malý a dostupný. Převodníků existuje více druhů pro různé sériové porty. Hlavními zástupci jsou RS232 a RS485. Při větší vzdálenosti mezi radarem a počítačem je možné použít bezdrátový přenos dat. Příkladem může být fotbalový zápas, kde jsou použity dva sportovní radary, jeden za každou bránou. Počítač, který zpracovává výsledky je umístěn na tribuně v polovině hřiště. S ohledem na jednoduchou instalaci celého systému se může použít převodník dat ze sériového portu na bezdrátovou technologii Wi-Fi. Ke každému radaru by se připojil vysílač, který by odesílal bezdrátovou technologií data na přijímač, připojený k počítači. Přijímač by převáděl přijatá data na sériová data a předával je na komunikační port, jako kdyby byl radar přímo připojený. Tímto způ11
2
2. Návrh
Obrázek 2.1: Wireless LAN UART Serial Port modul
sobem by se zamezilo použití desítek metrů kabelů, které by jinak byly potřeba k propojení potřebných zařízení. Pro tento bezdrátový přenos bych použil zařízení Wireless LAN UART Serial Port modul [10] od firmy connectBlue, ke kterému je dodáván konfigurační software SPA Toolbox. Modul je zobrazen na obrázku 2.1. Bezdrátový modul zabalí sériová data do paketů a přenese je jako síťová data. Na druhé straně se data rozbalí pomocí druhého modulu, nebo se mohou dále přenášet po síti.
2.1.2
Připojení k režii
Pro použití v živém televizním vysílání budu muset vytvořit videosignál, který přenesu z počítače do režie. Počítač připojím k režii přes videokartu. Zpracování kanálu už nechám plně na režisérovi televizního přenosu. Videokarta automaticky odešle vygenerovaný signál na své výstupy a tedy i do připojené režie. Videokarta Blackmagic Design DeckLink Studio od firmy Blackmagic Design [1], kterou mám k dispozici (obrázek 2.2), se dá použít na libovolném operačním systému. Z důvodu testování mohu kartu připojit přímo k televizi přes kompozitní vstup a prohlédnout si tak video, které v mé aplikaci vytvořím. Je to stejný obraz, který se v případě ostrého nasazení bude odesílat do video režie. 12
2.2. Aplikace
Obrázek 2.2: Blackmagic Design DeckLink Studio
Odesílané video by mělo obsahovat pouze grafický prvek, v kterém bude text s naměřenou rychlostí. Protože grafický prvek nebude přes celou obrazovku, ale bude pomocí video režie do obrazu přidán, použiji jednoduché klíčování na barevném pozadí, které režie odstraní. Pokusím se zároveň implementovat možnost vytvoření videa s jasovým signálem, díky kterému by se dalo také klíčovat. Pro tento případ je potřeba videokarta, která dokáže odesílat zároveň dva signály na dva výstupy připojené do video režie, případně použít dvě videokarty. Videokarta Blackmagic Design DeckLink Studio má pouze jeden audio a jeden video výstup.
2.2
Aplikace
Výsledkem práce by měla být aplikace, která dokáže zpracovávat naměřené hodnoty radarem a ukládat je. Zároveň by měla umět exportovat uložené hodnoty do vybraných výstupních formátů. Aplikace by měla umožňovat nastavení formátu v jakém jsou data přijímána a také nastavení výstupních formátů. Samozřejmostí je uložení nastavených údajů pro další použití. Aplikace musí ve výsledku fungovat dostatečně rychle a mít intuitivní a rychlé ovládání. Proto přizpůsobím ovládací prvky také pro dotykové 13
2. Návrh ovládání. To bývá zpravidla rychlejší než ovládání myší.
2.2.1
Volba programovacího jazyka a prostředí
Rozhodl jsem se, že aplikaci naprogramuji v jazyce Java [5]. Hlavní výhodou jazyka Java je jeho nezávislost na operačním systému. Další výhodou je snadná implementace uživatelského rozhraní pomocí knihovny Swing. Jazyk Java je objektově orientovaný programovací jazyk od firmy Sun Microsystems a patří mezi jeden z nejpoužívanějších programovacích jazyků. Aplikaci budu programovat v prostředí aplikace Netbeans [4], která je přizpůsobena k vývoji aplikací v jazyce Java. Jedná se o open source projekt, který zastřešuje firma Sun Microsystems. Protože bude aplikace naprogramována v jazyce Java, bude možné ji spustit na jakémkoliv operačním systému, který bude mít nainstalovanou Javu. Budu hodně využívat externí knihovny a je možné, že některé nebudou pro určité operační systémy dostupné. Moji snahou bude shromáždit všechno potřebné, aby aplikace plně fungovala na co nejvíce operačních systémech. V případě, že nebude některá funkce dostupná, upozorním na to. Primárně bude aplikace vyvinuta pro operační systém Windows, na kterém ji také budu testovat. Konkrétně na 64bitové verzi Microsoft Windows 7.
2.2.2
Jazyk aplikace
Aplikaci budu psát v anglickém jazyce, protože mu většina programátorů bude rozumět, kdybych se rozhodl aplikaci uvolnit k volnému užívání i se zdrojovými kódy. Protože primárně připravuji aplikaci do českého prostředí, vytvořím český překlad všech textů v aplikaci. Pro tento účel použiji třídu I18n, která dokáže používat soubor properties, který obsahuje pro každou větu v aplikaci její překlad. Pokud budu já, nebo někdo jiný, chtít přeložit aplikaci do jiného jazyka, bude stačit přeložit jen soubor s překlady a následně v nastavení aplikace zvolit požadovaný jazyk. Soubor properties je textový soubor, který je možné načíst či uložit pomocí třídy Properties. Soubor je možné upravit v jakémkoliv dostupném textovém editoru a obsahuje vždy klíč a jeho hodnotu, mezi které je vloženo rovnítko.
2.2.3
Popis aplikace
Aplikace by měla být co nejjednodušší a pro uživatele příjemná a intuitivní. Hlavní okno by mělo zobrazovat přehledný výpis naměřených hodnot 14
2.2. Aplikace
Obrázek 2.3: Návrh základních tříd
a tlačítko pro export vybrané hodnoty. Zároveň by zde mělo být tlačítko pro zapnutí a vypnutí zpracovávání a ukládání dat pro každý připojený radar. V okně nastavení by uživatel měl mít možnost nastavit chování aplikace a výběr výstupních formátů. Aplikace bude připravena pro zpracování dat z více připojených radarů. Pro každý radar by mělo být možné nastavit jeho jméno a port, ke kterému je připojen, abychom mohli lehce identifikovat uložená data. Aplikaci nebude obsahovat příliš grafických prvků. Bude udělána co nejjednodušeji a proto nemusí na první pohled vypadat dobře. Hlavním úkolem bude, aby správně fungovala a splnila očekávání uživatele.
2.2.4
Rozvržení tříd
Aplikaci budou tvořit tři hlavní třídy. První třída bude sloužit jako kostra aplikace, bude udržovat nastavení a ovládací prvky. Hlavní úlohou bude ukládání hodnot z radaru do přehledné tabulky a jejich předání pro export. Třída pro zpracování dat z připojeného sportovního radaru bude mít k dispozici metody pro připojení a zpracování dat ze sériového portu a jejich následné předání hlavní třídě, která je uloží. Export uložených dat bude mít na starosti zvláštní třída, která bude poskytovat rozhraní pro rozšíření zajišťující export dat. Každé rozšíření bude využívat metod této třídy a bude implementovat své vlastní. Zpracování dat a jejich export musí probíhat nezávisle na sobě, proto budu potřebovat minimálně 3 vlákna, které budou aplikaci tvořit. Hlavní 15
2. Návrh
Obrázek 2.4: Use Case diagram aplikace
vlákno bude mít na starosti spuštění aplikace. Zpracovávat data ze sériového portu budu pro každý radar pomocí zvláštního vlákna, které bude poslouchat na sériovém portu pro zvolený radar a zpracovávat přijatá data. Tato data bude odesílat hlavnímu vláknu, které je bude ukládat. Zvolená data se mohou zároveň exportovat do více kanálů. Pro každou exportovanou hodnotu vytvořím nové vlákno, které bude mít na starosti export hodnoty do jednoho výstupního kanálu. Tato vlákna se budou podle potřeby vytvářet a ukončovat.
2.2.5
Grafické rozhraní
Pro grafické rozhraní aplikace jsem vybral knihovnu Swing, kterou poskytuje programovací jazyk Java. Knihovna Swing je rozšířením starší grafické knihovny AWT a umožňuje jednoduchý návrh uživatelského rozhraní v prostředí aplikace Netbeans. 16
2.2. Aplikace
2.2.6
Zpracování dat z radaru
Radar je k počítači připojený pomocí komunikačního portu, po kterém jsou odesílána data ve formátu daném nastavením radaru. Pro připojení ke komunikačnímu portu využiji knihovnu RXTX[6]. Knihovna zajišťuje připojení a správu sériového portu. Data jsou přijímána ve formátu bytů, které musím podle nastavení zpracovat do čísla, které udává naměřenou rychlost.
2.2.7
Export dat
Hlavní účel aplikace je v možnosti exportovat naměřená data do různých formátů. Pro export dat vytvořím třídu, která bude sloužit jako rozhraní pro další rozšíření, které se už budou starat o vlastní export. Rozšíření byla zvolena podle důležitosti a použitelnosti v praxi.
2.2.8
Rozšíření pro export
První a nejjednodušší rozšíření pro export vytvořím pro export naměřené hodnoty do souboru formátu XML. Na něm si vyzkouším, jak funguje rozhraní pro export. XML je formát určený pro výměnu dat mezi aplikacemi a nemá pevně definovanou strukturu. Bude stačit, když vytvořím textový soubor, který naplním správným obsahem. Na dalším rozšíření si vyzkouším přenos souborů a dat přes TCP/IP protokol. V tomto rozšíření přenesu vytvořený XML soubor. K tomu budu potřebovat klientskou i serverovou část. Vytvořím serverovou část, která bude připravena odesílat data na zvoleném portu. Aplikace počká na připojení klientské části a po jejím připojení odešle zvolená data. Klientská aplikace data přijme a zpracuje podle vlastní potřeby. V třetím rozšíření bude mít uživatel možnost vypsat naměřenou hodnotu do obrázku, který bude předem připravený. Ze začátku bude k dispozici pouze statický obrázek, ale pokud to bude možné, rád bych přidal možnost exportu hodnoty také do souboru GIF s animací. Obrázek bude obsahovat grafický prvek na zeleném pozadí. Do grafického prvku na daných souřadnicích se bude zapisovat text. Export do obrázku využiji při exportu hodnoty do videa. Vytvořený obrázek převedu pomocí knihovny FFmpeg do videosouboru, který bude obsahovat záznam obrázku o zadané délce. Vytvoření videa by mohlo být zajímavé v případě, že se video bude vytvářet z GIF animace. V případě vytváření videosouboru uživateli nabídnu možnost vytvořit stejný videosoubor s jasovým signálem, který se použije při klíčování. Bude to stejný videosoubor, ale v černobílých barvách, které určí průhlednost. 17
2. Návrh Poslední implementovaným výstupním kanálem bude vytvoření videosignálu na videokartě DeckLink Studio, která je spojena s režií. Video signál vytvořím pomocí knihoven DSJ[2] a JDL[3] určených pro programovací jazyk Java, protože oficiální SDK od společnosti Blackmagic Design je určeno pouze pro rodinu programovacích jazyků C. Zajímavý by byl export zpět na sériový port. Ten využívají velkoplošné tabule, kde by se hodnota mohla přímo zobrazovat. Bohužel neexistuje pevně daný formát a tak je každá tabule programována pro formát požadovaný programátorem. Nové tabule umějí dokonce přijímat data přes síťové připojení. Tento výstupní kanál implementovat nebudu.
18
Kapitola
Realizace 3.1
Hlavní okno aplikace
Práci na aplikaci začnu vytvořením hlavního okna s pomocí rozšíření Swing. Aplikace bude obsahovat hlavní menu a panel, v kterém bude zbývající obsah.
3.1.1
Hlavní menu
Hlavní menu vytvořím pomocí komponenty JMenu. Menu bude obsahovat jen odkazy na nastavení, informace o projektu a také možnost aplikaci ukončit.
3.1.2
Hlavní panel
Hlavní panel bude obsahovat ovládací prvky a tabulku s přehledem naměřených hodnot. Počet ovládacích prvků se může změnit, podle počtu připojených radarů. Hlavním ovládacím prvkem bude tlačítko pro export zvolené hodnoty v tabulce do vybraných exportních kanálů. Zbývající ovládací prvky budou přepínací tlačítka, která budou v poloze zapnuto nebo vypnuto. Pokud bude tlačítko v poloze zapnuto, aplikace bude ukládat naměřená data z radaru. Pro tato tlačítka použiji komponentu JToggleButton knihovny Swing. Tabulka pro ukládání naměřených hodnot bude mít tři sloupce. U každé naměřené hodnoty budu ukládat i čas měření a název radaru, který ji změřil. V tabulce bude možné označit řádek a následně ho stisknutím tlačítka pro export odeslat do výstupních formátů zvolených v nastavení. 19
3
3. Realizace
3.1.3
Informační okno
Informační okno bude umístěno ve spodní části hlavního okna a budou se v něm zobrazovat informace o činnosti aplikace. Mohou to být například informace o dokončení exportu na jednotlivé kanály nebo informace o chybách.
3.2
Nastavení
Hlavní okno aplikace bude možné přepnout pomocí menu do okna nastavení. V okně nastavení budou jednotlivá nastavení pro aplikaci a zároveň pro každý připojený radar. Mezi základním nastavením bude možnost zvolit jazyk aplikace a počet připojených radarů. Pro export hodnot z aplikace zde budou zobrazeny všechny možné exportní kanály. V případě, že některý z nich bude mít své vlastní nastavení, bude u něj zobrazeno i tlačítko, které toto nastavení otevře.
3.2.1
Nastavení radaru
Podle počtu připojených radarů se zobrazí nastavení pro daný počet radarů. U každého radaru bude mít uživatel možnost zvolit si vlastní pojmenování radaru, port, ke kterému je radar připojen a rychlost portu. Jako volitelné nastavení bude možné u každého radaru zapnout, zda měří rychlost ve formátu čísla s desetinami nebo bez nich.
3.2.2
Uložení nastavení
K ukládání nastavení využiji properties soubory, které jsou v Javě podporované a doporučené. Soubor je uložen na disku vedle aplikace a není problém ho v případě nutnosti upravit v jakémkoliv textovém programu.
3.3
Zpracování dat z radaru
Zpracování dat z radaru začíná zapnutím tlačítka v hlavním okně aplikace. Aplikace v okamžiku zapnutí vytvoří nové vlákno, které bude data zpracovávat a předávat je hlavnímu oknu. Hlavní okno je bude ukládat do tabulky. Vlákno dostane od aplikace pomocí parametrů informace, na který port se má připojit a na něm poslouchat. V případě, že na port přijdou data, bude schopné je podle nastavení zpracovat. 20
3.4. Export vybraných dat
Obrázek 3.1: Stavový diagram naměřené hodnoty
V nastavení aplikace je možné se rozhodnout, jakým způsobem budou data v tabulce ukládána a zobrazována. Připojený radar ve správném nastavení měří jednu hodnotu za druhou a tabulka by se brzy zaplnila množstvím dat. Proto je možné nastavit, kolik posledních naměřených hodnot se bude v tabulce zobrazovat, nebo po jakém čase se z tabulky odstraní. Další možností je zapnout omezení, které přidá do tabulky pouze hodnoty, které se svoji hodnotou výrazněji liší od dříve naměřených. Toto omezení má také časový limit, po kterém je deaktivováno. Jako příklad může sloužit podání v tenise, kde je jedním radarem změřeno pět hodnot s minimálním rozdílem. Do tabulky bude uložena jen jedna a to zpravidla ta nejvyšší.
3.4
Export vybraných dat
Pro export vybraných dat se využívají rozšíření třídy Export, která představuje rozhraní. Implementuje shodné a důležité metody potřebné pro export dat. Každé rozšíření musí splňovat základní rozvržení této třídy a implementovat své vlastní metody pro export. V případě exportu dat se podle nastavení zvolí všechny exportní kanály, které se pro vybranou hodnotu použijí a postupně se všechny spustí. Spuštění rozšíření probíhá v nových vláknech, aby aplikace nemusela čekat na export dat, který u některých rozšíření může trvat delší dobu. Některá rozšíření používají pro svoji činnost výstup z jiných rozšíření. Proto je potřeba, aby všechna rozšíření fungovala nezávisle na sobě, ale zároveň jedno rozšíření počkalo, než obdrží výstup z jiného. Pro kritické sekce jsem zvolil metodu serialized, kterou Java poskytuje a pomocí metod wait() a notify() vlákna upozorňuji, kdy mohou pokračovat ve své činnosti. 21
3. Realizace Všechny vytvářené soubory jsou ukládány do složky rozšíření ve složce plugins v hlavním adresáři aplikace. Soubor je uložen s názvem obsahujícím datum a čas, kdy byl vytvořen.
3.4.1
Export do souboru XML
Export do souboru XML je nejjednodušší rozšíření pro export, ale soubory XML jsou snadné k přečtení a tedy hojně používané. Rozšíření vytvoří soubor XML, do kterého zapíše data v daném formátu. Soubor je uložen na pevný disk do složky s rozšířením.
3.4.2
Export dat přes TCP/IP
Export dat přes TCP/IP protokol používá také export dat do formátu XML. Rozšíření nejdříve použije export do souboru XML, který následně odešle přes síťový protokol. Přenos je realizován posloucháním na portu zadaném v nastavení a v případě možnosti odesílat data se soubor odešle. Po úspěšném připojení klienta je vytvořený XML soubor přečten a zapsán do výstupního kanálu. Pro úspěšné testování jsem implementoval i serverovou část, ke které se budu moci připojit a která zařídí příjem a uložení přeneseného souboru na pevný disk. Pro testování v celém projektu je to metoda testServer ve třídě Network, která se spouští v novém vlákně při každém přenosu dat přes toto rozšíření.
3.4.3
Export dat do obrázku
V tomto rozšíření je cílem vytvořit obrázek s vybranou hodnotou. Obrázek mám předem připravený a pouze do něj budu zapisovat danou hodnotu. Soubor obrázku je načten a upravován pomocí knihovny Graphics2D. Na pevně dané souřadnice je zapsána naměřená hodnota. Obrázek má pevně danou velikost a souřadnice, na které se zapisuje text. Do budoucnosti by určitě bylo dobré toto omezení odstranit. Toho by se dalo docílit použitím zdrojového obrázku ve formátu svg, který může být zmenšován a zvětšován podle potřeby. V nastavení exportu by bylo nastavení v jakém rozlišení se má obrázek exportovat. Export je možný do souboru typu gif, png, jpeg, nebo bmp. Zápis hodnoty probíhá podle pevně daných souřadnic. To může být problém u různých rozlišení obrázku. Předpokládám, že uživatel by si chtěl sám určit do jakého místa v obrázku se má exportovaný text zapsat, proto bude nutné přidat do nastavení i možnost zvolit si souřadnice pro zápis, velikost a barvu zapisovaného textu. 22
3.5. Testování
3.4.4
Export dat do videa
Pro export dat do videa využiji předchozí rozšíření pro export dat do obrázku. Video vytvořím pomocí externí knihovny FFmpeg, která je dostupná pro operační systémy Windows, Linux i Mac OS. Knihovna zpracuje dříve vytvořený obrázek a použije ho k vytvoření video souboru. Parametry exportu si uživatel může nastavit v nastavení. Vytvořené video může být ve formátu mov, avi, mp4, mkv, nebo wmv. Délku videa si uživatel také může nastavit. Při exportu je možné vytvořit i soubor s jasovým signálem, který slouží pro klíčování. Obsahuje pouze černou a bílou barvu, které říkají, co se má ve videu zobrazovat a co má zůstat skryto. Soubor se vytváří stejně jako předchozí, ale z černobílého připraveného obrázku.
3.4.5
Export přes videokartu
Vytvoření videosignálu, který se odešle do video režie je možné pomocí knihovny DSJ, která použije výstup z předchozího rozšíření. Po vytvoření videosouboru ve formátu avi se tento soubor zpracuje na videokartě. Ke zpracování se využije oficiální filtr Decklink Video Render od společnosti Blackmagic Design. Audio zpracovávané není. Videokarta vytvoří z videosouboru videosignál, který odešle na své výstupy. Po připojení k režii, televizi, či jinému zařízení je možné sledovat vytvořené video. Při testování jsem použil připojení k televizi přes kompozitní vstup.
3.4.6
Export na sériový port
Rozšíření, není v práci implementováno, ale může být pro uživatele aplikace důležité. Rozšíření by umožňovalo export vybrané hodnoty na sériový port, na kterém by mohla být připojena velkoplošná obrazovka či panel. Tyto grafické panely umožňují komunikaci po sériovém portu RS232 a v případě novějších dokonce i po LAN, či GSM. Cílem rozšíření by bylo vytvořit spojení po zadaném portu, kterým pravděpodobně bude sériový port, a na něj odeslat data ve formátu daném výrobcem zobrazovacího panelu. Jednalo by se o stejnou činnost jako v případě zpracování dat z radaru, jen opačným směrem.
3.5
Testování
Aplikaci jsem průběžně testoval při vytváření uživatelského rozhraní. Grafické prvky nelze přímo testovat, aniž by čas daný do vývoje testovacích funkcí 23
3. Realizace
Obrázek 3.2: Testování výstupu z videokarty
nebyl větší, než jejich přínos. Testování dalších částí aplikace je složitější a nepřinese požadovaný výsledek. Největší přínos v testování bylo nasazení a otestování aplikace u uživatele, který ji používal úplně poprvé. Aplikaci jsem poslal s uživatelskou příručkou, takže všechny kroky od instalace a nastavení až po první spuštění a používání aplikace byly na uživateli, který aplikaci neznal. Dozvěděl jsem se, že uživateli vyhovuje ovládání aplikace a všechny testované věci jsou funkční. Uživatel také přidal své nápady na rozšíření aplikace. Poslední testování bylo provedeno pouze ve virtuálním prostředí s cílem ověřit možnost použití aplikace na různých operačních systémech. Bohužel nebylo možné otestovat funkčnost videokarty ve virtuálním prostředí z důvodu problémů při instalaci ovladačů mezi virtuálním prostředím a videokartou. 24
3.5. Testování Obrázek 3.2 ukazuje propojení zařízení při testování správného výstupu na video režii. Správnost výstupu z videokarty jsem měl možnost ověřit pouze přes kompozitní vstup na televizi.
25
Závěr Cílem mé práce bylo vytvořit aplikaci pro export dat ze sportovních radarů do živého televizního vysílání. Na začátku jsem se seznámil s činností a funkcemi sportovních radarů a analyzoval jsem jejich možnosti. Vytvořil jsem aplikaci, která umožňuje ukládání hodnot naměřených radarem a po výběru hodnoty i její export do vybraných výstupních formátů. Výstupních formátů bylo nakonec implementováno celkem pět. Výstupní formát, který používá videokartu k vytvoření video signálu byl nejzajímavější a potřeboval k svému fungování výstup do obrázku i videa. Na tomto rozšíření jsem si vyzkoušel práci s grafikou a videem a naučil se, jak funguje video režie a příprava televizního přenosu. Největší problém byl ve výstupním kanálu, který tvoří videosignál pro video režii. Měl jsem možnost si vypůjčit videokartu, kterou je možné pomocí SDK od výrobce naprogramovat tak, aby zpracovala video na vstupu a odeslala ho na své výstupy jako videosignál. Musel jsem sehnat stolní počítač s dostatečně rychlým PCI portem, který karta požaduje a zároveň zařízení, které mohu ke kartě připojit a na kterém se zobrazí výstup z karty. To jsem nakonec vyřešil připojením na televizi. Aplikaci jsem chtěl mít dostupnou pro co nejvíce operačních systémů. Nemůžu říci, zda se mi to povedlo, protože jsem neměl možnost zkusit videokartu na jiném systému, než byl Microsoft Windows. Ostatní exportní kanály je možné používat na dalších operačních systémech. V případě knihovny FFmpeg je potřeba pouze změnit nastavení exportu. Práce byla hodně zajímavá a přinesla mi spoustu nových znalostí, které určitě využiji i v budoucnosti.
27
Literatura [1] BLACKMAGIC DESIGN. Desktop Video Manual [online]. 2012 [cit. 2013-05-09]. Dostupné z: http://www.blackmagicdesign.com/media/ 5605171/Desktop_Video_Manual_Dec_2012.pdf [2] HUMATIC GMBH. Direct Show Java wrapper [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.humatic.de/htools/dsj.htm [3] HUMATIC GMBH. Direct Show Java wrapper extension [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.humatic.de/htools/dsj/jdl.htm [4] ORACLE CORPORATION. NetBeans IDE [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.netbeans.org [5] ORACLE CORPORATION. Java SE 6 Documentation [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://docs.oracle.com/javase/6/docs/ [6] RXTX wiki [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://rxtx.qbang.org/wiki/index.php/Main_Page [7] STALKER RADAR. Stalker Sport 2 pistolový radar [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.stalkerradar.com/sportsradar/sport2.html [8] STALKER RADAR. Stalker Sport 2 Owner’s Manual [online]. 2011 [cit. 2013-05-09]. Dostupné z: http://www.stalkerradar.com/sportsradar/documents/0110090-00StalkerSport2owner’smanualRevG.pdf 29
Literatura [9] STALKER SPORT. Stalker Acceleration Testing System [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.radargunsales.com/ Stalker-ATS-%28-Acceleration-Testing-System%29.html [10] SPEZIAL ELECTRONIC. Bezdrátová sériová RS232 WiFi linka [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.spezial.cz/apps/bezdratova-rs232-wifi-linka.html [11] SPORTS RADAR. Speed Acquisition Software DET-PC-01 [online]. 2013 [cit. 2013-05-09]. Dostupné z: http://www.radarguns.com/ sports-radar-speed-radar-gun-accessories-det-pc-01.html
30
Příloha
Uživatelská příručka Tato příručka vysvětluje postup instalace aplikace na počítači a následné připojení všech potřebných zařízení.
A.1
Systémové požadavky
Pro bezproblémový chod aplikace se všemi funkcemi je potřeba splnit následující požadavky: • OS Windows • Java JDK 1.7 či vyšší V případě, že nechcete používat rozšíření pro videokartu DeckLink, bude aplikace fungovat na všech operačních systémech. Pro použití rozšíření pro export do videa je nutné aplikaci spustit na operačním systému Windows, Linux, nebo Mac OS.
A.2
Instalace
Při instalaci aplikace je nutné propojit správně všechna připojená zařízení, zapnout radar a zkopírovat potřebné soubory do správných složek. Aplikaci je potom nutné správně nastavit.
A.2.1
Soubory
Pro správné fungování aplikace na všech operačních systémech je potřeba zkopírovat knihovny do správné složky. Zkopírujte následující soubory do 31
A
A. Uživatelská příručka složky /jdk/jre/bin, kde máte nainstalované JDK: dsj.dll, jdl.dll, rxtxSerial.dll.
A.2.2
Připojení radaru
Radar připojíte k počítači podle manuálu, který k němu dodal výrobce. Standartně se připojuje přes sériový port, ale v případě, že ho v počítači nemáte, použijte převodník na USB. K převodníku je většinou dodáváno i instalační CD od výrobce. V případě, že nám operační systém sám nenainstaluje potřebné ovladače, nainstalujeme je podle pokynů výrobce. Každý sériový port má své unikátní označení, které začíná písmeny COM následovanými číslem portu. Správný název portu zjistíme v systému Windows ve správci zařízení, jak ukazuje obrázek A.1. Označení portu se bude hodit, až budete nastavovat aplikaci. Popis nastavení je popsán v kapitole A.4.
A.2.3
Připojení video režie
V případě, že byste rádi využili možnost komunikace aplikace s video režií, je potřeba propojit videokartu v počítači s režií. Toho nejjednodušeji dosáhneme přes kompozitní vstup a výstup. Opět záleží na výrobci a typu videokarty. Postupujte podle návodu dodaného výrobcem k videokartě, kde je popsána instalace videokarty i potřebných ovladačů.
A.3
Začínáme
Aplikaci spustíte dvojitým kliknutím na soubor aplikace RadarSystem.jar. Spuštění můžete provést také z příkazové řádky pomocí příkazu "java -jar RadarSystem.jar"ve složce, kde je soubor umístěn. Při prvním spuštění se vytvoří soubor s nastavením a aplikace otevře okno nastavení. V případě, že je soubor s nastavením vytvořen, otevře se rovnou ovládací panel aplikace.
A.4
Nastavení
Nastavení aplikace se při prvním spuštění otevře samo. V případě, že chcete nastavení otevřít, zvolte v menu nabídku Soubor a poté Nastavení. Okno nastavení má tři části. Levá část obsahuje hlavní nastavení aplikace. Toto nastavení se týká globálního nastavení, které by mělo být stejné pro všechny připojené radary a celou aplikaci. V pravé části jsou vidět všechny rozšíření pro export. Spodní část okna se věnuje nastavení jednotlivých radarů. 32
A.4. Nastavení
Obrázek A.1: Správce zařízení systému Windows
A.4.1
Jednotky
Můžete zvolit, v jakých jednotkách se bude zobrazovat naměřená rychlost.
A.4.2
Jazyk
Zvolte jazyk aplikace. Po změně jazyka je nutné nastavení uložit a aplikaci restartovat.
A.4.3
Logování
Aplikace umožňuje logovat všechny akce do souboru. V případě, že je tato volba zaškrtnuta, jsou soubory logů ukládány do složky log. 33
A. Uživatelská příručka
A.4.4
Minimální rychlost
Zde nastavte minimální naměřenou rychlost, kterou chcete ukládat. Můžete tak zamezit ukládání rychlosti, která není zajímavá.
A.4.5
Seznam podle
Seznam uložených záznamů můžete filtrovat podle času, nebo podle počtu záznamů.
A.4.6
Seznam počet/vteřin
Podle předchozí volby budou staré záznamy smazány po nastaveném počtu vteřin, nebo pokud počet záznamů přesáhne zadaný počet.
A.4.7
Počet radarů
Zvolte počet radarů, které budete používat. Každý radar má své vlastní nastavení.
A.4.8
Nastavení radaru
U každého připojeného radaru máte možnost nastavit jeho jméno, kterým budou identifikovány jím naměřené hodnoty ve výpisu. V případě, že máte na radaru zapnuto měření s přesností na desetiny, zvolte toto nastavení i zde. Poslední možností je nastavení portu, ke kterému je radar připojen. Ten zjistíte podle kapitoly A.2.2. Rychlost portu určuje nastavení radaru.
A.5
Rozšíření pro export
V pravé části nastavení máte možnost zvolit, která rozšíření pro export budete používat. Některá nastavení pro export mají dodatečné nastavení, které otevřete po kliknutí na tlačítko vedle názvu rozšíření. Export bude probíhat zároveň do všech zvolených rozšíření.
A.5.1
Obrázek
V případě, že zvolíte export do obrázku, bude ve složce plugins/image vytvořena kopie obrázku blank.png, do které bude vepsán změřený údaj o rychlosti. V podrobném nastavení můžete zvolit formát, v kterém bude obrázek uložen. 34
A.6. Ovládání
A.5.2
Síť
Při přenosu změřené rychlosti přes síť se nejdříve provede export do XML a následně přenos tohoto souboru. V nastavení rozšíření můžete zvolit číslo portu, po kterém bude aplikace komunikovat s klientem. Používejte nejlépe porty od 49152, které jsou rezervovány pro soukromé použití. V případě nižšího portu může dojít ke kolizi a přenos nemusí správně fungovat.
A.5.3
Video
Další možností je vytvoření video souboru, který bude uložen do formátu zvoleného nastavením. V nastavení také můžete určit délku vytvářeného videa a další expertní nastavení. Pro vytvoření videa je použit program FFmpeg, který je uložen ve složce plugins/video. V případě, že budete chtít použít aplikaci na operačním systému, pro který není aplikace FFmpeg nastavena, můžete k ní zvolit cestu. Na operačních systémech Windows, Linux a Mac OS je zvolená cesta ignorována.
A.5.4
XML
Zvolením tohoto rozšíření se při exportu vytvoří XML soubor s pevně danou strukturou. Soubor bude uložen do složky rozšíření.
A.6
Ovládání
Okno aplikace je rozděleno na tři části. Ve spodní části je okno, kde je zobrazena činnost aplikace. V případě chyby nebo důležité informace se zde vypíše řádek textu s časem. V horní části je po levé straně tabulka s uloženými naměřenými hodnotami a po pravé straně jsou ovládací prvky. Do tabulky se hodnoty zapisují postupně, jak jsou měřeny radary. Nejnovější hodnota je vždy zobrazena nahoře. Tabulka je rozdělena na tři sloupce. V prvním sloupci je čas, kdy byla hodnota změřena. V druhém sloupci je název radaru, který je zadaný v nastavení. V posledním sloupci je změřený údaj spolu s jednotkami. Každý řádek v tabulce je možné označit. Pokud je nějaký řádek označen a kliknete na tlačítko Exportovat, bude hodnota z třetího sloupce zvoleného řádku exportována do všech výstupních formátů zvolených v nastavení. Informace o exportu se zobrazí v informativním okénku. Pod tlačítkem Exportovat je umístěno ovládací tlačítko ke každému připojenému radaru. Při spuštění aplikace je tlačítko vypnuto. V případě, že chcete povolit ukládání hodnot změřených tímto radarem do tabulky, 35
A. Uživatelská příručka
Obrázek A.2: Hlavní okno aplikace
klikněte na tlačítko. Zůstane zmáčknuté, což znamená, že aplikace bude ukládat naměřené hodnoty podle nastavení. V případě, že chcete ukládání přerušit, stiskněte tlačítko ještě jednou.
A.7
Ukončení aplikace
Aplikaci můžete ukončit uzavřením aplikace křížkem v pravém horním rohu, nebo zvolením nabídky Soubor a Ukončit v menu. Při ukončení aplikace se ukončí záznam hodnot z připojených radarů. Při novém spuštění aplikace budou také smazány všechny soubory, které byly vytvořeny exportem naměřených hodnot.
36
Příloha
Programátorská příručka Programátorská příručka poskytuje informace pro programátory, kteří se s aplikací setkají poprvé a potřebují se rychle zorientovat ve zdrojovém kódu a struktuře aplikace.
B.1
Vývojové prostředí
Jako vývojové prostředí byla použita aplikace NetBeans IDE 7.1 pod operačním systémem Microsoft Windows. Aplikace je naprogramována v programovacím jazyce Java verze 1.7 a tato verze byla použita i pro kompilaci aplikace.
B.2
Použité knihovny
Použil jsem externí knihovny, které jsou umístěny ve složce lib. Tyto knihovny jsou přiloženy k projektu. • RXTXcomm.jar - Ovlávání sériového portu • gettext-commons-0.9.6.jar - Správa překladů aplikace • dsj.jar - ovládání videokarty • jdl.jar - ovládání videokarty 37
B
B. Programátorská příručka
B.3
Zdrojový kód
Zdrojový kód je napsaný v aplikaci NetBeans, která ho dokáže automaticky formátovat. Je doplněn JavaDoc komentáři ze kterých vygenerována dokumentace se strukturou tříd. Dokumentaci je možné nalézt na přiloženém CD ve složce app/html. Dokumentace je vygenerována pomocí programů JavaDoc a Doxygen. Projekt je rozdělen do několika složek, ve kterých jsou zdrojové kódy jednotlivých tříd. Hlavní složka obsahuje spouštěcí třídu aplikace a třídy, které zajišťují zobrazení a funkčnost hlavního okna a okna nastavení. Zároveň s nimi je ve složce rozhraní pro export a třída, která se stará o zpracování dat z radaru. Ve složce items jsou uloženy pomocné třídy, které ve většině případů rozšiřují už hotové komponenty. Složka plugins je určena pro rozšíření pro export. V případě, že má rozšíření své vlastní nastavení, tak je uloženo v podsložce config. Zdrojové kódy rozšíření obsahují i metodu main, která byla použita pro jednoduché testování daného rozšíření.
38
Příloha
Seznam použitých zkratek (CR) Carriage Return ASCII Americký standardní kód pro výměnu informací AVI Audio Video Interleave AWT Abstract Windows Toolkit FTP File Transfer Protocol GIF Graphics Interchange Format GSM Global System for Mobile Communications GUI Graphical user interface JDK Java Development Kit JRE Java Runtime Environment LAN Local Area Network MKV Matroska Multimedia Container MOV QuickTime File Format MP4 MPEG-4 Part 14 File Format RS232 Sériový port, sériová linka SDK Software Development Kit SVG Scalable Vector Graphics 39
C
C. Seznam použitých zkratek TCP/IP Transmission Control Protocol/Internet Protocol USB Universal Serial Bus Wi-Fi Wireless LAN XML Extensible markup language
40
Příloha
Obsah přiloženého CD
readme.txt ................................ stručný popis obsahu CD app html...............................dokumentace ve formátu html exe..................adresář se spustitelnou formou implementace install...............................potřebné knihovny a ovladače readme.txt......................podrobnosti o instalaci knihoven libs ............................ knihovny, přiložené přímo k aplikaci manuals..................................návody na použitá zařízení src app ................................... projekt prostředí Netbeans thesis....................zdrojová forma práce ve formátu LATEX text.....................................................text práce thesis.pdf...........................text práce ve formátu PDF 41
D