Začátkem tohoto roku se mě syn snažil (co jsem byl schopen pochopit) zasvětit do základů Lua scriptu. Od té doby se snažím tvořit nový script návěstidel.
Proč nový script?
Na původním Dušanově scriptu vidím určité nedostatky a to jak v zadání tak i ve fungování scriptu - tímto rozhodně nekritizuji práci, kterou Vlastik a Dušan na návěstidlech a jejich scriptech odvedli - ve své době to byla špička. Bohužel Dušan posléze svoji pozici programátora scriptu opustil a tak slibně rozjetý pokus o kompletní scripty návěstidel CZ a SK odumřel.
Takže přibližně od poloviny ledna se zabývám psaním nového scriptu. Mám zatím pouze malou část kódu. Nejdříve jsem zkoušel pochopit script Dušanův, to ale nikam nevedlo. Nakonec jsem to vzdal a na základech jeho scriptu začal psát script svůj - stále se učím uvažovat po programátorsku. Neodvažuji se tvrdit, že to někdy dotáhnu do nějakého konce ale chuť k tomu zatím mám. Co jsem však v začátcích neměl, byl model návěstidla. Proto jsem nejprve použil model současného pětiznakého Vlastíkova návěstidla a na něm testoval chod scriptu. To však zdržovalo, protože se musel nejdříve vygenerovat script k nějakému zástupnému modelu a pak teprve přepsat tento zástupný model modelem návěstidla. Proto jsem oslovil Romana, který uváděl, že model návěstidla k dispozici má a ten mi obratem vyhověl. Tím se mi testování značně zjednodušilo.
Co v současné době funguje?
- Vlak si před sebou až na výjimky rozsvěcí dvě nejbližší návěstidla.
- Umím zobrazit případné "doplňky pověšené na návěstidlo" jako jsou návěstní pruhy na stožáru návěstidla (návěstidlo platné jen pro vlaky nebo návěstidlo platní pro vlaky i posun), indikátorové tabulky apod.
- Respektuji zaškrtnutí kolonky "Jen výstraha" a v tom případě se na návěstidlo při návěsti povolující jízdu zobrazuje návěst VÝSTRAHA.
- Respektuji zaškrtnutí kolonky "Je předvěstí" a v tom případě návěstidlo předvěstí návěst následujícího návěstidla.
- Po zapsání písmene "P" (škoda, že to neumí přečíst písmena dvě) se na návěstidle rozsvítí návěst "PŘIVOLÁVACÍ NÁVĚST). Náhodně se zobrazí buď samostatné blikající bíle světlo nebo blikající bílé světlo současně s červeným světlem.
- Po zapsání písmene "O" je návěst doplněna klidným bílým světlem - opakování návěsti - používá se u návěstidel umístěných na nedostatečnou zábrzdnou vzdálenost. V tomto případě se informace o návěsti návěstidla před tímto návěstidlem (s bílým světlem) posílá návěstidlu za tímto návěstidlem.
- Po zapsání písmene "Z" je zajištěno uvolnění obsazeného úseku vlakem, který "zmizí v portálu" a zobrazení návěsti dovolující jízdu pro další vlak mířící do "portálu".
- Návěstidlo přestavuji z návěsti dovolující jízdu vlaku na návěst STUJ s určitou časovou prodlevou po začátku přejíždění linku 0. Časová prodleva je závislá na rychlosti přejíždění linku. Takto je možné link 0 umísťovat před návěstidlo - strojvedoucí v reálu má dle předpisů zastavit čelo vlaku cca 10 m před návěstidlem. Čelo hnacího vozidla ve hře pak nemíjí návěstidlo v době, kdy je již rozsvícena návěst STUJ.
- Po zmáčnutí klávesy TAB a splnění podmínek hry se na návěstidle rozsvítí návěst "Jízda podle rozhledu". Lze dodělat, aby pokud je jízdní cesta volná svítila příslušná návěst rychlostní návěstní soustavy (je-li zaškrtnuto - je předvěstí) a pokud jízdní cesta volná není, aby svítila návěst "Jízda podle rozhledu".
- Návěstidla správně reagují při jízdách vlaků oběma směry.
- Po odpojení vozů a odjetí části původní soupravy zůstane kolej co na ní zůstala odpojená část obsazená. Obdobně zase po připojení odstavených vozů a uvolnění koleje je tato pro návěstidlo neobsazená.
Co "zatím" není řešeno nebo asi ani řešit nepůjde:
- Rozsvěcení návěstí pro posun na hlavním návěstidle při změně vlaku na posunový díl a obdobně obráceně při změně posunového dílu na vlak. Testoval jsem i možnost po trojitém zmáčnutí klávesy TAB spočívající v tom, že se místo návěstí pro jízdu vlaku bude rozsvěcovat návěst "Posun dovolen". Po dvojím zmáčnutí by se zase tento režim vypnul. Bohužel jak jsem psal, aby script dostal zprávu o zmáčnutí klávesy TAB musí být splněny určité podmínky a ty nejdou splnit vždy a proto tento způsob asi nebude použitelný. Dále jsem zatím neúspěšně zkoušel poslat scriptu návěstidla zprávu ze scriptu scénáře.
- Při stojícím vozidle na dopravní koleji ve stanici ze které je jízdní cesta postavena na tratě v obou směrech - rozsvícení návěsti dovolující jízdu pouze ve směru budoucí jízdy vozidla - půjde-li to vůbec.
- Předání patřičné informace vlaku pro funkčnost přenosu návěstních znaků do VZ, LS90 či Mirelu na hnacím vozidle - prý jsi něco do Dušanova scriptu musel dopisovat.
- Pokud mám scénářem ukončenou jízdu u nějakého návěstidla a dále se pokračuje jízdou zpět (třeba po přestavení výhybky jízdou na jinou kolej), tak neumím nerozsvítit na tomto návěstidle návěst dovolující jízdu a automaticky dle trasy dané scénářem rozsvítit návěstidlo ve směru opačném.
- Řeším zatím hlavní návěstidla pro jednokolejné tratě. Autoblok, předvěsti, návěstidla pro posun přijdou na řadu později.
- Samostatnou kapitolou budou též skupinová návěstidla - návěstidla platná pro skupinu kolejí.
- Netestoval jsem zatím, co se bude dít, při umístění "portálu" na trati mezi návěstidly a chování návěstidel při výjezdu vlaku z portálu či jeho zmizení v portálu.
- Zobrazování návěstí a dalších doplňků, které pětiznaké návěstidlo nezobrazuje a nemá.
C) Co bohužel nedokážu:
- Zajistit kompatibilitu se současnými návěstidly.
- Zapracovat do scriptu návěsti používané na ŽSR - neznám dnešní návěstní předpisy ŽSR.
Některé funkce co popisuji výše jsou patrny na videích z testů návěstidel: