Я отлаживаю приложение, разработанное в Qt/C++, используя QtCreator. Мое приложение читает из последовательного порта с помощью QextSerialPort, где последовательный порт подключен к контроллеру Rhino Mark IV.
int bytesRead;
char buffer[BUFFER_SIZE];
if (_serialPort->bytesAvailable() > 0
&& (bytesRead = _serialPort->read(buffer, BUFFER_SIZE)) > 0)
{
_comBuffer.append(buffer, bytesRead);
buffer[bytesRead+1] = 0; // for debugging purposes
qDebug(buffer); // for debugging purposes
}
У меня проблемы с этим, потому что я пытаюсь прочитать некоторые данные ASCII, но в буфер попадаю какие-то странные символы. Например, код ASCII для числа ноль ("0") заменяется другим кодом, который отображается отладчиком и печатается с помощью qDebug
как "°".
Кроме того, я получаю следующее сообщение на вкладке «Вывод приложения»: while parsing target library list: not well-formed (invalid token)
.
Интересно, почему я не получаю соответствующий код ASCII с QextSerialPort. Это проблема QextSerialPort или контроллера Rhino Mark IV? Я просматриваю трафик через последовательный порт на двух мониторах, и символы ASCII отображаются на мониторах правильно. Таким образом, я сделал вывод, что проблема не в контроллере или канале связи.
Что означает сообщение while parsing target library list: not well-formed (invalid token)
и чем оно вызвано?