* 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);
readConfiguration();
// aggregator init
// init aggregator
aggregator = new ExtSysMonAggregator(this, configuration);
foreach(QString source, aggregator->sources())
setData(source, aggregator->initialData(source));

View File

@ -46,10 +46,12 @@ QVariant QuotesSource::data(QString source)
qCDebug(LOG_ESM);
qCDebug(LOG_ESM) << "Source" << source;
if (source.startsWith(QString("quotes/percpricechg")))
values[source] = extQuotes->itemByTagNumber(index(source))->run();
QString base = QString(source).remove(QString("quotes/"));
return values[source][base];
if (source.startsWith(QString("quotes/percpricechg"))) {
QVariantHash data = extQuotes->itemByTagNumber(index(source))->run();
foreach(QString key, data.keys()) values[key] = data[key];
}
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("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/ask"))) {
data[QString("min")] = 0.0;
data[QString("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/percaskchg"))) {
data[QString("min")] = -100.0;
data[QString("max")] = 100.0;
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("");
} else if (source.startsWith(QString("quotes/bidchg"))) {
data[QString("min")] = 0.0;
data[QString("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/bid"))) {
data[QString("min")] = 0.0;
data[QString("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/percbidchg"))) {
data[QString("min")] = -100.0;
data[QString("max")] = 100.0;
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("");
} else if (source.startsWith(QString("quotes/pricechg"))) {
data[QString("min")] = 0.0;
data[QString("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/price"))) {
data[QString("min")] = 0.0;
data[QString("max")] = 0.0;
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("");
} else if (source.startsWith(QString("quotes/percpricechg"))) {
data[QString("min")] = -100.0;
data[QString("max")] = 100.0;
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("");
}

View File

@ -41,7 +41,7 @@ private:
// configuration and values
ExtItemAggregator<ExtQuotes> *extQuotes;
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) << "Source" << source;
if (source.startsWith(QString("weather/weatherId")))
values[source] = extWeather->itemByTagNumber(index(source))->run();
QString base = QString(source).remove(QString("weather/"));
return values[source][base];
if (source.startsWith(QString("weather/weatherId"))) {
QVariantHash data = extWeather->itemByTagNumber(index(source))->run();
foreach(QString key, data.keys()) values[key] = data[key];
}
QString key = QString(source).remove(QString("weather/"));
return values[key];
}

View File

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