introduced instructions, added "include" and "load" instructions for including/loading configuration data depending on conditions, added support for on-the-fly creation of conditions, added support for string based conditions

This commit is contained in:
john30
2016-03-13 15:14:57 +01:00
parent 6bbf2ca1d0
commit f8dce83b6a
+9
View File
@@ -668,6 +668,10 @@ result_t loadConfigFiles(MessageMap* messages, bool verbose, bool denyRecursive)
if (result != RESULT_OK) if (result != RESULT_OK)
logError(lf_main, "error resolving conditions: %s, %s", getResultCode(result), messages->getLastError().c_str()); logError(lf_main, "error resolving conditions: %s, %s", getResultCode(result), messages->getLastError().c_str());
result = messages->executeInstructions(verbose);
if (result != RESULT_OK)
logError(lf_main, "error executing instructions: %s, %s", getResultCode(result), messages->getLastError().c_str());
logNotice(lf_main, "found messages: %d (%d conditional on %d conditions, %d poll, %d update)", messages->size(), messages->sizeConditional(), messages->sizeConditions(), messages->sizePoll(), messages->sizePassive()); logNotice(lf_main, "found messages: %d (%d conditional on %d conditions, %d poll, %d update)", messages->size(), messages->sizeConditional(), messages->sizeConditions(), messages->sizePoll(), messages->sizePassive());
return result; return result;
@@ -832,10 +836,15 @@ result_t loadScanConfigFile(MessageMap* messages, unsigned char address, SymbolS
return result; return result;
} }
logNotice(lf_main, "read scan config file %s for ID \"%s\", SW%s, HW%s", best.c_str(), ident.c_str(), sw.c_str(), hw.c_str()); logNotice(lf_main, "read scan config file %s for ID \"%s\", SW%s, HW%s", best.c_str(), ident.c_str(), sw.c_str(), hw.c_str());
result = messages->resolveConditions(false); result = messages->resolveConditions(false);
if (result != RESULT_OK) if (result != RESULT_OK)
logError(lf_main, "error resolving conditions: %s, %s", getResultCode(result), messages->getLastError().c_str()); logError(lf_main, "error resolving conditions: %s, %s", getResultCode(result), messages->getLastError().c_str());
result = messages->executeInstructions(false);
if (result != RESULT_OK)
logError(lf_main, "error executing instructions: %s, %s", getResultCode(result), messages->getLastError().c_str());
logNotice(lf_main, "found messages: %d (%d conditional on %d conditions, %d poll, %d update)", messages->size(), messages->sizeConditional(), messages->sizeConditions(), messages->sizePoll(), messages->sizePassive()); logNotice(lf_main, "found messages: %d (%d conditional on %d conditions, %d poll, %d update)", messages->size(), messages->sizeConditional(), messages->sizeConditions(), messages->sizePoll(), messages->sizePassive());
relativeFile = best.substr(strlen(opt.configPath)+1); relativeFile = best.substr(strlen(opt.configPath)+1);
return RESULT_OK; return RESULT_OK;