fallback on unset device config var

This commit is contained in:
vaxerski 2022-06-30 21:38:06 +02:00
parent d010ca2049
commit 92890d492a
2 changed files with 13 additions and 0 deletions

View file

@ -180,6 +180,8 @@ void CConfigManager::configSetValueSafe(const std::string& COMMAND, const std::s
CONFIGENTRY = &configValues.at(COMMAND); CONFIGENTRY = &configValues.at(COMMAND);
} }
CONFIGENTRY->set = true;
if (CONFIGENTRY->intValue != -1) { if (CONFIGENTRY->intValue != -1) {
try { try {
if (VALUE.find("0x") == 0) { if (VALUE.find("0x") == 0) {
@ -910,6 +912,15 @@ SConfigValue CConfigManager::getConfigValueSafeDevice(const std::string& dev, co
SConfigValue copy = it->second[val]; SConfigValue copy = it->second[val];
// fallback if not set explicitly
if (!copy.set) {
for (auto& cv : configValues) {
if (cv.first.find(val) == cv.first.length() - val.length()) {
copy = cv.second;
}
}
}
return copy; return copy;
} }

View file

@ -20,6 +20,8 @@ struct SConfigValue {
int64_t intValue = -1; int64_t intValue = -1;
float floatValue = -1; float floatValue = -1;
std::string strValue = ""; std::string strValue = "";
bool set = false; // used for device configs
}; };
struct SMonitorRule { struct SMonitorRule {