[python] Akcia iba pri prekročení hodnoty v cykle

Petr Viktorin encukou na gmail.com
Pondělí Duben 21 21:20:25 CEST 2014


Podobné věci se většinou řeší stavovým automatem (state machine;
google ti určitě ukáže spoustu teorie).

Jinak ohřívače mají většinou hysterezi: teplota při které se ohřívač
spustí je vyšší než při které se vypne. Přikládám jednoduchou ukázku.

2014-04-21 21:02 GMT+02:00 Lukáš Sliacky <lukas na sliacky.eu>:
> Ahojte,
>
> už druhý deň si lámem hlavu nad tým, ako urobiť, aby v cykle nastala akcia iba pri prekročení definovanej hodnoty.
>
> Príklad:
> Mám teplomer, ktorý dáva na vstup teplotu v stupňoch. Chcem, aby cyklus sledoval, či je teplota vyššia alebo nižšia ako 20 stupňov a podľa toho vykonal napr. print.
> Problém je v tom, že potrebujem aby print vykonal iba keď teplota stúpne nad 20 stupňov, resp. keď klesne pod 20 stupňov. Keď stúpne napr. z 15 na 16 alebo z 21 na 22, nevykoná sa nič. Jednoducho akcia iba keď sa prvý krát prekoná definovaná hodnota.
>
> Je to vlastne ekvivalent funkcie nejakého ohrievača. Keď teplota klesne pod 20 stupňov, vypíše, že za zapína kúrenie a zapne ho až pokým teplota nestúpne nad 20, tam znovu vypíše, že teplota je nad 20 a znovu nebude vykonávať nič, až pokým neklesne pod 20.
> (ak som to náhodou nezadefinoval dostatočne, na požiadanie to všetko upresním)
>
> Verím, že existuje nejaký hotový algoritmus, ale ani po hodinách googlenia sa mi nepodarilo nájsť nič použiteľné.
>
> Ďakujem za odpovede.
>
> Lukáš
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
------------- další část ---------------
A non-text attachment was scrubbed...
Name: stavovy_automat.py
Type: text/x-python
Size: 547 bytes
Desc: [žádný popis není k dispozici]
URL: <http://www.py.cz/pipermail/python/attachments/20140421/816912af/attachment.py>


Další informace o konferenci Python