Показано с 1 по 2 из 2

Тема: Запрос ТРМ-201

  1. #1

    По умолчанию запрос трм-201

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

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

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

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

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

    Подскажите, как это сделать.
    Спасибо.
    Последний раз редактировалось hilih; 11.04.2009 в 10:57.

  2. #2

    По умолчанию

    цитата:

    "Формат числа с плавающей точкой - это просто стандартное 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];
    }

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •