Libserial Open () зависает в моей программе на C ++ - PullRequest
2 голосов
/ 29 ноября 2010

В основном у меня есть действительно простая программа на C ++, где я пытаюсь открыть последовательный порт (который на самом деле является конвертером USB-> RS232, должен поддерживаться libserial), но код зависает в Open ().Без ошибок, без исключений, ничего, просто ничего не происходит.Похоже, работает на других последовательных портах, кроме этого конкретного.Последовательный порт также работает с Cutecom и другими терминалами (и он не зарезервирован какой-либо другой программой).Я пытался настроить до и после открытия порта, но это не имеет значения.Я также не вижу ничего о рукопожатии в (довольно плохой) документации libserial или в заголовках, возможно, это ожидание рукопожатия или чего-то еще, я не знаю ... Libserial0 версии 0.6.0 и Ubuntu 10.10.Что не так или как я могу попробовать отладить это ...?Любые другие предлагаемые библиотеки / способы использования последовательного порта с C ++?

#include <SerialStream.h>
#include <iostream>

int main() {

 LibSerial::SerialStream device_;

 device_.SetBaudRate(LibSerial::SerialStreamBuf::BAUD_9600);
 device_.SetCharSize(LibSerial::SerialStreamBuf::CHAR_SIZE_8);
 device_.SetNumOfStopBits(1);
 device_.SetParity(LibSerial::SerialStreamBuf::PARITY_NONE);
 device_.SetFlowControl(LibSerial::SerialStreamBuf::FLOW_CONTROL_NONE);

 device_.Open("/dev/ttyUSB1");

}

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Я смотрел на libserial пару лет назад, когда мне приходилось писать интерфейс управления для модема, который позволял осуществлять дистанционное управление через RS-232.Я закончил с реализацией ASIO Boost для использования последовательного порта.

Не уверен, будет ли работать Boost.ASIO для вас или нет.но, по моему опыту, это не повисло на мне ....

0 голосов
/ 12 октября 2011

Я также нашел эту проблему, используя USB-последовательный конвертер (pl2303)Похоже, что установка VTime решает проблему.

...