Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.18;
Скачать: CL | DM;

Вниз

RS-232 возвращает данные в формате float. Как перевести?   Найти похожие ветки 

 
Priest   (2009-08-21 13:03) [0]

Есть устройство. И мой компонент. В него приходит в виде строки данные в формате флоат 4 байта. Как перевести в обычное представление?


 
MBo ©   (2009-08-21 13:07) [1]

"флоат 4 байта" называется в Дельфи single. Или что-то другое имеется в виду?


 
Kolan ©   (2009-08-21 13:07) [2]

Вам надо узнать как этими 4 байтами кодируют число, иначе у вас ничего не получится.

Функция перекодировки может быть примерно такой:

procedure ConvertBytesToFloat(HighByte1, HighByte2,
 LowByte1, LowByte2: Byte; var Value: Single);
var
 TempArr: array[0..3] of Byte;
   TemVal: Single absolute TempArr;
begin
 TemVal := 0;
 TempArr[0] := HighByte1;
 TempArr[1] := HighByte2;
 TempArr[2] := LowByte1;
 TempArr[3] := LowByte2;
 Value := TemVal;
end;


 
Priest   (2009-08-21 13:09) [3]

не то. на весах показан вес например 20.99 а мне возвращается в шестнадцатиричной форме AB CD AA CC. Т.е. у меня 4 байта, но когда возвращается строка, то выглядит как "мусор". Как перевести?


 
Priest   (2009-08-21 13:12) [4]

Вот у меня что есть из инструкции


Формат команды (запроса):
1  2  3 4
W 0 X 1     - всё в символьном виде

1- символ синхронизации (символ “W”)
2- номер терминала (“0…9”, по умолчанию “0”)
3- команда
4- параметр команды (“1…9 : ; <”)

Формат ответа:
4 байта данных

Основные команды
G – считывание показаний весов (с учётом дискретности индикации)
Вариант запроса : W0GX
Ответ: 4 байта float


 
Медвежонок Пятачок ©   (2009-08-21 13:13) [5]

Ответ: 4 байта float

ну и где здесь якобы строка?


 
Kolan ©   (2009-08-21 13:19) [6]

Наверно вам приходит 8 шестнадцатеричных символов? Тогда превратите их сначала в байты, а потом см.  [2]


 
Priest   (2009-08-21 13:27) [7]

Спасибо всем за помощь. счас буду пробовать


 
Kolan ©   (2009-08-21 13:29) [8]

Вам надо узнать у разработчика весов что эти 4 байта значат и как их интерпретировать.


 
Priest   (2009-08-21 15:37) [9]

Всем спасибо за помощь. Код из [2]  работает.


 
Kolan ©   (2009-08-21 15:55) [10]

Кстати в два можно проще, если испльзовать Result вместо TemVal.



Страницы: 1 вся ветка

Текущий архив: 2009.10.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1245585239
Кто б сомневался
2009-06-21 15:53
2009.10.18
Автозапуск на Vista и цифровая подпись


3-1228320501
Tix
2008-12-03 19:08
2009.10.18
Многостраничная запись в QReport


2-1250324076
namco
2009-08-15 12:14
2009.10.18
excel и delphi


2-1250249797
JS2
2009-08-14 15:36
2009.10.18
asm


15-1250351901
Холивар
2009-08-15 19:58
2009.10.18
Вопрос по вебкамере(разрешениям)