locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp
changeset 40 16118e24b93b
parent 33 834e27cad510
--- a/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp	Tue Jul 06 14:44:11 2010 +0300
+++ b/locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp	Wed Aug 18 10:11:45 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;
 
@@ -199,6 +202,24 @@
     }
 
 // -----------------------------------------------------------------------------
+// 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.
 // -----------------------------------------------------------------------------
@@ -270,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
@@ -342,7 +368,7 @@
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	iLog->Log(_L("GP"));
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId )
     	{
     
@@ -390,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
@@ -462,7 +493,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId)
     	{
     
@@ -511,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
@@ -583,7 +619,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId)
     	{
   
@@ -631,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
@@ -701,7 +742,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId)
     	{
    
@@ -750,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
@@ -822,7 +868,8 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	
+    	RestoreProfileL();
     	if(  FireInfo.iTriggerId==trigId)
     	{
    
@@ -871,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
@@ -943,7 +995,8 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId)
     	{
   
@@ -994,6 +1047,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
@@ -1071,6 +1128,7 @@
     wait->Start( );
     RArray<TLbtTriggerFireInfo> Firedtriggers;
     lbt.GetFiredTriggersL(Firedtriggers);
+    RestoreProfileL();
     if(Firedtriggers.Count()==2)
     {
         CleanupStack::PopAndDestroy( notifier );
@@ -1118,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
@@ -1195,6 +1257,7 @@
   		wait->Start( );
   		RArray<TLbtTriggerFireInfo> Firedtriggers;
   		lbt.GetFiredTriggersL(Firedtriggers);
+  		RestoreProfileL();
   		if(Firedtriggers.Count()==2)
   		{
   			CleanupStack::PopAndDestroy( notifier );
@@ -1242,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
@@ -1324,6 +1391,7 @@
 	    CleanupStack::Pop( &lbt );
 	    CleanupStack::PopAndDestroy( &lbtserver );
 	    //delete wait;
+	    RestoreProfileL();
   		if(Firedtriggers.Count()==2)
   		{
   			return KErrNone;
@@ -1360,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
@@ -1439,6 +1512,7 @@
   		wait->Start( );
   		RArray<TLbtTriggerFireInfo> Firedtriggers;
   		lbt.GetFiredTriggersL(Firedtriggers);
+  		RestoreProfileL();
   		if(Firedtriggers.Count()==2)
   		{
   			CleanupStack::PopAndDestroy( notifier );
@@ -1485,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
@@ -1567,6 +1646,7 @@
     	iLog->Log(_L("Trigger Fired"));
     	RArray<TLbtTriggerFireInfo> Firedtriggers;
   		lbt.GetFiredTriggersL(Firedtriggers);
+  		RestoreProfileL();
   		if(Firedtriggers.Count()==2)
   		{
   			CleanupStack::PopAndDestroy( notifier );
@@ -1611,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
@@ -1719,6 +1803,7 @@
 
   		RArray<TLbtTriggerFireInfo> Firedtriggers;
   		lbt.GetFiredTriggersL(Firedtriggers);
+  		RestoreProfileL();
   		if(Firedtriggers.Count()==4)
   		{
   			CleanupStack::PopAndDestroy( notifier );
@@ -1762,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
@@ -1832,7 +1922,7 @@
     	FireInfo = notifier->GetFiredTrigger();
        	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
     	if( FireInfo.iTriggerId==trigId)
     	{
   
@@ -1882,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
@@ -1964,6 +2059,7 @@
     	TReal32 trigDistance;
     	TPosition firePosition;
     	FireInfo = notifier->GetFiredTrigger();
+    	RestoreProfileL();
     	if(FireInfo.iTriggerId!=trigId)
     	{
     //	notifier->StartNotification( wait );
@@ -2026,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
@@ -2127,6 +2228,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
+    	RestoreProfileL();
      	if(FireInfo.iTriggerId ==trigIdtochange)
      	{
      		
@@ -2178,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
@@ -2281,7 +2388,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
-     
+    	RestoreProfileL();
      	if(FireInfo.iTriggerId ==trigIdtochange)
      	{
      		CleanupStack::PopAndDestroy( notifier );
@@ -2332,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
@@ -2432,6 +2544,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
+    	RestoreProfileL();
      	if(FireInfo.iTriggerId ==trigIdtochange)
      	{
      		CleanupStack::PopAndDestroy( notifier );
@@ -2480,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
@@ -2583,6 +2701,7 @@
     	FireInfo = notifier->GetFiredTrigger();
     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     	firePosition.Distance(coordinate,trigDistance);
+    	RestoreProfileL();
     	if( trigDistance>=1000)
     	{
     	_LIT(KProcessToSearch, "About"); 
@@ -2648,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
@@ -2732,6 +2856,7 @@
     FireInfo = notifier->GetFiredTrigger();
     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     firePosition.Distance(coordinate,trigDistance);
+    RestoreProfileL();
     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
     {
     	CleanupStack::PopAndDestroy( notifier );
@@ -2776,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
@@ -2856,6 +2986,7 @@
     FireInfo = notifier->GetFiredTrigger();
     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     firePosition.Distance(coordinate,trigDistance);
+    RestoreProfileL();
     if( trigDistance>=1000 &&notifier->iTriggerFireCount ==2)
     {
     	CleanupStack::PopAndDestroy( notifier );
@@ -2899,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
@@ -2978,6 +3114,7 @@
     FireInfo = notifier->GetFiredTrigger();
     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
     firePosition.Distance(coordinate,trigDistance);
+    RestoreProfileL();
     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
     {
     	CleanupStack::PopAndDestroy( notifier );