6FactGroup::
FactGroup(
int updateRateMsecs, const QString &metaDataFile, QObject *parent,
bool ignoreCamelCase)
8 , _updateRateMSecs(updateRateMsecs)
9 , _ignoreCamelCase(ignoreCamelCase)
16FactGroup::FactGroup(
int updateRateMsecs, QObject *parent,
bool ignoreCamelCase)
18 , _updateRateMSecs(updateRateMsecs)
19 , _ignoreCamelCase(ignoreCamelCase)
25FactGroup::~FactGroup()
32 QMap<QString, QString> defineMap;
36void FactGroup::_setupTimer()
40 _updateTimer.setSingleShot(
false);
46bool FactGroup::factExists(
const QString &name)
const
48 if (name.contains(
".")) {
49 const QStringList parts = name.split(
".");
50 if (parts.count() != 2) {
51 qCWarning(FactGroupLog) <<
"Only single level of hierarchy supported";
55 FactGroup *
const factGroup = getFactGroup(parts[0]);
57 qCWarning(FactGroupLog) <<
"Unknown FactGroup" << parts[0];
61 return factGroup->factExists(parts[1]);
64 const QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
69Fact *FactGroup::getFact(
const QString &name)
const
71 if (name.contains(
".")) {
72 const QStringList parts = name.split(
".");
73 if (parts.count() != 2) {
74 qCWarning(FactGroupLog) <<
"Only single level of hierarchy supported";
78 FactGroup *
const factGroup = getFactGroup(parts[0]);
80 qCWarning(FactGroupLog) <<
"Unknown FactGroup" << parts[0];
84 return factGroup->getFact(parts[1]);
88 const QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
93 qCWarning(FactGroupLog) <<
"Unknown Fact" << camelCaseName;
99FactGroup *FactGroup::getFactGroup(
const QString &name)
const
102 const QString camelCaseName = _ignoreCamelCase ? name : _camelCase(name);
107 qCWarning(FactGroupLog) <<
"Unknown FactGroup" << camelCaseName;
116 qCWarning(FactGroupLog) <<
"Duplicate Fact" << name;
133 qCWarning(FactGroupLog) <<
"Duplicate FactGroup" << name;
145 fact->sendDeferredValueChangedSignal();
149void FactGroup::setLiveUpdates(
bool liveUpdates)
151 if (_updateTimer.interval() == 0) {
158 _updateTimer.start();
162 fact->setSendValueChangedSignals(liveUpdates);
167QString FactGroup::_camelCase(
const QString &text)
169 return (text[0].toLower() + text.right(text.length() - 1));
174 if (telemetryAvailable != _telemetryAvailable) {
175 _telemetryAvailable = telemetryAvailable;
#define QGC_LOGGING_CATEGORY(name, categoryStr)
Used to group Facts together into an object hierarachy.
QMap< QString, Fact * > _nameToFactMap
void telemetryAvailableChanged(bool telemetryAvailable)
QMap< QString, FactMetaData * > _nameToFactMetaDataMap
virtual void _updateAllValues()
void _setTelemetryAvailable(bool telemetryAvailable)
void factGroupNamesChanged()
void _addFactGroup(FactGroup *factGroup, const QString &name)
QMap< QString, FactGroup * > _nameToFactGroupMap
void _addFact(Fact *fact, const QString &name)
const int _updateRateMSecs
Update rate for Fact::valueChanged signals, 0: immediate update.
void _loadFromJsonArray(const QJsonArray &jsonArray)
A Fact is used to hold a single value within the system.