Показано с 1 по 10 из 20

Тема: Контрольная сумма ТРМ201

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    не знаю. у меня получается bfc6.
    "ОПИСАНИЕ протокола обмена между ПЭВМ и приборами ОВЕН" не совсем корректное, особенно это касается "СТРУКТУРНОЙ СХЕМЫ ПРОТОКОЛА ОВЕН", вот и претензий много

    я, честно говоря, не первый раз такие спецификации читаю и работаю с ними, поэтому когда писал конфигуратор команд для протокола owen, делал ровно то, что написано в этих документах,

    а получилось это только после того, как увидел 2 "живые" команды на форуме

    вот чтобы такого не происходило, я бы порекомендовал сделать всего 3 дополнения:
    1. перерисуйте эту схему так, чтобы был виден четкий порядок бит, раз уж там они есть
    2. ваш CRC расчитывается с исключением из пакета кроме маркеров еще и самой контрольной суммы, т.е. не текущая, не нулевая, а вообще без этого члена
    3. в документации приведите 1-2 готовые команды, чтобы не ломать мозг

    получается, что заголовок имеет такую структуру:
    Код:
    typedef struct tagOwenHeader{
    	WORD	Low	: 8;
    	WORD	Size	: 4;
    	WORD	Query	: 1;
    	WORD	High	: 3;
    }OWEN_HEADER, *POWEN_HEADER;
    Low - младший байт адреса
    Size - размер поля данных - 2 (2 - это размер хеша имени)
    Query - признак запроса
    High - старшие 3 бита адреса

    перед расчетом CRC хеш команды записывается в пакет перевернутым байтами, т.е. сначала high, потом low,
    после расчета CRC, сам CRC так же переворачивается, после чего, вся полученная последовательность кодируется тетрадами

    на счет уровня приложения-представления - пока не проверял, будем смотреть дальше

    на счет переворачиваний, я пока без самого девайса не понял, но если разбить пакет на 3 сущности: заголовок, команда, CRC, то можно в принципе перевернуть все это дело перед кодированием тетрадами, но тогда не будет сходиться CRC и в данных будет бардак, либо можно тетрады выводить старшим полубайтом вперед, тогда можно не переворачивать, (все зависит от конечной реализации авторов; сам склюняюсь к тому, что все таки напутали порядок полубайтов), вобщем я сделал пока как есть

    в приложении мой конфигуратор команд, это консолька, которая позволяет просто собрать команду, в конечный вид, перед отправкой, так что сам девайс ей не нужен (если кто-то будет вводить имя команды, не забывайте про пробелы в конце этой команды, например "dev " или "ver ")

    (завтра проверю на девайсе, если успею, а сегодня просто выкладываю, т.к. команды уже сходятся по текущей теме и еще по этой: http://www.owen.ru/forum/showthread.php?t=7784)
    Вложения Вложения
    • Тип файла: zip owen.zip (44.6 Кб, Просмотров: 62)
    Последний раз редактировалось mega; 09.06.2010 в 14:18. Причина: подправил приложение: сдвиг старшей части адреса был на 4 бита, теперь как положено - на 8

Ваши права

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