
Dzięki bibliotece EtherCard w łatwy sposób można zrobić aplikację serwer/klient obsługującą powiadomienia lub dostarczającą dane telemetryczne, a nawet prostą aplikację IoT.Brakowało mi jednak przejrzystości w sketch-u i prostoty obsługi żądań HTTP. Bazując na przykładach udostępnionych przez EtherCard i ogólnodostępnej wiedzy, dopisałem wrap tej biblioteki i nazwałem ją EtherDevice.Spis treści:Opis nagłówkaPrzykładowe użycieSposób połączenia modułu ethernet i arduinoSketch z komentarzamiSketch bez komentarzyWady/ZaletyZałączniki 1. Opis nagłówkaNa początku postanowiłem zamknąć fragmenty kodu, które pierwotnie zmniejszały czytelność sketch-a właściwego. Utworzyłem klasę EtherDevice dziedziczącą publicznie po EtherCard, a w niej zawarłem poniżej opisane metody.Inicializacja z adresem IP przydzielanym przez DHCP: [crayon-5beec310ebb63412998511/]Inicializacja z adresem IP ustawionym statycznie: [crayon-5beec310ebb6e255385954/]Metoda ipconfig:[crayon-5beec310ebb71686889265/]Metoda statycznej odpowiedzi - staticHttpServerReply:[crayon-5beec310ebb72745161498/]Powyższa metoda ta wymaga zdefiniowanych stałych łańcuchów, zdefiniowałem typowe odpowiedzi HTTP (200, 401, 404, 405, 406), przydatne w dalszej części usprawnienia biblioteki EtherCard:[crayon-5beec310ebb74479928304/]Następnie napisałem metodę, ułatwiającą parsowanie argumentów żądania HTTP, np:po wpisaniu w przeglądarce http: //ip_urządzenia/?arg_1=val_1&arg_2=val_2& ... &arg_C=val_Cjest C niewygodnych do sparsowania argumentów oddzielonych znakiem "&".[crayon-5beec310ebb76345934550/]Powyższa metoda wymaga zdefiniowanej struktury dla argumentów argv:[crayon-5beec310ebb78805094315/]Kolejno dopisałem metodę pozwalającą w przyjazny sposób wypisać w Serial wszystkie argumenty żądania, mając już je sparsowane przy użyciu metody getTask:[crayon-5beec310ebb7a298614396/]Nie mogło zabraknąć też metody......
Czytaj dalej...