feat:柱形图数据面板中增加析构时实时数据请求取消逻辑
This commit is contained in:
parent
b9d43a7882
commit
5814b2babe
|
|
@ -132,6 +132,8 @@ dpBarsChart::dpBarsChart(QWidget* parent)
|
|||
|
||||
dpBarsChart::~dpBarsChart()
|
||||
{
|
||||
if(!m_requestDataList.isEmpty())
|
||||
MeasurementDataManager::instance()->cancelRequest(m_requestDataList, this);
|
||||
}
|
||||
|
||||
void dpBarsChart::initQCP()
|
||||
|
|
@ -244,6 +246,8 @@ void dpBarsChart::synchronizeConfigData(const configurationResults& cfg)
|
|||
QVector<QString> tickLabels;
|
||||
|
||||
QHash<RealTimeDataType, QSet<QString>> groupedBars; //按数据类型对bar进行分组,以实现可以按组放置以及设置颜色等操作
|
||||
QStringList newRequestDataList;
|
||||
QStringList cancelRequestDataList;
|
||||
for(int i = 0; i < cfg.m_pModel_dataSource->rowCount(); i++)
|
||||
{
|
||||
QString itemText = cfg.m_pModel_dataSource->item(i, 0)->text();
|
||||
|
|
@ -293,8 +297,25 @@ void dpBarsChart::synchronizeConfigData(const configurationResults& cfg)
|
|||
double randomFloat = min + QRandomGenerator::global()->generateDouble() * (max - min);
|
||||
return QVariant::fromValue(randomFloat);
|
||||
});*/
|
||||
|
||||
newRequestDataList << dataID;
|
||||
}
|
||||
|
||||
QSet dataSet(newRequestDataList.begin(), newRequestDataList.end());
|
||||
for(const QString& data : std::as_const(m_requestDataList))
|
||||
{
|
||||
if(!dataSet.contains(data))
|
||||
cancelRequestDataList << data;
|
||||
}
|
||||
|
||||
//获取实时数据
|
||||
if(!cancelRequestDataList.isEmpty())
|
||||
MeasurementDataManager::instance()->cancelRequest(cancelRequestDataList, this);
|
||||
if(!newRequestDataList.isEmpty())
|
||||
MeasurementDataManager::instance()->requestData(newRequestDataList, this);
|
||||
|
||||
m_requestDataList = QStringList(std::move(newRequestDataList));
|
||||
|
||||
if(groupByType)
|
||||
{
|
||||
for(auto it = groupedBars.begin(); it != groupedBars.end(); ++it)
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ private:
|
|||
QHash<QString, Bars> m_bars;
|
||||
QHash<RealTimeDataType, QCPBarsGroup*> m_barsGroups;
|
||||
bool m_updateData;
|
||||
QStringList m_requestDataList;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ void MeasurementDataManager::requestData(const QStringList& measurements, QObjec
|
|||
for(const QString& dataID : measurements)
|
||||
{
|
||||
auto it = m_dataRequesetRecord.find(dataID);
|
||||
if(it != m_dataRequesetRecord.end() && !it.value().contains(requester))
|
||||
if(it != m_dataRequesetRecord.end()/* && !it.value().contains(requester)*/)
|
||||
it.value().insert(requester);
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue