Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 29 maja 2025, o 18:05


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
    Autor Wiadomość
    PostNapisane: 14 lis 2021, o 19:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    Problem poruszony w tym poście https://forum.atnel.pl/topic23887.html#p234186. W wielkim skrócie: stos sieciowy tuxgraphics, by design, nakłada ograniczenie na wielkość serwowanych plików. Jest to, odliczając headery HTTP ok 1,2-1,3kB a więc niewiele. Proponowane obejście problemu to podział serwowanej treści na kilka skompresowanych plików oraz pobieranie danych przez XHR z opcjonalnym scedowaniem części przetwarzania na przeglądarkę za pomocą skryptów np. javascript. Sam pomysł nie jest nowatorski, przeciwnie, na obecnych stronach internetowych schemat jest spotykany praktycznie wszędzie. Ponieważ technika pozwala na znaczne ograniczenie wolumenu serwowanych danych oraz odciążenie mikrokontrolera, naturalnym jest wykorzystanie tego w embedded. Poniżej efekty zaimplementowania tego na AVR.
    Wykonałem taką stronę:

    Obrazek

    Strona składa się z pliku opisu strony index.html, z pliku stylów style.css oraz kodu javascipt app.js. Pliki są nieco sztucznie napompowane tagami oraz tekstem i każdy z nich przekracza wielkość akceptowaną przez stos tuxgraphics. Pliki są umieszczone w katalogu "html" załącznika więc można je sobie obejrzeć. Następnie pliki zostały skompresowane algorytmem gzip do wielkości akceptowanych przez tuxgraphics. Do skompresowanych plików zostały dodane niezbędne headery HTTP (np. informujące o kompresji i typie MIME). Tak przygotowane pliki zostały dołączone do kodu. Dokładne wielkości oryginalnych i skompresowanych plików są na poniższym zrzucie ekranu (5.kolumna, w bajtach)

    Obrazek

    Kilka słów o kompresji: w zasadzie serwer http powinien sprawdzać w nagłówkach rządania czy przeglądarka w ogóle akceptuje kompresję i wg. jakiego algorytmu. W razie braku stosownego nagłówka powinien serwować zasób nieskompresowany. Jednakże praktycznie wszystkie obecne przeglądarki obsługują kompresję gzip więc przedstawiona implementacja pomija sprawdzanie.
    Stos tuxgraphics 5.10 (najnowszy) http://www.tuxgraphics.org/common/src2/article09051/, mikrokontroler atmega328pa modułem ENC28J60. Efekt:

    Jak widać strona chodzi doskonale, znacznie lepiej niż się spodziewałem :-). W ramach szybkich testów, z powodzeniem, wczytałem ją na trzech przeglądarkach jednocześnie. To oczywiście żaden miarodajny test więc mam zamiar poddać układ testom bardziej wymagającym. Spodziewam się uzyskania wyniku co najmniej kilkudziesięciu request/responsów na sekundę :-).
    W załączniku załączam większą część kodu więc można to sobie zobaczyć na żywo.
    Kompilacja wsadu. W Eclipse założyć zwykły projekt AVR na atmega328p (po zmniejszeniu bufora do 723 bajtów można spróbować na m168 albo nawet na m88). Do projektu zaimportować wszystkie pliki z katalogu "webserwer" załącznika. We właściwościach projektu dołączyć bibliotekę "libweb_demo.a" tak jak na poniższym obrazku.

    Obrazek

    Plik libweb_demo.a zawiera skompresowane pliki strony. Co tam dokładnie jest można sobie obejrzeć poleceniem
    Składnia: [ Pobierz ] [ Ukryj ]
    język bash
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 lis 2021, o 21:20 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    To by można było dać od razu do działu DIY forum - w końcu jakiś porządny i mega praktyczny przykład. Bardzo mi się podoba, tym bardziej że ja akurat nie mam żadnej wiedzy o htmlach, javascriptach itp itd

    Bardzo fajnie zrobiona stronka aż bym sam chciał się kiedyś nauczyć tworzyć takie podstawowe ładne stronki ! ;)

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 lis 2021, o 20:23 
    Offline
    Użytkownik

    Dołączył(a): 27 lut 2013
    Posty: 230
    Pomógł: 4

    Super, że się tym pochwaliłeś ;) Dobra robota ! ;D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 15 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO