-
11. Data: 2014-03-19 10:15:19
Temat: Re: minimalny terminal
Od: g...@g...com
W dniu wtorek, 18 marca 2014 08:47:50 UTC+1 użytkownik Atlantis napisał:
> Masz w domu jakąś sieć LAN?
> [ciach ENC28J60, W5100 ...]
Lan jest, kabelek nawet dedykowany do tego sterownika pod tynkiem czeka.
To tez planuje kiedystam, ale raczej do komunikacji sterownika ze serwerkiem. Dopiero
tam moze jakis interfejs webowy.
> Inne rozwiązania? RS485, CAN, można próbować modułów do transmisji radiowej.
Doczytam.
> BTW w książce Mirosława Kardasie "Język C, pasja programowania
> mikrokontrolerów 8-bitowych" w fajny sposób omówione zostało zagadnienie
> parsowania danych, na przykładzie komend AT. Na dołączonej płytce gotowa
> biblioteka.
Parsery jadam na sniadanie, powinienem sobie poradzic :)
/bajcik
-
12. Data: 2014-03-19 18:02:29
Temat: Re: minimalny terminal
Od: Atlantis <m...@w...pl>
W dniu 2014-03-19 10:15, g...@g...com pisze:
> Lan jest, kabelek nawet dedykowany do tego sterownika pod tynkiem
> czeka. To tez planuje kiedystam, ale raczej do komunikacji sterownika
> ze serwerkiem. Dopiero tam moze jakis interfejs webowy.
To powinno rozwiązywać problem. Nie widzę potrzeby, żeby mnożyć kable.
Jak już będziesz miał w sterowniku interfejs Ethernet, to możesz
skomunikować go z tą konsolką za pomocą sieci lokalnej. Pakiety UDP
powinny wystarczyć. Na lepszym stosie niż tuxgraphics (albo na W5100)
można też odpalić telnet.
Nie wiem dlaczego ludzie upierają się na stawianie interfejsów webowych
na ośmiobitowych AVR-ach, jakby to było jedyne rozwiązanie.
-
13. Data: 2014-03-20 09:01:54
Temat: Re: minimalny terminal
Od: Marek <f...@f...com>
On Wed, 19 Mar 2014 18:02:29 +0100, Atlantis <m...@w...pl>
wrote:
> Nie wiem dlaczego ludzie upierają się na stawianie interfejsów
webowych
> na ośmiobitowych AVR-ach, jakby to było jedyne rozwiązanie.
Web - uniwetsalne gui, avr - prosta implementacja...?
--
Marek
-
14. Data: 2014-03-20 12:08:37
Temat: Re: minimalny terminal
Od: g...@g...com
W dniu środa, 19 marca 2014 18:02:29 UTC+1 użytkownik Atlantis napisał:
> Nie widzę potrzeby, żeby mnożyć kable.
> Jak już będziesz miał w sterowniku interfejs Ethernet, to możesz
> skomunikować go z tą konsolką za pomocą sieci lokalnej. Pakiety UDP
> powinny wystarczyć. Na lepszym stosie niż tuxgraphics (albo na W5100)
> można też odpalić telnet.
Nie mam na razie ani interfejsu ETH ani know-how to jego obslugi ani nawet routera :)
Podstawowa funkcja mini-terminala to ma byc mierzenie temperatury wewnatrz salonu, a
interfejs uzytkownika to dodatkowy bajer. Wole zeby to dzialalo bez zaleznosci od
LANu. Jak juz postawie sieci dobuduje interfejs ETH, to wtedy mini-terminala nie bede
potrzebowal bo obsluze wszystko ze smartfona/tableta.
Swoja droga, systemy alarmowe jak lacza maniupulatory z centrala? Czegos takiego bym
potrzebowal. Ciekawe czy to rs485 czy jakies autorskie rozwiazania.
bajcik
-
15. Data: 2014-03-21 11:40:01
Temat: Re: minimalny terminal
Od: Atlantis <m...@w...pl>
W dniu 2014-03-20 12:08, g...@g...com pisze:
> Nie mam na razie ani interfejsu ETH ani know-how to jego obslugi ani
> nawet routera :)
Obsługa tak naprawdę nie jest skomplikowana, chociaż trzeba się wczytać
w kody przykładów dołączonych do biblioteki. W przypadku tuxgraphics
wygląda to następująco (w skrócie):
1) Dodajemy pliki nagłówkowe, w niektórych z nich konfigurujemy
bibliotekę do naszego konkretnego zastosowania (obsługiwane funkcje) i
procesora.
2) Na początku programu definiujemy kilka tablic (numer MAC, własny
numer IP, numery IP zdalnych hostów jeśli korzystamy z funkcjonalności
klienta) oraz stałych (numery portów z których będziemy korzystać).
Potem wywołujemy funkcje inicjujące, podając im powyższe argumenty.
3) W głównej pętli programu cyklicznie sprawdzamy czy przyszła nowa
ramka Ethernet. Jeśli się pojawiła, odczytujemy ją do przygotowanego
wcześniej bufora.
4) W przypadku odebrania pakietu, w następnej kolejności przekazujemy go
funkcji, która sprawdzi co w nim siedzi (obsługa ICMP, ARP, TCP). Jeśli
przyjdzie pakiet TCP, dostaniemy wskaźnik do początku danych, które
można parsować. W zależności od zawartości pakietu można przygotować
odpowiedź.
5) Jeśli funkcja powie nam, że nie było pakietu TCP, trzeba jeszcze
sprawdzić czy nie było pakietu UDP (ta kwestia została potraktowana
przez autora trochę po macoszemu) - dosłownie kilka dodatkowych linijek
kodu, wszystko przystępnie wyjaśnione w niebieskiej książce pana
Kardasia. ;)
W cięższych stosach (albo w sp0rzętowym stosie układów Wiznetu) pewnie
jest jeszcze łatwiej, ale tego akurat jeszcze nie przerabiałem, może za
wyjątkiem paru przykładów Arduino z Ethernet Shieldem. ;)
> Podstawowa funkcja mini-terminala to ma byc mierzenie temperatury
> wewnatrz salonu, a interfejs uzytkownika to dodatkowy bajer. Wole
> zeby to dzialalo bez zaleznosci od LANu. Jak juz postawie sieci
> dobuduje interfejs ETH, to wtedy mini-terminala nie bede potrzebowal
> bo obsluze wszystko ze smartfona/tableta.
Jeśli tak, to tak naprawdę wystarczy pociągnąć RS485. Tylko dwa
urządzenia, brak konieczności implementacji rozwiązania multimaster itp.
Tylko czy faktycznie chcesz ciągnąć dodatkowy kabel, skoro i tak ma to
być rozwiązanie tymczasowe, docelowo zastąpione przez LAN?
Bo jak sądzę nie można raczej liczyć na tak dogodny zbieg okoliczności,
żeby już teraz centralne urządzenie i mini-terminal były umieszczone w
pobliżu końcówek jednego, już istniejącego kabla ethernetowego. Wtedy
parę skrętki mógłbyś tymczasowo wykorzystać na RS-a.
> Swoja droga, systemy alarmowe jak lacza maniupulatory z centrala?
> Czegos takiego bym potrzebowal. Ciekawe czy to rs485 czy jakies
> autorskie rozwiazania.
Nie wiem jak instalacje alarmowe, jak jak na razie widziałem tylko kilka
fabrycznych urządzeń do zdalnego włączania odbiorników energii
elektrycznej albo odczytywania takich danych jak temperatura, wilgotność
czy ciśnienie. Było to zrealizowane w ten sposób, że jedno urządzenie
master udostępniało interfejs webowy po Ethernecie a ze slave'ami
łączyło się przez RS4855 lub radiowo.
W przypadku AVR-ów odpuściłbym sobie nterfejs webowy, przerzucając go na
inne urządzenie, ale to tylko moje zdanie. ;)