Paste P542

Masterwork From Distant Lands
ActivePublic

Authored by davidedmundson on Feb 11 2020, 12:55 PM.
diff --git a/ksgrd2/SensorDaemonInterface.cpp b/ksgrd2/SensorDaemonInterface.cpp
index 87bd493..b757c51 100644
--- a/ksgrd2/SensorDaemonInterface.cpp
+++ b/ksgrd2/SensorDaemonInterface.cpp
@@ -49,6 +49,8 @@ void SensorDaemonInterface::requestMetaData(const QStringList& sensorIds)
connect(watcher, &QDBusPendingCallWatcher::finished, watcher, [=](QDBusPendingCallWatcher *self) {
self->deleteLater();
+ qDebug() << "fetched!";
+
const QDBusPendingReply<SensorInfoMap> reply = *self;
if (reply.isError()) {
return;
@@ -56,6 +58,7 @@ void SensorDaemonInterface::requestMetaData(const QStringList& sensorIds)
const auto infos = reply.value();
for (auto itr = infos.begin(); itr != infos.end(); ++itr) {
+ qDebug() << itr.key();
Q_EMIT metaDataChanged(itr.key(), itr.value());
}
});
diff --git a/ksgrd2/SensorDataModel.cpp b/ksgrd2/SensorDataModel.cpp
index 7abf564..43b9e2a 100644
--- a/ksgrd2/SensorDataModel.cpp
+++ b/ksgrd2/SensorDataModel.cpp
@@ -102,6 +102,7 @@ QVariant SensorDataModel::data(const QModelIndex &index, int role) const
case Minimum:
return info.min;
case Maximum:
+ qDebug() << "query data max" << info.max;
return info.max;
case Type:
return info.variantType;
@@ -145,6 +146,7 @@ QVariant SensorDataModel::headerData(int section, Qt::Orientation orientation, i
case Minimum:
return info.min;
case Maximum:
+ qDebug() << "query header max" << info.max;
return info.max;
case Type:
return info.variantType;
@@ -194,6 +196,7 @@ qreal SensorDataModel::maximum() const
auto result = std::max_element(d->sensorInfos.cbegin(), d->sensorInfos.cend(), [](const SensorInfo &first, const SensorInfo &second) {
return first.max < second.max;
});
+ qDebug() << "************* querying max" << (*result).max;
return (*result).max;
}
@@ -252,7 +255,6 @@ void SensorDataModel::Private::addSensor(const QString &id)
}
qCDebug(LIBKSYSGUARD_KSGRD2) << "Add Sensor" << id;
-
sensors.append(id);
SensorDaemonInterface::instance()->requestMetaData(id);
}
@@ -295,6 +297,7 @@ void SensorDataModel::onMetaDataChanged(const QString &sensorId, const SensorInf
// Simple case: Just an update for a sensor's metadata
if (d->sensorInfos.contains(sensorId)) {
d->sensorInfos[sensorId] = info;
+ qDebug() << "DATA CHANGED" << info.max;
Q_EMIT dataChanged(index(0, column), index(0, column), {Qt::DisplayRole, Name, ShortName, Description, Unit, Minimum, Maximum, Type, FormattedValue});
return;
}
@@ -307,6 +310,8 @@ void SensorDataModel::onMetaDataChanged(const QString &sensorId, const SensorInf
SensorDaemonInterface::instance()->subscribe(sensorId);
SensorDaemonInterface::instance()->requestValue(sensorId);
+
+ emit sensorMetaDataChanged();
}
void SensorDataModel::onValueChanged(const QString &sensorId, const QVariant &value)
@@ -333,10 +338,17 @@ void SensorDataModel::Private::sensorsChanged()
const auto addedSensors = newSet - currentSet;
const auto removedSensors = currentSet - newSet;
+ qDebug() << "appending " << addedSensors.values();
sensors.append(addedSensors.values());
+ qDebug() << "Request metadata" << addedSensors;
SensorDaemonInterface::instance()->requestMetaData(addedSensors.values());
+ bool itemsRemoved = false;
for (auto sensor : removedSensors) {
removeSensor(sensor);
+ itemsRemoved = true;
+ }
+ if (itemsRemoved) {
+ emit q->sensorMetaDataChanged();
}
}
diff --git a/ksgrd2/SensorDataModel.h b/ksgrd2/SensorDataModel.h
index 78653e8..8d9cf6a 100644
--- a/ksgrd2/SensorDataModel.h
+++ b/ksgrd2/SensorDataModel.h
@@ -23,9 +23,9 @@ class Q_DECL_EXPORT SensorDataModel : public QAbstractTableModel, public QQmlPar
Q_PROPERTY(QStringList sensors READ sensors WRITE setSensors NOTIFY sensorsChanged)
// The minimum value of all sensors' minimum property.
- Q_PROPERTY(qreal minimum READ minimum NOTIFY sensorsChanged)
+ Q_PROPERTY(qreal minimum READ minimum NOTIFY sensorMetaDataChanged)
// The maximum value of all sensors' maximum property.
- Q_PROPERTY(qreal maximum READ maximum NOTIFY sensorsChanged)
+ Q_PROPERTY(qreal maximum READ maximum NOTIFY sensorMetaDataChanged)
public:
enum AdditionalRoles {
@@ -56,6 +56,7 @@ public:
QStringList sensors() const;
void setSensors(const QStringList &sensorIds);
Q_SIGNAL void sensorsChanged() const;
+ Q_SIGNAL void sensorMetaDataChanged();
qreal minimum() const;
qreal maximum() const;
davidedmundson edited the content of this paste. (Show Details)Feb 11 2020, 12:55 PM
davidedmundson changed the title of this paste from untitled to Masterwork From Distant Lands.