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