MASARYKOVA UNIVERZITA Software NVG Client Dokumentace k výsledku projektu „Vizualizace“ Petr Františ, Jan Hodický, Václav Přenosil 30.1.2013 Obsah Popis........................................................................................................................................................ 2 Přenosové protokoly ........................................................................................................................... 2 Uživatelské rozhraní ............................................................................................................................ 3 Konfigurační soubor ............................................................................................................................ 4 Transformace NVG dat............................................................................................................................ 5 Seznam primitiv z NVG služeb............................................................................................................. 5 Zařazení do kategorií........................................................................................................................... 7 Grafická primitiva zadaná třemi body............................................................................................. 7 Grafická primitiva zadaná dvěma body........................................................................................... 9 Grafická primitiva zadaná čtyřmi body............................................................................................ 9 Směrové šipky.................................................................................................................................. 9 Implementace rozdělení do kategorií ............................................................................................... 10 Označení prostorů............................................................................................................................. 12 Implementované grafické objekty taktických průsvitek ................................................................... 13 Popis přenosového protokolu k vizualizační aplikaci............................................................................ 17 Popis Program NVGClient je určený k přenosu taktických průsvitek z webové služby dle standardu NATO NVG do použitého vizualizačního programu. Při přenosu taktických průsvitek dochází k rozdělení jednotlivých grafických elementů (taktických značek) do určených kategorií a rovněž dochází k převodu symbolů (taktických značek) v přenášených průsvitkách dle kódu APP6b do jeho grafické podoby. Zároveň jsou taktické značky jednotek doplněny informacemi z příslušné databáze o jejich stavu (množství pohonných hmot, obsazenosti, munice a vybavení). Program NVGClient obsahuje rovněž grafické uživatelské rozhraní, které umožňuje uživateli vybírat jednotlivé taktické průsvitky, které jsou k dispozici prostřednictvím služby NVG, nastavovat parametry převodu a dále řídit jejich zobrazení v použitém vizualizačním programu. Obrázek 1 - Schéma propojení programu NVGClient Hlavním účelem programu NVGClient je oddělit dekódování a transformaci taktických průsvitek od samotné vizualizace. Tímto řešení se docílí k nezávislosti vizualizace na použitém operačně taktickém systému nebo jeho verzi či přírůstku. Přenosové protokoly Pro propojení se službou NVG se používá standardní propojení pomocí webové služby (web services), služba NVG a připojení na ni je popsáno v dokumentu Implementace standardu NVG do systému OTS. Program NVGClient používá standardizované propojení, proto není závislý na použitém operačně taktickém systému. Splňuje tedy podmínku interoperability a nezávislosti na použitém operačně taktickém systému, podmínkou je pouze dodržení standardu při implementaci NVG služby v daném operačně taktickém systému. NVG služba Databáze OTS NVGClient Vizualizační aplikace Pro propojení s databází OTS se používá standardní přístup do SQL databáze, zde konkrétně do tabulky Jednotky v OTS PozS AČR. Toto propojení je použito pouze pro získání údajů o naplněnosti konkrétní jednotky municí, personálem, palivem a vybavením. S vizualizační aplikací program NVGClient komunikuje pomocí standardního TCP socketu na port 6666, použitý protokol je proprietární a je dokumentován v příloze. Uživatelské rozhraní Program NVGClient je tvořen hlavním dialogovým oknem. Toto dialogové okno obsahuje ovládací prvky pro načtení průsvitek ze služby NVG, jejich výběru a přenesení do vizualizačního systému, nastavení parametrů vizualizace a ovládání vizualizace jednotlivých průsvitek a taktických značek. Obrázek 2 - Uživatelské rozhraní NVGClient Dialogové okno je rozděleno na tři části. První část nazvaná NVG Server Layers zobrazuje taktické průsvitky, které jsou k dispozici prostřednictvím NVG služby. Tyto průsvitky je možné označit a přenést je do části nazvané 3D View layers. Část 3D View layers obsahuje vybrané průsvitky, které budou přeneseny do vizualizační aplikace. Přenesení vybraných průsvitek se uskuteční po stisknutí tlačítka Send to 3D. Jakmile jsou vybrané průsvitky přeneseny do vizualizační aplikace, je možné je zapnout nebo vypnout pomocí zaškrtávacích tlačítek u každé vrstvy. Je možné rovněž vybranou průsvitku zvýraznit stisknutím tlačítka Highlite selected. Před posláním průsvitek do vizualizačního systému lze zvolit velikost čar a názvů pomocí ovládacích prvků Lines width a Label size. Po stisknutí tlačítka Send to 3D se spustí proces transformace a posílání vybraných taktických průsvitek do vizualizační aplikace. Průběh tohoto procesu je zobrazen v dialogovém okně. Obrázek 3 - Průběh transformace a posílání průsvitek do vizualizační aplikace Po přenosu všech vybraných taktických průsvitek do vizualizačního systému se naplní část Nvg Item List hlavního dialogového okna informacemi o přenesených objektech z taktických průsvitek. Po stisknutí tlačítka Move to Item Position se vizualizačnímu systému zašlou souřadnice vybraného objektu. Vizualizační systém může na základě této informace přesunout zobrazení do místa vybrané jednotky. Obrázek 4 - Dialogové okno po přenesení všech průsvitek Program NVGClient tak může sloužit jako rozhraní pro přenos NVG dat z libovolného systému velení a řízení podporujícího standard NVG a zároveň může sloužit jako prostředek pro ovládání vizualizace těchto dat. Konfigurační soubor Program NVGClient používá konfigurační soubor NVGConfig.cfg, který je uložen ve stejné složce jako vlastní aplikace. Tento konfigurační soubor je v textovém formátu a obsahuje IP adresy serveru NVG služby, vizualizačního systému a připojovací řetězec do databáze sil a prostředků. Formát tohoto souboru je následující: Příklad konfiguračního souboru: Transformace NVG dat NVG služba poskytuje data v obecném vektorovém formátu1 , tato data je potřeba převést na formát, který je vhodný pro 3D vizualizaci. Problematika 3D vizualizace taktické grafiky a symbolů je podrobněji popsána v metodice2 . Během procesu transformace se identifikují jednotlivá grafická primitiva a zařadí se do příslušné kategorie. Grafická primitiva v dané kategorii se zobrazují stejným způsobem. Jednotlivá grafická primitiva jsou rozlišena podle jejich APP6b identifikačního řetězce. Seznam primitiv z NVG služeb Všechny primitiva mají vlastnosti:  label (název - není to text na symbolu, ten je dán texturou z APP6b),  symbol (identifikační kód dle APP6b) 1. Point souřadnice x, y, Dané jen jedním bodem. 2. Multipoint souřadnice bodů = “1,2 3,3 5, 5 ” Dáno 2, 3 i 4 body.  2 body – Fix, Follow and Assume, Support, Isolate, Ocupy, Retain, Secure, Direction of Attack (cca v 10 ti verzích), Mine cluster, Fix, Ferry, Lane, Fox hole, Linear Target, Final protection, Smoke, Moving Convoy, Halted Convoy 1 podrobněji popsáno v dokumentu NVG rozhraní v OTS 2 Metodika vizualizace taktických dat v 3D adresa NVG služby adresa Vizualizačního systému připojovací řetězec do databáze 160.216.223.46 160.216.223.33 user id=otis; password=otis12345OTIS;server=160.216.223.46\OTIS;  4 body – Bridge, Assault, Trip wire, Relief in place, Support by fire  3 body – vše ostatní 3. Arrow souřadnice bodů = “ ”, šířka šipky Dáno 2 body. 4. Arcband souřadnice středu cx, cy poloměry minr, maxr úhly startangle, endangle 5. Circle souřadnice středu Cx, cy, poloměr r 6. Corridor souřadnice bodů = “ ” Dáno vždy 2 body. 7. Ellipse název label souřadnice středu cx,cy poloměry rx,ry rotace 8. Polygon souřadnice bodů = “ ” minimálně 3 body až nekonečno 9. Text souřadnice středu x, y rotace 10. Polyline (FEBA) souřadnice bodů = “ ” minimálně 2 body až nekonečno Zařazení do kategorií Každá grafická primitiva je dle svého APP6b kódu zařazena do kategorií, které jsou z grafického hlediska společné pro jejich zobrazení Grafická primitiva zadaná třemi body Číslo Kód Kategorie Poznámka Schéma 1 G_C_BYCE--_____, G_C_BYCD--_____, Kat-1 multipoint Type1 2 G_T_GB----_____, G_C_BOAEF-_____, G_T_GH----_____, G_T_GY----_____, G_T_GC----_____, G_T_GX----_____, G_T_GP----_____, G_C_BYOE--_____, G_C_BYOP--_____, G_C_BYOI--_____, G_C_BYO---_____, Kat-1 multipoint Type1 textura otočená tak, že P2 směřuje vzhůru 3 G_C_BOARP-_____, G_C_BOARE- _____, G_C_BOARS-_____, G_C_BOARC- _____, Kat-2 multipointType2 textura otočená tak, že P1 směřuje vzhůru 4 G_T_GT----_____, Kat-3 multipointType3 textura otočená tak, že P2 směřuje vzhůru 5 G_C_BOAED-_____, Kat-3 multipoint Type3 textura otočená tak, že P2 směřuje vzhůru 6 G_T_GJ----_____, Kat-1 multipoint Type1 textura otočená tak, že P2 směřuje vzhůru 7 G_T_GL----_____, G_T_GLT---_____, G_T_GM----_____, G_T_GW----_____, G_T_GWP---_____, Kat-4 multipoint Type3 textura otočená tak, že P0 směřuje vzhůru 8 G_C_MOOP--_____, Kat-5 multipoint Type1 textura otočená tak, že P0 směřuje vzhůru 9 G_T_GSS---_____, G_C_MSGA--_____, G_C_MGASS-_____, G_C_MDD--- _____, G_C_MMDP--_____, Kat-5 multipoint Type1 textura otočená tak, že P0 směřuje vzhůru 10 GFC_MOLAF-_____, GFC_MOLAA- _____, GFC_MOLAH-_____, GFC_MOLAS- _____, GFC_MOLAM-_____, GFC_MOLAO- _____, GHC_MOLAE-_____, GHC_MOLAT- _____, Kat-1 multipoint Type1 textura otočená tak, že P2 směřuje vzhůru 11 G_C_BOAP--_____, Kat-1 multipoint Type1 textura otočená tak, že P2 směřuje vzhůru 12 G_C_BOAET-_____, 13 G_C_MOLA--_____, Kat-1 multipoint Type1 textura otočená tak, že P2 směřuje vzhůru 14 G_C_MSLH--_____, Kat-6 multipoint Type1 textura otočená tak, že P1 směřuje vzhůru 2 – nahore vlevo 1 stred vpravo 15 W_A_W-----_____ Grafická primitiva zadaná dvěma body Kód Schéma G_T_GF----_____, G_T_GA----_____, G_T_GAS---_____, GFC_MOLDF-_____, G_C_MDA---_____, GFC_MOLD--_____, GFC_MOLDY-_____, GHC_MOLDE-_____, GHC_MOLDT-_____, GHC_MOLDG-_____, GHC_MOLDR-_____, GFC_MOLDS-_____, GFC_MOLDM-_____, GFC_MOLDO-_____, G_C_BOAMN-_____, G_C_BOAEF-_____, G_C_BYCF--_____, G_C_BYCL--_____, G_C_BYCR--_____, G_C_FLT---_____, G_C_FLTP--_____, G_C_FLKT--_____, G_C_SLCM--_____, G_C_SLCH--_____, G_T_GE----_____, G_T_GO----_____, G_T_GS----_____, G_C_BSW---_____, Grafická primitiva zadaná čtyřmi body G_C_MOOS--_____, G_C_BYCA--_____ G_T_GR----_____ G_C_BYCB--_____ Směrové šipky Kód Schéma G_T_GK----_____, G_T_GKF---_____ G_C_MDA---_____ GFC_MOLAF-_____ GFC_MOLAA-_____ GFC_MOLAH-_____ GFC_MOLAS-_____ GFC_MOLAM-_____ GFC_MOLAO-_____ GHC_MOLAE-_____ GHC_MOLAT-_____ G_T_GK----_____ Implementace rozdělení do kategorií Rozdělení grafických primitiv do kategorií pro vizualizaci je realizováno na straně programu NVGClient pomocí jednoduchého souboru ve formátu XML. Zde je pro každou kategorii APP6b kódu přiřazena kategorie pro její vizualizaci. - - - - - - - - - - - - - - - - - Označení prostorů Pro identifikaci, zda dané grafické primitivum označuje taktický prostor se využívá pomocný soubor na straně vizualizačního systému. Tento soubor obsahuje tabulku APP6b kódů prostorů. Tyto prostory jsou následně vizualizovány jiným způsobem. MGAUAF MGAUAE MOOA-- MSAO-- MOOTC- MGAUB- MGASG- MGASD- MGASE- MGASL- MGASP- MSAN-- MSAT-- MAVR-- MOOJ-- MMPBO- MMPBP- MMPBL- Implementované grafické objekty taktických průsvitek Následující grafická tabulka ukazuje množinu implementovaných taktických značek, které jsou zpracovány pro vizualizaci. Popis přenosového protokolu k vizualizační aplikaci Přenos dat probíhá v textové podobě po standardním TCP socketu na portu 6666. Hlavní skupina příkazů Příkaz Význam newlayer vytvoření nové vrstvy taktické průsvitky podrobněji popsáno níže hidelayer vypnutí zobrazení určené vrstvy taktické průsvitky parametry:  název vrstvy showlayer zapnutí zobrazení určené vrstvy taktické průsvitky parametry:  název vrstvy setlayeralpha nastaví průhlednost určené vrstvy parametry:  název vrstvy  hodnota průhlednosti v procentech deletelayers smaže všechny vrstvy bez parametrů movetoposition přesune zobrazování na danou pozici parametry:  pozice x1  pozice y1 newlayer parametry: Příkaz Popis arrowType Vloží objekt šipka. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2 multipointType1 Vloží grafický objekt kategorie 1. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2  pozice x3  pozice y3 multipointType2 Vloží grafický objekt kategorie 2. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2  pozice x3  pozice y3 multipointType3 Vloží grafický objekt kategorie 3. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2  pozice x3  pozice y3 multipointType2points Vloží grafický objekt definovaný dvěma body. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2 multipointType4points Vloží grafický objekt definovaný čtyřmi body. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1  pozice x2  pozice y2  pozice x3  pozice y3  pozice x4  pozice y4 polylineType Vloží grafický objekt definovaný řadou bodů, parametr modifikátor určuje dle NVG standardu zda jde o značku protivníka (N) a velikost jednotky ke které se vztahuje(B=). parametry:  kód App6B  jméno objektu  modifikátory  počet bodů  souřadnice x n-tého bodu  souřadnice y n-tého bodu polygonType Vloží grafický objekt definovaný řadou bodů, parametr modifikátor určuje dle NVG standardu zda jde o značku protivníka (N) a velikost jednotky ke které se vztahuje(B=). parametry:  kód App6B  jméno objektu  modifikátory  počet bodů  souřadnice x n-tého bodu  souřadnice y n-tého bodu pointType Vloží grafický objekt definovaný jedním bodem. parametry:  kód App6B  jméno objektu  šířka  pozice x1  pozice y1 unitType Vloží grafickou značku jednotky. parametry:  kód App6B  jméno objektu  šířka  hloubka  množství munice v procentech  množství vybaveni v procentech  množství phm v procentech  stav osob v procentech  pozice x1  pozice y1  název souboru se značkou jednotky  data souboru se značkou jednotky