Ograniczona ilosc znaków odebranych przez COM

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
nasiono
Posty: 21
Rejestracja: 11 sty 2012 22:44
Wersja środowiska: LabVIEW 2011

Ograniczona ilosc znaków odebranych przez COM

Post autor: nasiono »

Witam.
Mam następujący problem.
Z terminala wysyłam ciąg znaków "123456789ABCDEFG"
niestety ciąg znaków "123456789ABCDEF" tylko mignie pozostaje tylko "FG".
Gdy jednak odpalę program w trybie śledzenia (Highlight execution) wszystko dociera jak powinno.
Czym to jest spowodowane czemu nie mogę wysyłać większej liczby znaków?
Dodam jescze, że działając w pętli tzn. bez eventów od odebranego znaku efekt taki sam.
Drugie pytanie jest odnośnie zegara czy w tym programie istnieje coś takiego jak licznik który można dowolnie ustawiać i czytać. Licznik ten podczas liczenia nie blokuje programu. Coś co by działało na zasadzie timerów z mikroprocesorów czy zegara z buildiera C++ ?
Załączniki
przyklad.png
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Ograniczona ilosc znaków odebranych przez COM

Post autor: AGF »

Po prostu program odczytuje twoje dane po kawałku... bo robi to dużo szybciej niż są wysyłane. Spróbuj dodać rejestracje na zasadzie jak w załączniku: odczytane dane dodawaj do starych (concatenate string) i wyświetlaj, jako "pamięć" wykorzysta shift register.
Załączniki
snip.png
snip.png (14.54 KiB) Przejrzano 6845 razy
nasiono
Posty: 21
Rejestracja: 11 sty 2012 22:44
Wersja środowiska: LabVIEW 2011

Re: Ograniczona ilosc znaków odebranych przez COM

Post autor: nasiono »

Dięki pomogło.
Z ciekawości eksperymetnuje jeszcze z odbiorem bez buforowania.

Zależy mi na wysyle i odbiorze danych w formacie HEX.
W tym celu z terminala wysyłam HEX np : "01F4" tak jak inne dochodzi bez problemu, problem zaczyna się gdy chce wysłac jakiąś liczbe z "0A" napoczatku np "0AAA" wtedy dochodzi tylko końcówka.
Co jest tego przyczyną?
Załączniki
problem.png
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Ograniczona ilosc znaków odebranych przez COM

Post autor: Pitol »

"0A" w HEX odpowiada znakowi LF w ASCII. Byćmoże jest problem w interpretacji wartości. Spróbuj zmienić sposób wyświetlania odczytanych wartości w indykatorze "read buffer" klikając na nim prawym klawiszem i wybierając "Hex Display".
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Awatar użytkownika
Ender
Posty: 137
Rejestracja: 02 cze 2005 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Cieszyn

Re: Ograniczona ilosc znaków odebranych przez COM

Post autor: Ender »

Druga opcja - przy konfiguracji portu nie wyłączyłeś znaku końca ramki - standardowe ustawienie dla 'Enable Termination Char' to true, a jako termination char defaultowo ustawiony jest wlasnie 0xA. Skoro nie wykorzystujesz znaku końca ramki zamień Enable Termination Char na false, może w tym tkwi problem.
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Ograniczona ilosc znaków odebranych przez COM

Post autor: AGF »

Na 99% Ender ma rację.
nasiono
Posty: 21
Rejestracja: 11 sty 2012 22:44
Wersja środowiska: LabVIEW 2011

Re: Ograniczona ilosc znaków odebranych przez COM

Post autor: nasiono »

Bingo!
Dzięki raz jescze.
Problemy narazie wyczerpałem.
Pozdrawiam
ODPOWIEDZ