代码拉取完成,页面将自动刷新
#include "serialframe.h"
serialFrame::serialFrame(QSerialPort *ser,QObject *parent)
: QObject{parent},serial(ser)
{
}
void serialFrame::doDataReciveThread()
{
QByteArray recBuf ,buf_analyze;
recBuf = serial->readAll();
//判断缓冲区是否为空
if(recBuf.isEmpty())
return;
//发送GUI显示信号
emit sendResultToGui(recBuf);
//解析帧
for(int i = 0;i<recBuf.size();i++)
{
if("{" == QString(recBuf.at(i)))
{
//获取帧头
Frame_Head = 1;
rIndex = 0;
}
else
{
//已接收帧头
if(1 == Frame_Head)
{
if("}" == QString(recBuf.at(i)))
{
//收集完成进行数据处理
dataProcessing(buf_analyze);
rIndex = 0;
Frame_Head = 0;
break;
}
buf_analyze.insert(rIndex,QString(recBuf.at(i)));
rIndex++;
}
}
}
}
void serialFrame::dataProcessing(QByteArray buf)
{
QList<QByteArray> rec_data = buf.split(',');
QList<QByteArray> num_list;
num_Number.clear();
num_Name.clear();
for(int i = 0;i < rec_data.size();i++)
{
//以':'分割
num_list = rec_data.at(i).split(':');
num_Number.append(num_list.at(1).toDouble());
num_Name.append(num_list.at(0));
}
emit plotDisplay(num_Number,num_Name);
emit dointerfaceInit(rec_data);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。