OR CZ/SK - externí aplikace VAVIS

  • Tvůrce vlákna Tvůrce vlákna Tatar
  • Datum začátku Datum začátku

Tatar

Začátečník
Přeji pěkný večer všem. Doufám že neurazí, případně jestli nejsem ve špatné sekci pro představení, mého jakéhosik pomyslného projektu hlásiče VAVIS, který teda může sloužit libovolně jako součást k jakékoliv hře, ať už OpenRails, Train Simulator, SimRail a podobně, ale krom tohoto bych chtěl rovnou i v souvislosti s OpenRails, představit fungování VAVISu a OpenRails. Pro takovou napodobeninu fungování automatické činnosti hlášení podle GPS, je potřeba mít spuštěný OpenRails v režimu Multiplayeru, ale hlavně jako zakládající server, kdy se pak VAVIS připojí k serveru jako klient a začne přijímat určitý typ zprávy ohledně pohybu hráče. Nevýhodou zatím je, že nelze použít na serveru na kterém hraje více hráčů, protože tam je příjem zpráv takový spíš nejasný a tudíž by to mohlo dělat neplechu. Fungování samotné činnosti automatického hlášení podle GPS je na bázi zapsaných hodnot TileX, TileZ a Lan, Lon a Radius, u dané stanice a to ještě speciálně pro Příjezd i Odjezd vlaku zvlášť, kdy se v obou případech Radius může lišit.
První čtyři hodnoty jsou klasicky známé z TrackVieweru (levý dolní roh), ale Radius je hodnotou, která funguje jako takový generovaný kruh pro danou souřadnici, která určuje dosah z dané souřadnice ve smyslu, že pokud máme Příjezd na nějaké souřadnici a Radius nastaven na hodnotu 500, tak nám to vlastně říká že kruh detekce je 500m od dané souřadnice, což vyvolá následně hlášení, když do tohoto okruhu vjedeme. Opačně je to zase v případě Odjezdu, kdy Radius kontroluje přítomnost hráče uvnitř tohoto kruhu + podmínka že vozidlo zastavilo, tudíž bylo dosaženo nulové rychlosti, ale při následném rozjetí a opuštění kruhu, dojde opět k vyvolání akce ale pro změnu právě Odjezdu. Výhodou tohoto řešení je, že lze pro jakoukoliv trať v OpenRails a u každé stanice, určit vlastní hodnoty GPS, takže taková stanice Ostrava-Svinov, může mít odlišnou GPS na trati 321 oproti třeba trati 310.

A ti, co to zvládli dočíst až sem, tak tady přikládám link na video s tímto jízdním testem + i nějaký základní náhled na fungování VAVISu jako takového a jeho funkce:



Nějaké základní údaje a informace o programu VAVIS:
VAVIS je vytvořen v kódu C#, s vizuální stránkou WPF a v NET 8.0. Datová struktura je na bázi XML souborů. Stanice jako takové, jsou vedeny a zapsány ve vlastním souboru, kde každá stanice obsahuje číslo podle SR70, její název a případně parametr jestli se jedná pouze o dopravní bod a zároveň může obsahovat rozšiřující elementy jako je GPSLocation (primárně pro OR) a Transfers (přestupní stanice a směry kam lze cestovat, typicky používáno v Moravskoslezském a Zlínském kraji). Jízdní řády vlaků jsou vedeny v jednom XML souboru a buď si uživatel vytvoří vlastní, nebo je možné vygenerovat z datových souborů NETEX (součást CIS JŘ). Toť vše k základním údajům programu.
O podrobnějších částech VAVISu, nebo detailnějších informací, Vám sdělím zase jindy.
 
Dlouho jsem tu nic nepřidal, ani co se týče nějakých screenů aktuálního stavu, nebo co dalšího se na tom pokročilo, takže je načase to napravit.

Za tu dobu od toho videa, tak došlo k určitým změnám, které uživatele nemusí trápit, vyjma uživatelů z komunity Train Simulatoru Classic, kde jsem zveřejnil velmi hrubou alfa verzi, abych nabral případné připomínky. Zásadní změnou je to, že bude nejspíš omezeno fungování GPS režimu pro OpenRails jenom na manuální obsluhu formou klávesové zkratky, která bude fungovat právě na základě spuštěné hry, mezi kterými i budou patřit Train Simulator Classic a SimRail. K tomuto kroku přinutil fakt, že OpenRails oproti Train Simulatoru Classic nebo SimRailu, tak neposkytuje lepší přístup k informacím o hráči ve hře a to ať už formou API nebo pluginu, takže ve výsledku zhoršuje implementaci podpory GPS i pro OpenRails, zároveň i vyžaduje odlišnou logiku pro práci se souřadnicemi a obecně k fungování.
Zásadním problémem OpenRails je že jediný způsob jak získat informaci uživatele, je mít hru spuštěnou v režimu Multiplayeru, což už v tomto vyžaduje odlišný přístup oproti jiným simulátorům/hrám a zároveň ještě více komplikuje to, že jediné souřadnice, které lze z OpenRails získat, tak jsou v podobě Tiles a souřadnic dané Tile, což je zase zásadní odlišnost oproti dvoum jmenovaným kde se získávají souřadnice, které jsou shodné s realitou a tudíž lze mít jeden seznam stanic pro oba simulátory, což v případě OpenRails už toto komplikuje a vyžaduje to vlastní soubor a se svým zápisem souřadnic speciálně pro OpenRails.

Nicméně, teď dost "negativit" ohledně GPS.
Oproti videu, tak došlo k určitým vizuálním změnám, především pak k zahájení úprav tlačítek na vektorovou grafiku a zároveň umožnění přepínání mezi hranatými a zaoblenými rohy těchto tlačítek a taky k zprovoznění horního řádku s aktuální stanicí včetně stavu a času příjezdu/odjezdu (pokud je výchozí), přičemž inspirací byla Pesa od RegioJetu.
Na screenech níže, tak je možnost vidět tlačítko se šipkou nahoru, která bude v případě zvolení zaoblených rohů, v opačném případě zůstane klasicky s ostrými rohy jako má šipka se směrem dolů a na druhém screenu i řádek s názvem stanicí, časem odjezdu a jeho stavu, přičemž u výchozích a u stanic s pobytem delší než dvě minuty, se vždy propíše "dlouhý pobyt".1.jpg2.jpg

Zároveň i na pozadí a hlavně činnost, která dost sebere času, tak probíhá neustále k uspořádání zvukové banky, především pak k dání dokupy složky se stanicemi a zároveň doplňování dalších stanic a jejich souřadnic do datového souboru se stanicemi, ale navazuje na to i dolaďování textací hlášení a dílčích úprav v logice i v tomto směru, aby vše fungovalo a probíhalo tak jak je třeba.

Ale má to i ještě jednu další doplňující rádoby nástavbu a to v podobě informačního panelu, který běží jako webová stránka v prohlížeči formou lokální sítě a automatickým spojením s VAVISem, kdy v základu zatím umí jenom mít výchozí zobrazení stránky kdy není zvolený žádný vlak a nebo pak jenom zobrazení dalších stanic, informace o zastávce na znamení a nebo i informace o zastavení v dané stanici/zastávce. Panel1.jpgPanel2.jpg
Panel3.jpg
 
Back
Nahoře