-
Data: 2022-09-27 15:35:51
Temat: Re: lwIP - odbieranie danych przez TCP
Od: "J.F" <j...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Sat, 24 Sep 2022 17:58:49 +0200, Atlantis wrote:
> Chciałem ostatnio popchnąć trochę do przodu jeden ze swoich poprzednich
> projektów - sprzętowe radio internetowe o którym pisałem już wcześniej,
> tylko tym razem w wersji ze zaktualizowaną częścią hardware'ową.
> Poprzednia wersja była tworzona na PIC32, teraz powoli chciałem
> przenieść go na STM32.
A tak swoja drogą - te radia działają na TCP ?
Bo chyba powinny na UDP ...
Kolejna sprawa - jak te radia działają?
Dawniej podawali jakies parametry do bezposredniej transmisji,
dzis wszystko pochowane. Wyswietl nasza strone www.
A radia (te niby "sprzetowe") jakos działają ... maja jakies serwery
z listami parametrów ?
> Widzę, że w przypadku lwIP (RAW API) sprawa nie jest już tak prosta.
> Zamiast tego muszę zarejestrować callback, który jest wołany za każdym
> razem, gdy przyjdą nowe dane. Callback otrzymuje w jednym z parametrów
> wskaźnik do struct ptr, w której mam m.in.
> - void* paylod
> - int len
> - int tot_len
> - struct pbuf* next
>
> Istnieje więc możliwość, że wszystko co będę musiał zrobić to pobranie
> skopiowanie len bajtów spod adresu na który wskazuje payload. Istnieje
> jednak szansa, że danych jest więcej - wtedy tot_len > len i kolejnej
> porcji danych trzeba szukać w kolejnej strukturze, na którą wskazuje
> wskaźnik next.
>
> Jeśli już zakończymy odczytywać dane, trzeba zawołać tcp_recved
> informując stos, że czekamy na kolejną paczkę. Tu jeszcze jest wszystko
> jasne.
>
> Co jednak w sytuacji, gdy powiedzmy do zakończenia wypełniania bufora
> pozostało mi 100 bajtów, a w otrzymanej struct pbuf mam ich 500? Na
> PIC32 po prostu pobierałem 100, a reszta czekała na swoją kolej. W jaki
> sposób uzyskuje się podobny efekt na lwIP?
Na moj gust, gdzies musisz sobie założyc bufor odpowiedniej dlugosci,
wpychac tam dane które przyszly, i potwierdzac otrzymanie, lub
poczekac jak sie bufor konczy ... aby zatrzymac transmisje.
J.
Następne wpisy z tego wątku
- 27.09.22 17:12 Mateusz Viste
- 27.09.22 17:22 Cezar
- 28.09.22 09:30 Atlantis
- 28.09.22 09:35 Atlantis
- 28.09.22 10:52 Mateusz Viste
- 28.09.22 13:06 Atlantis
- 28.09.22 18:39 J.F
- 29.09.22 01:26 Atlantis
- 29.09.22 10:58 Cezar
- 29.09.22 16:48 Atlantis
- 29.09.22 17:05 Atlantis
- 30.09.22 09:49 J.F
- 30.09.22 11:04 Cezar
- 30.09.22 12:12 JDX
- 30.09.22 12:13 J.F
Najnowsze wątki z tej grupy
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
Najnowsze wątki
- 2025-02-25 Tak wiem.... To oczywiste ale jak oni dzisiaj dziadują na materiale
- 2025-02-25 rozliczenia policji
- 2025-02-25 Echhhhhh. Marzy mi się SWAP Audi A2 z 1.8 T ;-)
- 2025-02-25 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-02-25 Warszawa => SQL Developer <=
- 2025-02-25 Zbigniew Ziobro śmie sugerować "niedostatki niezawisłości" sędzi (wątpliwości co do bezstronności)
- 2025-02-25 Kraków => DevOps Engineer (Junior/Regular) <=
- 2025-02-25 Kraków => Front-end Developer <=
- 2025-02-25 Szpital
- 2025-02-24 Gniazdo + wtyk
- 2025-02-24 Dyrektor Toyoty miał rację. Elektryki to ślepa uliczka
- 2025-02-24 Białystok => System Architect (Java background) <=
- 2025-02-24 Białystok => System Architect (background deweloperski w Java) <=
- 2025-02-24 Białystok => Solution Architect (Java background) <=
- 2025-02-24 Warszawa => Data Engineer (Tech Leader) <=