Podział danych
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Podział danych
Utworzyłem tablice danych. Mam problem z danymi zawartymi w tej tablicy.
Przesyłane są na zmianę bity starsze [H] i młodsze[L]. W jaki sposób mógłbym je ze sobą scalić?
Długość tablicy 1024 pola (512 próbek 2 bajtowych).
Można to jakoś zrobić w tych tablicach? Czy powinienem to zrobić przed zamianą na tablice (String To Byte Array )?
Ale wtedy będzie kłopot ze stworzeniem tej tablicy
Przesyłane są na zmianę bity starsze [H] i młodsze[L]. W jaki sposób mógłbym je ze sobą scalić?
Długość tablicy 1024 pola (512 próbek 2 bajtowych).
Można to jakoś zrobić w tych tablicach? Czy powinienem to zrobić przed zamianą na tablice (String To Byte Array )?
Ale wtedy będzie kłopot ze stworzeniem tej tablicy
-
- Posty: 6
- Rejestracja: 02 gru 2007 16:46
- Wersja środowiska: LabVIEW 8.6
- Lokalizacja: Kraków
- Kontakt:
Re: Podział danych
Witam
Spróbuj rzutowania Typecast (Numeric/Data Manipulation pallete). Na wejście podepnij Twoją tablicę 1024 elementów U8. Do terminala type, podłącz deskryptor typu - pustą tablicę U16. Utworzona na wyjściu kopia danych wejściowych będzie posiadała rozmiar 512 elementów U16. Mam nadzieję, iż w interpretacji takiej jakiej oczekujesz.
Pozdrawiam
Spróbuj rzutowania Typecast (Numeric/Data Manipulation pallete). Na wejście podepnij Twoją tablicę 1024 elementów U8. Do terminala type, podłącz deskryptor typu - pustą tablicę U16. Utworzona na wyjściu kopia danych wejściowych będzie posiadała rozmiar 512 elementów U16. Mam nadzieję, iż w interpretacji takiej jakiej oczekujesz.
Pozdrawiam
Artur
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Re: Podział danych
Jak wstawić taką tablicę? "array connstant"? Ale nie bardzo wiem jak ustawić w niej 16 bitów ;/kisiel pisze: podłącz deskryptor typu - pustą tablicę U16.
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Podział danych
Nie znam problemu, ale tak tylko przypominam, że jak Pan panie Napoleonie zamienisz string np. "23" na byte array to otrzymasz dwa bajty: pierwszy 00000010 i drugi 00000011 a po połączeniu tych dwóch bajtów wynikową liczbą będzie 515. Więc zastanów się czy bardziej nie potrzebujesz funkcji np. "scan from string" albo któregoś z palety zamiany stringów na liczby, albo - jak podejrzewam - potrzebujesz funkcji "spreadsheet string to array"
pozdrawiam
pozdrawiam
Ostatnio zmieniony 22 wrz 2010 07:19 przez spec.kolombo, łącznie zmieniany 2 razy.
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Podział danych
Wyszło mi masło maślane
Nie wiem czy dobrze połączyłem te dane za pomocą bloczka "String Subset".
Ma ktoś może jakiś pomysł?
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Re: Podział danych
ok, dowiedziałem się o co chodzi:
tylko podłącz tam swoje dane zamiast stringa i zamień liczbę iteracji pętli na 512 i tą 8 zamień na 256.
pozdrawiam
rozwiązanie na poniższym rysunku i w pliku vi, powinno działać (mam nadzieję )Mam urządzenie z oprogramowaną atmegą, która wysyła mi pomiary w paczkach 32 bajtowych.
1 pomiar(16 bitów) to 2 bajty(2*8 bitów) -> bity starsze[H] i bity młodsze [L]
W rezultacie mój ciąg to 512 próbek 2 bajtowych. (1024 bajty)
[H][L][H][L][H][L][H][L][H][L][H][L]...[H][L] - Po tych danych są jeszcze inne dane, ale one mnie nie interesują.
[...]Połączenie bitów starszych i młodszych...
Podział próbek na 2. Pierwsze 256 to dane X, kolejne 256 próbek dane Y.
I wyświetlenie tych dwóch tablic na wykresie XY.
tylko podłącz tam swoje dane zamiast stringa i zamień liczbę iteracji pętli na 512 i tą 8 zamień na 256.
pozdrawiam
- Załączniki
-
- napoleon13.vi
- (11.28 KiB) Pobrany 271 razy
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Podział danych
Wszystko śmiga, ale tylko dla ręcznie podanego stringa.
W rzeczywistości pakiety przesłane przez atmege w tych paczkach nakładają się na siebie tworząc niezły bałagan.
Dlatego przed Pana rozwiązaniem chciałem utworzyć tablice 1024 elementów. Niestety z mizernym skutkiem...
W załącznikach przesyłam stringa jakiego otrzymałem z urządzenia.
1 losowa próbka:
http://w489.wrzuta.pl/plik/5bdYkMXAGsp/losowa_1_probka
Za pomocą mojej tablicy:
http://w489.wrzuta.pl/plik/9EAJzl7U6Mh/ ... ej_tablicy
W rzeczywistości pakiety przesłane przez atmege w tych paczkach nakładają się na siebie tworząc niezły bałagan.
Dlatego przed Pana rozwiązaniem chciałem utworzyć tablice 1024 elementów. Niestety z mizernym skutkiem...
W załącznikach przesyłam stringa jakiego otrzymałem z urządzenia.
1 losowa próbka:
http://w489.wrzuta.pl/plik/5bdYkMXAGsp/losowa_1_probka
Za pomocą mojej tablicy:
http://w489.wrzuta.pl/plik/9EAJzl7U6Mh/ ... ej_tablicy
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Podział danych
Jak ta próbka nie zajmuje kilku MB to wrzuć ją tutaj, bo nie mogę w pracy (mam zablokowane) wchodzić na wrzuta.pl.
W załączniku wersja dla LV8.5.
W załączniku wersja dla LV8.5.
- Załączniki
-
- napoleon13.vi
- (12.5 KiB) Pobrany 297 razy
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Re: Podział danych
Wrzucam tutaj stringi i mój dotychczasowy program:
- Załączniki
-
- Prosty_visa.vi
- to co zmajstrowałem
- (17.63 KiB) Pobrany 307 razy
-
- dane odebrane za pomocą utworzonej tablicy.txt
- dane odebrane za pomocą mojej tablicy
- (332.21 KiB) Pobrany 304 razy
-
- losowa 1 probka.txt
- 1 losowa probka
- (16 Bajtów) Pobrany 284 razy
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Podział danych
Ja już nic nie rozumiem.
Myślałem że losowa 1 próbka pochodzi od urządzenia z atmegą, która wysyła 32 bajty - próbka którą wysłałeś zawiera ich 18...
poza tym nie napisałeś w jakim formacie je wysyła (pierwsza połowa to wartości X a druga połowa to wartości Y?).
i pytanie podstawowe: skąd Ci się wzięły dane w pliku "dane odebrane za pomocą utworzonej tablicy"??!! co to za dane? skąd one się wzięły? i jak one się mają w odniesieniu do odebranych danych z urządzenia?
Myślałem że losowa 1 próbka pochodzi od urządzenia z atmegą, która wysyła 32 bajty - próbka którą wysłałeś zawiera ich 18...
poza tym nie napisałeś w jakim formacie je wysyła (pierwsza połowa to wartości X a druga połowa to wartości Y?).
i pytanie podstawowe: skąd Ci się wzięły dane w pliku "dane odebrane za pomocą utworzonej tablicy"??!! co to za dane? skąd one się wzięły? i jak one się mają w odniesieniu do odebranych danych z urządzenia?
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Podział danych
Dane w plikach zostały utworzone za pomocą: "Write to Text File" po bezpośrednim podłączeniu (1 próbka) lub z tworzeniem tablicy (seria).
Atmege wysyła wszystko co ma (1024 bajty + inne dane) , a jeśli skończy wysyłanie wysyła te dane ponownie.
Próbka może mieć np 18 bajtów, jeśli jest to paczka po tych pierwszych 1024... są to inne dane i ich paczki wyglądają trochę inaczej.
Pierwsze 1024 bajty wyglądają tak jak to wcześniej przedstawiłem.
[H][L][H][L][H][L][H][L][H][L]..[H][L]=1024 bajty=512 próbek= 256 danych X i 256 danych Y.
Atmege wysyła wszystko co ma (1024 bajty + inne dane) , a jeśli skończy wysyłanie wysyła te dane ponownie.
Próbka może mieć np 18 bajtów, jeśli jest to paczka po tych pierwszych 1024... są to inne dane i ich paczki wyglądają trochę inaczej.
Pierwsze 1024 bajty wyglądają tak jak to wcześniej przedstawiłem.
[H][L][H][L][H][L][H][L][H][L]..[H][L]=1024 bajty=512 próbek= 256 danych X i 256 danych Y.
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Podział danych
Jakoś nie widzę tych 1024 bajtów żeby miały jakiś sens. po pierwsze dane w pliku które przesłałeś posiadają znaczek końca linii, który podejrzewam że atmega sama nie dodała. Po drugie pierwsze 1024 dane to liczba 8382 więc trudno tutaj z jednej liczby zrobić wykres. Więc upewnij się czy faktycznie dostajesz takie dane jakie piszesz i dokładnie w takim formacie.
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 16
- Rejestracja: 10 sie 2010 13:54
- Wersja środowiska: LabVIEW 8.5
Podział danych
problem okazał się być banalnym...
1. w bloczku "VISA Configure Serial Port VI" wystarczyło "Enabled termination" dać na falce
2. w "VISA Read" - "byte count" wartość większą niż 1024 bo tablica 1024 była przepełniana.
Dziękuję wszystkim za pomoc!
1. w bloczku "VISA Configure Serial Port VI" wystarczyło "Enabled termination" dać na falce
2. w "VISA Read" - "byte count" wartość większą niż 1024 bo tablica 1024 była przepełniana.
Dziękuję wszystkim za pomoc!