Major update:

- DataTreeCore:
  - Bug fix: GetMember() error if member not found
- FunctionCore: (affected: SelectableCore, FileCore, WatchdogCore)
  - Made destructor virual
  - Standardize method parameter naming, e.g. pName, pLog
  - Renamed parameters: DebugLevel -> LogLevel, OutputDisplay -> LogOutput
  - Reinstated parameter BaseMember
  - Removed logging parameters from constructor
  - Created method InitLoggging() (shows "Function Created" message)
  - Split LoadConfig() method into parts:
    - Implemented public LoadConfig() methods
    - Implemented LoadConfigData() method, load parameters from DataTree
- WatchdogCore:
  - Derive from CSelectableCore instead of CFunctionCore
  - Rename parameter: PingTimeout -> PingInterval
  - Replace Ping Channel with Handle only
  - Add method SetInterval()
  - Send command direct to handle with (channel) Input()
- SelectableCore:
  - Rename parameters: Auto -> AutoManage, ReopenTimeout -> ReopenDelay
  - Implemented own virtual LoadConfigData() method
- DeviceCore:
  - Made all logging conditional: if (Log) Log->Message(...)
- SelectCore:
  - Renamed parameters: DebugLevel -> LogLevel
This commit is contained in:
Charl Wentzel
2017-07-11 06:20:14 +02:00
parent b7ed169730
commit 3f86de71b1
12 changed files with 330 additions and 143 deletions

View File

@@ -23,19 +23,19 @@ extern char * ProcessName;
//---------------------------------------------------------------------------
CWatchdogCore::CWatchdogCore( const char * WatchdogName, const int pInterval, CLogCore * pLog, EDebugLevel pDebugLevel ) :
CFunctionCore( WatchdogName, pLog, pDebugLevel, OUT_NORMAL )
CWatchdogCore::CWatchdogCore( const char * pName, CSelect * pSelect, CLogCore * pLog ) :
CSelectableCore( pName, pSelect, pLog )
{
// Create protocol
Protocol = new CLiteProtocol( 50, '\x01', '\x02', '\x00' );
Protocol->CreateCommand( ProcessName, WatchdogName, "ping" );
Protocol->CreateCommand( ProcessName, pName, "ping" );
// Start timer
PingTimeout = 500;
PingInterval = 500;
SetStartTime( &PingTimer );
// Create Channel
Ping = AddChannel( "Ping" );
// Create handle
Ping = CreateHandle( "Ping", true );
}
//---------------------------------------------------------------------------
@@ -47,12 +47,19 @@ CWatchdogCore::~CWatchdogCore()
}
//---------------------------------------------------------------------------
bool CWatchdogCore::SetInterval( int pPingInterval )
{
PingInterval = pPingInterval;
return true;
}
//---------------------------------------------------------------------------
bool CWatchdogCore::Process()
{
if (Timeout( PingTimer, PingTimeout ))
if (Timeout( PingTimer, PingInterval ))
{
// Send command
Output( Ping, Protocol->GetCommandStr(), Protocol->GetCommandLen() );
Input( Ping->Name, Protocol->GetCommandStr(), Protocol->GetCommandLen() );
// Reset timer
SetStartTime( &PingTimer );