При этом, все символы что набирались (не видны в терминале и не отправляются) после закрытия minicom отправляются в порт.
Это баг или я что-то делаю не так?
Наверное я неправильно описал проблему, с Wirenboard7 я пытаюсь опросить модем, который подключен к RS485-2, для этого хотел использовать утилиту minicom, но она не работает (поведение как описано в первом сообщении на нескольких WB7). Для теста утилиты minicom, к порту RS485-2 WB7 вместо модема я подключил COM-порт ПК. В minicom не отображается то, что отправляется с ПК, единственное на ПК пришли все набранные символы только после закрытия minicom (при этом символы не видно в самом minicom, все что видно на скриншоте в первом сообщении).
Теперь стало понятнее.
Пожалуйста, пришлите диагностический архив и список команд, которые вы вводили как с контроллера, так и с ПК. Попробуем воспроизвести ситуацию.
Модем ОВЕН, но это не особо важно, так как не работает даже прямое подключение WB7 к ПК. Сам модем опрашивается с ПК, также работает с установленной MasterSCADA на WB7. Само собой я проверяю, перед подключением minicom, что порт не занят другими службами (ну и выключен в программах) Проблема только в minicom, то что он не работает.
Воспроизвел, отдал разработчикам.
Minicom после запуска меняет настройки порта и не принимает входящие байты. Скорее всего это связано с управлением приемом-передачей (порт-то асинхронный).
Перезапускался ли колнтроллер перед этим? Проверил:
serial_tool -b 9600 -p N -d 8 -s 2 -t 1 /dev/ttyRS485-2
serial_tool on /dev/ttyRS485-2: 9600 8N2.0
Enter your commands below in HEX form.
All characters but 0-9,a-f including spaces are ignored.
Press Control-D or Control-C to leave the application.
Press [Enter] to print received data
>> 8D 03 00 80 00 01 9A EE
<< 8D 03 02 00 8D 69 FE`
Нет не перезапускался. Сейчас запустил контроллер и проверил еще раз, в целом работает, НО заметил одну странность, если после таймаута отправить ответ с ПК, то при следующей отправки команды с WB, этот ответ подставится.
Логично, так как он в буфере, откуда его некому читать. Это как раз ожидаемо.
А про это - уже у разработчиков, по моему поверхностному дебагу меняется режим управления порта и остается в таком виде. То есть будет починено обновлением.
Вчера трижды сдувал трансмиттер на периферийном устройстве - не догадался сразу ткнуться анализатором в ноги контроллера.
Буду иметь в виду такую особенность, но сугубо мое личное мнение, что в ответе должны быть данные, полученные только в период действия таймаута, то есть надо обнулять буфер перед чтением (если это возможно).