07 Návěstidla

Pro další práci si přidáme návěstidla. Pro přidávání návěstidel použijeme postupy z návodu pro Panel Editor Návěstidla a Indikátory návěstidel.

Návěstní systém

Jako návěstní systém tentokrát použijeme SŽDC 2015 základní návěstidla.

Tabulka návěstidel

Tabulku návěstidel vyplníme stejně jako v příkladu s Panel Editor.

Indikátory návěstidel

Do schématu stanice přidáme indikátory návěstidel. Pro Použijte sadu obrázků návěstidel použijeme sadu s názvem AŽD.

Simulátor návěstidel

Pro potřeby ladění si opět vytvoříme simulátor návěstidel. Sadu obrázků použijeme prototype.

Inicializace panelu

Do tabulky Snímače na rozhraní Internal si přidáme snímače TlacReleovka, TlacManual, TlacNulovani, ZapReleovka a ZapManual. Použijeme je později.

Pro budoucí použití panelu jsme si připravili skript inicializace.py. Skript si přidáme mezi skripty spuštěné při otevření profilu. Skript nastaví proměnné do výchozího stavu.

Inicializační skript postupně provede několik akcí.

Všechny snímače, které se nachází ve stavu neznámý, převede do stavu neaktivní.

Všechny výhybky, které se nachází ve stavu neznámý, převede do stavu Přímo.

Všechny návěstidla postaví do základní polohy.

Všechna pomocná tlačítka postaví do základní polohy.

# inicializace.py

# Petr Šídlo

import jmri

# všechny snímače se stavem nezmámý převede na stav neaktivní

vsechny_snimace = sensors.getNamedBeanSet()

for jeden_snimac in vsechny_snimace :

    stav = jeden_snimac.getKnownState()

    if stav == UNKNOWN :

        jeden_snimac.setKnownState(INACTIVE)

       

# všechny výhybky se stavem nezmámý převede na stav přímo

vsechny_vyhybky = turnouts.getNamedBeanSet()

for jedna_vyhybka in vsechny_vyhybky :

    stav = jedna_vyhybka.getState()

    if stav == UNKNOWN :

        jedna_vyhybka.setCommandedState(CLOSED)

       

# řadiče výhybek

sensors.provideSensor("MSINSV1R").setKnownState(ACTIVE)

sensors.provideSensor("MSINSV2R").setKnownState(ACTIVE)

sensors.provideSensor("MSINSV3R").setKnownState(ACTIVE)

sensors.provideSensor("MSINSV4R").setKnownState(ACTIVE)

# návěstidla

masts.getSignalMast("L".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("L1".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("L2".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("S".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("SK".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("S1".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("S2".decode("UTF-8")).setAspect("Stůj".decode("UTF-8"))

masts.getSignalMast("PřL".decode("UTF-8")).setAspect("Výstraha".decode("UTF-8"))

masts.getSignalMast("PřS".decode("UTF-8")).setAspect("Výstraha".decode("UTF-8"))

masts.getSignalMast("PřSK".decode("UTF-8")).setAspect("Výstraha".decode("UTF-8"))

masts.getSignalMast("Se1".decode("UTF-8")).setAspect("Posun zakázán".decode("UTF-8"))

masts.getSignalMast("Se2".decode("UTF-8")).setAspect("Posun zakázán".decode("UTF-8"))

masts.getSignalMast("Se3".decode("UTF-8")).setAspect("Posun zakázán".decode("UTF-8"))

masts.getSignalMast("Se4".decode("UTF-8")).setAspect("Posun zakázán".decode("UTF-8"))

# povolit releovku

sensors.provideSensor("ZapReleovka").setKnownState(ACTIVE)

sensors.provideSensor("ZapManual").setKnownState(INACTIVE)

sensors.provideSensor("TlacReleovka").setKnownState(INACTIVE)

sensors.provideSensor("TlacManual").setKnownState(INACTIVE)

sensors.provideSensor("TlacNulovani").setKnownState(INACTIVE)

vytvořeno 11. 10. 2019