DPS - Digitální pracoviště strojvůdce

Alois Nebel

Posunovač
Ahoj všem,

po dobu, co jsem loupal banán, jsem nezahálel a rád bych vám ukázal, na čem jsem poslední týdny pracoval.

Představuji DPS – Digitální pracoviště strojvůdce pro Open Rails. Jedná se o samostatnou externí aplikaci, která není součástí Open Rails a komunikuje s ním prostřednictvím API.

Co už dnes DPS umí?

* Přehled služby před zahájením jízdy
* Informace o vlaku a soupravě
* Kartu Trať s vlastním zobrazením průběhu tratě před vlakem
* Zobrazení návěstidel a rychlostníků
* ETA systém pro odhad času příjezdu do další stanice​
* Další pomocné informace získávané přímo ze simulátoru​

DPS je stále ve vývoji a spousta nápadů čeká na realizaci, ale už teď začíná dostávat podobu, kterou jsem si od začátku představoval.

Velké poděkování patří @Icik za úpravy API Open Rails. Právě díky nim může DPS získávat potřebná data přímo ze hry. Zároveň bych rád předešel případným nedorozuměním – DPS není součástí Open Rails, ale samostatná aplikace využívající API Open Rails.

 
Budu sa tam zobrazovat napriklad aj navesti ako napr stiahni zberac a pod ako to maju rusnovodici v čd (neni som si isty ci to maju len čd a čdc rusnovodici alebo aj u sukromnikov, neni som ani expert na tu appku ale videl som to v zopar videach na yt)
 
Budu sa tam zobrazovat napriklad aj navesti ako napr stiahni zberac a pod ako to maju rusnovodici v čd (neni som si isty ci to maju len čd a čdc rusnovodici alebo aj u sukromnikov, neni som ani expert na tu appku ale videl som to v zopar videach na yt)
V České republice je nejrozšířenějším systémem NaviTrain, který umí zobrazit vzdálenost ke stahovačce. Tuto funkci jsem chtěl přidat i do DPS, ale ukázalo se, že je to složitější, než jsem původně očekával.

Přes API už dokážu načítat markery stahovaček, ale jejich pozice se zatím nechovají správně a „skáčou“, takže jsem vývoj této funkce prozatím odložil. Jakmile se naučím správně pracovat se souřadnicemi a markery a zjistím, jaké další soubory jsou pro to potřeba, stahovačky do DPS samozřejmě doplním.
 
A nešlo by stahovačky vymodelovat jako databázový model? Pak s tímto šlo pracovat a umístění by bylo přesné. Ale podmínka, kompatibilita s MSTS, respektive, aby to MSTS nevyhodil jako chybu, tam to fungovat nemusí. Kvůli práci v editoru pro úkony, které TSRE5 buď neumí nebo je to hodně komplikované.
 
A nešlo by stahovačky vymodelovat jako databázový model? Pak s tímto šlo pracovat a umístění by bylo přesné. Ale podmínka, kompatibilita s MSTS, respektive, aby to MSTS nevyhodil jako chybu, tam to fungovat nemusí. Kvůli práci v editoru pro úkony, které TSRE5 buď neumí nebo je to hodně komplikované.
Tohle by samozřejmě bylo ideální, protože bych pak z API dostával přesnou vzdálenost, stejně jako ji nyní dostávám u nástupišť, rychlostníků a návěstidel. Díky tomu může DPS přesně odpočítávat, kolik metrů zbývá do daného bodu.

V současné době z API zjistím pouze to, že jsem vjel do neutrálního pole (0 V) nebo že se změnilo napětí například z 3000 V na 2500 V. Tato informace se ale objeví až ve chvíli, kdy se v daném místě skutečně nacházím. Nevidím tedy dopředu, že za 2 km bude neutrální pole nebo že za 500 metrů začne úsek s jiným napětím.

U rychlostníků, návěstidel a nástupišť to funguje jinak. API poskytuje informace o objektech před vlakem včetně jejich vzdálenosti, takže DPS může přesně zobrazovat odpočet.

Navíc markery, které se mi podařilo načíst, jsou počítány vzdušnou čarou. Když například stojím v Praze na hlavním nádraží, vidím nejbližší marker vzdálený asi 300 metrů, přestože podle jízdní cesty přede mnou žádná funkční stahovačka není. Z toho usuzuji, že samotná vzdálenost k markeru nestačí.

Pokud by stahovačky byly v Open Rails vedeny jako databázové objekty podobně jako návěstidla, rychlostníky nebo nástupiště, bylo by možné jejich polohu a vzdálenost určit zcela přesně a DPS by na ně mohlo spolehlivě upozorňovat s předstihem.
 
Také uvažuji o doplnění fiktivního přihlášení do systému daného státu. K tomu bych ale potřeboval spolupráci autorů tratí, kteří by na státních hranicích umístili skryté kilometrovníky (mileposty) sloužící jako orientační body.

Například na české straně by byl milepost označený „CZ“ a na německé straně „DE“. DPS by pak mohlo jednoduše vyhodnotit směr jízdy podle pořadí těchto bodů. Pokud by před vlakem bylo pořadí „CZ → DE“, systém by věděl, že vlak míří do Německa. Naopak pořadí „DE → CZ“ by znamenalo jízdu směrem do České republiky.

Díky tomu by bylo možné simulovat přihlášení do národního systému daného státu podobně, jako to dělají skutečná zabezpečovací zařízení. Samozřejmě by šlo pouze o doplňkovou funkci pro zvýšení realismu a její funkčnost by závisela na tom, zda by autoři tratí tyto orientační body do tratí doplnili.
 
Do DPS se také chystá nová funkce v podobě osobní karty strojvůdce. Ta bude sloužit jako jednoduchý přehled o aktivitě uživatele a bude shromažďovat statistiky napříč všemi jízdami.

K dispozici budou například celkově ujeté kilometry, počet absolvovaných jízd a informace o poslední odjeté službě. Cílem není vytvářet složitý kariérní systém, ale nabídnout strojvedoucím přehled jejich „služební historie“ a základních statistik přímo v DPS.

Do budoucna se samozřejmě mohou objevit i další údaje, pokud se ukáže, že o ně bude mezi uživateli zájem. :-)

strojvudce.jpg
 
Jelikož je DPS koncipováno jako „tablet“ pro strojvedoucího, snažím se myslet i na zdánlivé drobnosti, které zlepšují celkový dojem z používání. Proto postupně nahrazuji klasické checkboxy moderními přepínacími tlačítky (switchi), která jsou běžná například v mobilních telefonech a tabletech.

Díky tomu bude ovládání přehlednější a více odpovídat zařízení, které má DPS simulovat. Při vypnutí bude přepínač zobrazen šedě a po zapnutí se zvýrazní barvou, takže uživatel na první pohled pozná aktuální stav dané funkce. Jsou to sice detaily, ale právě ty často rozhodují o tom, jak příjemně a profesionálně aplikace působí. :-)

nastaveni.jpg
 
Upozornění k správnému fungování DPS

Jelikož je DPS externí program, doporučuji spouštět OR CZ/SK v režimu Borderless Window. Samotné OR CZ/SK tento režim nativně nepodporuje, proto je vhodné použít program
Borderless Gaming.

V nastavení OR CZ/SK stačí zvolit režim V okně a o zbytek se postará Borderless Gaming. Výsledný obraz pak vypadá prakticky stejně jako klasický celoobrazovkový režim (exclusive full screen), ale umožňuje správnou spolupráci s externími aplikacemi.

Důvod je jednoduchý. I když je DPS navrženo tak, aby bylo vždy navrchu (TopMost), režim exclusive full screen si vždy převezme focus a překryje všechny ostatní aplikace. V takovém případě DPS zůstane spuštěné na pozadí, ale nebude viditelné.

Pokud chcete používat exclusive full screen, samozřejmě můžete a Borderless Gaming není nutností. Je však potřeba počítat s tím, že po každém spuštění OR CZ/SK bude nutné DPS znovu vyvolat například pomocí kombinace Alt+Tab a připnout jej do popředí.

Pokud používáte druhý monitor, je situace jednodušší, protože DPS může běžet na druhé obrazovce nezávisle na tom, zda je OR CZ/SK spuštěno v režimu Borderless nebo v klasickém exclusive full screen režimu.
 
V DPS už můžete začít „kariéru“ u dopravce :-D

Pokud víte, že v aktivitě řídíte vlak například společnosti RegioJet, stačí v seznamu Dopravce vybrat RegioJet a. s. a od té chvíle se vám budou evidovat nejen celkové ujeté kilometry, ale také kilometry najeté pro konkrétního dopravce.

Můžete tak mít například celkem najeto 10 000 km, z toho 958 km pro společnost RegioJet a. s.

Tyto statistiky se následně zobrazí v kartě Strojvůdce. Pokud nebude vybrán žádný dopravce, zobrazí se pouze celkový počet ujetých kilometrů. Jakmile dopravce vyberete, uvidíte i statistiky vztahující se k němu.

Je to sice drobnost, ale DPS díky tomu zase o něco více připomíná skutečný systém a zároveň přidává možnost sledovat vlastní „kariéru“ u jednotlivých dopravců :-)

kariera.jpg
 
Značka ideál by byla to mít spárované s tabletem, kde bych si zobrazil i jízdní řády do aktivity. I když jízdní řád mohu mít v tabletu už nyní.
Šlo by to udělat i jako aplikaci pro Android.

Pokud používáte Apple a iOS, tak tam to bohužel nepůjde, protože Apple má poměrně striktní pravidla pro aplikace. Už teď vím, že bych jejich schvalovacím procesem pravděpodobně neprošel, protože aplikace by musela být umístěna přes App Store.

U Androidu je situace jiná. Tam lze aplikaci nainstalovat i ručně přes APK, tedy přes instalaci z neznámých zdrojů.

Takže teoreticky ano, DPS by mohlo existovat i jako Android aplikace, ale spíš mimo Google Play a formou ruční instalace.

P. S. Zbyňku, pokud vím, tak jezdíš pod oficiálním Open Rails. Tam DPS fungovat nebude, protože oficiální verze nevrací přes API stejné údaje jako OR CZ/SK. Icik mi kvůli DPS upravoval přímo kód API, aby vracelo další data potřebná pro některé funkce systému.
 
P. S. Zbyňku, pokud vím, tak jezdíš pod oficiálním Open Rails. Tam DPS fungovat nebude
To já se ptal jen všeobecně, protože kvůli tvorbě na jezdění moc času nezbývá. Tedy to neznamená, že pod CZSK jezdit nebudu. Ale jezdí přece ostatní. Ten tablet by byla dobrá věc. Sice jen Android, ale mám doma ještě stále starší Leninovo na Androidu, tam by to šlo aplikovat. Bylo by to praktické. Velký monitor a na stole mít položený tablet jako fíra na pultu. Současně, když hraji aktivitu, tak mám zobrazený jízdní řád na druhém monitoru. Jenomže každý nemusí mít dva monitory.
 
To já se ptal jen všeobecně, protože kvůli tvorbě na jezdění moc času nezbývá. Tedy to neznamená, že pod CZSK jezdit nebudu. Ale jezdí přece ostatní. Ten tablet by byla dobrá věc. Sice jen Android, ale mám doma ještě stále starší Leninovo na Androidu, tam by to šlo aplikovat. Bylo by to praktické. Velký monitor a na stole mít položený tablet jako fíra na pultu. Současně, když hraji aktivitu, tak mám zobrazený jízdní řád na druhém monitoru. Jenomže každý nemusí mít dva monitory.
Ano, tuhle myšlenku mám v hlavě už delší dobu, ale nejde to udělat tak, že vezmu současný kód a jen ho převedu do Android verze. Musel bych aplikaci vytvořit prakticky od začátku.

Pokud uvidím, že se DPS skutečně používá a dává smysl, pak budu uvažovat i o verzi pro telefon nebo tablet. Nechci investovat stovky hodin do něčeho, u čeho se později ukáže, že o to vlastně není zájem ;-)

Primárně jsem DPS vytvářel pro polskou komunitu, kde už mají upravené API. Pro OR CZ/SK jsem autorovi poslal návrh i přímo upravený kód API a za to mu ještě jednou děkuji, protože bez těchto úprav by DPS pod OR CZ/SK vůbec nemohlo vzniknout.

Mě osobně například štvalo jezdit s otevřeným TrackMonitorem a zároveň mít někde bokem jízdní řád. Takhle mám vše přehledně na jednom místě.

Navíc jsem včera jel z práce vlakem a jel bývalý kolega, který dnes jezdí na dráze. Ukázal mi jejich tablet a musím říct, že některé funkce má moje DPS podobné jako NaviTrain (samozřejmě s velkou nadsázkou :-D).

Říkal jsem mu, že teď systém otestuji ve virtuálním světě, a když bude fungovat, prodám ho Českým drahám a stane se ze mě milionář :-D
 
@Tomas Sedlak

Práce na Editoru aktivit pokračují dál, ale zatím nemám od posledních screenshotů moc co ukazovat. Vývoj bude ještě na dlouhou dobu a některé části zaberou více času, než jsem původně očekával.

Když už mě nějaká část přestane bavit a jen se točím v kruhu, tak si odskočím k něčemu jednoduššímu. Přesně tak vznikalo poslední dny DPS :-)

V hlavě mám ještě spoustu dalších nápadů, které bych chtěl časem zrealizovat, tak uvidíme, kam se to celé posune.

Každopádně teď jdu sepsat manuál k DPS a tím budu považovat první verzi za dokončenou. Během dneška by se pak měla objevit na mém webu.
 
Back
Nahoře