Strona 1 z 1

Podstawy - najprościej z Rs232 w tablicę

: 04 maja 2012 14:29
autor: kwikam
Witam , zgłębiam przykłady i ciągle nie mogę zrozumieć co robię nie tak. Mam za zadanie przechwycone dane z RS232 wrzucić do tablicy o 1 kolumnie/wierszu, n elementów, czyli do końca transmisji.

Obrazek

jest to część gotowego programu visa-write/read. Wszystko związane z transmisją działa bez zarzutu, dane pojawiają się w zmiennych 'read string' i 'Numeric". Podłączone urządzenie wypluwa 8 bajtowe ciągi zakończone znakiem końca linii. W efekcie, przy użyciu wykrywania znaku końca linii - odebrane ciągi "migają" i nadpisują się w zmiennych.

Chciałem żeby zapisywały się do wierszy/kolumn w zmiennej Array. Jak to zrobić?

Podstawy - najprościej z Rs232 w tablicę

: 04 maja 2012 19:43
autor: milten
Z tego co widzę (chyba, bo masz bałagan w kablach) program robi arraya ale dopiero po zakończeniu pętli while. Jak chcesz mieć na bieżąco odświeżanego arraya, to musisz zastosować Shift Register i Build Array.

Re: Podstawy - najprościej z Rs232 w tablicę

: 05 maja 2012 13:19
autor: kwikam
Wrzuciłem tablicę do pętli i nadpisuje ciągle pierwszy element. Nie można dodać jako indeksu iteracji pętli ?
Jest blok index array ale to działa raczej odwrotnie, wyciąga element o z tablicy.

Po prostu chcę zrobić standardowy zapis do tablicy tak jak to się w c pisze: tablica = dana_usart; i++;

Re: Podstawy - najprościej z Rs232 w tablicę

: 05 maja 2012 13:28
autor: smiga
Najprościej skorzystać z Build Array i shift Register.
Możesz też wykorzystać Insert Into Array z numerem iteracji pętli.
Przykład wykorzystania obu poniżej:

Re: Podstawy - najprościej z Rs232 w tablicę

: 05 maja 2012 16:14
autor: kwikam
Opcja z insert into array to to o co mi chodziło.
Zrobiłem podobnie jak w Twoim przykładzie i w tabeli nadal głucho. Może to wina tego, że robię to w pętli odbioru USARTA? Każda jej iteracja kończy się po odebraniu znaku stop. Tak mi się do tej
pory wydawało.

Dziękuje za zainteresowanie.

Re: Podstawy - najprościej z Rs232 w tablicę

: 05 maja 2012 17:24
autor: kwikam
Ok rozwiązałem.

Mój błąd: tam gdzie miałem bloczek "decimal string to number" trimowałem 1 znak z początku a przez USART wysyłały się czasem 2 znaki + liczba czyli coś w stylu: XY1234. I tabela pozostawała pusta, bo był zły format danych.