QLineSeries* series0 = (QLineSeries*)ui.chartView->chart()->series().at(0);
QLineSeries* series1 = (QLineSeries*)ui.chartView->chart()->series().at(1);
获取不到序列
chart->addSeries(series0); chart->addSeries(series1);我在另一个函数里添加了序列
在实际的工作中,一般是一定时间收到一个数据包,所以这里我们模拟500ms收到一个包
//模拟TCP数据到来的定时器
ecgWaveReadTimer = new QTimer(this);
connect(ecgWaveReadTimer, SIGNAL(timeout()), this, SLOT(oneTimeOutWriteToFifoAction()));
ecgWaveReadTimer->start(500);//500ms执行一次
然后是槽函数,将读出的数据加入队列中
//模拟500ms收到一个数据包 以后这部分就可以是TCP或者是串口接收到一次数据就加入一次缓存队列
void RealTimeEcg::oneTimeOutWriteToFifoAction() {
//需要从上一次队尾开始读取
for (int i = originListIndex; i < (125 + originListIndex); i++)
{
qint16 tempInt16 = originList.at(i).toInt();
m_EcgShortQueue.enqueue(tempInt16);
}
originListIndex += 125;
//如果剩下的数据不足以支撑下一次数据读取,就停止定时器
if ((originListIndex + 125) >= originListSize)
{
ecgWaveReadTimer->stop();
}
}