Я по произвольному протоколу через канал CALL.СhGroupReq подаю запрос на Com-порт. Длина ответа по одному и тому же запросу менятся от 45 до 60 бит. Если я задаю для ответа 60 бит в канале CALL.СhGroupReq, а ответ содержит меньшее количество бит, то traceMode не отображает значения битов.
Posted by Nico (Участник № / Member № 5342) on :
1.Наверное байт ??? 2.Сколько байт задано на прием столько RTM пытается принять иначе ошибка
Posted by Kayrat Gatiyatov (Участник № / Member № 5414) on :
Ну да байт конечно. И что делать если длина ответа меняется? Когда запускал протокол на контроллере CombiGauge, то либо контроллер переставал отвечать, либо происходил сдвиг, т.к. приходило несколько ответов на один COM-порт. Получается что произвольный протокол можно использовать только в случае если ответ имеет фиксированную длину?
Posted by Nico (Участник № / Member № 5342) on :
На один и то же запрос ответ разным числом байт ? Маркер конца ответа или счетчик посланных байт ? ASCII или бинарные данные ?
Posted by Kayrat Gatiyatov (Участник № / Member № 5414) on :
Да. Данные: текстовые сообщения в ASCII кодировке. Маркер конца ответа: символ возврата каретки CR (0Dh, клавиша ввод).
Posted by Nico (Участник № / Member № 5342) on :
Воспользуйтесь CALL.vector в нем есть декодирование ASCII символов и возможность задать символ окончвния ответа
Posted by Kayrat Gatiyatov (Участник № / Member № 5414) on :
Я уже пытался реализовать через CALL.vector, но так до конца и не разобрался как он работает. Тех.поддержка даже скидывала ссылку на видео, описывающее работу этого канала. Не могли бы вы подробнее рассказать как происходит декодирование ASCII символов.
Posted by Nico (Участник № / Member № 5342) on :
начиная с заданной позиции и между значениями символ разделитель(задается)