* fix extsysmon multi keys sources

* change quotes values types to double
This commit is contained in:
arcan1s 2015-09-16 00:01:07 +03:00
parent 95b6b2d9e9
commit 646e897058
5 changed files with 24 additions and 20 deletions

View File

@ -40,7 +40,7 @@ ExtendedSysMon::ExtendedSysMon(QObject *parent, const QVariantList &args)
setMinimumPollingInterval(333); setMinimumPollingInterval(333);
readConfiguration(); readConfiguration();
// aggregator init // init aggregator
aggregator = new ExtSysMonAggregator(this, configuration); aggregator = new ExtSysMonAggregator(this, configuration);
foreach(QString source, aggregator->sources()) foreach(QString source, aggregator->sources())
setData(source, aggregator->initialData(source)); setData(source, aggregator->initialData(source));

View File

@ -46,10 +46,12 @@ QVariant QuotesSource::data(QString source)
qCDebug(LOG_ESM); qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Source" << source; qCDebug(LOG_ESM) << "Source" << source;
if (source.startsWith(QString("quotes/percpricechg"))) if (source.startsWith(QString("quotes/percpricechg"))) {
values[source] = extQuotes->itemByTagNumber(index(source))->run(); QVariantHash data = extQuotes->itemByTagNumber(index(source))->run();
QString base = QString(source).remove(QString("quotes/")); foreach(QString key, data.keys()) values[key] = data[key];
return values[source][base]; }
QString key = QString(source).remove(QString("quotes/"));
return values[key];
} }
@ -64,55 +66,55 @@ QVariantMap QuotesSource::initialData(QString source) const
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Absolute ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Absolute ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/ask"))) { } else if (source.startsWith(QString("quotes/ask"))) {
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Ask for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Ask for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percaskchg"))) { } else if (source.startsWith(QString("quotes/percaskchg"))) {
data[QString("min")] = -100.0; data[QString("min")] = -100.0;
data[QString("max")] = 100.0; data[QString("max")] = 100.0;
data[QString("name")] = QString("Ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Ask changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/bidchg"))) { } else if (source.startsWith(QString("quotes/bidchg"))) {
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Absolute bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Absolute bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/bid"))) { } else if (source.startsWith(QString("quotes/bid"))) {
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Bid for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Bid for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percbidchg"))) { } else if (source.startsWith(QString("quotes/percbidchg"))) {
data[QString("min")] = -100.0; data[QString("min")] = -100.0;
data[QString("max")] = 100.0; data[QString("max")] = 100.0;
data[QString("name")] = QString("Bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Bid changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/pricechg"))) { } else if (source.startsWith(QString("quotes/pricechg"))) {
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Absolute prie changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Absolute prie changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/price"))) { } else if (source.startsWith(QString("quotes/price"))) {
data[QString("min")] = 0.0; data[QString("min")] = 0.0;
data[QString("max")] = 0.0; data[QString("max")] = 0.0;
data[QString("name")] = QString("Price for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Price for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} else if (source.startsWith(QString("quotes/percpricechg"))) { } else if (source.startsWith(QString("quotes/percpricechg"))) {
data[QString("min")] = -100.0; data[QString("min")] = -100.0;
data[QString("max")] = 100.0; data[QString("max")] = 100.0;
data[QString("name")] = QString("Price changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq()); data[QString("name")] = QString("Price changes for '%1'").arg(extQuotes->itemByTagNumber(ind)->uniq());
data[QString("type")] = QString("float"); data[QString("type")] = QString("double");
data[QString("units")] = QString(""); data[QString("units")] = QString("");
} }

View File

@ -41,7 +41,7 @@ private:
// configuration and values // configuration and values
ExtItemAggregator<ExtQuotes> *extQuotes; ExtItemAggregator<ExtQuotes> *extQuotes;
QStringList m_sources; QStringList m_sources;
QHash<QString, QVariantHash> values; QVariantHash values;
}; };

View File

@ -46,10 +46,12 @@ QVariant WeatherSource::data(QString source)
qCDebug(LOG_ESM); qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Source" << source; qCDebug(LOG_ESM) << "Source" << source;
if (source.startsWith(QString("weather/weatherId"))) if (source.startsWith(QString("weather/weatherId"))) {
values[source] = extWeather->itemByTagNumber(index(source))->run(); QVariantHash data = extWeather->itemByTagNumber(index(source))->run();
QString base = QString(source).remove(QString("weather/")); foreach(QString key, data.keys()) values[key] = data[key];
return values[source][base]; }
QString key = QString(source).remove(QString("weather/"));
return values[key];
} }

View File

@ -41,7 +41,7 @@ private:
// configuration and values // configuration and values
ExtItemAggregator<ExtWeather> *extWeather; ExtItemAggregator<ExtWeather> *extWeather;
QStringList m_sources; QStringList m_sources;
QHash<QString, QVariantHash> values; QVariantHash values;
}; };