Нет данных, прочитанных с помощью libserial

У меня проблемы с подключением через последовательное соединение. Я пытаюсь подключиться к роботу с помощью библиотеки LibSerial. Мой код, кажется, не открывает соединение правильно, и я не знаю почему. Робот автоматически отправляет несколько сообщений в секунду через последовательное соединение. Структура сообщения !number:number,(восклицательный знак, за которым следуют число, двоеточие, другое число и запятая).
Я использовал и putty, и HTerm, чтобы убедиться, что робот действительно отправляет данные. Как прием, так и отправка команд работают нормально с HTerm, но ни прием, ни отправка не работают с моим кодом.
Это конфигурация последовательного соединения:

serial_connector_.Open("/dev/ttyUSB0");
serial_connector_.SetBaudRate(LibSerial::SerialStreamBuf::BAUD_115200);
serial_connector_.SetCharSize(LibSerial::SerialStreamBuf::CHAR_SIZE_8);
serial_connector_.SetNumOfStopBits(1);
serial_connector_.SetParity(LibSerial::SerialStreamBuf::PARITY_NONE);
serial_connector_.SetFlowControl(LibSerial::SerialStreamBuf::FLOW_CONTROL_NONE);

После этого serial_connector_.IsOpen() возвращает истину.
Затем я пытаюсь прочитать из последовательного соединения, используя:

char read[100] = "";
if(serial_connector_.rdbuf()->in_avail() > 0){
serial_connector_.read(read, 100);
std::cout << "Read: " << read <<std::endl;
}

read всегда остается пустой строкой и serial_connector_.rdbuf()->in_avail()оценивается как 1, хотя это не имеет особого смысла, учитывая структуру сообщения. Чтение только одного символа не работает.

char next_byte;
serial_connector_.get(next_byte);

не имеет никакого эффекта Это первый раз, когда я работаю над последовательным соединением, поэтому возможно, что я сделал фундаментальную ошибку. Любая помощь о том, как заставить работать сообщение очень ценится!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]