Important Update:

- Save reference to process config in Function Core
  - Moved from DeviceCore to here as common feature
  - "Config" : object
    Allow additional config to be stored in application definition
  - "Config" : string
    Name reference to config object in main JSON file
  - Remove from Device Core
This commit is contained in:
Charl Wentzel
2019-04-22 10:29:52 +02:00
parent 77db246541
commit 01ec1071b1
4 changed files with 11 additions and 9 deletions

View File

@@ -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();

View File

@@ -121,7 +121,6 @@ class CDeviceCore : public CFunctionCore
{
protected:
// Configuration
CDataMember * Config = NULL;
CDataMember * ConfigTypes = NULL;
CDataMember * ValueTree = NULL;
CJSONparse * JSONparse = NULL;

View File

@@ -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;
}
//---------------------------------------------------------------------------

View File

@@ -62,6 +62,9 @@ protected:
char * Name = NULL;
bool WaitToTerminate = false;
// JSON Config
CDataMember * Config = NULL;
// Channels
TChannel * FirstChannel = NULL;