Witam.
Na wstępie chciałbym przywitać się w sekcji c# (mój pierwszy post tutaj).
Piszę prosty program, odczytujący z serial portu dane z wkładek mierzących obciążenie, nacisk na podłoże.
Jako początkujący programista c# napotkałem kilka problemów, z którymi próbuję sobie poradzić.
-
mam prostą funkcję, która odczytuje z serial portu dane, problem zaczyna się na tym, że flaga ETX w tym przetworniku ma postać "\n". Wrzucanie całego pakietu w string niestety nie zdaje egzaminu (flaga ETX jest traktowana jako koniec łańcucha).
czy taka funkcja, prawidłowo odczyta mi dane z portu w trybie binarnym (odczytując i traktując każda wartość bajtowo?). Czy może traktuje ona odczytane dane tekstowo ?
Link: http://wklej.org/id/3212914/
Co do pętli (while, oraz następujący po niej for) - są do pętle bardziej w formie szkicu (niestety nie mam na co dzień dostępu do tych mat/wkładek, wiec jako takie testy są wykonywane co kilka dni). Stąd też kwestia zapisu do pliku (żebym chociaż w pewnym stopniu mógł pracować "offline).
format pakietu (ogólnikowo):
STX, sBitmap (informujący, że po nim wysłana zostanie "bitmapa), sx, sy (wymiary bitmapy na osi X i Y), następnie wartości w każdym węźle (2bajtowe, little endian), ETX -
uruchamiając nowy wątek odczytujący z portu, chciałem zrobić prostego "command-line" - informowanie mnie w TextBoxie, że np. wątek napotkał daną flagę w pakiecie, udało się stworzyć bitmape itp. Niestety nowouruchomiony wątek nie ma dostępu do danego TextBox'a. Może takie rozwiązanie nie jest niezbędne, natomiast w momencie w którym będę w stanie poprawnie odczytać poszczególne bitmapy, będę chciał kwestie odświeżania PictureBox'a również zrealizować w osobnym wątku, więc problem dostępu będzie podobny. Czy ktoś mógłby zaproponować mi jakieś rozwiązanie?
czekam na odpowiedzi, podpowiedzi, pomysły (hejtu mam nadzieję się nie doczekam :D)
pzdr,
Kwapa
#edit: co do pierwszego punktu, stąd moje pytanie bo o ile zapisanych pakietów do pliku mam sporo, to nie pojawia się fragment, który jednoznacznie określałby ramkę (bitmape), natomiast skopiowane na sztywno z COM'u (cmd -> copy com x >plik) już zawierają pakiety takie jak z dokumentacji.