QtCreatorを使用してQt/C++で開発されたアプリケーションをデバッグしています。私のアプリケーションは、シリアルポートがRhinoMarkIVコントローラーに接続されているQextSerialPortを使用してシリアルポートから読み取ります。
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またはRhinoMarkIVコントローラーの問題ですか?2台のモニターでシリアルポートを介したトラフィックを表示していますが、ASCII文字がモニターに正しく表示されています。したがって、コントローラや通信チャネルの問題ではないと結論付けました。
メッセージは何をwhile parsing target library list: not well-formed (invalid token)
意味し、なぜそれが引き起こされるのですか?