RS232 i radar do pomiaru prędkości
-
- Posty: 18
- Rejestracja: 26 paź 2008 10:21
- Wersja środowiska: LabVIEW 2012
- Kontakt:
RS232 i radar do pomiaru prędkości
Dzięki za odpowiedzi. Jeszcze muszę dokładnie to przemyśleć. Kombinowałem już tak żeby program pobierał około 30 bajtów i szukał w nich 2 headerów i wyciągał całą ramkę. Okazało się że długość ramki rzadko kiedy zgadzała się z tą która powinna być - nie mam pojęcia co może to powodować ale przez to nie wiedziałem które konkretne dane są w poszczególnych bitach między headerami. Zrobiłem w ten sposób że program pobiera około 100 bajtów w których szuka jednej kompletnej ramki składającej się z 13 bajtów danych i wtedy wiem co mam w każdym bajcie - 13 bajtową ramkę mam dokładnie opisaną w instrukcji. Pewnie należałoby zastanowić się czemu radar wysyła różne długości ramek i co w nich jest, ale to na przyszłość.
-
- Posty: 18
- Rejestracja: 26 paź 2008 10:21
- Wersja środowiska: LabVIEW 2012
- Kontakt:
RS232 i radar do pomiaru prędkości
Witam ponownie,
Miałem okazję dokładnie przetestować radar i jego współpracę z portem RS. Program działa w ten sposób że wyciąga z przesyłanych na RS danych tylko kompletne 13-bajtowe paczki danych, z których następnie wyciąga bajty odpowiedzialne za mierzone wielkości. Stworzyłem gotowy przykładowy plik z wynikami pomiarów, w którym zapisane są tylko kompletne 13-bajtowe paczki danych (w załączniku) do dalszej analizy.
Problem jest następujący:
Radar pokazuje właściwe wartości prędkości przemieszane losowo z bardzo małymi wartościami (rzędu kilku km/h). Analogicznie jest z drogą.
Kombinowałem z przeliczaniem dwóch znaków ASCII na string HEX i DEC i później na wartość DEC. Wychodzą dwie różne wartości - dlaczego tak się dzieje? Wartością dobrą jest wartość przeliczana przez string HEX (czyli max prędkość na wykresie = 100km/h). Źle podchodzę do przeliczania znaków ASCII na wartość mierzoną czy coś innego jest nie tak?
Fragment kodu przeliczającego dwa znaki ASCII na prędkość w załączniku
Protokoły RS są tutaj:
https://docs.google.com/leaf?id=0B8dlp0 ... y=CN7__qIF
Miałem okazję dokładnie przetestować radar i jego współpracę z portem RS. Program działa w ten sposób że wyciąga z przesyłanych na RS danych tylko kompletne 13-bajtowe paczki danych, z których następnie wyciąga bajty odpowiedzialne za mierzone wielkości. Stworzyłem gotowy przykładowy plik z wynikami pomiarów, w którym zapisane są tylko kompletne 13-bajtowe paczki danych (w załączniku) do dalszej analizy.
Problem jest następujący:
Radar pokazuje właściwe wartości prędkości przemieszane losowo z bardzo małymi wartościami (rzędu kilku km/h). Analogicznie jest z drogą.
Kombinowałem z przeliczaniem dwóch znaków ASCII na string HEX i DEC i później na wartość DEC. Wychodzą dwie różne wartości - dlaczego tak się dzieje? Wartością dobrą jest wartość przeliczana przez string HEX (czyli max prędkość na wykresie = 100km/h). Źle podchodzę do przeliczania znaków ASCII na wartość mierzoną czy coś innego jest nie tak?
Fragment kodu przeliczającego dwa znaki ASCII na prędkość w załączniku
Protokoły RS są tutaj:
https://docs.google.com/leaf?id=0B8dlp0 ... y=CN7__qIF
-
- Posty: 18
- Rejestracja: 26 paź 2008 10:21
- Wersja środowiska: LabVIEW 2012
- Kontakt:
RS232 i radar do pomiaru prędkości
Ma ktoś jakiś pomysł jak dobrze przekonwertować te dwa znaki ASCII odpowiedzialne za prędkość na wartość prędkości? Bo chyba źle do tego podchodzę. Będę wdzięczny za pomoc