Kody hex znaków ASCII

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Kody hex znaków ASCII

Post autor: Gość »

Witam,
przy okazji testowania funkcji typecast napotkałem na nastepujący problem:
wysyłam tekst (CONTROL) i od razu odczytuje ten sam tekst (INDICATOR) w dwóch różnych formatach NORMAL DISPLAY i HEX DISPLAY.
Do znaku tyldy (Alt 126) wszystko działa. Przy wysłaniu znaku Alt127 (hex 7F) na wyjściu NORMAL DISPALY otrzymuję ten sam znak, ale na wyjściu HEX DISPLAY otrzymuję wartość A6. Dodatkowo po zastosowaniu funkci TYPE CAST i zamianie na liczbę zmiennoprzecinkową otrzymuje liczbę ujemną, a powinna być dodatnia.
To samo stwierdziłem w kilku innych przypadkach:
wysyłam h80 program zwraca hC7, wysyłąm hA6 dostaję h8E, wysyłam h8E, dostaję hC4, itd.
Czy to jest jakiś bład w programie, czy ja czegoś nie rozumiem?
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: Kody hex znaków ASCII

Post autor: rumcajs »

Przedstaw nam swój diagram lub dołącz vi.
Sprawadzałem u siebie i działa więc chciałbym spojrzeć w diagram, żeby coś dopomóc.
Rumcajs
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: Kody hex znaków ASCII

Post autor: Gość »

Witam,
krótki komentarz do załaczonego pliku:
(1) problem pojawił się przy okazji prób wykorzystania TYPE CAST do zamiany danych przesyłanych przez RS i stąd pozostałe elementy programu.
(2) Nie wiem, czy to może mieć znaczenie: system operacyjny toWindows XP wersja amerykańska + ustawienia lokalne polskie.

Pozdrawiam.
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Re: Kody hex znaków ASCII

Post autor: rumcajs »

można prosić w 7.0 a najlepiej w 6.0 to sobie zerknę.
Rumcajs.
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: Kody hex znaków ASCII

Post autor: Gość »

Przepisałem ten fragment kodu w wersji 6.1 (najniższa dostępna). Przetestowałem na ciągu znaków od "Alt125" do"Alt130" z tym samym wynikiem: litery są poprawne, ale wartości hexów bez sensu.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Kody hex znaków ASCII

Post autor: Mikrobi »

String w LabVIEW może być traktowany jako tablica U8, zatem proponuję stosowanie konwersji String To Byte Array
i w drugą stronę.
Konwersja powinna dzialać niezależnie od systemu i wersji jezykowej.
Sugeruję takie podejście:
Obrazek
Wynikiem konwersji string>tablica są wartości U8, na tym już można operować. Napisz więcej o danych, które chcesz przesyłać do i z mikrokontrolera.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
bossa
Posty: 4
Rejestracja: 06 lis 2006 00:00
Lokalizacja: Białystok

Re: Kody hex znaków ASCII

Post autor: bossa »

witam...
widzę, że niezłe spece tutaj siedzą, więc może ktoś mi pomoże i powie czy dobrze myślę...

wysyłam przez modbusa RTU ramkę np. 21 4D 04 CRC jako string (myślę, że to nie ma znaczenia czy to jest wysyłane jako hex czy string, chodzi o zapis... slave to sobie rozkoduje i podzieli na 2 bajtowe hexy) do slave'a... w odpowiedzi dostaję ramkę typu 21 4D 08 2B 32 31 2E 31 33 35 6B, gdzie 21 to adres slave'a, 4D kod funkcji (operacja na stringach), reszta- interesujace mnie dane... te dane chcialabym zamienic na znaki ASCII. tzn. 2 bajty hex na jeden znak ASCII.. w tym przypadku byloby to +21.135k

zamieszczę może mój skromny plik... dokleilam do niego zamiane hex na ascii.. znalazłam także coś na wzór dzielenia danych i umieszczenia ich w tabeli.. należałoby to nieco przerobić...

jeśli ktoś ma ochotę i pomysl... to byłabym bardzo wdzieczna...
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: Kody hex znaków ASCII

Post autor: wino »

konwersja, z hexa na string jest w pliku poniżej. sorki, że nazwy nie zmieniłem.:)

przed tą konwersją należy usunąć ze stringa 5 pierwszych znaków.
ODPOWIEDZ