Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-1219636871
checkmate-maker
2008-08-25 08:01
2009.10.18
TRxRichEdit


1-1220342126
Vlad Oshin
2008-09-02 11:55
2009.10.18
Как получить список dll, которые использует мое приложение?


15-1250195405
Юрий
2009-08-14 00:30
2009.10.18
С днем рождения ! 14 августа 2009 пятница


2-1250067700
AndrewG
2009-08-12 13:01
2009.10.18
TRichViewEdit &amp; addict


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский