-
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
- odzysk z panela PV
- tuner i silnik od rolety
- Przednia lampka rowerowa Basta / AXA pod dynamo w piaście
- Boję siię capa...
- Efekt gitarowy koda kd-30 trash metal
- Re: Efekt gitarowy koda kd-30 trash metal
- Wykrywanie przerwy w długim przewodzie zakopanym w ziemi.
- PT500
- supercap
- Procesor NMOS i karta CF
- Jak sprawdzic uC
- radyjko znalazłem
- Telewizor przestał widzieć sygnał z anteny
- LED
- System operacyjny dla 6800?
Najnowsze wątki
- 2024-06-03 dziękuję nie tankuję
- 2024-06-03 Bo konie to ...
- 2024-06-03 narząd nieużywany zanika
- 2024-06-02 Restart PC-ta
- 2024-06-03 polskie miasta są małe
- 2024-06-04 Wrocław => Senior React Native Developer <=
- 2024-06-04 Warszawa => Sales Executive <=
- 2024-06-04 Białystok => ERP Implementer <=
- 2024-06-03 Zielona Góra => Engineer R&D Mechanic <=
- 2024-06-03 Kielce => UX/UI Designer <=
- 2024-06-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-06-03 Warszawa => Technical Leader (Java Background) <=
- 2024-06-03 Warszawa => Senior Rust Software Engineer <=
- 2024-06-03 Bieruń => Administrator i wdrożeniowiec Lotus Notes/Domino <=
- 2024-06-03 Marki => Senior PHP Developer <=