Witam
To moj drugi post u Was. Z jednym urządzeniem udało mi się uporać teraz czas na 2. Jest to akcelerometr z którego chcę odbierać dane poprzez rs232.
Dane maja postać w terminalu :
c FA FF 32 12 3F 3B 13 81 BA D2 BE 4D BB 7A C3 2D 3F 2E BF DC 12 95 44 FA FF 32 12 3F 3B 0C 1E BA D6 97 CA BB 7C 77 A8 3F 2E C7 C0 12 96 36 FA FF 32 12 3F 3B 0D 69 BA E8 52 BC BB 81 06 3D 3F 2E C6 50 12 97 72 FA FF 32 12 3F 3B 17 59 BB 03 88 D9 BB 7E EE 7E 3F 2E BB A7 12 98 96... itd
Jest to pewien protokół 23 bajtowy gdzie pojedyncza paczka ma postać:
FA FF 32 12 3F 3B 0D 80 BA D8 87 3E BB 80 81 F4 3F 2E C6 3F 12 94 97
Bajty 1-4 sa stałe i ostatni także (CRC), reszta to dane 18 bajtów.
Czasami zdarza sie ze wiadomosci przychodza o roznej wartosci wiec wykonałem sprawdzenia pierwszych 4 bajtów które maja byc zawsze takie same...
Dane które mnie interesuja (3 rodzaje) wyciagam z array. Maja postać kazda po 6 bajtów.
Nie wiem jak złożyć filtrowane dane w petli case parami tzn 1 z 2 bajtem 3 z 4 i 5 z 6 i wyswietlic w postaci która pozwoli mi jakos je dalej obrabiac (dokonywać na nich obliczen). np.dane surowe w postaci 3F 3B 0D 80 BA D8 => na 3F3B, 0D80, BAD8
Bede wdzieczny odnosnie kazdej uwagi odnosnie funkcjonalnosci programu.
Z gory dzieki za pomoc
Poniżej załączam co do tej pory udało mi się zrobić:
Składanie i formatowanie danych - Akcelerometr
Re: Składanie i formatowanie danych - Akcelerometr
Cos wczoraj mialem zacmienie i nie wpadlem na to...
Zastanawiam sie jak te dane teraz rozdzielic np przecinkiem zamiast spacji i jakos wyseparować zeby moc dokonywać obliczen na poszczególnych danych...
Zastanawiam sie jak te dane teraz rozdzielic np przecinkiem zamiast spacji i jakos wyseparować zeby moc dokonywać obliczen na poszczególnych danych...
- Załączniki
-
- Bez tytułu.jpg (65.75 KiB) Przejrzano 7209 razy
-
- Posty: 82
- Rejestracja: 26 maja 2009 07:18
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Sucha Beskidzka
- Kontakt:
Re: Składanie i formatowanie danych - Akcelerometr
Hej,
Na szybkości wymysliłem coś takieg.
Najpierw przetwórz twoją tablice numeryczna na tablice stringów, nastepnie wybierając elementy z tablicy ( w zależnosci od kolejności bytów) stwórz string hex a następnie przetwórz ten string na postać numeryczna.
Na szybkości wymysliłem coś takieg.
Najpierw przetwórz twoją tablice numeryczna na tablice stringów, nastepnie wybierając elementy z tablicy ( w zależnosci od kolejności bytów) stwórz string hex a następnie przetwórz ten string na postać numeryczna.
- Załączniki
-
- Przetwarzanie.vi
- (9.58 KiB) Pobrany 340 razy
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Składanie i formatowanie danych - Akcelerometr
hmm, mnie nie podoba sie to ciagle zmienianie stringa na hexa itd. Ja bym zaczol od tego...
Majac arraya mozesz sobie wyciagnac indexami konkretne wartosci poszczegolnych bitow...
Majac arraya mozesz sobie wyciagnac indexami konkretne wartosci poszczegolnych bitow...
- Załączniki
-
- string.png (21.04 KiB) Przejrzano 7162 razy
Re: Składanie i formatowanie danych - Akcelerometr
Zwróciłbym uwagę na fakt, że dane przychodzą w strumieniu bajtów. Niekoniecznie musimy odczytać z bufora port kompletną ramkę urządzenia. Proponuje stworzyć prostą maszynę stanów, która w pierwszej kolejności szuka nagłówka potem buforuje dane i na końcu sprawdza z danych CRC. Jeśli wszystkie etapy przyjdzie pomyślnie to przesyłana paczkę dalej.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Składanie i formatowanie danych - Akcelerometr
TMa ma racje, ja edytowalem istniejacy VI...
Pytanie czy podchodzisz do tego ambicyjnie czy jest to jednorazowa przygoda...
Pytanie czy podchodzisz do tego ambicyjnie czy jest to jednorazowa przygoda...