Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Lazarus - delpi - dotaz.

Zdar.
Bych potřeboval jen nějaký nápad, jak na to.
Je adruino, které posila po ser. portu data co 10 vteřin.
Přes lazarus je odchytím a zpracují.
Potřebují nějak testovat, zda data chodí.
Dat na form image, a but v něm bude zelený puntik – data chodí , nebo červený – data nechodi.
Když data přijdou, tak před zpracováním, vždy nastavím zelený puntík.
Ale jak na červený?
Použit timer, který třeba co 35 vteřin nastaví červený puntík.
Pokud data přijdou, tak před zpracováním, ten timer vždy disable a enable.
Tim pádem by začal znovu odpočítávat.
Ale toto řešení mi připadá dost blbe.
Nenapadne někoho nějaké lepši řešení?
Dik.

Řešení:

Já bych při příchodu dat nastavil zelenou a timerem po sekundě zhasnul. Druhým timerem po 11 sec udělal červenou. Tak by blikáním zelené bylo vidět, kdy data přišla a když dlouho nic, červenou. Teda osobně bych udělal jen zelenou po příchodu dat a když nic, tak tma. Blikání zelené by IMHO lépe signalizovalo, že to pracuje.

PS: Proč ti řešení přes TTimer připadá blbé? IMHO je to nejlepší řešení.

Předmět Autor Datum
Vždyť sis sám odpověděl. Data ti chodí co 10s, a protože chodí sama, ty je nijak nevyčítáš (což by I…
touchwood 17.11.2023 09:27
touchwood
Já bych si udělal pomocnou proměnnou, kam bych pokaždé při příchodu dat zapsal timestamp. A testoval…
gilhad 17.11.2023 11:27
gilhad
Timer je možné řešení. Nastav timeout na 10s, pokud data prijdou, resetnes timer (zastavis a spustis…
Jan Fiala 17.11.2023 12:17
Jan Fiala
Já bych při příchodu dat nastavil zelenou a timerem po sekundě zhasnul. Druhým timerem po 11 sec udě…
Rce 18.11.2023 00:13
Rce
Já bych při příchodu dat nastavil zelenou a timerem po sekundě zhasnul. Teda osobně bych udělal jen…
BigSandy 18.11.2023 07:43
BigSandy
Dotaz mimo tema. Lazarus - Form - nahoře je lišta Dostanu tam nějaky svúj obrazek - ikonu? Kdysi jse…
BigSandy 20.11.2023 12:20
BigSandy
https://wiki.lazarus.freepascal.org/Application_Icon poslední
touchwood 20.11.2023 13:19
touchwood

Vždyť sis sám odpověděl. Data ti chodí co 10s, a protože chodí sama, ty je nijak nevyčítáš (což by IMHO bylo daleko lepší řešení, už proto, že je tak nikdy neztratíš, pokud je v arduinu implementován cyklický buffer), musíš mít nějaký timer, který odpočítá např. 11 s od posledního přenosu a vystaví alarm.

Nic víc s tím, tak jak to teď ne úplně dobře máš, nevymyslíš, protože to ze strany Lazara neřídíš.

Timer je možné řešení. Nastav timeout na 10s, pokud data prijdou, resetnes timer (zastavis a spustis). Pokud neprijdou, v OnTimer se ti nastavi cerveny obrazek
Co se ti na tom zda hloupe? Jako alternativu muzes pouzit dalsi vlakno a v nem testovat dobu od prichodu poslednich dat. Tohle se ti zda lepsi?

Já bych při příchodu dat nastavil zelenou a timerem po sekundě zhasnul. Druhým timerem po 11 sec udělal červenou. Tak by blikáním zelené bylo vidět, kdy data přišla a když dlouho nic, červenou. Teda osobně bych udělal jen zelenou po příchodu dat a když nic, tak tma. Blikání zelené by IMHO lépe signalizovalo, že to pracuje.

PS: Proč ti řešení přes TTimer připadá blbé? IMHO je to nejlepší řešení.

Zpět do poradny Odpovědět na původní otázku Nahoru