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

Тема: Вопросы по ТРМ201

  1. #1

    По умолчанию Вопросы по ТРМ201

    Добрый день!

    Возникли вопросы по работе с прибором ТРМ201:

    В качестве управляющей программы использую ваш конфигуратор ТРМ2хх. Просматриваю обмен данными с помощью программы portmon.

    Например:
    Установка заданного значения 10,0:

    Записывается:

    23 48 47 47 4C 50 48 47 4E 4B 48 49 47 47 47 47 47 47 47 52 4F

    # 10 05 91 07 41 20 00 00 00 00 B8

    10 - адрес 16
    05 - бит запроса не установлен
    91 07 - команда

    Вопросы:

    1)Как превращается 41 20 00 00 00 в 10,0 ?


    2) Как в данном случае расчитывается контрольная сумма?
    Использовал вашу функцию подставлял все байты со 2-го по контрольную сумму, но получается другая.



    Не могли бы Вы прислать готовые примеры функций(С,С++) по работе с прибором на a_sorokin@list.ru .

  2. #2

    По умолчанию

    на самом деле, передается #HGGLPHGNKHIGGGGGGGROOU\xD, что при распаковке дает:

    10 05 91 07 41 20 00 00 00 b8 8e

    41 20 00 - это значение
    00 00 - индекс (используется с конфигурационными параметрами)
    b8 8e - контрольная сумма

    10,0 получается так:

    Код:
    void unpackFloat24(unsigned char* data, size_t dataSize, float* value)
    {
    	char *p;
    
    	assert(data);
    	assert(dataSize == 3);
    	assert(value);
    
    	*value = 1.0f;
    	p = (char *)(void *)value;
    
    	/* для x86 меняем порядок байт */
    	p[0] = 0;
    	p[1] = data[2];
    	p[2] = data[1];
    	p[3] = data[0];
    }

  3. #3

    По умолчанию

    Большое спасибо за объяснения и примеры!

Ваши права

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