Vítej, Host. Prosím přihlaš se nebo se zaregistruj.
28.03.2017, 14:47:13

Domů Nápověda Vyhledávání Přihlásit Registrovat
 
Fórum k produktům firmy ELSACO Kolín  

+  PROMOS fórum
|-+  HW
| |-+  CCPU-34
| | |-+  Návody pro CCPU-34
| | | |-+  Program Starter_CCPU34
0 uživatelů a 1 Host prohlíží toto téma. « předchozí další »
Stran: [1] Dolů Tisk
Autor Téma: Program Starter_CCPU34  (Přečteno 1496 krát)
petrm
moderátor+

Příspěvků: 9


« kdy: 22.11.2013, 16:43:34 »

Starter_CCPU34 (dále též označení startér) je program, jehož hlavním úkolem je spouštět fredovský projekt. Projekt z FREDa nestačí spustit jen jednou při startu centrály, ale je nutné zajistit jeho spuštění i po každé výměně projektu a pro jistotu i v případě jeho neočekávaného ukončení (pádu). Proto vzniknul tento "startovací program projektu".

Starter_CCPU34 je umístěn v adresáři /home a spouští se na pozadí ze skriptu /etc/rc.local při startu centrály. Je-li spuštěn bez parametrů, obsluhuje fredovský projekt /home/fred/LCPU. Je možné ho spustit i s parametrem, tento parametr je pak považován za kompletní umístění spustitelného programu a obsluhován (spouštěn) potom bude uvedený program.
Kód:
/home/Starter_CCPU34 "/adresar1/adresar2/program" &
Takto lze v centrále zajistit spouštění jiného programu, než je fredovský projekt, třeba unikátní uživatelské aplikace. Program bude spuštěn s právy uživatele "root"!
Vše, co se v následujícím textu bude týkat fredovského projektu LCPU, platí obdobně i pro uživatelskou aplikaci zadanou parametrem.

Činnost startéru je signalizována žlutě nepřetržitě svítící LEDrun a opakovaně zobrazovanou sekvencí IP-adresy a IP-masky nastavených na síťovém rozhraní eth0 centrály. Uvedené IP-údaje se zobrazují proto, že síťové spojení do centrály je prakticky jediné možné  a jedná se tedy o velmi důležité parametry centrály.
Zobrazovací sekvence začíná rozsvícením všech segmentů a LED displeje. Potom se postupně po částech zobrazuje IP-adresa a IP-maska. Uvažujeme-li IP-adresu a IP-masku ve tvaru "IPa.IPb.IPc.IPd" a "IMa.IMb.IMc.IMd", pak se budou na displeji postupně zobrazovat čísla IPa až IPd a IMa až IMd a ke každému bude vždy svítit odpovídající zelená LED, postupně zleva doprava.

Provozní stavy programu Starter_CCPU34
Starter_CCPU34 se může nacházet v jednom z následujících základních stavů:
  • Stav A - startér se pokouší spustit LCPU:
    Toto je výchozí stav, startér zkusí spustit LCPU a když se to nepovede, v pokusech o spuštění pokračuje opakovaně dál.
    Stav A je signalizován zhasnutými LED řady A.
    Tlačítkovou kombinací BREAK (popsána dále) lze přejít do provozního stavu C.
  • Stav B - startér čeká na novou verzi LCPU:
    Při vstupu do tohoto stavu si startér poznamená datum a čas vytvoření LCPU. Pak LCPU trvale sleduje a jakmile se objeví jeho novější verze, spustí ji (resp. přejde do stavu A). Tato metoda je využita i při běžném nahrávání nové verze LCPU z FREDa.
    Stav B je signalizován žlutou LED A0.
    Tlačítkem ENTER lze přejít do provozního stavu A (ihned spustit LCPU), kombinací BREAK do stavu C.
  • Stav C - startér čeká na pokyn obsluhy:
    V tomto stavu startér nic sám nespouští, pouze čeká na stisknutí tlačítka ENTER. Po stisknutí ENTERu přechází do stavu A.
    Stav C je signalizován červenou LED A4.

Podaří-li se spustit LCPU, Starter_CCPU34 se zastaví a přestane jakkoliv zasahovat do činnosti centrály. Řízení displeje a čtení ovládacích tlačítek by měl převzít LCPU. Teprve po ukončení běhu LCPU (z jakéhokoliv důvodu) začne opět pracovat Starter_CCPU34.

Činnost startéru po zastavení LCPU závisí na způsobu zastavení LCPU (na zastavení se může podílet modul CCPU-34 z FREDa):
  • Ukončení LCPU signálem SIGINT (klávesami CTRL+C z konzole) nebo tlačítkovou kombinací BREAK (musí zajistit fredovský modul CCPU-34, LCPU končí příkazem "exit (10)"):
    Starter_CCPU34 přechází do provozního stavu C.
  • Ukončení příkazem kill nebo killall (obojí s běžnou úrovní 15 = signál SIGTERM):
    Starter_CCPU34 přechází do provozního stavu B.
  • Ukončení LCPU příkazem "exit (11)" (to zajistí fredovský modul CCPU-34):
    Tento způsob je využíván při výpadku napájení (není to chyba v popisu, centrála je napájena z vnitřní baterie a regulérní ukončení tak zvládne). Starter_CCPU34 spustí skript /etc/Restart, který by měl zajistit veškeré nutné činnosti před vypnutím centrály (např. zkopírovat data z ramdisku na flash) a centrálu restartnout příkazem "reboot". Při ukončení činnosti OS se odpojí vnitřní baterie, takže pokud bude výpadek napájení trvat, centrála zůstane vypnutá až do obnovení napájení.
    Pokud ještě dojde k návratu ze skriptu Restart do startéru, Starter_CCPU34 se jen ukončí.
  • Nečekané ukončení a všechny další důvody ukončení LCPU:
    Starter_CCPU34 přejde do provozního stavu A.

Využití tlačítek
  • Kombinace BREAK (obě krajní tlačítka najednou):
    BREAK je mj. možné využít při startu centrály (spuštění Starter_CCPU34). Bude-li při spuštění startéru držen BREAK, startér nespustí automaticky LCPU. Tato funkce je užitečná v případě chyby v LCPU, která by trvale zadřela smyčku s prioritou RT. V tomto případě by totiž centrálu restartnul watchdog a centrála by se tak dostala do prakticky nepřerušitelné smyčky restartů a spouštění chybného LCPU. Nespuštění LCPU tento bludný kruh přeruší a umožní výměnu LCPU.
    Z BREAKu uvolňujte tlačítka v pořadí nejdřív ENTER, pak ESCAPE. Při jiném postupu by mohl být vyhodnocen samotný ENTER a byl by považován za pokyn ke spuštění LCPU.
    BREAKem je uveden startér do provozního stavu C (popsán výše).
  • Tlačítko ENTER:
    ENTER slouží k okamžitému spuštění LCPU.
    ENTERem je uveden startér do provozního stavu A.
  • Kombinace NOUZOVÁ_IP (šipky nahoru i dolů najednou, nutno držet nepřetržitě alespoň 3 vteřiny):
    NOUZOVÁ_IP pomůže v případě chybného nastavení inicializačních souborů sítě, následkem kterého se nenastaví ethernetové rozhraní. Také pomůže v případě chybného nastavení firewallu, kterým se nechtěně zablokuje přístup do centrály.
    Funkce NOUZOVÁ_IP spustí příkazy "ifconfig eth0:99 192.168.222.29" a "ifconfig eth0 up" a nastaví tak defaultní IP-adresu 192.168.222.29 na síťový alias eth0:99, k centrále je pak možné se na tuto adresu připojit a nastavení sítě opravit.
    Dále NOUZOVÁ_IP spustí příkazy:
       "iptables -I INPUT -i eth0 -p tcp -d 192.168.222.29 --dport ssh -j ACCEPT"
       "iptables -I OUTPUT -o eth0 -p tcp -s 192.168.222.29 --sport ssh -j ACCEPT"
       "iptables -t nat -I PREROUTING -i eth0 -p tcp -d 192.168.222.29 --dport ssh -j ACCEPT"
       "iptables -t nat -I OUTPUT -o eth0 -p tcp -s 192.168.222.29 --sport ssh -j ACCEPT"
       "iptables -t nat -I POSTROUTING -o eth0 -p tcp -s 192.168.222.29 --sport ssh -j ACCEPT",
    kterými povolí průchod firewallem (paketovým filtrem) pro spojení ssh do centrály.
    Nakonec přenastaví port démona ssh na standardní hodnotu 22 (platí pro verze od 8.1.2016).
    Nastavení nouzové adresy je signalizováno zelenými LED: zatímco při zobrazování normální IP-adresy se postupně rozsvěcují a klidně svítí, při zobrazování nouzové adresy blikají. Nastavení nouzového přístupu je jen dočasné - do restartu centrály.

Vypnutí centrály
Vypnutí centrály obvykle vyvolá LCPU tím, že se ukončí s kódem 11 ("exit (11)"). Další postup programu Starter_CCPU34 je už popsán výše.
Když LCPU není z jakéhokoliv důvodu spuštěn a dojde k výpadku napájení, Starter_CCPU34 spustí vypínací proces sám.

Zaznamenáno
Stran: [1] Nahoru Tisk 
« předchozí další »
Skočit na:  


Poháněno MySQL Poháněno PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines Validní XHTML 1.0! Validní CSS!