diff --git a/DeviceCore.cpp b/DeviceCore.cpp index 5beb5f9..056ec7a 100644 --- a/DeviceCore.cpp +++ b/DeviceCore.cpp @@ -69,7 +69,6 @@ CDeviceCore::~CDeviceCore() bool CDeviceCore::Init( CDataMember * FunctionConfig ) { char * PersistFile = NULL; - char * ConfigName = NULL; CDataMember * PollConfig = NULL; int IntVal1; int IntVal2; @@ -86,13 +85,6 @@ bool CDeviceCore::Init( CDataMember * FunctionConfig ) if (!(EventChannel = GetChannel( "Event" ))) EventChannel = AddChannel( "Event", true, true ); - // Get configuration - if ((Config = FunctionConfig->GetChild( "Config", true )) && Config->isString()) { - ConfigName = (char*)FunctionConfig->GetChStr( "Config" ); - Config = Application->Config->GetChild( ConfigName, true ); - } - if (Config->isNull()) Config->SetObject(); - // Load Polling configuration PollConfig = Config->GetChild( "Polling", true ); if (PollConfig->isNull()) PollConfig->SetObject(); diff --git a/DeviceCore.h b/DeviceCore.h index 9f43f95..427243a 100644 --- a/DeviceCore.h +++ b/DeviceCore.h @@ -121,7 +121,6 @@ class CDeviceCore : public CFunctionCore { protected: // Configuration - CDataMember * Config = NULL; CDataMember * ConfigTypes = NULL; CDataMember * ValueTree = NULL; CJSONparse * JSONparse = NULL; diff --git a/FunctionCore.cpp b/FunctionCore.cpp index b8da187..a778ead 100644 --- a/FunctionCore.cpp +++ b/FunctionCore.cpp @@ -95,6 +95,7 @@ bool CFunctionCore::Init( CDataMember * FunctionConfig ) CDataMember * ChannelConfig; EDebugLevel pLogLevel; int pLogOutput; + char * ConfigName = NULL; // Validate if (!FunctionConfig ) @@ -118,6 +119,13 @@ bool CFunctionCore::Init( CDataMember * FunctionConfig ) ChannelConfig = ChannelConfig->GetNextPeer(); } + // Get main configuration + if ((Config = FunctionConfig->GetChild( "Config", true )) && Config->isString()) { + ConfigName = (char*)FunctionConfig->GetChStr( "Config" ); + Config = Application->Config->GetChild( ConfigName, true ); + } + if (Config->isNull()) Config->SetObject(); + return true; } //--------------------------------------------------------------------------- diff --git a/FunctionCore.h b/FunctionCore.h index b04266a..11177af 100644 --- a/FunctionCore.h +++ b/FunctionCore.h @@ -62,6 +62,9 @@ protected: char * Name = NULL; bool WaitToTerminate = false; + // JSON Config + CDataMember * Config = NULL; + // Channels TChannel * FirstChannel = NULL;