eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikalwIP - odbieranie danych przez TCPRe: lwIP - odbieranie danych przez TCP
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.p
    l!2.eu.feeder.erje.net!3.us.feeder.erje.net!feeder.erje.net!border-1.nntp.ord.g
    iganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.p
    l!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "J.F" <j...@p...onet.pl>
    Subject: Re: lwIP - odbieranie danych przez TCP
    Newsgroups: pl.misc.elektronika
    User-Agent: 40tude_Dialog/2.0.15.1
    MIME-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    References: <632f2939$0$455$65785112@news.neostrada.pl>
    Date: Tue, 27 Sep 2022 15:35:51 +0200
    Message-ID: <1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
    Lines: 46
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.4.174.119
    X-Trace: 1664285752 unt-rea-b-01.news.neostrada.pl 549 83.4.174.119:54532
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:774582
    [ ukryj 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: