Strona 1 z 1

Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 31 maja 2012 12:14
autor: 1125
Witam

Mam dość prozaiczny problem, odczytuję dane z rejestratora po RS485, wysyłając ramkę otrzymuję odpowiedź jedynasto bajtową: 0103 0629 EF00 0000 03B3 5A. I wszystko ładnie wygląda 29 EF oznacza wartość a trzeci od końca bajt "03" oznacza miejsce po przecinku czyli 10,735. Problem mam z tym żeby wydzielić z tego ciągu bajtów ten wyniki i zapisać go z przecinkiem. Cały czas próbuję to wykonać, będę wdzięczny za podpowiedź jak tego dokonać.

Pozdrawiam
Krzysiek

Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 31 maja 2012 12:27
autor: Pitol
Pracujesz na stringach więc: Match Pattern bloczek aby podzielić liczbę na wartość przed i po przecinku. Następnie złącz oba elementy z przecinkiem między i wrzuć to w bloczek Fractional String to Number (lub o podobnej nazwie).

EDIT: zapomniałem, że to w hexie jest. To musisz jeszcze zamienić stringi w hex na dec. Nie chce mi się kombinować, więc najprościej: hex(string) -> dec(num) -> dec(string) -> połączyć obie liczby -> frac(string) -> frac(num).

Re: Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 31 maja 2012 12:29
autor: Jamal79
Pitol pisze:Pracujesz na stringach więc: Match Pattern bloczek aby podzielić liczbę na wartość przed i po przecinku. Następnie złącz oba elementy z przecinkiem między i wrzuć to w bloczek Fractional String to Number (lub o podobnej nazwie).
hehehe, Chyba miales na mysli, ze pracuje "w stringach" :ymdevil:

Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 31 maja 2012 14:33
autor: 1125
Dzięki za szybką odpowiedź. Wykonałem to bardzo prosto, String To Byte Array - Index Array - Join Numbers i na koniec żeby uzyskać przecinek to podzieliłem wartość przez 1000 bo 3 zera mam i zawsze tak będzie nie inaczej. Widzę tylko że jak jest np 6,230 to pokazuje 6,23.

Pozdrawiam
Krzysiek

Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 05 cze 2012 01:48
autor: Jate
Witam,
mam podobny problem
odczytuję ramkę danych w postaci string po RS, która składa się z 14 bajtów

19 25 3B 4F 5D 60 75 83 9E A0 B0 C0 D4 E8

wydzielam bajt 25 i 3B

Moje pytanie jak usunąć numery bajtów a następnie skleić dane 5 i B tak aby powstał bajt o wartości 5B
Próbowałem różnych kombinacji ale nic nie wychodzi.

Re: Wydzielenie bajtów i zapisanie ich w dec z przecinkiem

: 05 cze 2012 07:41
autor: MicMac89
Rozwiązanie jest proste korzystając z operatorów logicznych z palety Boolean, które oprócz pracy z wartościami logicznymi 0,1 pracują też z liczbami całkowitymi. W załączniku rozwiązanie problemu.