-
Data: 2015-01-28 10:52:52
Temat: Re: Stabilność ESP8266
Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2015-01-28 o 10:33, Marek pisze:
> A chyba już wiem, wysyłają polecenie AT, delay oczekując na odpowiedź,
> po czym sprawdzają bufor odbiorczy uarta... ależ to jest bardzo
> nieefektywne, zamiast delay procek mógłby robić w tym czasie coś innego.
No właśnie wiem. ;)
Dlatego gdybym ja się za to zabierał, to wszystko robiłbym na flagach i
zdarzeniach. Na przykład wysyłając dane ustawiamy odpowiednią flagę i
podajemy funkcji w pętli głównej wskaźnik do bufora. Dopóki flaga jest
ustawiona, nie możemy rozpocząć kolejnego wysyłania, a czyści się ją po
odebraniu "SEND OK".
Podobnie można postąpić z "ready" i innymi sygnałami kontrolnymi.
Sprawdzane byłoby też pojawienie się ">\r\n".
Oczywiście wszystkie odpowiedzi byłyby odbierane i parsowane "w tle",
przez funkcję w pętli głównej.
Nieco problematyczny jest tylko odbiór danych, które mogą się pojawić w
dowolnym momencie jako "+IDP,<soc>,<len>:<data>\r\n".
Sęk w tym, że ciąg danych może składać się z większej ilości linii, więc
odebranie "\r\n" nie musi oznaczać końca odbioru danych. Trzeba by dać
instrukcję warunkową, która sprawdza czy linijka po ":" zawiera mniej
znaków niż "len" - jeśli tak, trzeba by uruchomić specjalny tryb odbioru
danych, w którym kolejne napływające znaki nie są parsowane jako
komendy, ale doklejane do końca bufora, aż do pobrania zadanej ilości.
Następne wpisy z tego wątku
- 28.01.15 11:35 Atlantis
- 28.01.15 12:14 Marek
- 28.01.15 12:16 Marek
- 28.01.15 12:26 Atlantis
- 28.01.15 12:36 Andrzej W.
- 28.01.15 16:23 Marek
- 28.01.15 20:28 Atlantis
- 29.01.15 01:13 Grzegorz Niemirowski
- 29.01.15 08:36 Atlantis
- 29.01.15 14:13 Marek
- 29.01.15 17:55 Atlantis
- 29.01.15 18:27 Marek
- 29.01.15 18:37 Atlantis
- 30.01.15 09:33 Atlantis
- 30.01.15 11:22 Atlantis
Najnowsze wątki z tej grupy
- Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki
- Smukły, długi ściągacz izolacji do kynaru
- rezystor 3 omy 400W
- [newbie] Jaki multimetr za 2-4 stówy?
- szafka sieciowa
- Raspberry Pi 5 + dyski SATA
- lutownica na węgiel
- Znów czary (albo niewiedza) - tym razem fotowoltaika
- Chess
- Vitruvian Man - parts 7-11a
- przeźroczyste koszulki
- Re: Win 10/11 nie lubi OKI
- Programator czasowy TUYA.
- Dlaczego energia elektryczna jest droga i cały czas drożeje
- twardy dysk stuka
Najnowsze wątki
- 2024-05-14 Białystok => ERP Implementer <=
- 2024-05-14 Przerabianie na Indonezje
- 2024-05-14 Kielce => UX/UI Designer <=
- 2024-05-14 Warszawa => Sales Representative for Outsourcing Services <=
- 2024-05-14 Prowadzenie działalności za kogoś - to legalne?
- 2024-05-14 nieletni na plaży naturystów
- 2024-05-13 Działalność nierejestrowana/definicja sprzętu elektronicznego/misie i kolejki
- 2024-05-13 Szczecin => Realtime (C) Software Developer <=
- 2024-05-13 ekran sie odspaja
- 2024-05-13 Wrocław => ERP Implementation Consultant <=
- 2024-05-13 Marki => Senior DevOps Engineer <=
- 2024-05-13 Białystok => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-13 Warszawa => Key Account Manager <=
- 2024-05-13 Warszawa => Senior Account Manager (on-site) <=
- 2024-05-13 Zielona Góra => Engineer R&D Energy Electronics <=