gpt4 book ai didi

c++ - QSerialPort 读取字符串

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:12 25 4
gpt4 key购买 nike

到目前为止,我的应用程序运行良好。但是有一个问题。我们需要从串口读取数据。此数据可能仅包含字节,因此使用 readLine() 函数读取可能会为我们提供错误数据或无数据。现在这是代码,因此您可以理解我的问题。

void MainWindow::readData()
{
while(serial->canReadLine())
{
QByteArray data = serial->readLine();

emit serialPortData(data, false);

QString myString(data);
if(myString.startsWith("SensorUpdate"))
emit sensorData(myString) ;
}
}

我正在读取数据,如果它以字符串(一些值)开头,我会将这些值发送到另一个类,在那里它将更新 QTableWidget。但是这个“startsWith()”只有在我从串行端口逐行读取时才有效。我想使用 readAll 函数并可能存储字符,直到找到新行或类似的东西。你能帮帮我吗?

谢谢!

最佳答案

在您的 GUI 中,您可以将 QString 拆分为 list在\n 上拆分。然后循环列表并像往常一样处理每个列表。因此,如果您输入的不止一个,那也没关系。

这是你必须做的。

void SensorWidget::fillTable(QString serialString)
{
tempList = serialString.split("\r\n");

for(int i=0;i<tempList.size();i++)
{
//filll table code
}
}

关于c++ - QSerialPort 读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49841208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com