TCP/IP

0

Witam,
Pisze program do sterowania robotem za pomocą raspberry pi. Połączenie jest za pomocą TCP/IP. Napotkałem mały problem z wyświetlaniem danych.
Dane pobierane są prawidłowo, ale w WPF powstają krzaczki. W form wyświetlane są ok. Najlepiej widać to na screenach
Jestem jeszcze raczkujący w C#. Każda wskazówka będzie mile widziana jak usunąć krzaczki w WPF.

1

Pokaż zawartość returningdata2 co masz w watch - coś. mi tu śmierdzi, że nie ma terminowania stringa, lub jakieś śmieci tam gdzie zostały w tej tablicy. Tutaj bym szukał.

0

Zostają właśnie jakieś śmieci. W jaki sposób mogę wydobyć ,,czystą" wartość? Najlepiej gdybym mógł zapisać tą wartość do float ;)
screen z watch //www.dropbox.com/s/023mjftqitw951w/watch.JPG?dl=0
kod: http://pastebin.com/yxJrhRzZ

1

Tam są zera (0) czyli terminatory stringa. Po napotkaniu pierwszego string powinen się zakończyć. Pokaż w watch kolejne komórki stringa czy tam w jednej komórce jest zero (null-terminate) czyli \0, czy może to dwa znaki ? Niemniej po konwersji nie powinno tam być tych zer, generalnie nullterminate nie powinno być widoczne - pokaż te komórki w tym stringu. Btw http://stackoverflow.com/questions/3387733/how-to-remove-0-from-a-string-in-c

0

Teraz działa świetnie :). Wystarczyło dodać

 var str = returndata2.Replace("\0", "");

https://www.dropbox.com/s/onpyugtxfig1oh0/dziala.JPG?dl=0

1

otrzymujesz bytesReceived bajtów i tylko one powinny być przekonwertowane na stringa

int bytesReceived = serverStream2.Read(inStream, 0, inStream.Length);
string returndata2 = Encoding.UTF8.GetString(inStream, 0, bytesReceived);

1 użytkowników online, w tym zalogowanych: 0, gości: 1