Strona 1 z 1
Kody hex znaków ASCII
: 15 cze 2005 23:16
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?
Re: Kody hex znaków ASCII
: 16 cze 2005 05:46
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
Re: Kody hex znaków ASCII
: 16 cze 2005 14:33
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.
Re: Kody hex znaków ASCII
: 17 cze 2005 09:11
autor: rumcajs
można prosić w 7.0 a najlepiej w 6.0 to sobie zerknę.
Rumcajs.
Re: Kody hex znaków ASCII
: 17 cze 2005 14:00
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.
Re: Kody hex znaków ASCII
: 20 cze 2005 13:49
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:

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.
Re: Kody hex znaków ASCII
: 02 gru 2006 20:56
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...
Re: Kody hex znaków ASCII
: 03 gru 2006 21:17
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.