PDA

Просмотр полной версии : Запрос ТРМ-201



hilih
10.04.2009, 15:15
Здравствуйте!
Согласно описанию протокола ОВЕН, я пытался расшифровать ответ пришедший от
прибора ТРМ-201, на запрос ЗНАЧЕНИЕ ПАРАМЕТРА.

Адрес прибора: 0
Версия прошивки: 24
Прибор: ТРМ-201

Команду запроса на получение ЗНАЧЕНИЕ ПАРАМЕТРА
(в данном случае, температуры), я "взял", следущим образом.
Подключил друг другу два СОМ порта (2-3, 3-2, 5-5).
Запустил конфигуратор ТРМ и свою программу для работы с СОМ портом.
Настроил два порта. И послал запрос якобы ТРМ-201-му.

Моя программа получила, вот, что: #GGHGROTVGTMK (в конце ENTER)
Затем это сообщение я передал в прибор ТРМ-201.
Вот, что он мне ответил: #GGGJROTVKHQUPIJSHK (в конце ENTER)
На экране ТРМ-201 в момент запроса отображалось 21,4.

В приложенном файле, показано, как я расшифровывал это сообщение.
http://slil.ru/27437455
HASH-код я увидел и всё остальное,
но вот никак не могу расшифровать ЗНАЧЕНИЕ ПАРАМЕТРА.

Подскажите, как это сделать.
Спасибо.

Дмитрий Егоренков
13.04.2009, 12:10
цитата:

"Формат числа с плавающей точкой - это просто стандартное 4-байтовое плавающее число в IEEE-формате, или усеченное 3-х байтовое (PIC-формат) - то же, что и IEEE, но с отброшенным младшим байтом мантиссы".

добавляете к данным нулевой байт и делаете вид, что получившееся четыре байта - число с плавающей запятой. примерно так для x86:



void unpackFloat24(unsigned char* data, size_t dataSize, float* value)
{
unsigned char* p = (unsigned char*)(value);

assert(data);
assert(dataSize == 3);
assert(value);

p[0] = 0;
p[1] = data[2];
p[2] = data[1];
p[3] = data[0];
}