--- a/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp Thu Aug 19 10:20:18 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp Tue Aug 31 15:37:04 2010 +0300
@@ -75,6 +75,9 @@
#include <EPos_CPosModuleIdList.h>
#include <EPos_CPosModules.h>
#include <EPos_CPosModuleUpdate.h> // CPosModuleUpdate
+
+#include <MProEngEngine.h>
+#include <Profile.hrh>
// EXTERNAL DATA STRUCTURES
//extern ?external_data;
@@ -174,6 +177,48 @@
CleanupStack::PopAndDestroy( idList );
CleanupStack::PopAndDestroy( db );
}
+
+// -----------------------------------------------------------------------------
+// CAdvancedTriggerSupervision::GetCurrentCoordinateL
+// Returns current position
+// -----------------------------------------------------------------------------
+//
+void CAdvancedTriggerSupervision::GetCurrentCoordinateL( TCoordinate& aCoordinate )
+ {
+ CTriggerFireObserver* notifier= CTriggerFireObserver::NewL();
+ CleanupStack::PushL( notifier );
+ CActiveSchedulerWait* wait = new ( ELeave ) CActiveSchedulerWait;
+ CleanupStack::PushL( wait );
+ TPositionInfo positionInfo;
+ // Ownership of wait is transferred to notifier
+ notifier->CurrentPositionL( positionInfo,wait );
+ CleanupStack::Pop( wait );
+ wait->Start();
+ TPosition position;
+ positionInfo.GetPosition( position );
+ aCoordinate.SetCoordinate( position.Latitude(),position.Longitude(),position.Altitude() );
+ CleanupStack::Pop( notifier ); // notifier
+ delete notifier;
+ }
+
+// -----------------------------------------------------------------------------
+// CAdvancedTriggerSupervision::SetProfileToOfflineL
+// -----------------------------------------------------------------------------
+void CAdvancedTriggerSupervision::SetProfileToOfflineL()
+ {
+ // Store current profile id.
+ iCurrentProfile = iProEngine->ActiveProfileId();
+ // Change the active profile to Off-line
+ iProEngine->SetActiveProfileL( EProfileOffLineId );
+ }
+// -----------------------------------------------------------------------------
+// CAdvancedTriggerSupervision::RestoreProfileL
+// -----------------------------------------------------------------------------
+void CAdvancedTriggerSupervision::RestoreProfileL()
+ {
+ iProEngine->SetActiveProfileL( iCurrentProfile );
+ }
+
// -----------------------------------------------------------------------------
// CAdvancedTriggerSupervision::RunMethodL
// Run specified method. Contains also table of test mothods and their names.
@@ -246,6 +291,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -280,10 +330,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
- coordinate.Move(90,2000);
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+ coordinate.Move(90,200);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -314,10 +364,12 @@
TReal32 trigDistance;
TPosition firePosition;
FireInfo = notifier->GetFiredTrigger();
+ iLog->Log(_L("GFT"));
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
+ iLog->Log(_L("GP"));
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance<=1000 && FireInfo.iTriggerId==trigId )
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId )
{
CleanupStack::PopAndDestroy( notifier );
@@ -364,6 +416,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -400,10 +457,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
- coordinate.Move(90,510);
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+ coordinate.Move(90,110);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
CleanupStack::PushL( circle );
@@ -436,8 +493,8 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -485,6 +542,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -521,10 +583,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -557,8 +619,8 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -605,6 +667,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -639,10 +706,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
- coordinate.Move(90,2000);
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+ coordinate.Move(90,200);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -675,8 +742,8 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -724,6 +791,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -760,10 +832,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
- coordinate.Move(90,1010);
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+ coordinate.Move(90,110);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -796,8 +868,9 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
+
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -845,6 +918,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -881,10 +959,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -917,8 +995,9 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
+
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -953,117 +1032,122 @@
TInt CAdvancedTriggerSupervision::ATSTest7L( CStifItemParser& aItem )
{
- iLog->Log(_L("Entering Test1"));
- _LIT( KSimulationFile,"c:\\system\\data\\simu_move1.sps" );
- // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
+
+ iLog->Log(_L("Entering Test1"));
+ _LIT( KSimulationFile,"c:\\system\\data\\simu_move3.sps" );
+// _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
+
+ RLbtServer lbtserver;
+ RLbt lbt;
+ iLog->Log(_L("Before connecting"));
+ User::LeaveIfError( lbtserver.Connect() );
+ CleanupClosePushL( lbtserver );
+ iLog->Log(_L("Connection to RLbtServer Passed "));
+ User::LeaveIfError( lbt.Open(lbtserver));
+ iLog->Log(_L("Subsession opened "));
+ CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
+ //Enable only simpsy
+ EnableSimPSYL();
+ //Clear all triggers
+ TRAP_IGNORE(lbt.DeleteTriggersL()) ;
+ CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
+ iLog->Log(_L("Simulation PSY Repository object created"));
+// User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile0));
+ User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
+ iLog->Log(_L("Simulation input file set "));
+ CleanupStack::PopAndDestroy(repository);
+
+ //Construct a startup trigger
+ CLbtStartupTrigger* trig = CLbtStartupTrigger::NewL();
- RLbtServer lbtserver;
- RLbt lbt;
- iLog->Log(_L("Before connecting"));
- User::LeaveIfError( lbtserver.Connect() );
- CleanupClosePushL( lbtserver );
- iLog->Log(_L("Connection to RLbtServer Passed "));
- User::LeaveIfError( lbt.Open(lbtserver));
- iLog->Log(_L("Subsession opened "));
- CleanupClosePushL( lbt );
- //Enable only simpsy
- EnableSimPSYL();
- //Clear all triggers
- TRAP_IGNORE(lbt.DeleteTriggersL()) ;
-
- CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
- iLog->Log(_L("Simulation PSY Repository object created"));
-// User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile0));
- User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
- iLog->Log(_L("Simulation input file set "));
- CleanupStack::PopAndDestroy(repository);
-
- //Construct a startup trigger
- CLbtStartupTrigger* trig = CLbtStartupTrigger::NewL();
-
- //Push to cleanup stack
- CleanupStack::PushL( trig );
- iLog->Log(_L("Startup Trigger Entry Created "));
-
- // Set Name
- trig->SetNameL(_L("Trigger1"));
- trig->SetNameL(_L("abc"));
- _LIT( KMyTriggerHandlingProcessName, "About.exe");
- // _LIT( KMyTriggerHandlingProcessName, "TestServerStarter.exe");
- // _LIT( KMyTriggerHandlingProcessName, "ConsoleUI.exe");
-
- TSecureId secureid;
- trig->SetProcessId(KMyTriggerHandlingProcessName,secureid);
-
- //set Requestor
- CRequestorBase::TRequestorType ReqType=CRequestorBase::ERequestorUnknown;
- CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
- TBuf<KLbtMaxNameLength> ReqData=_L("");
- trig->SetRequestorL(ReqType,ReqFormat,ReqData);
- // set condition
+ //Push to cleanup stack
+ CleanupStack::PushL( trig );
+ iLog->Log(_L("Startup Trigger Entry Created "));
+
+ // Set Name
+ trig->SetNameL(_L("Trigger1"));
+ trig->SetNameL(_L("abc"));
+ _LIT( KMyTriggerHandlingProcessName, "About.exe");
+// _LIT( KMyTriggerHandlingProcessName, "TestServerStarter.exe");
+// _LIT( KMyTriggerHandlingProcessName, "ConsoleUI.exe");
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
-
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
- CleanupStack::PushL( circle );
+ TSecureId secureid;
+ trig->SetProcessId(KMyTriggerHandlingProcessName,secureid);
+
+ //set Requestor
+CRequestorBase::TRequestorType ReqType=CRequestorBase::ERequestorUnknown;
+CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
+TBuf<KLbtMaxNameLength> ReqData=_L("");
+trig->SetRequestorL(ReqType,ReqFormat,ReqData);
+ // set condition
+
+TCoordinate coordinate;
+GetCurrentCoordinateL( coordinate );
+
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
+ CleanupStack::PushL( circle );
+
+
+ // ownership of circle object transferred to the condition object
+ CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
+ circle,
+ CLbtTriggerConditionArea::EFireOnEnter);
-
- // ownership of circle object transferred to the condition object
- CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
- circle,
- CLbtTriggerConditionArea::EFireOnEnter);
-
- CleanupStack::Pop( circle );
+ CleanupStack::Pop( circle );
+
+ trig->SetCondition(condition); // ownership transferred to object
+
+ TLbtTriggerId trigId;
+
+
+ CTriggerFireObserver* notifier= CTriggerFireObserver::NewL( lbt,coordinate);
+ CleanupStack::PushL( notifier );
+
+ CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
- trig->SetCondition(condition); // ownership transferred to object
-
- TLbtTriggerId trigId;
-
-
- CTriggerFireObserver* notifier= CTriggerFireObserver::NewL( lbt,coordinate);
- CleanupStack::PushL( notifier );
+ notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
+ wait->Start( );
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
+ circle2->SetRadius(500);
+ CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
+ circle2,
+ CLbtTriggerConditionArea::EFireOnEnter);
+
+ trig->SetCondition(condition2);
+ notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
+ wait->Start( );
- CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
-
- notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
- wait->Start( );
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
- circle2->SetRadius(500);
- CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
- circle2,
- CLbtTriggerConditionArea::EFireOnEnter);
-
- trig->SetCondition(condition2);
- notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
- wait->Start( );
-
- iLog->Log(_L("Triggers Created"));
- // notifier->StartNotification( wait );
- // wait->Start( );
- notifier->StartNotification( wait );
- wait->Start( );
- notifier->After(120000000);
- wait->Start( );
- RArray<TLbtTriggerFireInfo> Firedtriggers;
- lbt.GetFiredTriggersL(Firedtriggers);
- if(Firedtriggers.Count()==2)
- {
- CleanupStack::PopAndDestroy( notifier );
- CleanupStack::PopAndDestroy( trig );
- CleanupStack::Pop( &lbt );
- CleanupStack::PopAndDestroy( &lbtserver );
- return KErrNone;
- }
- else
- {
- CleanupStack::PopAndDestroy( notifier );
- CleanupStack::PopAndDestroy( trig );
- CleanupStack::Pop( &lbt );
- CleanupStack::PopAndDestroy( &lbtserver );
- return -99;
- }
-
+ iLog->Log(_L("Triggers Created"));
+ notifier->StartNotification( wait );
+ wait->Start( );
+ wait->Start( );
+ RArray<TLbtTriggerFireInfo> Firedtriggers;
+ lbt.GetFiredTriggersL(Firedtriggers);
+ RestoreProfileL();
+ if(Firedtriggers.Count()==2)
+ {
+ CleanupStack::PopAndDestroy( notifier );
+ CleanupStack::PopAndDestroy( trig );
+ CleanupStack::Pop( &lbt );
+ CleanupStack::PopAndDestroy( &lbtserver );
+ return KErrNone;
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy( notifier );
+ CleanupStack::PopAndDestroy( trig );
+ CleanupStack::Pop( &lbt );
+ CleanupStack::PopAndDestroy( &lbtserver );
+ return -99;
+ }
+
+// return KErrNone;
+
}
@@ -1092,6 +1176,10 @@
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1127,10 +1215,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
CleanupStack::PushL( circle );
@@ -1153,7 +1241,7 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetRadius(500);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -1166,12 +1254,10 @@
iLog->Log(_L("Triggers Created"));
notifier->StartNotification( wait );
wait->Start( );
- // notifier->StartNotification( wait );
- // wait->Start( );
- notifier->After(1200000000);
wait->Start( );
RArray<TLbtTriggerFireInfo> Firedtriggers;
lbt.GetFiredTriggersL(Firedtriggers);
+ RestoreProfileL();
if(Firedtriggers.Count()==2)
{
CleanupStack::PopAndDestroy( notifier );
@@ -1219,6 +1305,10 @@
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1254,10 +1344,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
CleanupStack::PushL( circle );
@@ -1280,8 +1370,7 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
- circle2->SetRadius(250);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,200);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
CLbtTriggerConditionArea::EFireOnEnter);
@@ -1293,11 +1382,8 @@
iLog->Log(_L("Triggers Created"));
notifier->StartNotification( wait );
wait->Start( );
- // notifier->StartNotification( wait );
- // wait->Start( );
+ wait->Start( );
- notifier->After(120000000);
- wait->Start( );
RArray<TLbtTriggerFireInfo> Firedtriggers;
lbt.GetFiredTriggersL(Firedtriggers);
CleanupStack::PopAndDestroy( notifier );
@@ -1305,6 +1391,7 @@
CleanupStack::Pop( &lbt );
CleanupStack::PopAndDestroy( &lbtserver );
//delete wait;
+ RestoreProfileL();
if(Firedtriggers.Count()==2)
{
return KErrNone;
@@ -1341,6 +1428,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1377,9 +1469,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -1402,9 +1495,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
- circle2->SetRadius(500);
- coordinate.Move(90,1000);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
+ coordinate.Move(90,200);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -1417,12 +1509,10 @@
iLog->Log(_L("Triggers Created"));
notifier->StartNotification( wait );
wait->Start( );
- // notifier->StartNotification( wait );
- // wait->Start( );
- notifier->After(120000000);
wait->Start( );
RArray<TLbtTriggerFireInfo> Firedtriggers;
lbt.GetFiredTriggersL(Firedtriggers);
+ RestoreProfileL();
if(Firedtriggers.Count()==2)
{
CleanupStack::PopAndDestroy( notifier );
@@ -1469,6 +1559,11 @@
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1505,9 +1600,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -1531,8 +1627,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- coordinate.Move(90,500);
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(90,100);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -1545,11 +1641,12 @@
iLog->Log(_L("Triggers Created"));
notifier->StartNotification( wait );
wait->Start( );
- notifier->After(120000000);
- wait->Start( );
+ wait->Start( );
+
iLog->Log(_L("Trigger Fired"));
RArray<TLbtTriggerFireInfo> Firedtriggers;
lbt.GetFiredTriggersL(Firedtriggers);
+ RestoreProfileL();
if(Firedtriggers.Count()==2)
{
CleanupStack::PopAndDestroy( notifier );
@@ -1581,7 +1678,7 @@
{
iLog->Log(_L("Entering Test1"));
- _LIT( KSimulationFile,"c:\\system\\data\\test3.nme" );
+ _LIT( KSimulationFile,"c:\\system\\data\\simu_move2.sps" );
// _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
RLbtServer lbtserver;
@@ -1594,6 +1691,10 @@
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1630,9 +1731,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
-
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -1655,21 +1757,18 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- TCoordinate coordinates[10]=
+ TCoordinate movCoordinates( coordinate.Latitude(),coordinate.Longitude() );
+
+ TCoordinate coordinates[4];
+ // Initialise the coordinate
+ for( TInt i=0;i<4;i++ )
{
- TCoordinate(62.5285,23.9385) ,
- TCoordinate(62.5267,23.9636),
- TCoordinate(62.5167,23.9528),
- /* TCoordinate(62.5141,23.9312),
- TCoordinate(62.5296,23.9514),
- TCoordinate(62.5269,23.9331),
- TCoordinate(62.518,23.9401),
- TCoordinate(62.5394,23.9439),
- TCoordinate(62.5275,23.9223),*/
- TCoordinate(62.5331,23.9551)};
+ movCoordinates.Move( 90,300 );
+ coordinates[i] = movCoordinates;
+ }
for(int i=0;i<4;i++)
{
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
// coordinate.Move(45,100);
circle->SetCenter(coordinates[i]);
if(i%2==0)
@@ -1697,11 +1796,15 @@
notifier->StartNotification( wait );
wait->Start( );
- notifier->After(600000000);
- wait->Start( );
+ wait->Start( );
+ wait->Start( );
+ wait->Start( );
+
+
RArray<TLbtTriggerFireInfo> Firedtriggers;
lbt.GetFiredTriggersL(Firedtriggers);
- if(Firedtriggers.Count()==3)
+ RestoreProfileL();
+ if(Firedtriggers.Count()==4)
{
CleanupStack::PopAndDestroy( notifier );
CleanupStack::PopAndDestroy( trig );
@@ -1744,6 +1847,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1778,10 +1886,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
- // TCoordinate coordinate(62.4438,23.9385);
- coordinate.Move(90,5000);
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,10000);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
+ coordinate.Move(90,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,2000);
CleanupStack::PushL( circle );
@@ -1814,8 +1922,8 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
- if( trigDistance<=11500 && FireInfo.iTriggerId==trigId)
+ RestoreProfileL();
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -1864,6 +1972,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -1899,9 +2012,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -1925,8 +2039,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- coordinate.Move(90,2000);
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(90,500);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -1945,6 +2059,7 @@
TReal32 trigDistance;
TPosition firePosition;
FireInfo = notifier->GetFiredTrigger();
+ RestoreProfileL();
if(FireInfo.iTriggerId!=trigId)
{
// notifier->StartNotification( wait );
@@ -1954,7 +2069,7 @@
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
- if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
+ if( FireInfo.iTriggerId==trigId)
{
CleanupStack::PopAndDestroy( notifier );
@@ -2007,6 +2122,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2044,9 +2164,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -2070,8 +2191,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- coordinate.Move(90,2000);
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,800);
+ coordinate.Move(90,300);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -2081,8 +2202,8 @@
notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
wait->Start( );
- coordinate.Move(90,2000);
- CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,700);
+ coordinate.Move(90,400);
+ CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
circle3->SetCenter(coordinate);
CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
circle3,
@@ -2107,6 +2228,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if(FireInfo.iTriggerId ==trigIdtochange)
{
@@ -2158,6 +2280,11 @@
User::LeaveIfError( lbt1.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt1 );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2194,9 +2321,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -2220,8 +2348,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- coordinate.Move(90,10000);
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(90,500);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle2,
@@ -2235,8 +2363,8 @@
// User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
// notifier->After(3000000);
// wait->Start( );
- coordinate.Move(270,5000);
- CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(270,200);
+ CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
circle3->SetCenter(coordinate);
CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
circle3,
@@ -2260,7 +2388,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
-
+ RestoreProfileL();
if(FireInfo.iTriggerId ==trigIdtochange)
{
CleanupStack::PopAndDestroy( notifier );
@@ -2311,6 +2439,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2347,9 +2480,10 @@
trig->SetRequestorL(ReqType,ReqFormat,ReqData);
// set condition
- TCoordinate coordinate(62.5285,23.9385);
+ TCoordinate coordinate;
+ GetCurrentCoordinateL( coordinate );
- CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
+ CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
CleanupStack::PushL( circle );
@@ -2373,8 +2507,8 @@
notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
wait->Start( );
- coordinate.Move(90,5000);
- CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(90,500);
+ CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
circle3->SetCenter(coordinate);
CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
circle3,
@@ -2384,8 +2518,8 @@
notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
wait->Start( );
- coordinate.Move(90,5000);
- CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
+ coordinate.Move(90,500);
+ CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
circle2->SetCenter(coordinate);
CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
circle2,
@@ -2410,6 +2544,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if(FireInfo.iTriggerId ==trigIdtochange)
{
CleanupStack::PopAndDestroy( notifier );
@@ -2458,6 +2593,11 @@
User::LeaveIfError( lbt.Open(lbtserver));
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2561,6 +2701,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if( trigDistance>=1000)
{
_LIT(KProcessToSearch, "About");
@@ -2626,6 +2767,11 @@
User::LeaveIfError( lbt.Open( lbtserver ) );
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2710,6 +2856,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if( trigDistance<=1000 &¬ifier->iTriggerFireCount ==2)
{
CleanupStack::PopAndDestroy( notifier );
@@ -2754,6 +2901,11 @@
User::LeaveIfError( lbt.Open( lbtserver ) );
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2834,6 +2986,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if( trigDistance>=1000 &¬ifier->iTriggerFireCount ==2)
{
CleanupStack::PopAndDestroy( notifier );
@@ -2877,6 +3030,11 @@
User::LeaveIfError( lbt.Open( lbtserver ) );
iLog->Log(_L("Subsession opened "));
CleanupClosePushL( lbt );
+
+ // Set profile to offline mode.This is required to avoid movement detection blocking the
+ // trigger firing.
+ SetProfileToOfflineL();
+
//Enable only simpsy
EnableSimPSYL();
//Clear all triggers
@@ -2956,6 +3114,7 @@
FireInfo = notifier->GetFiredTrigger();
FireInfo.iFiredPositionInfo.GetPosition(firePosition);
firePosition.Distance(coordinate,trigDistance);
+ RestoreProfileL();
if( trigDistance<=1000 &¬ifier->iTriggerFireCount ==2)
{
CleanupStack::PopAndDestroy( notifier );