我正在使用 QtCreator 调试在 Qt/C++ 中开发的应用程序。我的应用程序使用 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 数据,但是我进入缓冲区的是一些奇怪的字符。例如,数字零 ('0') 的 ASCII 代码被调试器显示并打印qDebug
为 '°' 的另一个代码替换。
此外,我在“应用程序输出”选项卡中收到以下消息:while parsing target library list: not well-formed (invalid token)
.
我想知道为什么我没有使用 QextSerialPort 获得适当的 ASCII 代码。是 QextSerialPort 还是 Rhino Mark IV 控制器的问题?我正在通过两个显示器上的串行端口查看流量,并且 ASCII 字符在显示器上正确显示。因此,我得出结论,这不是控制器或通信渠道的问题。
while parsing target library list: not well-formed (invalid token)
消息是什么意思,为什么会出现?