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



Teraz jest 28 mar 2024, o 19:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 23 maja 2015, o 15:32 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Witam.
Mam dwa sterowniki z Atnel-Wifi na pokładzie. Oba łączą się z tym samym routerem. Jeden skonfigurowany jako UDP-CLIENT,
drugi jako UDP-SERVER. Serwer odpytuje klienta o temperatury i to co otrzyma wyświetla na lcd.

Żeby nie rozwlekać zapytam od razu, czy to client ma zainicjować połączenie z serwerem ?

Do tej pory nie zwróciłem uwagi na taką ewentualność, ale dzisiaj trochę pogrzebałem w kodach obu sterowników i przy okazji wywaliłem z klienta linijkę która cyklicznie co minutkę wysyłała do serwera stringa "ok". I po zresetowaniu serwera nie następowało połączenie. W sumie to resetowałem sam procesor, a nie moduł wifi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 16:21 
Offline
Moderator
Avatar użytkownika

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

Rafał555 napisał(a):
Żeby nie rozwlekać zapytam od razu, czy to client ma zainicjować połączenie z serwerem ?

a co za różnica ? nie ma żadnej w tym konkretnym przypadku

_________________
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: 23 maja 2015, o 17:45 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Coś jest nie tak. Cały czas z tym walczę i wynika z tego, że po resecie procka podpiętego do wifi jako udp-server muszę jeszcze zrestartować moduł wifi. Trochę to dziwne, ale tak jest.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 18:07 
Offline
Moderator
Avatar użytkownika

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

Rafał555 napisał(a):
Coś jest nie tak. Cały czas z tym walczę i wynika z tego, że po resecie procka podpiętego do wifi jako udp-server muszę jeszcze zrestartować moduł wifi. Trochę to dziwne, ale tak jest.

Kompletnie nie wiem o czym mówisz - ale pewnie ty wiesz i masz rację, więc tylko sam sobie możesz pomóc.

_________________
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: 23 maja 2015, o 23:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Dla mnie to też zdziepko dziwne - u mnie ATNEL wifi działa z SIM900 bez udziału procesora i jakoś jest wszystko ok. Pamiętajmy że ten moduł to jakby autonomiczny tłumacz pomiędzy np. UDP a RS232 (uart) a procesor tylko wprowadza ustawienia, a nie koordynuje w pracy modułu. Widocznie albo całkowicie zła koncepcja użycia albo błąd programisty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2015, o 08:36 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Moduł wifi ustawiony jako server wysyła zapytania do sieci bo sprawdzałem na terminalu. Jednak faktyczne połączenie między modułami następuje dopiero wtedy jak klient wyśle choćby znaczek do servera. I od tego momentu hula bez zacinek
całymi tygodniami. Wcześniej z klienta wysyłałem cyklicznie co minutkę słówko "ok", musiałem to wyrzucić, bo jak od czasu do czasu coś wgrywam bootloaderem wifi i w tym czasie wetnie się ten "ok" to już dwa razy musiałem na nowo wgrywać BLSa.

Czyli mówicie, że jak serwer wyśle zapytanie do swoich klientów po raz pierwszy to one muszą je odebrać bez szemrania?

Nawet jak ten serwer z terminala odpytuję to z pierwszego kopa nie odpowiada tylko najpierw trzeba wysłać cokolwiek.
Może to wina routera, albo efekt ostatniej burzy. Procek musiałem wymienić, może coś jeszcze się stało.
Zakładkę Net protocol w ustawieniach mam tak:
Serwer- udp-server, port:8899, adres docelowy chyba nieważny, ale ustawiony na adres routera 192.168.10.1
Klient- udp-client, port:8899, adres docelowy 192.168.10.201 (adres serwera).
Adres klienta 192.168.10.200.

edit: Mam jeszcze jeden wolny moduł. Jeszcze dzisiaj go podmienię i zobaczę, czy coś się zmieni.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2015, o 10:50 
Offline
Moderator
Avatar użytkownika

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

Rafał555 napisał(a):
Serwer- udp-server, port:8899, adres docelowy chyba nieważny, ale ustawiony na adres routera 192.168.10.1

No i widzisz - jak nie ważny ? .... WAŻNY! ... skoro chcesz żeby serwer bez zapytania od klienta wysłał cokolwiek do niego no to że ustaw właśnie adres tego klienta.

Po prostu nie rozumiesz działania trybu serwer, więc jeszcze raz przypomnę. Serwer normalnie czeka na połączenia (to chyba oczywiste). Ale w tym przypadku może też sam wysyłać zapytania. Tylko że jeśli nie dostał jeszcze żadnego zapytania po uruchomieniu to chyba trzeba mu powiedzieć gdzie (pod jaki adres) ma coś wysłać tak? i to jest właśnie ten adres którego wyżej okresliłeś jako nieważny.

------------------------ [ Dodano po: kilkunastu sekundach ]

Rafał555 napisał(a):
edit: Mam jeszcze jeden wolny moduł. Jeszcze dzisiaj go podmienię i zobaczę, czy coś się zmieni.

To nie polega na tym, że jak coś się zmieni to może coś się poprawi. To polega na zrozumieniu idei działania klienta i serwera, w obojętnie jakim urządzeniu.

_________________
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: 24 maja 2015, o 12:06 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Ano właśnie o to cały czas pytałem :lol: . Też mi się dziwne wydawało skąd server ma wiedzieć tak od razu gdzie co posłać.
Tylko pomyślałem,że to całe UDP może tak działa, że pakiety sobie lecą, a klienci wyłapują je np. po numerze portu.
A odnośnie portu docelowego tak właśnie zrobiłem jak pan napisał i raz, czy dwa zadziałało. Tylko jakbym miał więcej klientów to nie ma zastosowania.
No teraz wyczaiłem, że połączenie się urywa przy resecie z Bootloadera za pomocą wifi, czy też po wgraniu wsadu.
Przy resecie sprzętowym procka połączenie zostaje niezależnie od ustawień adresu docelowego serwera.
Sprzętowy reset modułu, czy też sekwencją resetu za pomocą komendy AT na starcie programu przywraca połączenie niezależnie od tego jak ustawiony jest adres docelowy.
Dla pewności wpiszę sobie do programu klienta jakąś linijkę, żeby coś wysłał do serwera jak będzie za długa cisza na linii.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2015, o 15:48 
Offline
Moderator
Avatar użytkownika

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

Rafał555 napisał(a):
A odnośnie portu docelowego tak właśnie zrobiłem jak pan napisał i raz, czy dwa zadziałało.

Postaraj się zapamiętać - jak piszesz na forum - to nie pisz - hmmm no takich bzdur (przepraszam najmocniej za określenie) .... że coś raz czy dwa zadziałało - i zero wyjaśnień ... toż tak to mogą gadać ze sobą dwie albo trzy przekupy na bazarze i każda każdej będzie mówić że jej się coś innego wydawało ..... Bo później się dziwisz - że nie dostajesz odpowiedzi i że mało kto rozumie to co piszesz ....

A po chwili dodajesz ....
Rafał555 napisał(a):
Tylko jakbym miał więcej klientów to nie ma zastosowania.


Czyli znowu to samo - zamiast zapytać - stwierdzasz .... zastanawiam się wtedy czy to ja zadawałem pytanie i ty mi wyjaśniasz coś czy odwrotnie. Ma zastosowanie tylko trzeba lepiej zrozumieć zarówno możliwości i to wszystkie tych modułów a także sam protokół UDP zamiast pisać kolejne bzdurki typu:
Rafał555 napisał(a):
Tylko pomyślałem,że to całe UDP może tak działa, że pakiety sobie lecą, a klienci wyłapują je np. po numerze portu.

Ok ja rozumiem - że można jeszcze tego nie ogarniać - i że rodzą się głowie różne pytania i wątpliwości - ale forum jest po to aby zadać w sposób przejrzysty pytanie - wtedy to można coś pomóc i podpowiedzieć, więc włóż troszkę wysiłku w pytania na forum ok? proszę

Rafał555 napisał(a):
Dla pewności wpiszę sobie do programu klienta jakąś linijkę, żeby coś wysłał do serwera jak będzie za długa cisza na linii.


Jeszcze raz powtórzę (chociaż znowu LEDWO ROZUMIEM co ma wynikać z tego zlepku zdań wyżej) .... że ustawienie adresu twojego klienta za pomocą AT+NETP spowoduje że serwer sam może pierwszy wysłać dane do klienta ....

a jeśli jednak klientów takich masz więcej (o czym wcześniej oczywiście nie raczyłeś napisać - pytałeś o jednego klienta) ... to możesz wszystkie moduły ustawić w tryb SERVER UDP i korzystać z adresu Broadcastowego (rozgłoszeniowego) 255.255.255.255 tylko już zrobić analizę własnej ramki danych w której na początku może lecieć np IP czy też jakieś ID docelowego klienta i jeśli zgadza się ono z tym jakie ma klient to może odpowiedzieć a jeśli się nie zgadza to może zignorować tę wiadomość. Komunikacja za pomocą Broadcastów może być w wielu przypadkach bardzo użyteczna.

_________________
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: 6 cze 2015, o 09:59 
Offline
Użytkownik

Dołączył(a): 05 lut 2014
Posty: 252
Lokalizacja: obok Częstochowy
Pomógł: 14

Trochę czasu minęło zanim zatrybiłem, albo i nie :).
No więc rozumiem to teraz tak:
To klient nawiązuje połączenie z serwerem i w moim przypadku wysyła do serwera temperatury z czujników.
No i teraz ja się łączę z serwerem jako drugi klient przez putty(czyli w zasadzie mam dwóch klientów) i pytam go jakie temperatury wysłał ten pierwszy klient. W tym momencie serwer rozłącza się z pierwszym klientem i gada z putty. Aby serwer znowu otrzymał temperatury, najpierw musi odezwać się "pierwszy klient" i bez zapytania przesłać je pod adres serwera, żeby wznowić połączenie.
Czy ja to zaczynam rozumieć ? Mam nadzieję, że to co wyżej napisałem jest w miarę zrozumiałe.



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: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO