-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!
peer.ams1.xlned.com!news.xlned.com!peer01.ams4!peer.am4.highwinds-media.com!new
s.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-sp
o-a-02.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>
<1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
<6333f830$0$447$65785112@news.neostrada.pl>
Date: Wed, 28 Sep 2022 18:39:01 +0200
Message-ID: <e3owijdfib1a$.1bbj90doev5kq.dlg@40tude.net>
Lines: 126
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.4.174.119
X-Trace: 1664383142 unt-rea-a-02.news.neostrada.pl 476 83.4.174.119:59714
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 6983
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774593
[ ukryj nagłówki ]On Wed, 28 Sep 2022 09:30:56 +0200, Atlantis wrote:
> On 27.09.2022 15:35, J.F wrote:
>> A tak swoja drogą - te radia działają na TCP ?
>
> Działają na TCP, a konkretnie na zwyczajnym protokole HTTP. Otwierasz
> połączenie z serwerem i wysyłasz GET-a, prosząc o udostępnienie
> konkretnego streamu. W odpowiedzi dostajesz odpowiedź i nagłówki. Jeśli
> jest to 200 OK, możesz zacząć odbierać i dekodować przychodzące dane
> audio. Oczywiście trzeba też obsłużyć inne sytuacje, jak np.
> przekierowanie pod inny adres.
>
>> Bo chyba powinny na UDP ...
>
> Po co? Strumień audio nie potrzebuje niskiej latencji - wszystko i tak
Nie o latencje chodzi, tylko o zaciecia na straconych pakietach.
> jest buforowane po stronie serwera. Można się o tym dość łatwo przekonać
> włączając jednocześnie dowolne radio FM i jego sieciowy odpowiednik,
> albo jeszcze lepiej - Jedynkę na falach długich i tę samą stację
> nadawaną on-line.
Owszem, jest opoznienie spore ... ale to serwer czy po stronie klienta
buforowanie jest ?
Serwer do kompresji cos musi buforowac, ale dla radia to chyba
niewiele - gorzej z video mpeg. No ale telewizja cyfrowa tez
kompresuje ..
>> Kolejna sprawa - jak te radia działają?
>> Dawniej podawali jakies parametry do bezposredniej transmisji,
>> dzis wszystko pochowane. Wyswietl nasza strone www.
>
> Niektóre stacje nadal podają bezpośrednie URL-e do swoich streamów. Jest
> też trochę różnych zestawień w Internecie. W przypadku stacji
> narzucających własną aplikację na stronie i tak bardzo często pod spodem
> mamy zwyczajne połączenie HTTP - wtedy wystarczy wyłuskać adres
> analizując ruch, np. za pomocą narzędzi deweloperskich Chrome'a.
>
>> A radia (te niby "sprzetowe") jakos działają ... maja jakies serwery
>> z listami parametrów ?
>
> Tak. I to jest właśnie głównym powodem dla którego zabrałem się za ten
> projekt. Wkurzał mnie fakt, że większość dostępnych komercyjnie
> rozwiązań będzie działała tak długo, jak długo producent raczy
> utrzymywać infrastrukturę. Tutaj sam wpisuję URL-e stacji, które chcę
> słuchać.
No tak, to jest argument.
Wyszukac wlasciwy adres na stronie np rmf.fm
nie tak latwo, ale lepiej miec mozliwosc wyszukania i wpisania,
niz miec martwe radio.
>> 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.
>
> No właśnie tutaj jak na razie rozbijam się o szczegóły. W przypadku
> stosu MLA z PIC32 po prostu pobierałem sobie z bufora odbiorczego tyle
> danych, ile w danym momencie potrzebowałem. Stos robił pod spodem całą
> resztę - jeśli w buforze było miejsce, prosił serwer o więcej danych.
> Efekt był taki, że dekoder MP3 z automatu narzucał prędkość transmisji i
> nawet przy stosunkowo niewielkich buforach wszystko działało płynnie.
Z drugiej strony - to i serwer powinien narzucac predkosc,
bo co ma przyslac, jesli za szybko potwierdzisz ?
> Tutaj sprawa jest trochę bardziej skomplikowana. Dane nie są buforowane
> w taki sposób i nie mogę po prostu pobrać dowolnej ilości w dowolnym
> momencie. Jeśli zostanie wywołany callback odbiorczy, mam obowiązek
> odebrać całą paczkę, zwolnić pamięć i wywołać tcp_recved. Jednak z tego
> co rozumiem ta ostatnia funkcja jedynie zwiększa rozmiar okna
> odbiorczego, więc nawet pomimo braku jej wywołania nie mam gwarancji, że
> jeszcze przez chwilę nie przyjdą kolejne callbacki - być może uda mi się
> uzyskać taki efekt odpowiednio manipulując ustawieniami stosu.
>
> Przerobiłem wczoraj nieco swoją aplikację, implementując bufor cykliczny
> do którego trafiają dane ze strumienia. Serwer jednak wysyła je nieco
> szybciej niż wynikałoby to z bitrate'u strumienia audio - ma to sens, bo
> nadmiarowe dane w normalnych warunkach mogą zostać użyte do uzupełniania
> bufora.
No tak sobie ma to sens - bo skad ma wziac tresc do wyslania, jak sie
uzbiera tych nadmiarowych danych minuta czy kwadrans?
Co prawda teraz sporo radiostacji z dysku nadaje, ale i tak nie ma za
duzego bufora, bo chocby aktualnosci powinny byc aktualne :-)
> Tak więc jeśli po prostu odbieram dane, wrzucam je do bufora i
> potwierdzam otrzymanie, to dość szybko dochodzi do przepełnienia bufora
> - dźwięk jest, ale postrzępiony.
Sprobuj wiekszy bufor. Gdzies musi byc granica.
No ale to bardziej z ciekawosci, bo jak najbardziej trzeba potwierdac
w miare ubywania danych.
> Próbowałem wywoływać tcp_recved() w
> innym miejscu dopiero wtedy, gdy w buforze była dostatecznie dużo
> wolnego miejsca, jednak jak na razie nie udało mi się uzyskać poprawnego
> działania. Będę jeszcze eksperymentował.
>
> Eksperymenty z zewnętrzną pamięcią SPI RAM 128 kB jak na razie też nie
> przyniosły idealnych rezultatów. Nawet przy maksymalnej
> dostępnej prędkości (18 MHz) wydaje się ona zwyczajnie zbyt wolna.
> Trochę mnie to zaskoczyło, bo karta SD przy dwa razy wolniejszej
> transmisji spokojnie wyrabiała z dostarczaniem danych z pliku MP3. Z
Karta SD mogla mies jakis szybszy tryb pracy niz SPI,
ale wydaje sie, ze te 18MHz powinno wystarczyc z naddatkiem.
W koncu strumien ma rzedu 256kbit/s.
> drugiej strony jednak tutaj mam operacje odczytu i zapisu, występujące
> naprzemiennie w krótkich odstępach czasu.
>
> Zaczynam zastanawiać się czy faktycznie dobrym pomysłem nie będzie
> zastosowanie FreeRTOS-a i socketów. Nie wiem tylko czy problemem nie
> będzie niewielka ilość RAM-u mikrokontrolerze (64kB).
Ok, to ciekawosc by trzeba sprawdzic na innym modelu, z wieksza
pamiecią.
Ale pomijac wymagania RTOS na pamiec - jesli on potrafi zbuforowac
dane, to i Ty powinienes potrafic dostępnymi srodkami ...
J.
Następne wpisy z tego wątku
- 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
- 30.09.22 12:21 J.F
- 30.09.22 12:23 J.F
- 02.10.22 07:48 Marek
- 02.10.22 09:39 Atlantis
- 02.10.22 15:05 Marek
- 02.10.22 15:11 Marek
- 02.10.22 21:06 Atlantis
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-13 Unia Europejska przygotowuje nowy podatek
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=