LINUX.ORG.RU

Serial port, output выдает эхо input'а

 


0

1

Уже задавал этот вопрос ранее. Здесь более развернуто.

Имеется прибор управления кондиционерами (CoolMaster) с COM-портом.

Если общаться с ним через putty, то вывод строго следует спецификации: на ввод отправляем строку «stats all\n», на выходе получаем

«1005 ON  173C ,67C High      MJ 0»
OK


Если же общаться с этим прибором через bash (cat/printf) или в програме, через обычные функции работы с файлом, то вывод получается

stats all

1005 ON  173C ,67C High      MJ 0

OK


То есть, в начале вывода появляется строка ввода «stats all» и лишние переносы строк между строками. Возможно переносы появляются из-за того, что прибор оканчивает строки на «\r\n». А вот почему вылазиет «stats all» в начале понять не могу.

Причем это происходит при «stty -F /dev/ttyS0 -echo». Если эхо включено - прибор в бесконечном цикле выдает абракадабру - пытается выполнить части входных строк, жалуется на ошибку синтаксиса и так до бесконечности.

COM-порты пробовал USB и родной, встроенный в материнку. Результат один и тот же.

Почему в выводе появляется «stats all»? И почему его нет в putty?

★★★★★

Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от Zubok

Странно. Раньше вроде была эта команда в документации. Тем не менее, c другими командами (например set) тоже выводится эхо(

А через screen нормально всё. Ничего не понимаю..

makoven ★★★★★
() автор топика
Ответ на: комментарий от makoven

А через screen нормально всё. Ничего не понимаю..

А вот объясни, это опечатка была?

Serial port, output выдает эхо input'а (комментарий)

Ты подавал команду stats, а тебе вовзращалось stats all. Ты случайно не дописал all или так и было?

Zubok ★★★★★
()
Ответ на: комментарий от makoven

Странно. Раньше вроде была эта команда в документации. Тем не менее, c другими командами (например set) тоже выводится эхо(

Кстати, посмотри в set повнимательнее.

http://coolautomation.com/lib/doc/prm/PRM-CoolMaster/index.html?set.htm

echo           R/W            0-Disable 1-Enable Commands echo
Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Блин. Я глупый и невнимательный. Действительно после «set echo 0» все заработало как надо. Спасибо большое.

makoven ★★★★★
() автор топика
Ответ на: комментарий от makoven

Эта штука сделана для удобства. Приемник может работать как потоковый и независимо от передатчика. То есть приемнику для анализа ответов не надо знать, какую команду передавал передатчик. Просто тупо висишь на линии, а в ответе первая строчка - это команда, которую передавали. Просто можешь в лог складывать или в базу данных пихать, или какие-то сразу действия делать.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Хм, и правда. Зная что была за команда, упрощается обработка ответов

makoven ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.