TCP/IP

MH
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:14
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.

  • ok.JPG (39 KB) - ściągnięć: 228
  • nok.JPG (41 KB) - ściągnięć: 191
edytowany 2x, ostatnio: MateuszH
LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
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ł.

MH
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:14
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 :https://www.dropbox.com/s/023mjftqitw951w/watch.JPG?dl=0
kod: http://pastebin.com/yxJrhRzZ

LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
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

MH
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:14
0

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

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

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

LG
W takim razie zaakceptuj odpowiedz - gdzie zalinkowałem ;)
LG
Dzięki ;)
R3
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 21 godzin
  • Postów:419
1

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.