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



Teraz jest 8 lut 2025, o 18:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
Autor Wiadomość
PostNapisane: 9 lis 2014, o 16:28 
Offline
Użytkownik
Avatar użytkownika

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

Wstep

Witam wszystkich po dosc dlugiej przerwie. Jak niektorzy sprawnie zauwazyli ... zajmowalem sie prawie fabrycznym wytwarzaniem plytek PCB. Kurcze bo jak sie zacznie to pozniej smigaja jedna za druga.

No ale zeby to wszystko ze soba gadalo - trzeba miec dwukierunkowa komunikacje. I dzisiaj wlasnie taka zrobimy :D

Jako , ze dzisiaj humor dopisuje .... zaczynamy :D

Obrazek

Wymagania

Jako , ze jest to 3'cia czesc poradnika nie bede poruszac juz kwestii ktore omowilem we wczesniejszych poradnikach.
Wiec jesli ktos chcialbys naprawde zrozumiec calosc prosze Cie o przeczytanie poprzednich czesci.

[list=]
[*] Czesc I : http://forum.atnel.pl/topic8960.html
[*] Czesc II : http://forum.atnel.pl/topic8978.html
[/list]


Czym sie zajmiemy

Wiec tak jak wspominalem wczesniej skoro poznalismy wysylanie to poznamy teraz odbieranie.

Obrazek


A poniewaz chcialbym , zebyscie wszyscy mogli poznac plusy i minusy kilku podejsc , ktore tu poznamy bedziemy omawiac je uzywajac kilka programistycznych sposobow. Jednakze , ze nie jest to lekcja dla developerow po dokladnie techniczne informacje odyslam Was do wujka "google" :)


Przygotowanie aplikacji

W tym wypadku zmodyfikowalem troszeczke aplikacje , ktorej uzywamy. Pozmienialem polozenie naszych guzikow , dodalem sobie kilka komponentow jak obrazki.

Ale ten najwazniejszy to dodanie kontrolki typu TextBox o nazwe tb_odebrane. Bedzie ona nam sluzyla jako okno do danych ktore sobie odbieramy

Obrazek

Odbieranie - proba pierwsza

Zaczniemy od zdefiniowania w kodzie - potrzebnych nam danych. Dane beda nastepujacego typu

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


Pytanie .... gdzie umiescic te zmienne ? Wiec zaczniemy od umieszczenia ich w metodzie , ktora jest wywolywana po nacisnieciu guzika Konfiguruj

ale... jesl zwrocisz uwage ... chyba beda potrzebne nam nowe kontrolki. Musimy sobie byc w stanie zdefiniowac na jakim porcie bedziemy nasluchiwac komunikacji ktora chcemy odebra.

Wiec najpierw dodamy nowa kontrolke typu TextBox o nazwe tb_PORT_Odbieranie a posluzy ona nam do podania numeru portu , ktory wykorzystamy do odbierania danych.

Wiec nasza AD HOC zmodyfikowana aplikacja wyglada nastepujaco :

Obrazek

Czyli posiada teraz kontrolke ktora umozliwi nam dalsza prace z odbieraniem.

Wiec teraz mozemy wrocic juz do wlasciwego kodu ktory umozliwi nam odbieranie. Klikamy dwa razy na nasz guzik odpowiedzialny za konfiguracje i przenosimy sie dzieki tem automatycznie do metody ktora jest odpowiedzialna za obsluge tego zdarzenia.

Obrazek

Dodamy na samym koncu istniejeacego juz kodu nastepujace dwie linie

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


Teraz kod wygladac powinenen cos w tym stylu :

Obrazek

Podjerzewam , ze powyzsza czesc kodu jest juz Ci znajoma prawda ? Wiec jest ona odpowiedzialna za utworzenie klienta UDP. Zostanie on tym razem utworzony na naszym porcie przeznaczonym do nasluchiwania oraz na IP naszego komputera.

Jednak czy to wystarczy ? :O

No oczywiscie , ze nie :) Nasza zmienna sluchacz (bo tak sobie ja nazwalem ) musi przeciez cos robic. Wiec musimy wykonac metode.
Metoda do odbierania ladnie jest opisana w dokumentacji (http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.receive(v=vs.110).aspx )

W zwiazku z czym dodajemy w kodzie naszej konfiguracji linie kodu

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


Kod wyglada teraz tak
Obrazek

Wiec odpalamy nasz program i obserwujemy co sie dzieje!






Wnioski - proba pierwsza
Wiec okazuje sie ,ze jak tylko odpalilismy program przestal dzialac ? Dlaczego tak sie stalo ? No wiec patrzymy na dokumentacje (przelaczylem ja specjalnie na jezyk PL ale to chyba nie byl dobry pomysl )

Obrazek

Wiec oczywiste staje sie ,ze mamy tzw watek blokujacy No i teraz co z tym babolem !? hehehhe wiec sprobujmy troszeczke innego podejscia.


Odbieranie - proba druga

Wiec dobrze- poznalismy jak przygotowac odbieranie teraz zrobmy zeby dzialalo.
Pierwsze co zrobimy to usuniemy wczesniej dodana czesc kodu z metody konfiguracji guzika zostawiajac go tak jak bylo wczesniej. Powod ? Musimy zrobic tak aby nasze zmienne byly dostepne nie tylko w tamtej metodzie :D


Zaczynamy od poprawnego skonfigurowania zmiennych. Zaznaczylem w kodzie gdzie powinny byc.
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz w metodzie konfiguracyjnej (czyli tej ktora osbluguje guzik do Konfiguracji) - tak jak z pozostalymi elementami dodamy konfiguracje naszego odbierania

Obrazek

Zwroc prosze uwage ,ze kod ktory pewnie masz w tej metodzie zaznaczylem "zielona" strzalka i "zwinalem" dla wiekszej czytelnosci. Kod ktory dodalismy znajduje sie zaznaczony czerwona strzalka.

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


To co dzieje sie w tej metodzie jest juz Ci znane :) wiec nie bedziemy niepotrzebnie walkowac tego samego.

Wiec gdzie umiescimy nasze odbieranie ? No proste ... tuz po wyslaniu chcemy odebrac. Wiec klikamy dwa razy na guzik odpowiedzialny za wysylanie , ktor automatycznie wysyla nas do metody wywolywanej w odpowiedzi na to zdarzenie.

Dodajemy linie kodu i nasza metoda wyglada nastepujaco :

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



Jestesmy juz na etapie , ze zanim odpalimy program chcielibysmy juz widziec , ze cos odebralismy. Wiec musimy jakos nasze dane wyswietlic na specjalnie dodanej do tego kontrolce (tej ktora dodalismy wczesniej (u mnie nazywa sie tb_odebrane)

Zmieniamy wiec znowy guzik ktory wysyla nasz kod

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


Wiec omowmy dokladnie co tutaj sie dzieje (dla latwosci uzylem kolorowych strzalek )

Obrazek

  • Zielona strzalka - wskazuje na to ze chcemy wpisac we wlasciwosc Text naszej kontrolki. Robilismy to juz wczesniej wiec to tylko takie male przypomnienie
  • Niebieska strzala - wykorzystuje domyslna metode zajmujaca sie ASCII aby z byte[] wyswietlic string. Uzywamy metody GetString
  • Czerwona strzala - tutaj podajemy nasza zmienna i od razu uruchamiamy metoda odbierajaca dane.



Hmmm no i co teraz ? Odpalamy :) Potrzebne nam tylko urzadzenie , ktore wysle nam pakiet na port RX (ten na ktorym nasluchujemy ) Dla celow pokazowych uzyje skryptu , ktory wysle mi okreslony ciag znakow zeby pokazac Wam , ze to dziala jak nalezy

Obrazek
Obrazek

Na drugim obrazku wyraznie widac , ze aplikacja odebrala to co wyslal moj skrypt ( zamiast skryptu proponuje uzyc ATB :) - ja uzywam skryptu bo jest mi szybciej napisac poradnik )

Wnioski - proba druga
Wiec juz jest troszeczke lepiej bo mozemy ladnie sobie skonfigurowac aplikacje , ale co sie dzieje kiedy wysylasz pakiet ? No niestety - dopoki nie odbierzesz pakietu cala aplikacja wisi i nic sie nie da zrobic :O A co gorsza .... co sie stanie jak nie otrzymamy pakietu ?

Na powyzsze mozesz odpowiedziec pewnie sobie sam :)


Odbieranie poprawnie - podejscie 3 i pol :)

Wiec abysmy mogli poprawnie odbierac dane nie zaklocajac pracy naszego programu musimy podejsc do problemu technologicznie :) wrzucimy go sobie tak , aby wykonywal sie "niewidocznie" dla nas lub wykonywal sie tylko kiedy nadleca dane ktore trzeba odebrac.

Podzielimy ten poradnik na 2 : dla tych ktorzy korzystaja z .Net 4.5(1) oraz dla pozostalych

.Net 4.5.1
Jesli zagladasz tu to droga do sukcesu jest naprawde krotka. Tworzymy nowa metode ktora bedzie caly czas w tle sprawdzac czy nadlecialy nowe dane i jesli tak to uaktualni nasze pole tekstowe.

Kod metody

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


A teraz szybkie objasnienie (jako , ze wiekszosc ma komentarz ) to ciekawa jest ostatnia linia. Jest to sposob aby uaktualnic kontrolke kiedy jestesmy w innym watku niz glowny watek aplikacji. Gdybysmy tego nie mieli napisanego w ten sposob aplikacja bylaby niestabilna/wysypala by sie / lub nie pokazywalby nadchodzacych wiadomosci.

A teraz tylko dodajemy wywolanie naszej metody w konfiguracji i po wszystkim

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


I po tym malym zabiegu masz calkowicie dzialajaca aplikacje. Uruchamiasz , klikasz konfiguruj po podaniu wszystkich danych i voilla ;)


~ .Net 4
Jesli nie uzywasz .Net 4.5(1) to podejscie bedzie troszeczke inne

Tworzymy nowa metode

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



W metodzie ktora konfiguruje nasza aplikacje dodajemy linie

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


W zasadzie mozna powiedziec , ze mowimy cos w rodzaju ... "zacznij sluchac korzystajac ze zmiennej sluchacz i skocz do metody OdbierajDane jak tylko pojawia sie nowe dane"

Oczywiscie , jest to bardzo skrocona definicja ale powinna dac Ci jakies lepsze wyobrazenia dlaczego robimy to w ten sposob.


Teraz uzupelnimy nasza metode Odbierania danych

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


No i to wszystko! :)

Podziekowania / Wnioski / Zaluzje :)
Obie wyzej wymienione metody dzialaja wysmienice :)Gdyby ktos zlapal jakies babole zapraszam do komentowania.

Dla potwierdzenia video obslugujace Callbacki i Async



W tym miejscu chcialem Wam podziekowac za uwage i mam nadzieje , ze sie Wam przyda w/w kod. Jednosczesnie sorry za totalny chaos :) w poradniku. Mam nadzieje, ze wylapiecie to co Wam potrzebne.

_________________
sig off ;(



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

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Ha ha po takim czasie pierwszy ... dzięki za 3 poradniczki. Przerabialiśmy to wcześniej w moim programie. Nie mniej dzięki tym poradnikom wszystko jest dla mnie jaśniejsze. Jak już zrobię płytkę i dojdą klamoty to pozmieniam sobie pare rzeczy w programie dzięki tobie.

Przydatny zastrzyk atnelański w 3 poradnikach. Może by z tego zrobić jeden poradnik wideo ? :)

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



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

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

majster napisał(a):
Może by z tego zrobić jeden poradnik wideo ?


No to Mirek musialby usiasc w koncu do C# :)

Ciesze sie , ze cos Ci pomoglo :) chociaz myslalem , ze w Twoim programie mamy juz wszystko :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2014, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

U mnie trzeba zrobic sprzatanie i porzadki a dzieki poradnikowi jak coś skopie to bedę mógł to w łatwy sposób naprawić.

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2014, o 21:34 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

async... await... - trzeba się poduczyć. Ciekawe jak wyglądałaby obsługa portu szeregowego w takim wykonaniu?
Dzięki za kolejne klocki do zabawy :mrgreen:

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lis 2014, o 21:13 
Offline
Użytkownik

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

Dzięki bardzo za 3 część poradnika.
Przyda się bardzo :!:

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



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

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

To teraz czekam na info czy wszystkim sie udalo odbierac :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2015, o 23:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 maja 2012
Posty: 174
Lokalizacja: Gliwice
Pomógł: 19

Potwierdzam że to działa :) dzięki wielkie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2015, o 23:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

Kawal dobrej roboty :)

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2016, o 19:42 
Offline
Użytkownik

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

Udało się :)
Tylko jak to pojąć? :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 sty 2016, o 23:30 
Offline
Użytkownik
Avatar użytkownika

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

Rafał555 napisał(a):
Udało się :)
Tylko jak to pojąć? :(



To pisz z czym masz problem to postaram Ci sie nakreslic co i jak :D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sty 2016, o 18:23 
Offline
Użytkownik

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

A nie. Nic takiego. W międzyczasie dowiedziałem się co to jest "Linq". To właśnie te jakieś " => " mnie przestraszyły w twoim kodzie :).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2016, o 20:12 
Offline
Nowy

Dołączył(a): 16 sty 2015
Posty: 5
Pomógł: 0

Witam kolegów mam takie pytanie.
Chciałbym odebrac ramke z uc która wygląda powiedzmy "1 ^ 45 " teraz by trzeba ten łańcuch podzielic i zapisać wartość 45 do odpowiedniej zmiennej którą wyznaczy znacznik 1. I za nic nie mogę z tym sobie poradzic dopiero raczkuję w c#. Udaję mi się tylko dobierać ramkę i wyświetlić w textboxie tak jak to było tu w wątki przedstawione. Z góry dzięki za pomoc!
Pozdrawiam Bartek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 kwi 2016, o 21:49 
Offline
Użytkownik
Avatar użytkownika

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

String i funkcja split albo możesz też użyć index Of :) jak spróbujesz jakiś kod wkleić to wtedy może będzie można Ci pomoc

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2016, o 19:07 
Offline
Nowy

Dołączył(a): 16 sty 2015
Posty: 5
Pomógł: 0

Witam dopiero zaczynam jaką kolwiek zabwe z c#. Program wysyła i odbiera dane z procka mam tylko problem z tym podziałem tzn jezeli zdefiniuje sobie jakis łańcuch znaków w programie to nie ma problemu ładnie dzieli. Problem natomiast sie zaczyna gdy podstawiam zmienna "wiadomosc" program sie wykrzacza... poniżej ta część kodu.
Pozdrawiam.

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

Komunikat błędu
An unhandled exception of type 'System.NullReferenceException' occurred in Sterownik.exe

Additional information: Object reference not set to an instance of an object.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2016, o 12:17 
Offline
Użytkownik
Avatar użytkownika

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

Wklej dokładnie jak wygląda wiadomość

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2016, o 09:25 
Offline
Nowy

Dołączył(a): 16 sty 2015
Posty: 5
Pomógł: 0

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


"arg" to zmienna z wartoscią temperatury zadanej która zmnienam za pomocą programu w C#. Steruje 3 takie temperatury samo sterowanie działa poprawnie natomiast to nieszczesne odbieranie nie chce ze mna wspópracowac tzn. odbieram paczke i wyświatlam textboxie "Temp_1 ^ 23" itd. zależnie od wartosci temperatury. Tak jak pisałem we wczesniejszym poście próba podziału konczy sie krzakiem.
Dzięki za zainteresowanie sie problemem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2016, o 20:31 
Offline
Użytkownik
Avatar użytkownika

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

bartm71 napisał(a):
z procka wysyłam dokładnie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


"arg" to zmienna z wartoscią temperatury zadanej która zmnienam za pomocą programu w C#. Steruje 3 takie temperatury samo sterowanie działa poprawnie natomiast to nieszczesne odbieranie nie chce ze mna wspópracowac tzn. odbieram paczke i wyświatlam textboxie "Temp_1 ^ 23" itd. zależnie od wartosci temperatury. Tak jak pisałem we wczesniejszym poście próba podziału konczy sie krzakiem.
Dzięki za zainteresowanie sie problemem.



Prosze Cie bardzo - troche przekombinnowales bo zrobiles sobie tablice stringow i to w tym miejscu nie wyjdzie :)

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

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 maja 2016, o 20:05 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Koledzy bardzo proszę poratujcie, trzeci dzień już siedzę i krew mnie już zalewa.
Napisałem sobie programik według poradnika kolegi 'RafPe' i ogólnie wszystko jest OK, ale... , mam problem z odebraniem danych wysyłanych z uC.

Na początku jak to wszystko jest połączone:
ENC28J60 podłączony bezpośrednio do karty sieciowej komputera - uC odbiera i reaguje na komendy wysyłane z PC, program na PC nie reaguje na dane wysyłane z PC.
To wersja która nie do końca działa.

Jak skonfiguruję program podając IP karty WiFi i wysyłam dane z terminala UDP na telefonie to wszystko działa zgodnie z oczekiwaniami.

Sprawdzam sobie na bieżąco jak wygląda ruch na karcie sieciowej i dane z uC przychodzą do komputera w oczekiwanej postaci.

Poniżej kod programu

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


a tak wygląda

Obrazek

Program na uC to niezmieniony kod z Bluebooka 21_ETH_komunikacja_UDP, jako ciekawostkę powiem że z TesteremUDP od Mirka komunikacja z uC działa bez problemu w obie strony więc wykluczam błędy w programie na uC.

Będę bardzo wdzięczny za wszelką pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2016, o 12:11 
Offline
Użytkownik
Avatar użytkownika

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

Hey @ chemik0,

Troche tak czytam Twojego posta i czuje sie zakrecony. Moglbys jasniej opisac :) Gdybys prosze mogl wkleic dane jak sprawdzasz ruch na karcie siecowej to wtedy moglbym dokladnie widziec o co Ci chodzi i byc bardziej w stanie Ci pomoc.

Daj znaka

Raf

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2016, o 22:41 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Niski pokłon dla kolegi @RafPe za wsparcie i motywację.
Ponieważ niespecjalnie jeszcze ogarniam komunikację UDP to strzelę co było przyczyną tego że moja aplikacja na PC nie odbierała danych z AVR-ka (w razie czego proszę o sprostowanie).
Jak się okazało pakiet wysyłany z AVR-a (świeżutki i pachniutki) nie będący odpowiedzią na zapytanie z PC-a nie miał adresu MAC odbiorcy, wystarczyło ręcznie wklepać adres MAC na jaki mają być kierowane pakiety i ładnie zaczęło działać.

Gdyby komuś... kiedyś.. przydarzył się podobny problem to w kodzie z Bluebook-a w pliku ip_arp_udp_tcp.c zmieniłem w funkcji
send_udp_prepare:


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


Jeszcze raz wielkie dzięki dla kolegi @RafPe za ten rewelacyjny tutorial i pomoc przy rozwiązaniu mojego problemu.
Pozdrawiam
Wojtek



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

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