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



Teraz jest 19 kwi 2024, o 20:51


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 46 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 27 paź 2014, o 00:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Witajcie !

Po pozytywnie odebranej czesci pierwszej nadchodzi wiec kolejna czesc poradnika. Tym razem zajmiemy sie troszeczke ulepszona wersja naszej aplikacji do wysylania.

Jako , ze nie bedziemy pisac aplikacji od zera dlatego konieczne jest przejscie przez wczesniejsza czesc serii znajdujaca sie tu http://forum.atnel.pl/topic8960.html#p100758 . Powod jest prosty ... rozszerzamy wczesniej nabyta wiedze o nowe umiejetnosci :)

Nasza aplikacja na chwile obecna wyglada jakby przeszla "diete cud" :) i calkowicie pozbawiona jest naprawde pozytecznych kontrolek.

Obrazek

Obmyslamy co nam sie przyda

Wiec musimy sie zastanawic co przydaloby sie w naszej aplikacji ? Hmmm tak na szybko mozemy wymyslic kilka rzeczy :
  • Wprowadzanie danych dotyczacych adresu urzadzenia docelowego
  • Wprowadzanie danych dotyczacych adresu naszego komputera
  • Wprowadzanie danych dotyczacych portu ktorego uzyje nasz komputer
  • Wprowadzanie danych dotyczacych portu urzadzenia docelowego

Oczywiscie , to tak naprawde czubek gory ladowej , ktora mozecie poruszyc swoja wyobraznia. Aby nawykow programowania stalo sie zadosc ... bedziemy edytowac nazwy tych kontrolek tak by ich uzywanie bylo przyjemne.


Dodajemy nowe kontrolki do interfejsu naszej aplikacji

Zaczynamy od zmiany wyswietlanego tekstu na naszym guziku. W tym celu z ekranu , w ktorym widzimy design naszej aplikacji klikamy prawym przyciskiem myszy na guzik i wybieramy wlasciwosci. W oknie , ktore sie pokaze zmieniamy dla tego obiektu wlasciowosc typu TEXT. Ja ustawilem sobie na "Wyslij ramke". W tym momencie nie zmieniamy NAZWY kontrolki!

Obrazek

Nastepnie korzystajac z okazji , ze zmieniamy juz uklad graficzny przeciagamy na nasza aplikacje 4 nowe kontrolki typu TextBox

Obrazek

W tym momencie moj design wyglada w nastepujacy sposob (oczywiscie Ty mogles sobie je porozkladac inaczej :) )

Obrazek

Jak sami widzicie wyglada lepiej :) No ale moze sie pojawic pytanie co jest co ?! :) Dlatego dodamy sobie jako cwiczenie wg wlasnego uznania kontrolke o nazwie Label

Edytujac w/w kontrolke wlasciwosci i zmieniajac atrybut TEXT sprawimy , ze kontrolka bedzie opisem pasujacym do naszych wymagan (oczywiscie jest to opcjonalne cwiczenie i dla funkcjonalnosci programu mozesz je pominac ;) chociaz zeby sie nie pomylic przy wpisywaniu danych - moja rada ... dodaj je :) )

No i chwila wysilku i klikania .... no i nasza aplikacja juz troszeczke lepiej zaczyna wygladac.

Obrazek


Nazewnictwo kontrolek

No i teraz nadszedl czas zeby te nasze nowe kontrolki w koncu jakos nazwac. Ja stosuje kilka podejsc. Przede wszystkim uzywam prefix'ow dla swoich kontrolek. Czyli :
  • Jesli uzywam kontrolki typu TextBox to nazwa mojej kontrolki bylaby tbJakasSobieNazwa1
  • Jesli uzywam kontrolki typu Button to nazwa mojej kontrolki bylaby btnJakasSobieNazwa

Oczywiscie powyzsze to tylko sugestia i mozecie znalezc w internecie wiele informacji lub najlepiej - uzyjcie wlasnego pomyslu z ktorym najlepiej i nalatwiej bedzie Wam pracowac.

Wiec wybieramy sobie jeden z naszych nowych TextBox'ow i klikamy na niego prawym. Wybieramy wlasciwosci. Ja wybralem sobie nowa nazwe jako tb_IP_Komputera a to dlatego , ze bedzie mi pozniej latwiej korzystac ze sprytnego podpowiadania w Visual Studio

Obrazek

Aby kontynuowac nalezy zmienic odpowiednio reszte kontrolek - najlepiej tak aby opis odpowiadal kontrolce :D

Opis moich nazw kontrolek to odpowiednio :
  • tb_IP_Komputera
  • tb_PORT_Komputera
  • tb_PORT_Docelowy
  • tb_IP_Docelowy

Jako , ze poradnik pisany jest AD HOC :) czyli na goraco - dodamy dosc potrzebna do rozwoju kontrolke o ktorej po prostu mnie sie zapomnialo ;) Miejsce na wyslanie naszej wiadomosc. Nazwe ja dla potrzeb tego poradnika tb_Ramka

Obrazek

ufff no to smigamy dalej ..... :)

Zmieniamy nasz kod zrodlowy aplikacji

Po tych wszystkich przeprawach przyszedl czas na rozszerzenie naszej aplikacji o funkcjonalnosc , ktora sobie zaplanowalismy. Tak jak wspominalem wczesniej bedziemmy zmieniac kod zrodlowy stworzony w I czesci tej serii poradnikow.

Przede wszystkim zachodzi pytanie ... jak dostac sie do wlasciwosci tego co wpisze w moich kontrolkach ? A wiec kwestia wyjasnienia ... kazdy obiekt w C# moglby byc porownany do paczki kurierskiej.
To co wpisujesz w textbox mogloby byc porownane do ... powiedzmy naklejki z textem dla kuriera. Oczywiscie tych wlasciwosci jest wiecej i np niektore sa tylko do odczytu :) czyli tutaj porownnanie do zafoliowanego kawalka papieru z kodem kreskowym , ktorego nie mozna zmienic :)
Zeby bylo zabawniej obiekty maja rozwniej metody. Czyli np w tym wypadku to co moglbys zrobic z ta paczka. Powiedzmy , ze mozesz wyczyscic caly adres i napisac go od nowa ?! Albo np otworzyc taka paczke :)

Zeby pokazac Ci to w kodzie omowie jedna potrzebna nam wlasciwosc i jedna metode.

  • Wlasciwosc : text wpisany w kontrolke. W naszym wypadku ta poszukiwana wlasciwosc ma nazwe .Text (zwroc prosze uwage na kropke ) i poprzedzona bedzie odpowiednia zmienna. W naszym wypadku dowolna z tych ktore stworzylismy jako TextBox'y
  • Metoda : oczysczenie textu wpisanego w kontrolke. W tym wypadku poszukiwana metoda nazywa sie .Clear() ( zwroc prosze uwage na kropke) i takze poprzedzona bedzie odpowiednia zmienna. W naszym wypadku dowolna z tych ktore stowrzylismy jako TextBox'y. W tym miejscu zwroc uwage , ze metody maja "()" na koncu.

Pora pozmieniac troche kod. Musimy go przeniesc w miejsce gdzie po uruchomieniu aplikacji bedziemy w stanie skonfigurowac aplikacje wg danych wpisanych w TextBox'y.

Dlatego dodamy sobie nowa kontrolke. Bedzie ona typu "BUTTON" i po przeniesieniu jej na aplikacje i skonfigurowaniu jej tekstu i nazwy - kliknij na guzik dwa razy (ta czynnosc nie powinna Ci juz sprawic klopotu wiec nie bede jej tu w szczegolach opisywal ).
Ja swoj guzik nazwe btn_Konfiguracja_Aplikacji

Jesli wszystko poszlo dobrze Twoje Visual Studio powinno przeniesc Cie bezposrednio do kodu obslugi guzika , ktory dopiero co stworzony u mnie wyglada tak :
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jesli cos poszlo nie tak - nie kopiuj tej czesci kodu bo Twoj guzik nie ma dolaczonej obslugi zdarzenia nacisniecia go i ta czynnosc nie pomoze :O Wroc do czesci I poradnika i zobacz jak dodajemy guzik i jego metode!

Nastepnie zmieniamy nasze zmienne globalne. Teraz powinny one wygladac w ten sposob :

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

[/syntax]

Powod tej zmiany to dlatego , ze w naszym nowo stworzonym guziku dopiero po jego nacisnieciu bedziemy konfigurowac te zmienne.

Teraz w metodzie naszego guzika dodamy nastepujacy kod :

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ze wzgledu , ze jest tutaj troche zmian zasluguje on na odrobine wyjasnienia. Aby dalej to wyjasnic rzuc okiem na infojak tworzymy typ naszej zmiennej typu IPEndPoint http://msdn.microsoft.com/en-us/library/k17zbw22(v=vs.110).aspx

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Pierwszy z parametrow jaki jest w tym wypadku przyjmowany jest typu IPAddress. Wiec wykorzystujemy jedna z metod do automatycznego parsowania wartosci string w poszukiwaniu odpowiedniego adresu. Tutaj wprowadzamy w zycie nasze zmiany i te parsowanie jako zrodlo wykorzysta nasz TextBox podany jako parametr

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Jako , ze drugi z parametrow musi byc typu integer dokonalismy konwersji na INT uzywajac

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W dalszej czesci kodu dodanego przez nas powiedzielismy naszemu programowi , ze IP pod ktore sie podlaczamy ma byc pobrane z tekstowej wlasciwosci pola tb_IP_Komputera a dobralismy sie do niego dzieki wlasciwosci o nazwie .Text (jak widac w kodzie wyzej) oraz dokonoalismy konwersji portu ze string na INT


Zmiana metody do wysylania

No i teraz nadeszla pora na najprzyjemniejsze ... czyli modyfikacja metody do wysylania. Podejrzewam ,ze jesli doszedles juz tutaj w zakresie czytania tego poradnika :) to nie powinno Ci to sprawic problemu :) Jednak by "sprawiedlowosci stalo sie zadosc" dokonczymy to razem :)

Cala zmiana bedzie powalajaco wielkaaaaaaaaaaaaaaaaaaaaaa :)

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


....................... i juz :) w metodzie do wysylania nie powinno byc nic wiecej :D wiec to co bedzie wysylane tak naprawde bedzie pobierane z naszego TextBox'a i to wsio ;)

Fajnie - bo udalo nam sie wykorzystac jedna z wbudowanych metod aby nie musiec sie meczyc przy wysylaniu roznych ramek!



Owoc naszej pracy w akcji

Skoro doszlismy tak daleko zobaczmy jak to dziala. W ponizszych zrzutach ekranu aplikacja konsolowa bedzie sluzyla za odbiornik :) wiec bedzie wyswietlac to co wyslalem :)

Obrazek

Pamietaj tylko o jednym! Zanim sprobujesz cos wyslac ... kliknij swoj guzik do obslugi konfiguracji ;) w przeciwnym wypadku - ZONKUS MAXIMUS :)



Podsumowanie czesci II

Mam nadzieje ,ze nie zamieszalem za bardzo i ze wszystkim ktorzy podejma sie proby wysylania osiagna sukces. Powodzenia w realizacji!

Raf

_________________
sig off ;(



Ostatnio edytowano 27 paź 2014, o 09:40 przez RafPe, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 08:59 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

No i bardzo dobra kontynuacja.

Wielkie dzięki

------------------------ [ Dodano po: 17 minutach ]

A czy przypadkiem w tym miejscu
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nie powinno być?
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



Ostatnio edytowano 27 paź 2014, o 10:22 przez MirkoT, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 09:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Powinnno :)

Ladnie wylapane... u mnie w testach to nie wyszlo - bo testowalem na lokalnym PC o tym samym adresie!

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 10:25 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Ale poradniczek super!!!
Przyda się na pewno.
Czy będzie "ulubiony ciąg dalszy"?

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 10:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

MirkoT napisał(a):
Czy będzie "ulubiony ciąg dalszy"?


Ciag dalszy bedzie na pewno bo skoro juz wyslalismy informacje to trzeba ja takze odebrac :)

Zalezy to takze od faktu "kiedy przyjdzie moj nowy laminat" :) bo im pozniej to sie stanie tym wiecej bede mial czasu pisac o C# zamiast w AVR C , ze skupieniem na wytrawianie swoich plytek hehehehehe :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 11:14 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

No i mamy klasyczny "konflikt interesów"... :lol: :lol: :lol:

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 13:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 sty 2013
Posty: 80
Lokalizacja: Trzciniec
Pomógł: 0

Dziękuję za przekazaną wiedzę. Czekam na kontynuację.

_________________
Zło dobrem zwyciężaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 13:20 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Trzeba przechwycić listonosza i powstrzymać go "czasowo" przed wrzuceniem
do skrzynki paczki z laminatem :lol: :lol: :lol:

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 14:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

MirkoT napisał(a):
Trzeba przechwycić listonosza


hahahahaha ;) no zobaczymy czy listonosz sie spisze :) ostatnim razem czekalem na paczke dwa tygodnie :O wiec to jest taka szczypta niepewnosci ... czy to juz dzis ? :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 15:10 
Offline
Moderator
Avatar użytkownika

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

Widzisz Rafał do czego doprowadziłeś ? ... do polowań na listonoszy :lol: ... teraz już co najmniej kilku będzie chciało ustrzelić tego twojego :lol:

_________________
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: 27 paź 2014, o 15:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

mirekk36 napisał(a):
Widzisz Rafał do czego doprowadziłeś ?


Hahahaha Mirku :) A ja mysle , ze mozemy rozciagnac lancuszek i tak naprawde "ustrzelony listonosz" to moze byc Twoja wina :) bo gdyby nie Twoje poradniki/BB etc nie byloby mnie w okolicy :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 paź 2014, o 15:32 
Offline
Moderator
Avatar użytkownika

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

O nie nie - przepraszam to nie moja wina , teraz nie zwalaj na mnie :lol: i zostaw moich listonoszy w spokoju :lol: Sam sobie jesteś "winien" ... po co się tyle nauczyłeś hahahaha :lol: :lol: :lol:

_________________
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 lis 2014, o 10:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 54
Pomógł: 0

Kiedy następna część? :) Może nauczysz Nas odbierać dane?

_________________
Likwidator absolutny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lis 2014, o 10:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Likwidator napisał(a):
Kiedy następna część? :) Może nauczysz Nas odbierać dane?


Hej!

Jak dobrze pojdzie to pewnie w ten weekend :) o podobnych porach co ostatnio :D Bo jak sami widzieliscie szalalem jak dziki z nowym laminatem :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lis 2014, o 16:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Likwidator napisał(a):
Kiedy następna część? :) Może nauczysz Nas odbierać dane?


Juz jest :D http://forum.atnel.pl/topic9159.html

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 gru 2014, o 15:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Znalazłem drobną wadę - przy próbie zmiany adresu lub portu i ponownego kliknięcia guzika Zapisz Konfigurację program się wykrzaczy, bo w zdarzeniu kliknięcia tego guzika są tworzone endpointy przy pomocy new. Spróbowałem przerobić kod i wyszło coś takiego.
Deklaracje zmiennych globalnych (konstruktor IPEndPoint wymaga podania domyślnych wartości adresu i portu, więc wpisałem zera):
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W procedurze obsługi przycisku:
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Takie trochę na siłę, ale działa i można zmieniać port i adres "w locie". Pytanie do autora: da się jakoś ładniej to zrobić?

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 gru 2014, o 16:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Federerer napisał(a):
Pytanie do autora: da się jakoś ładniej to zrobić?


Zalezy czego szukasz :) Rozwiazan pewnie tyle ilu programistow :)

Moglbys miec w btn_ustaw_Click cos w rodzaju sprawdzania wlasciwosci. Tzn jako ze zainicjalizowales juz zmienna ep oraz ep_dest to podczas nacisniecia guzika sprawdzasz czy "port" nie jest rozny od tego podanego w formularzu. Jak jest to zmieniasz. i w ten oto sposob mialbys zawsze mozliwosci dynamicznej zmiany.

Przynajmniej tak mi sie wydaje ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2014, o 13:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

Dobra, w helpie od Microsoftu też widziałem użycie zer przy tworzeniu endpointa, więc to chyba nie jest błąd. Za to znalazłem inny problem. Ponieważ docelowo nie chcę za każdym razem ręcznie konfigurować portów i adresów wymyśliłem coś takiego:
1. Do pozyskania mojego adresu IP używam funkcji, działa idealnie:
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

2. Tworzę IPEndpoint i UdpClienta.
3 Korzystając z nich wysyłam pakiet na adres 255.255.255.255 i port na którym domyślnie ma nasłuchiwać moje urządzenie,
4. Urządzenie odbiera pakiet i odpowiada na adres i port z którego przyszło zapytanie, dzięki czemu znam już jego adres IP ;)

Problem jest taki, że muszę do nasłuchu użyć tego samego portu co do wysłania pakietu. Port nadawczy w UdpClient mogę ustawić tylko podczas wywołania jego konstruktora, a chciałbym mieć możliwość jego zmiany w trakcie działania programu. Da się jakoś?
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2014, o 18:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

A moglbys prosze bardziej nakreslic jakies cele przez ta zmiane portu ? Czemu ma to sluzyc ?

Latwiej wtedy byloby cos powiedziec :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2014, o 20:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 maja 2014
Posty: 126
Pomógł: 12

W celach testowych ;) Póki co działa:
Obrazek
Na drugim komputerze odpalony program echotool, który odsyła wszystko co dostanie na IP i port z którego przyszło ;)
Zrobiłem tak jak Ty, czyli wszystko tworzę dopiero w procedurze kliknięcia przycisku, żeby zmienić cokolwiek w trakcie działania trzeba zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jest to moje pierwsze starcie z C# więc trochę po omacku, kombinowałem dobrze, ale w c# nie ma delete ;) i trzeba myśleć inaczej. Pozostało jeszcze zrobić warunek sprawdzający, czy zmienne są zainicjalizowane, jak pisałeś wcześniej i powinno wszystko już śmigać :)

_________________
Pozdrawiam, Adrian.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 gru 2014, o 20:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Fajnie , ze udalo Ci sie to osiagnac :) Tak na szybko rzuc okiem tu http://stackoverflow.com/questions/1936 ... e-only-one

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lut 2015, o 15:40 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Witam,
ktoś próbował zastosować do komunikacji z atmegą z AtnelWifi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lut 2015, o 18:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Oczywiscie :D sam "autor" czyli .... ja (no i pewnie wiele innych forumowiczow) bawilo sie komunikacja TCP/UDP. Dziala od reki bez zadnych wiekszych problemow.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2015, o 09:53 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Super, a napisz mi jeszcze, jeśli mam po rs podłączony moduł Atnel Wifi do atmegi, to to co wyślę po UDP,TCP poleci do atmegi po rs??? Chodzi mi o rozwiązanie takiej komunikacji jaką Mirek zaprezentował w ostatnim poradniku(6).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2015, o 22:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

bloniak91 napisał(a):
Super, a napisz mi jeszcze, jeśli mam po rs podłączony moduł Atnel Wifi do atmegi, to to co wyślę po UDP,TCP poleci do atmegi po rs??? Chodzi mi o rozwiązanie takiej komunikacji jaką Mirek zaprezentował w ostatnim poradniku(6).


Hey,

Wiec ile konstruktorow tyle rozwiazan. Przede wszystkim jesli masz Wifi podlaczone po RS do uC to TAK - to co wyslesz UDP/TCP bedzie odebrane przez Atmege.

Ale wydaje mi sie, ze Mirek wyjasnia to lepiej w swoich poradnikach :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2015, o 14:05 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Komunikację nawiązuję. Wysyłam polecenia gpio 12 out 0(1)- podłączona dioda pod odpowiedni pin w module- i działa. Mam podłączoną atmege po rs z modułem, na atmedze mam wgrany program z poradnika Mirka(mruganie i gaszenie diody), ale wysyłane komendy po UDP nie działają.
Ponadto mój program po udp odbiera ramki wysyłane z innego programu. Wszystko działa jak u Ciebie w poradniku. Natomiast komendy z modułu żadne nie trafiają do mojego programu... wysyłam zwykłą komendę at+ i cisza, a chyba powinienem coś odebrać? Port odbiorczy pc mam ustawiony na 9876.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2015, o 18:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Tutaj musisz sobie to niestety sam troszke poukladac na podstawie wiedzy RS232 oraz WIFI. Zasada jest taka. Jesli Twoj program na PC nasluchuje na porcie 9876 to czy modul Wifi jest ustawiony w odpowiedni tryb zeby na ten port i adres wysylac ?

Druga sprawa to jesli uzywasz programu z poradnika Mirka czy wysylane komendy ze swojego programu dodajesz do nich znak konca lini ? (jesli to jest Twoj znak oznaczajacy przychodzaca komende np)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2015, o 08:32 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

RafPe napisał(a):
Druga sprawa to jesli uzywasz programu z poradnika Mirka czy wysylane komendy ze swojego programu dodajesz do nich znak konca lini ? (jesli to jest Twoj znak oznaczajacy przychodzaca komende np)


Tak, mam znak końca linii oraz powrotu karetki(\n\r).
RafPe napisał(a):
Jesli Twoj program na PC nasluchuje na porcie 9876 to czy modul Wifi jest ustawiony w odpowiedni tryb zeby na ten port i adres wysylac ?

Szperam w karcie katalogowej od modułu w komendach i nie wiem jak sprawdzić port UDP na jaki moduł nadaje. Na pewno nasłuchuje na 8899 8-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2015, o 19:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

bloniak91 napisał(a):
RafPe napisał(a):
Druga sprawa to jesli uzywasz programu z poradnika Mirka czy wysylane komendy ze swojego programu dodajesz do nich znak konca lini ? (jesli to jest Twoj znak oznaczajacy przychodzaca komende np)


Tak, mam znak końca linii oraz powrotu karetki(\n\r).
RafPe napisał(a):
Jesli Twoj program na PC nasluchuje na porcie 9876 to czy modul Wifi jest ustawiony w odpowiedni tryb zeby na ten port i adres wysylac ?

Szperam w karcie katalogowej od modułu w komendach i nie wiem jak sprawdzić port UDP na jaki moduł nadaje. Na pewno nasłuchuje na 8899 8-)



Kurcze , nie zrozum mnie zle ale to troche jak bladzenie po ciemku.

AD.1 : Musialbys wrzucic screeny z konfiguracji modulu w ATB wifi (ze strony AP) wtedy bysmy wiedzieli jak masz skonfigurowany modul.
AD.2 : Zainstaluj jakis program do podgladu ruchu sieciowego np WireShark zebysmy mogli cos zobaczyc co tam sie wysyla (lub nie)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 lut 2015, o 08:18 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

Obrazek

Tak to wygląda. Instaluje WireShark.

RafPe napisał(a):
Kurcze , nie zrozum mnie zle ale to troche jak bladzenie po ciemku.

8-) no już bez przesady. Wiadomo, z pustego i Salomon nie naleje :lol:



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: 46 ]  Przejdź na stronę 1, 2  Następna strona

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