12 Režim Releovka
V kapitole 07 Návěstidla jsme si zavedli snímače TlacReleovka, TlacManual, TlacNulovani, ZapReleovka a ZapManual na rozhraní Internal. Zatím jsme je na nic nepotřebovali. Nyní si k nim doděláme objekty na panelu a tlačítka oživíme.
Tlačítka
Ke snímačům TlacReleovka, TlacManual a TlacNulovani si uděláme tlačítka na panelu. Dekoraci tlačítek z adresáře Program Directory – icons – panels – CSD – AZD – button zvolíme typ tlačítka metal.
Indikátory
Pro indikátory ZapReleovka a ZapManual zvolíme kontroly zelená a červená z adresáře Program Directory – icons – panels – CSD – AZD – lamp.
Akce tlačítek
Pro tlačítka TlacReleovka, TlacManual a TlacNulovani si vytvoříme akce spuštěné z Logix.
Do každé podmínky potom zapíšeme spuštění příslušného skriptu.
Skript Tlacitko_releovka.py
Tlačítkem TlacReleovka se zapíná režim Releovka. Zapnutý režim releovka se indikuje rozsvícenou zelenou kontrolkou.
Pokud je skript spuštěn a tlačítko je neaktivní, tak se nebude nic dít.
Pokud je zapnutá releovka, což je signalizováno kontrolkou, tak se releovka vypne.
Pokud je releovka vypnutá, tak se zkontroluje režim Manuál. Pokud je zapnutý, tak se nedělá nic. Pokud je vypnutý, tak se releovka zapne.
# Tlacitko_releovka.py
# Petr Šídlo
import jarray
import jmri
Tlac_Releovka = sensors.provideSensor("TlacReleovka")
Zap_Releovka = sensors.provideSensor("ZapReleovka")
Zap_Manual = sensors.provideSensor("ZapManual")
if (Tlac_Releovka.getKnownState() == INACTIVE) :
# nic nebudu dělat
pass
else :
# provedu akci
if (Zap_Releovka.getKnownState() == ACTIVE) :
# vypnu releovku
Zap_Releovka.setKnownState(INACTIVE)
Tlac_Releovka.setKnownState(INACTIVE)
else :
# zkusím zapnout releovku
if (Zap_Manual.getKnownState() == INACTIVE) :
Zap_Releovka.setKnownState(ACTIVE)
Tlac_Releovka.setKnownState(INACTIVE)
Panel doplnění o tlačítka a kontrolky bude vypadat takto:
vytvořeno 21. 10. 2019