求教qt从串口中得到一串数据,如何从中获取指定数据
在用qt制作串口时,碰到这样一个问题:将数据从缓存区读出,转化成字符串,然后用.mid()函数获得指定数据,但获得的数据有问题。求各位大侠传授一个好的方法
代码如下
QByteArray temp = myCom->readAll();
QString buf;
QString str1;
/*十六进制数据显示
for(int i = 0; i < temp.count(); i++){
QString s;
s.sprintf("0x%02x ", (unsigned char)temp.at(i));
buf += s;
}
ui->textEdit->append(buf);
QTextCursor cursor = ui->textEdit->textCursor();
ui->textEdit->insertPlainText(temp);
cursor.movePosition(QTextCursor::End);
ui->textEdit->setTextCursor(cursor);
*/
buf =temp.trimmed();
str1 = buf.mid(3, 3);
ui->textEdit->append(str1);
[解决办法]
注意类型的转换
[解决办法]
串口过来的数据是文本还是二进制,如果是文本可以直接 mid,如果是二进制就要格式化成字符串
[解决办法]
使用QSocketNotifier吧,没那么麻烦了!