1 Star 2 Fork 0

Anin/Serial

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
serialframe.cpp 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
Anin 提交于 2023-08-17 09:28 . 2023_8_17首次推送
#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);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mwh2035/serial.git
git@gitee.com:mwh2035/serial.git
mwh2035
serial
Serial
master

搜索帮助