-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!newsreader4.netcologne.de!
news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.ams4!p
eer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-
exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTE
D!not-for-mail
Date: Wed, 28 Sep 2022 13:06:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
Subject: Re: lwIP - odbieranie danych przez TCP
Content-Language: pl
Newsgroups: pl.misc.elektronika
References: <632f2939$0$455$65785112@news.neostrada.pl>
<1sjefj0s46cyi.l9ylckob73a0$.dlg@40tude.net>
<tgv3su$1hf5$1@gioia.aioe.org>
<6333f956$0$447$65785112@news.neostrada.pl> <th11vo$abm$1@gioia.aioe.org>
From: Atlantis <m...@w...pl>
In-Reply-To: <th11vo$abm$1@gioia.aioe.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 66
Message-ID: <63342aa7$0$551$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.21.25
X-Trace: 1664363175 unt-rea-b-01.news.neostrada.pl 551 83.27.21.25:37486
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 4501
Xref: news-archive.icm.edu.pl pl.misc.elektronika:774592
[ ukryj nagłówki ]On 28.09.2022 10:52, Mateusz Viste wrote:
> Chwalebnie... i ambitnie - bo trzeba samemu obsłużyć TCP
Od tego jest stos. Generalnie projekt zaczynałem jeszcze na PIC24, potem
przeniosłem go na PIC32. W obydwu przypadkach korzystałem już z nieco
leciwych, ale całkiem fajnych bibliotek MLA (w ostatnich latach
Microchip przestał je wspierać, zastępując środowiskiem Harmony). Ich
obsługa jest bardzo prosta, trzeba tylko potrafić napisać odpowiednią
maszynę stanów, ale taki sposób programowania mikrokontrolerów jest dla
mnie najbardziej naturalny.
> HTTP
Tak naprawdę nie potrzeba pełnej obsługi HTTP. Inicjując połączenie za
każdym razem wysyłamy takiego samego GET-a, z kilkoma podmienionymi
polami (adres serwera i lokalizacja streama na serwerze). Dostajemy
odpowiedź, którą trzeba przeparsować. Tutaj też nie ma konieczności,
żeby implementować jakąś pełną bibliotekę do obsługi klienta HTTP.
Wystarczy uwzględnić kilka odpowiedzi. Najważniejsze to 200 OK oraz
przekierowanie pod inny adres. Wszystkie inne można uznać za błąd
oznaczający konieczność zamknięcia połączenia (i ewentualnie podjęcia
kolejnej próby).
> kilka popularnych kodeków
To w całości załatwia sprzętowy dekoder VS10xx. W przypadku
software'owego podejścia de facto można by się ograniczyć do MP3
(zdecydowana większość stacji nadaje właśnie w tym formacie) i tutaj
sprawę załatwia popularna biblioteka libmad. Większość współczesnych
32bitowych mikrokontrolerów powinna ją udźwignąć (u mnie nie miało z tym
najmniejszych problemów Raspberry Pi Pico) jednak w przypadku tego
projektu nie chciało mi się z tym bawić. Bibliotekę najwygodniej
obsługuje się za pomocą wysokopoziomowego API, które wymaga RTOS-a (to
znaczy nie wymaga, ale bez niego będzie nam blokowało pętlę główną) a
niskopoziomowego jeszcze nie rozgryzłem.
> TLS...
To jest właśnie plan na dalszą rozbudowę projektu. W wersji na PIC32
było to trochę kłopotliwe, bo biblioteka TLS z MLA jest dość leciwa. Da
się ponoć wykorzystać wolfSSL-a, jednak jeszcze się w to nie wgryzłem. W
przypadku STM32 dodanie tej funkcjonalności ogranicza się do wyklikania
MBEDTLS-a w STM32CubeMX. To był jeden z powodów dla których w ogóle
zacząłem eksperymenty z przeniesieniem projektu na STM32. Niestety nie
wziąłem pod uwagę tego, że obsługa stosu będzie bardziej problematyczna.
Niezbyt przemyślany był także wybór układu STM32F107, który ma
stosunkowo mało RAM-u i nie ma nawet parametrów pozwalających na
uruchomienie na nim MBEDTLS-a. Mam nadzieję, że w serii STM32F4 znajdę
coś pinowo kompatybilnego, mającego wszystkie peryferia w tych samych
miejscach, co pozwoliłoby mi wykonać łatwą podmianę. ;)
Tak czy inaczej, na szczęście ciągle jeszcze całkiem sporo stacji
internetowych nadaje po czystym HTTP. W tym właściwie wszystkie te, na
których mi najbardziej zależało.
> Niemniej doceniam i rozumiem myśl. Też mnie denerwuje, że po włączeniu
> "radia" muszę czekać niemal minutę na dźwięk.
Ten projekt tak naprawdę i tak jest trochę przesadnie skomplikowany, w
celach edukacyjnych. Widziałem już w internecie znacznie prościej
robione radia internetowe na ESP32. :)
Następne wpisy z tego wątku
- 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
- 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
Najnowsze wątki z tej grupy
- Pęczniejące LiPo
- wyłącznik ścienny
- "Wybitna" inteligencja AI
- test stereo
- Bluetooth stereo
- W USA budują pierwszą komercyjną elektrownię fuzji jądrowej
- Weryfikacja myjki ultradźwiękowej
- zasieg radaru
- Zmywarka Bosch SRV55T43EU - awaria
- Kod zniżkowy w TME do 26.09.2025
- SFP, 10G, simplex sc/apc
- [słabe wiatry powodują - przyp. JMJ] Energetyczny paraliż w Niemczech
- NxtPaper
- Programiści nie przestają zadziwiać świat
- Długi kabel zasilający a na końcu procek
Najnowsze wątki
- 2025-09-26 Zimowy płyn do spryskiwania szyb
- 2025-09-25 Ekstradycja Ukraińca za wysadzenie Nord Stream
- 2025-09-25 Mentzen: Nie macie pojęcia o kryptowalutach, a chcecie decydować o ich przyszłości!
- 2025-09-25 Wycofują 3G. Nie będzie nawet internetu.
- 2025-09-25 Pęczniejące LiPo
- 2025-09-25 wyłącznik ścienny
- 2025-09-25 Cenckiewicz ma czy nie ma poświadczenia bezpieczeństwa? [SKW cofnęła, WSA uchylił cofnięcie, NSA się ma wypowiedzieć]
- 2025-09-25 iKO
- 2025-09-25 jęczy wspomaganie
- 2025-09-24 "Wybitna" inteligencja AI
- 2025-09-24 test stereo
- 2025-09-24 Bluetooth stereo
- 2025-09-24 Rzeszów => International Freight Forwarder <=
- 2025-09-24 Gdańsk => Delphi Programmer <=
- 2025-09-24 Warszawa => BI Developer / Analityk BI <=