Read-only archive of the All About Symbian forum (2001–2013) · About this archive

Using RSystemAgent with TSysAgentEvent and RSAVarChangeNotify

0 replies · 2,299 views · Started 18 November 2004

I m trying to monitor some system varibles like battery strength and network strength etc using the classes RSystemAgent, TSysAgentEvent and RSAVarChangeNotify.

This is the code i m writing ....


#include "CBatteryReader.h"

CBatteryReader::CBatteryReader(MBatteryObserver* aOb):CActive(0),iBatteryObserver(aOb)
{

}

CBatteryReader::~CBatteryReader()
{
//delete iBatteryObserver;
iSystemAgent.Close();
Cancel();
}

CBatteryReader* CBatteryReader::NewL(MBatteryObserver* aOb)
{
CBatteryReader* self = new(ELeave) CBatteryReader(aOb);
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop();
return self;
}

void CBatteryReader::ConstructL()
{
User::LeaveIfError(iSystemAgent.Connect());
iSysAgentEvent.SetRequestStatus(iStatus);
iSysAgentEvent.SetUid(KUidBatteryStrength);
CActiveScheduler::Add( this );
}

TInt CBatteryReader::GetBatteryState()
{
//iSysAgentEvent.SetRequestStatus(iStatus);
//iSysAgentEvent.SetUid(KUidBatteryStrength);
iSystemAgent.NotifyOnEvent(iSysAgentEvent);
SetActive();

//return 0;//(iSystemAgent.GetState(KUidBatteryStrength));
}

void CBatteryReader::RunL()
{
TInt state = iSystemAgent.GetState(iSysAgentEvent.Uid());
// do what you want with state here
iBatteryObserver->OnBatteryChange(iSysAgentEvent.State());

//Reenable
//GetBatteryState();
}

void CBatteryReader:😃oCancel()
{

}

TInt CBatteryReader::RunError( TInt aError )
{

}

but i receive a Panic Code 36 CONE
which says


Open handles were found during application shutdown

ANy clues ????