/* * WatchdogCore.cpp * * Created on: July 2017 * Author: wentzelc */ // redA Libraries #include "ApplicationCore.h" #include "WatchdogCore.h" // Standard C/C++ Libraries #include #include #include #include #include //--------------------------------------------------------------------------- // Global vars extern char * ProcessName; //extern CApplication * Application; //--------------------------------------------------------------------------- CWatchdogCore::CWatchdogCore( const char * pName ) : CSelectableCore( pName, "WatchdogClient" ) { // Create protocol Protocol = new CLiteProtocol( 50, '\x01', '\x02', '\x00' ); Protocol->CreateCommand( ProcessName, pName, "ping" ); // Start timer PingInterval = 500; SetStartTime( &PingTimer ); // Handle Ping = NULL; } //--------------------------------------------------------------------------- CWatchdogCore::~CWatchdogCore() { // Destroy Protocol if (Protocol) delete Protocol; } //--------------------------------------------------------------------------- bool CWatchdogCore::LoadConfigData() { // Call Previous load config CSelectableCore::LoadConfigData(); // Set Auto Mange SetInterval( DataTree->GetInt( ConfigMember, "Parameters/PingInterval", 500, true )); return true; } //--------------------------------------------------------------------------- bool CWatchdogCore::SetInterval( int pPingInterval ) { PingInterval = pPingInterval; return true; } //--------------------------------------------------------------------------- bool CWatchdogCore::Init() { // Create handle and set reference, if not done if (!(Ping = GetHandle( "Ping" ))) Ping = CreateHandle( "Ping", false ); // Previous init return CSelectableCore::Init(); } //--------------------------------------------------------------------------- bool CWatchdogCore::Process() { if (Timeout( PingTimer, PingInterval )) { // Send command Input( Ping->Name, Protocol->GetCommandStr(), Protocol->GetCommandLen() ); // Reset timer SetStartTime( &PingTimer ); } return false; } //---------------------------------------------------------------------------