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