Верно. Из-за этого ваша программа некорректно работает, т.к. имя порта зафиксировано в ее настройках.
Смысл понятен, спасибо. Но ведь настройки я применяю! Ладно, выбор порта - это уже другой вопрос.
Чего не знаю, того не знаю, но предполагаю, что контроллер порта отвечает за его режим работы, согласуемый по протоколам с сопряженным устройством.
Я, кажется, понял в чем дело... дело в линии DCD, со стороны устройства она не подтягивается никуда, а со стороны мультикарты слабая подтяжка к нулю (как обычно в MAX232), когда кабель подключаем, получаем антенну и на DCD полный бардак, поэтому, то работает, то не работает...
Думаю, сейчас вопрос сводится к тому, как заставить драйвер игнорировать линию DCD. При открытии мы просто выполняем
open(comName, ... | O_NONBLOCK), но далее драйвер все равно мониторит состояние DCD, как я понимаю, и это приводит к неработоспособности ПО...