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++ ?
Ograniczona ilosc znaków odebranych przez COM
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: Ograniczona ilosc znaków odebranych przez COM
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 (14.54 KiB) Przejrzano 6846 razy
Re: Ograniczona ilosc znaków odebranych przez COM
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ą?
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ą?
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Ograniczona ilosc znaków odebranych przez COM
"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".
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Re: Ograniczona ilosc znaków odebranych przez COM
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 ....
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 ....
-
- Posty: 109
- Rejestracja: 26 lut 2010 13:41
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Bydgoszcz
Re: Ograniczona ilosc znaków odebranych przez COM
Na 99% Ender ma rację.
Re: Ograniczona ilosc znaków odebranych przez COM
Bingo!
Dzięki raz jescze.
Problemy narazie wyczerpałem.
Pozdrawiam
Dzięki raz jescze.
Problemy narazie wyczerpałem.
Pozdrawiam