locationtriggering/tsrc/lbtengine_test/AdvancedTriggerSupervision/src/AdvancedTriggerSupervisionBlocks.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 0 667063e416a2
child 45 6b6920c56e2f
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
    73 
    73 
    74 #include <EPos_MPosModulesObserver.h> 
    74 #include <EPos_MPosModulesObserver.h> 
    75 #include <EPos_CPosModuleIdList.h>
    75 #include <EPos_CPosModuleIdList.h>
    76 #include <EPos_CPosModules.h>
    76 #include <EPos_CPosModules.h>
    77 #include <EPos_CPosModuleUpdate.h> // CPosModuleUpdate
    77 #include <EPos_CPosModuleUpdate.h> // CPosModuleUpdate
       
    78 
       
    79 #include <MProEngEngine.h>
       
    80 #include <Profile.hrh>
    78 // EXTERNAL DATA STRUCTURES
    81 // EXTERNAL DATA STRUCTURES
    79 //extern  ?external_data;
    82 //extern  ?external_data;
    80 
    83 
    81 // EXTERNAL FUNCTION PROTOTYPES  
    84 // EXTERNAL FUNCTION PROTOTYPES  
    82 //extern ?external_function( ?arg_type,?arg_type );
    85 //extern ?external_function( ?arg_type,?arg_type );
   172     CleanupStack::PopAndDestroy( updateParams );
   175     CleanupStack::PopAndDestroy( updateParams );
   173 
   176 
   174     CleanupStack::PopAndDestroy( idList );
   177     CleanupStack::PopAndDestroy( idList );
   175 	CleanupStack::PopAndDestroy( db );
   178 	CleanupStack::PopAndDestroy( db );
   176     }
   179     }
       
   180 
       
   181 // -----------------------------------------------------------------------------
       
   182 // CAdvancedTriggerSupervision::GetCurrentCoordinateL
       
   183 // Returns current position
       
   184 // -----------------------------------------------------------------------------
       
   185 //
       
   186 void CAdvancedTriggerSupervision::GetCurrentCoordinateL( TCoordinate& aCoordinate )
       
   187     {
       
   188     CTriggerFireObserver* notifier= CTriggerFireObserver::NewL();
       
   189     CleanupStack::PushL( notifier );
       
   190     CActiveSchedulerWait* wait = new ( ELeave ) CActiveSchedulerWait;
       
   191     CleanupStack::PushL( wait );
       
   192     TPositionInfo positionInfo;
       
   193     // Ownership of wait is transferred to notifier
       
   194     notifier->CurrentPositionL( positionInfo,wait );
       
   195     CleanupStack::Pop( wait );
       
   196     wait->Start();
       
   197     TPosition position;
       
   198     positionInfo.GetPosition( position );
       
   199     aCoordinate.SetCoordinate( position.Latitude(),position.Longitude(),position.Altitude() );
       
   200     CleanupStack::Pop( notifier ); // notifier
       
   201     delete notifier;
       
   202     }
       
   203 
       
   204 // -----------------------------------------------------------------------------
       
   205 // CAdvancedTriggerSupervision::SetProfileToOfflineL
       
   206 // -----------------------------------------------------------------------------
       
   207 void CAdvancedTriggerSupervision::SetProfileToOfflineL()
       
   208     {
       
   209     // Store current profile id.
       
   210     iCurrentProfile =  iProEngine->ActiveProfileId();
       
   211     // Change the active profile to Off-line
       
   212     iProEngine->SetActiveProfileL( EProfileOffLineId );
       
   213     }
       
   214 // -----------------------------------------------------------------------------
       
   215 // CAdvancedTriggerSupervision::RestoreProfileL
       
   216 // -----------------------------------------------------------------------------
       
   217 void CAdvancedTriggerSupervision::RestoreProfileL()
       
   218     {
       
   219     iProEngine->SetActiveProfileL( iCurrentProfile );
       
   220     }
       
   221 
   177 // -----------------------------------------------------------------------------
   222 // -----------------------------------------------------------------------------
   178 // CAdvancedTriggerSupervision::RunMethodL
   223 // CAdvancedTriggerSupervision::RunMethodL
   179 // Run specified method. Contains also table of test mothods and their names.
   224 // Run specified method. Contains also table of test mothods and their names.
   180 // -----------------------------------------------------------------------------
   225 // -----------------------------------------------------------------------------
   181 //
   226 //
   244         CleanupClosePushL( lbtserver );
   289         CleanupClosePushL( lbtserver );
   245         iLog->Log(_L("Connection to RLbtServer Passed "));
   290         iLog->Log(_L("Connection to RLbtServer Passed "));
   246  	 User::LeaveIfError( lbt.Open(lbtserver));
   291  	 User::LeaveIfError( lbt.Open(lbtserver));
   247  	 iLog->Log(_L("Subsession opened "));
   292  	 iLog->Log(_L("Subsession opened "));
   248  	 CleanupClosePushL( lbt );
   293  	 CleanupClosePushL( lbt );
       
   294  	 
       
   295      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   296      // trigger firing.
       
   297      SetProfileToOfflineL();
       
   298      
   249  	 //Enable only simpsy
   299  	 //Enable only simpsy
   250      EnableSimPSYL();
   300      EnableSimPSYL();
   251      //Clear all triggers
   301      //Clear all triggers
   252  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   302  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   253  	 
   303  	 
   278 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   328 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   279 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   329 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   280 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   330 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   281     	// set condition
   331     	// set condition
   282 
   332 
   283     	TCoordinate coordinate(62.5285,23.9385);
   333     TCoordinate coordinate;
   284    	// TCoordinate coordinate(62.4438,23.9385);
   334     GetCurrentCoordinateL( coordinate );
   285         coordinate.Move(90,2000);
   335     coordinate.Move(90,200);
   286    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   336    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
   287     	CleanupStack::PushL( circle );
   337     	CleanupStack::PushL( circle );
   288     
   338     
   289          
   339          
   290     	// ownership of circle object transferred to the condition object
   340     	// ownership of circle object transferred to the condition object
   291     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   341     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   312     	iLog->Log(_L("Trigger Fired"));
   362     	iLog->Log(_L("Trigger Fired"));
   313     	TLbtTriggerFireInfo FireInfo;
   363     	TLbtTriggerFireInfo FireInfo;
   314     	TReal32 trigDistance;
   364     	TReal32 trigDistance;
   315     	TPosition firePosition;
   365     	TPosition firePosition;
   316     	FireInfo = notifier->GetFiredTrigger();
   366     	FireInfo = notifier->GetFiredTrigger();
       
   367     	iLog->Log(_L("GFT"));
   317     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   368     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
       
   369     	iLog->Log(_L("GP"));
   318     	firePosition.Distance(coordinate,trigDistance);
   370     	firePosition.Distance(coordinate,trigDistance);
   319      
   371     	RestoreProfileL();
   320     	if( trigDistance<=1000 && FireInfo.iTriggerId==trigId )
   372     	if( FireInfo.iTriggerId==trigId )
   321     	{
   373     	{
   322     
   374     
   323 	  	CleanupStack::PopAndDestroy( notifier );
   375 	  	CleanupStack::PopAndDestroy( notifier );
   324 	   CleanupStack::PopAndDestroy( trig );
   376 	   CleanupStack::PopAndDestroy( trig );
   325 	   CleanupStack::Pop( &lbt );
   377 	   CleanupStack::Pop( &lbt );
   362         CleanupClosePushL( lbtserver );
   414         CleanupClosePushL( lbtserver );
   363         iLog->Log(_L("Connection to RLbtServer Passed "));
   415         iLog->Log(_L("Connection to RLbtServer Passed "));
   364  	 User::LeaveIfError( lbt.Open(lbtserver));
   416  	 User::LeaveIfError( lbt.Open(lbtserver));
   365  	 iLog->Log(_L("Subsession opened "));
   417  	 iLog->Log(_L("Subsession opened "));
   366  	 CleanupClosePushL( lbt );
   418  	 CleanupClosePushL( lbt );
       
   419  	 
       
   420      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   421      // trigger firing.
       
   422      SetProfileToOfflineL();
       
   423  	 
   367  	 //Enable only simpsy
   424  	 //Enable only simpsy
   368      EnableSimPSYL();
   425      EnableSimPSYL();
   369      //Clear all triggers
   426      //Clear all triggers
   370  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   427  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   371  	 
   428  	 
   398 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   455 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   399 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   456 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   400 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   457 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   401     	// set condition
   458     	// set condition
   402 
   459 
   403     	TCoordinate coordinate(62.5285,23.9385);
   460     	TCoordinate coordinate;
   404    	// TCoordinate coordinate(62.4438,23.9385);
   461     	GetCurrentCoordinateL( coordinate );
   405     coordinate.Move(90,510);
   462     coordinate.Move(90,110);
   406    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   463    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
   407     	CleanupStack::PushL( circle );
   464     	CleanupStack::PushL( circle );
   408     
   465     
   409          
   466          
   410     	// ownership of circle object transferred to the condition object
   467     	// ownership of circle object transferred to the condition object
   411     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   468     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   434     	TReal32 trigDistance;
   491     	TReal32 trigDistance;
   435     	TPosition firePosition;
   492     	TPosition firePosition;
   436     	FireInfo = notifier->GetFiredTrigger();
   493     	FireInfo = notifier->GetFiredTrigger();
   437     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   494     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   438     	firePosition.Distance(coordinate,trigDistance);
   495     	firePosition.Distance(coordinate,trigDistance);
   439      
   496     	RestoreProfileL();
   440     	if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
   497     	if( FireInfo.iTriggerId==trigId)
   441     	{
   498     	{
   442     
   499     
   443 	  	CleanupStack::PopAndDestroy( notifier );
   500 	  	CleanupStack::PopAndDestroy( notifier );
   444 	   CleanupStack::PopAndDestroy( trig );
   501 	   CleanupStack::PopAndDestroy( trig );
   445 	   CleanupStack::Pop( &lbt );
   502 	   CleanupStack::Pop( &lbt );
   483         CleanupClosePushL( lbtserver );
   540         CleanupClosePushL( lbtserver );
   484         iLog->Log(_L("Connection to RLbtServer Passed "));
   541         iLog->Log(_L("Connection to RLbtServer Passed "));
   485  	 User::LeaveIfError( lbt.Open(lbtserver));
   542  	 User::LeaveIfError( lbt.Open(lbtserver));
   486  	 iLog->Log(_L("Subsession opened "));
   543  	 iLog->Log(_L("Subsession opened "));
   487  	 CleanupClosePushL( lbt );
   544  	 CleanupClosePushL( lbt );
       
   545  	 
       
   546      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   547      // trigger firing.
       
   548      SetProfileToOfflineL();
       
   549  	 
   488  	 //Enable only simpsy
   550  	 //Enable only simpsy
   489      EnableSimPSYL();
   551      EnableSimPSYL();
   490      //Clear all triggers
   552      //Clear all triggers
   491  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   553  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   492  	 
   554  	 
   519 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   581 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   520 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   582 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   521 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   583 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   522     	// set condition
   584     	// set condition
   523 
   585 
   524     	TCoordinate coordinate(62.5285,23.9385);
   586     	TCoordinate coordinate;
   525    	// TCoordinate coordinate(62.4438,23.9385);
   587     	GetCurrentCoordinateL( coordinate );
   526     
   588     
   527    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   589    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
   528     	CleanupStack::PushL( circle );
   590     	CleanupStack::PushL( circle );
   529     
   591     
   530          
   592          
   531     	// ownership of circle object transferred to the condition object
   593     	// ownership of circle object transferred to the condition object
   532     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   594     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   555     	TReal32 trigDistance;
   617     	TReal32 trigDistance;
   556     	TPosition firePosition;
   618     	TPosition firePosition;
   557     	FireInfo = notifier->GetFiredTrigger();
   619     	FireInfo = notifier->GetFiredTrigger();
   558     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   620     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   559     	firePosition.Distance(coordinate,trigDistance);
   621     	firePosition.Distance(coordinate,trigDistance);
   560      
   622     	RestoreProfileL();
   561     	if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
   623     	if( FireInfo.iTriggerId==trigId)
   562     	{
   624     	{
   563   
   625   
   564 	  	CleanupStack::PopAndDestroy( notifier );
   626 	  	CleanupStack::PopAndDestroy( notifier );
   565 	   CleanupStack::PopAndDestroy( trig );
   627 	   CleanupStack::PopAndDestroy( trig );
   566 	   CleanupStack::Pop( &lbt );
   628 	   CleanupStack::Pop( &lbt );
   603         CleanupClosePushL( lbtserver );
   665         CleanupClosePushL( lbtserver );
   604         iLog->Log(_L("Connection to RLbtServer Passed "));
   666         iLog->Log(_L("Connection to RLbtServer Passed "));
   605  	 User::LeaveIfError( lbt.Open(lbtserver));
   667  	 User::LeaveIfError( lbt.Open(lbtserver));
   606  	 iLog->Log(_L("Subsession opened "));
   668  	 iLog->Log(_L("Subsession opened "));
   607  	 CleanupClosePushL( lbt );
   669  	 CleanupClosePushL( lbt );
       
   670  	 
       
   671      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   672      // trigger firing.
       
   673      SetProfileToOfflineL();
       
   674  	 
   608  	 //Enable only simpsy
   675  	 //Enable only simpsy
   609      EnableSimPSYL();
   676      EnableSimPSYL();
   610      //Clear all triggers
   677      //Clear all triggers
   611  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   678  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   612  	 
   679  	 
   637 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   704 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   638 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   705 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   639 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);	
   706 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);	
   640     	// set condition
   707     	// set condition
   641 
   708 
   642     	TCoordinate coordinate(62.5285,23.9385);
   709     TCoordinate coordinate;
   643    	// TCoordinate coordinate(62.4438,23.9385);
   710     GetCurrentCoordinateL( coordinate );
   644     coordinate.Move(90,2000);
   711     coordinate.Move(90,200);
   645    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   712    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
   646     	CleanupStack::PushL( circle );
   713     	CleanupStack::PushL( circle );
   647     
   714     
   648          
   715          
   649     	// ownership of circle object transferred to the condition object
   716     	// ownership of circle object transferred to the condition object
   650     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   717     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   673     	TReal32 trigDistance;
   740     	TReal32 trigDistance;
   674     	TPosition firePosition;
   741     	TPosition firePosition;
   675     	FireInfo = notifier->GetFiredTrigger();
   742     	FireInfo = notifier->GetFiredTrigger();
   676     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   743     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   677     	firePosition.Distance(coordinate,trigDistance);
   744     	firePosition.Distance(coordinate,trigDistance);
   678      
   745     	RestoreProfileL();
   679     	if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
   746     	if( FireInfo.iTriggerId==trigId)
   680     	{
   747     	{
   681    
   748    
   682 	  	CleanupStack::PopAndDestroy( notifier );
   749 	  	CleanupStack::PopAndDestroy( notifier );
   683 	   CleanupStack::PopAndDestroy( trig );
   750 	   CleanupStack::PopAndDestroy( trig );
   684 	   CleanupStack::Pop( &lbt );
   751 	   CleanupStack::Pop( &lbt );
   722         CleanupClosePushL( lbtserver );
   789         CleanupClosePushL( lbtserver );
   723         iLog->Log(_L("Connection to RLbtServer Passed "));
   790         iLog->Log(_L("Connection to RLbtServer Passed "));
   724  	 User::LeaveIfError( lbt.Open(lbtserver));
   791  	 User::LeaveIfError( lbt.Open(lbtserver));
   725  	 iLog->Log(_L("Subsession opened "));
   792  	 iLog->Log(_L("Subsession opened "));
   726  	 CleanupClosePushL( lbt );
   793  	 CleanupClosePushL( lbt );
       
   794  	 
       
   795      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   796      // trigger firing.
       
   797      SetProfileToOfflineL();
       
   798  	 
   727  	 //Enable only simpsy
   799  	 //Enable only simpsy
   728      EnableSimPSYL();
   800      EnableSimPSYL();
   729      //Clear all triggers
   801      //Clear all triggers
   730  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   802  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   731  	 
   803  	 
   758 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   830 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   759 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   831 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   760 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   832 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   761     	// set condition
   833     	// set condition
   762 
   834 
   763     	TCoordinate coordinate(62.5285,23.9385);
   835     TCoordinate coordinate;
   764    	// TCoordinate coordinate(62.4438,23.9385);
   836     GetCurrentCoordinateL( coordinate );
   765     coordinate.Move(90,1010);
   837     coordinate.Move(90,110);
   766    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   838    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
   767     	CleanupStack::PushL( circle );
   839     	CleanupStack::PushL( circle );
   768     
   840     
   769          
   841          
   770     	// ownership of circle object transferred to the condition object
   842     	// ownership of circle object transferred to the condition object
   771     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   843     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   794     	TReal32 trigDistance;
   866     	TReal32 trigDistance;
   795     	TPosition firePosition;
   867     	TPosition firePosition;
   796     	FireInfo = notifier->GetFiredTrigger();
   868     	FireInfo = notifier->GetFiredTrigger();
   797     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   869     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   798     	firePosition.Distance(coordinate,trigDistance);
   870     	firePosition.Distance(coordinate,trigDistance);
   799      
   871     	
   800     	if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
   872     	RestoreProfileL();
       
   873     	if(  FireInfo.iTriggerId==trigId)
   801     	{
   874     	{
   802    
   875    
   803 	  	CleanupStack::PopAndDestroy( notifier );
   876 	  	CleanupStack::PopAndDestroy( notifier );
   804 	   CleanupStack::PopAndDestroy( trig );
   877 	   CleanupStack::PopAndDestroy( trig );
   805 	   CleanupStack::Pop( &lbt );
   878 	   CleanupStack::Pop( &lbt );
   843         CleanupClosePushL( lbtserver );
   916         CleanupClosePushL( lbtserver );
   844         iLog->Log(_L("Connection to RLbtServer Passed "));
   917         iLog->Log(_L("Connection to RLbtServer Passed "));
   845  	 User::LeaveIfError( lbt.Open(lbtserver));
   918  	 User::LeaveIfError( lbt.Open(lbtserver));
   846  	 iLog->Log(_L("Subsession opened "));
   919  	 iLog->Log(_L("Subsession opened "));
   847  	 CleanupClosePushL( lbt );
   920  	 CleanupClosePushL( lbt );
       
   921  	 
       
   922      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
   923      // trigger firing.
       
   924      SetProfileToOfflineL();
       
   925  	 
   848  	 //Enable only simpsy
   926  	 //Enable only simpsy
   849      EnableSimPSYL();
   927      EnableSimPSYL();
   850      //Clear all triggers
   928      //Clear all triggers
   851  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   929  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
   852  	 
   930  	 
   879 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   957 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
   880 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   958 	TBuf<KLbtMaxNameLength> ReqData=_L("");
   881 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   959 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
   882     	// set condition
   960     	// set condition
   883 
   961 
   884     	TCoordinate coordinate(62.5285,23.9385);
   962     TCoordinate coordinate;
   885    	// TCoordinate coordinate(62.4438,23.9385);
   963     GetCurrentCoordinateL( coordinate );
   886     
   964     
   887    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
   965    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
   888     	CleanupStack::PushL( circle );
   966     	CleanupStack::PushL( circle );
   889     
   967     
   890          
   968          
   891     	// ownership of circle object transferred to the condition object
   969     	// ownership of circle object transferred to the condition object
   892     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   970     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
   915     	TReal32 trigDistance;
   993     	TReal32 trigDistance;
   916     	TPosition firePosition;
   994     	TPosition firePosition;
   917     	FireInfo = notifier->GetFiredTrigger();
   995     	FireInfo = notifier->GetFiredTrigger();
   918     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   996     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
   919     	firePosition.Distance(coordinate,trigDistance);
   997     	firePosition.Distance(coordinate,trigDistance);
   920      
   998     	
   921     	if( trigDistance>=1000 && FireInfo.iTriggerId==trigId)
   999     	RestoreProfileL();
       
  1000     	if( FireInfo.iTriggerId==trigId)
   922     	{
  1001     	{
   923   
  1002   
   924 	  	CleanupStack::PopAndDestroy( notifier );
  1003 	  	CleanupStack::PopAndDestroy( notifier );
   925 	   CleanupStack::PopAndDestroy( trig );
  1004 	   CleanupStack::PopAndDestroy( trig );
   926 	   CleanupStack::Pop( &lbt );
  1005 	   CleanupStack::Pop( &lbt );
   951 // -----------------------------------------------------------------------------
  1030 // -----------------------------------------------------------------------------
   952 //Nested triggers - one trigger inside another
  1031 //Nested triggers - one trigger inside another
   953 TInt CAdvancedTriggerSupervision::ATSTest7L( CStifItemParser& aItem )
  1032 TInt CAdvancedTriggerSupervision::ATSTest7L( CStifItemParser& aItem )
   954     {
  1033     {
   955 
  1034 
       
  1035 
       
  1036     iLog->Log(_L("Entering Test1"));
       
  1037   _LIT( KSimulationFile,"c:\\system\\data\\simu_move3.sps" );
       
  1038 // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
       
  1039 
       
  1040  RLbtServer lbtserver;
       
  1041  RLbt lbt;
       
  1042  iLog->Log(_L("Before connecting"));
       
  1043  User::LeaveIfError( lbtserver.Connect() );
       
  1044     CleanupClosePushL( lbtserver );
       
  1045     iLog->Log(_L("Connection to RLbtServer Passed "));
       
  1046  User::LeaveIfError( lbt.Open(lbtserver));
       
  1047  iLog->Log(_L("Subsession opened "));
       
  1048  CleanupClosePushL( lbt );
       
  1049  
       
  1050      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1051      // trigger firing.
       
  1052      SetProfileToOfflineL();
       
  1053      
       
  1054  //Enable only simpsy
       
  1055  EnableSimPSYL();
       
  1056  //Clear all triggers
       
  1057  TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
       
  1058  CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
       
  1059  iLog->Log(_L("Simulation PSY Repository object created"));
       
  1060 //   User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile0));
       
  1061  User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
       
  1062  iLog->Log(_L("Simulation input file set "));
       
  1063  CleanupStack::PopAndDestroy(repository);
       
  1064  
       
  1065   //Construct a startup trigger
       
  1066      CLbtStartupTrigger* trig = CLbtStartupTrigger::NewL();
       
  1067 
       
  1068     //Push to cleanup stack
       
  1069     CleanupStack::PushL( trig );
       
  1070     iLog->Log(_L("Startup Trigger Entry Created "));
       
  1071 
       
  1072     // Set Name
       
  1073     trig->SetNameL(_L("Trigger1"));
       
  1074     trig->SetNameL(_L("abc"));
       
  1075     _LIT( KMyTriggerHandlingProcessName, "About.exe");
       
  1076 //  _LIT( KMyTriggerHandlingProcessName, "TestServerStarter.exe");
       
  1077 // _LIT( KMyTriggerHandlingProcessName, "ConsoleUI.exe");
       
  1078 
       
  1079     TSecureId secureid;
       
  1080     trig->SetProcessId(KMyTriggerHandlingProcessName,secureid);
       
  1081    
       
  1082     //set Requestor     
       
  1083 CRequestorBase::TRequestorType ReqType=CRequestorBase::ERequestorUnknown;
       
  1084 CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
       
  1085 TBuf<KLbtMaxNameLength> ReqData=_L("");
       
  1086 trig->SetRequestorL(ReqType,ReqFormat,ReqData);
       
  1087     // set condition
       
  1088 
       
  1089 TCoordinate coordinate;
       
  1090 GetCurrentCoordinateL( coordinate );
       
  1091 
       
  1092     CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
       
  1093     CleanupStack::PushL( circle );
       
  1094 
       
  1095      
       
  1096     // ownership of circle object transferred to the condition object
       
  1097     CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
       
  1098                                             circle,
       
  1099                                             CLbtTriggerConditionArea::EFireOnEnter);
       
  1100     
       
  1101     CleanupStack::Pop( circle );
       
  1102 
       
  1103     trig->SetCondition(condition); // ownership transferred to object
       
  1104 
       
  1105     TLbtTriggerId trigId;
       
  1106     
       
  1107     
       
  1108     CTriggerFireObserver* notifier= CTriggerFireObserver::NewL( lbt,coordinate);
       
  1109     CleanupStack::PushL( notifier );
       
  1110 
       
  1111     CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
       
  1112     
       
  1113     notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
       
  1114     wait->Start( );
       
  1115     CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
       
  1116     circle2->SetRadius(500);
       
  1117     CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
       
  1118                                             circle2,
       
  1119                                             CLbtTriggerConditionArea::EFireOnEnter);
       
  1120     
       
  1121     trig->SetCondition(condition2);
       
  1122     notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
       
  1123     wait->Start( );
       
  1124     
       
  1125     iLog->Log(_L("Triggers Created"));
       
  1126     notifier->StartNotification( wait );
       
  1127     wait->Start( );
       
  1128     wait->Start( );
       
  1129     RArray<TLbtTriggerFireInfo> Firedtriggers;
       
  1130     lbt.GetFiredTriggersL(Firedtriggers);
       
  1131     RestoreProfileL();
       
  1132     if(Firedtriggers.Count()==2)
       
  1133     {
       
  1134         CleanupStack::PopAndDestroy( notifier );
       
  1135    CleanupStack::PopAndDestroy( trig );
       
  1136    CleanupStack::Pop( &lbt );
       
  1137    CleanupStack::PopAndDestroy( &lbtserver );
       
  1138         return KErrNone;
       
  1139     }
       
  1140     else
       
  1141     {
       
  1142         CleanupStack::PopAndDestroy( notifier );
       
  1143    CleanupStack::PopAndDestroy( trig );
       
  1144    CleanupStack::Pop( &lbt );
       
  1145    CleanupStack::PopAndDestroy( &lbtserver );
       
  1146         return -99;
       
  1147     }
       
  1148 
       
  1149 //  return KErrNone; 
       
  1150 
       
  1151     }
       
  1152 
       
  1153 
       
  1154 // -----------------------------------------------------------------------------
       
  1155 // CAdvancedTriggerSupervision::ATSTest8
       
  1156 // Example test method function.
       
  1157 // (other items were commented in a header).
       
  1158 // -----------------------------------------------------------------------------
       
  1159 //Nested triggers - same as above - in this case inside is an exit and outside is an entry 
       
  1160 
       
  1161 //trigger
       
  1162 TInt CAdvancedTriggerSupervision::ATSTest8L( CStifItemParser& aItem )
       
  1163     {
       
  1164 
   956     	iLog->Log(_L("Entering Test1"));
  1165     	iLog->Log(_L("Entering Test1"));
   957       _LIT( KSimulationFile,"c:\\system\\data\\simu_move1.sps" );
  1166       _LIT( KSimulationFile,"c:\\system\\data\\simu_move3.sps" );
   958  // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
  1167  // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
   959 
  1168 
   960  	 RLbtServer lbtserver;
  1169  	 RLbtServer lbtserver;
   961  	 RLbt lbt;
  1170  	 RLbt lbt;
   962  	 iLog->Log(_L("Before connecting"));
  1171  	 iLog->Log(_L("Before connecting"));
   964         CleanupClosePushL( lbtserver );
  1173         CleanupClosePushL( lbtserver );
   965         iLog->Log(_L("Connection to RLbtServer Passed "));
  1174         iLog->Log(_L("Connection to RLbtServer Passed "));
   966  	 User::LeaveIfError( lbt.Open(lbtserver));
  1175  	 User::LeaveIfError( lbt.Open(lbtserver));
   967  	 iLog->Log(_L("Subsession opened "));
  1176  	 iLog->Log(_L("Subsession opened "));
   968  	 CleanupClosePushL( lbt );
  1177  	 CleanupClosePushL( lbt );
   969  	 //Enable only simpsy
  1178  	 
   970      EnableSimPSYL();
  1179      // Set profile to offline mode.This is required to avoid movement detection blocking the 
   971      //Clear all triggers
  1180      // trigger firing.
   972  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1181      SetProfileToOfflineL();
   973  	 
       
   974  	 CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
       
   975  	 iLog->Log(_L("Simulation PSY Repository object created"));
       
   976 //	 User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile0));
       
   977 	 User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
       
   978 	 iLog->Log(_L("Simulation input file set "));
       
   979 	 CleanupStack::PopAndDestroy(repository);
       
   980 	 
       
   981 	  //Construct a startup trigger
       
   982     	 CLbtStartupTrigger* trig = CLbtStartupTrigger::NewL();
       
   983     
       
   984     	//Push to cleanup stack
       
   985     	CleanupStack::PushL( trig );
       
   986     	iLog->Log(_L("Startup Trigger Entry Created "));
       
   987     
       
   988     	// Set Name
       
   989     	trig->SetNameL(_L("Trigger1"));
       
   990     	trig->SetNameL(_L("abc"));
       
   991     	_LIT( KMyTriggerHandlingProcessName, "About.exe");
       
   992    	//  _LIT( KMyTriggerHandlingProcessName, "TestServerStarter.exe");
       
   993    	// _LIT( KMyTriggerHandlingProcessName, "ConsoleUI.exe");
       
   994     
       
   995     	TSecureId secureid;
       
   996     	trig->SetProcessId(KMyTriggerHandlingProcessName,secureid);
       
   997        
       
   998     	//set Requestor     
       
   999     CRequestorBase::TRequestorType ReqType=CRequestorBase::ERequestorUnknown;
       
  1000 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
       
  1001 	TBuf<KLbtMaxNameLength> ReqData=_L("");
       
  1002 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
       
  1003     	// set condition
       
  1004 
       
  1005     	TCoordinate coordinate(62.5285,23.9385);
       
  1006    	// TCoordinate coordinate(62.4438,23.9385);
       
  1007     
       
  1008    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
       
  1009     	CleanupStack::PushL( circle );
       
  1010     
       
  1011          
       
  1012     	// ownership of circle object transferred to the condition object
       
  1013     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
       
  1014                                                 circle,
       
  1015                                                 CLbtTriggerConditionArea::EFireOnEnter);
       
  1016         
       
  1017     	CleanupStack::Pop( circle );
       
  1018     
       
  1019     	trig->SetCondition(condition); // ownership transferred to object
       
  1020 
       
  1021     	TLbtTriggerId trigId;
       
  1022         
       
  1023         
       
  1024     	CTriggerFireObserver* notifier= CTriggerFireObserver::NewL( lbt,coordinate);
       
  1025     	CleanupStack::PushL( notifier );
       
  1026     
       
  1027     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
       
  1028         
       
  1029     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
       
  1030     	wait->Start( );
       
  1031     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
       
  1032     	circle2->SetRadius(500);
       
  1033     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
       
  1034                                                 circle2,
       
  1035                                                 CLbtTriggerConditionArea::EFireOnEnter);
       
  1036     	
       
  1037     	trig->SetCondition(condition2);
       
  1038     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
       
  1039     	wait->Start( );
       
  1040     	
       
  1041     	iLog->Log(_L("Triggers Created"));
       
  1042    // 	notifier->StartNotification( wait );
       
  1043   	//	wait->Start( );
       
  1044   		notifier->StartNotification( wait );
       
  1045   		wait->Start( );
       
  1046 	  	notifier->After(120000000);
       
  1047 	  	wait->Start( );
       
  1048   		RArray<TLbtTriggerFireInfo> Firedtriggers;
       
  1049   		lbt.GetFiredTriggersL(Firedtriggers);
       
  1050   		if(Firedtriggers.Count()==2)
       
  1051   		{
       
  1052   				CleanupStack::PopAndDestroy( notifier );
       
  1053 	   CleanupStack::PopAndDestroy( trig );
       
  1054 	   CleanupStack::Pop( &lbt );
       
  1055 	   CleanupStack::PopAndDestroy( &lbtserver );
       
  1056   			return KErrNone;
       
  1057   		}
       
  1058   		else
       
  1059   		{
       
  1060   				CleanupStack::PopAndDestroy( notifier );
       
  1061 	   CleanupStack::PopAndDestroy( trig );
       
  1062 	   CleanupStack::Pop( &lbt );
       
  1063 	   CleanupStack::PopAndDestroy( &lbtserver );
       
  1064   			return -99;
       
  1065   		}
       
  1066     	
       
  1067     }
       
  1068 
       
  1069 
       
  1070 // -----------------------------------------------------------------------------
       
  1071 // CAdvancedTriggerSupervision::ATSTest8
       
  1072 // Example test method function.
       
  1073 // (other items were commented in a header).
       
  1074 // -----------------------------------------------------------------------------
       
  1075 //Nested triggers - same as above - in this case inside is an exit and outside is an entry 
       
  1076 
       
  1077 //trigger
       
  1078 TInt CAdvancedTriggerSupervision::ATSTest8L( CStifItemParser& aItem )
       
  1079     {
       
  1080 
       
  1081     	iLog->Log(_L("Entering Test1"));
       
  1082       _LIT( KSimulationFile,"c:\\system\\data\\simu_move3.sps" );
       
  1083  // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
       
  1084 
       
  1085  	 RLbtServer lbtserver;
       
  1086  	 RLbt lbt;
       
  1087  	 iLog->Log(_L("Before connecting"));
       
  1088  	 User::LeaveIfError( lbtserver.Connect() );
       
  1089         CleanupClosePushL( lbtserver );
       
  1090         iLog->Log(_L("Connection to RLbtServer Passed "));
       
  1091  	 User::LeaveIfError( lbt.Open(lbtserver));
       
  1092  	 iLog->Log(_L("Subsession opened "));
       
  1093  	 CleanupClosePushL( lbt );
       
  1094  	 
  1182  	 
  1095  	 //Enable only simpsy
  1183  	 //Enable only simpsy
  1096      EnableSimPSYL();
  1184      EnableSimPSYL();
  1097      //Clear all triggers
  1185      //Clear all triggers
  1098  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1186  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1125 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1213 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1126 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1214 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1127 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1215 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1128     	// set condition
  1216     	// set condition
  1129 
  1217 
  1130     	TCoordinate coordinate(62.5285,23.9385);
  1218     TCoordinate coordinate;
  1131    	// TCoordinate coordinate(62.4438,23.9385);
  1219     GetCurrentCoordinateL( coordinate );
  1132     
  1220     
  1133    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
  1221    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
  1134     	CleanupStack::PushL( circle );
  1222     	CleanupStack::PushL( circle );
  1135     
  1223     
  1136          
  1224          
  1137     	// ownership of circle object transferred to the condition object
  1225     	// ownership of circle object transferred to the condition object
  1138     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1226     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1151     
  1239     
  1152     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1240     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1153         
  1241         
  1154     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1242     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1155     	wait->Start( );
  1243     	wait->Start( );
  1156     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  1244     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  1157     	circle2->SetRadius(500);
  1245     	circle2->SetRadius(500);
  1158     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1246     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1159                                                 circle2,
  1247                                                 circle2,
  1160                                                 CLbtTriggerConditionArea::EFireOnExit);
  1248                                                 CLbtTriggerConditionArea::EFireOnExit);
  1161     	
  1249     	
  1164     	wait->Start( );
  1252     	wait->Start( );
  1165     	
  1253     	
  1166     	iLog->Log(_L("Triggers Created"));
  1254     	iLog->Log(_L("Triggers Created"));
  1167     	notifier->StartNotification( wait );
  1255     	notifier->StartNotification( wait );
  1168   		wait->Start( );
  1256   		wait->Start( );
  1169   	//	notifier->StartNotification( wait );
       
  1170   	//	wait->Start( );
       
  1171   		notifier->After(1200000000);
       
  1172   		wait->Start( );
  1257   		wait->Start( );
  1173   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1258   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1174   		lbt.GetFiredTriggersL(Firedtriggers);
  1259   		lbt.GetFiredTriggersL(Firedtriggers);
       
  1260   		RestoreProfileL();
  1175   		if(Firedtriggers.Count()==2)
  1261   		if(Firedtriggers.Count()==2)
  1176   		{
  1262   		{
  1177   			CleanupStack::PopAndDestroy( notifier );
  1263   			CleanupStack::PopAndDestroy( notifier );
  1178 	   CleanupStack::PopAndDestroy( trig );
  1264 	   CleanupStack::PopAndDestroy( trig );
  1179 	   CleanupStack::Pop( &lbt );
  1265 	   CleanupStack::Pop( &lbt );
  1217         iLog->Log(_L("Connection to RLbtServer Passed "));
  1303         iLog->Log(_L("Connection to RLbtServer Passed "));
  1218  	 User::LeaveIfError( lbt.Open(lbtserver));
  1304  	 User::LeaveIfError( lbt.Open(lbtserver));
  1219  	 iLog->Log(_L("Subsession opened "));
  1305  	 iLog->Log(_L("Subsession opened "));
  1220  	 CleanupClosePushL( lbt );
  1306  	 CleanupClosePushL( lbt );
  1221  	 
  1307  	 
       
  1308      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1309      // trigger firing.
       
  1310      SetProfileToOfflineL();
       
  1311  	 
  1222  	 //Enable only simpsy
  1312  	 //Enable only simpsy
  1223      EnableSimPSYL();
  1313      EnableSimPSYL();
  1224      //Clear all triggers
  1314      //Clear all triggers
  1225  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1315  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1226  	 CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
  1316  	 CRepository* repository = CRepository::NewLC(KCRUidSimulationPSY);
  1252 		CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1342 		CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1253 		TBuf<KLbtMaxNameLength> ReqData=_L("");
  1343 		TBuf<KLbtMaxNameLength> ReqData=_L("");
  1254 		trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1344 		trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1255     	// set condition
  1345     	// set condition
  1256 
  1346 
  1257     	TCoordinate coordinate(62.5285,23.9385);
  1347         TCoordinate coordinate;
  1258    	// TCoordinate coordinate(62.4438,23.9385);
  1348         GetCurrentCoordinateL( coordinate );
  1259     
  1349     
  1260    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
  1350    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,200);
  1261     	CleanupStack::PushL( circle );
  1351     	CleanupStack::PushL( circle );
  1262     
  1352     
  1263          
  1353          
  1264     	// ownership of circle object transferred to the condition object
  1354     	// ownership of circle object transferred to the condition object
  1265     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1355     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1278     
  1368     
  1279     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1369     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1280         
  1370         
  1281     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1371     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1282     	wait->Start( );
  1372     	wait->Start( );
  1283     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  1373     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,200);
  1284     	circle2->SetRadius(250);
       
  1285     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1374     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1286                                                 circle2,
  1375                                                 circle2,
  1287                                                 CLbtTriggerConditionArea::EFireOnEnter);
  1376                                                 CLbtTriggerConditionArea::EFireOnEnter);
  1288     	
  1377     	
  1289     	trig->SetCondition(condition2);
  1378     	trig->SetCondition(condition2);
  1291     	wait->Start( );
  1380     	wait->Start( );
  1292     	
  1381     	
  1293     	iLog->Log(_L("Triggers Created"));
  1382     	iLog->Log(_L("Triggers Created"));
  1294     	notifier->StartNotification( wait );
  1383     	notifier->StartNotification( wait );
  1295   		wait->Start( );
  1384   		wait->Start( );
  1296   	//	notifier->StartNotification( wait );
  1385   	    wait->Start( );
  1297   	//	wait->Start( );
       
  1298   		
  1386   		
  1299   		notifier->After(120000000);
       
  1300   		wait->Start( );
       
  1301   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1387   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1302   		lbt.GetFiredTriggersL(Firedtriggers);
  1388   		lbt.GetFiredTriggersL(Firedtriggers);
  1303   		CleanupStack::PopAndDestroy( notifier );
  1389   		CleanupStack::PopAndDestroy( notifier );
  1304 	    CleanupStack::PopAndDestroy( trig );
  1390 	    CleanupStack::PopAndDestroy( trig );
  1305 	    CleanupStack::Pop( &lbt );
  1391 	    CleanupStack::Pop( &lbt );
  1306 	    CleanupStack::PopAndDestroy( &lbtserver );
  1392 	    CleanupStack::PopAndDestroy( &lbtserver );
  1307 	    //delete wait;
  1393 	    //delete wait;
       
  1394 	    RestoreProfileL();
  1308   		if(Firedtriggers.Count()==2)
  1395   		if(Firedtriggers.Count()==2)
  1309   		{
  1396   		{
  1310   			return KErrNone;
  1397   			return KErrNone;
  1311   		}
  1398   		}
  1312   		else 
  1399   		else 
  1339         CleanupClosePushL( lbtserver );
  1426         CleanupClosePushL( lbtserver );
  1340         iLog->Log(_L("Connection to RLbtServer Passed "));
  1427         iLog->Log(_L("Connection to RLbtServer Passed "));
  1341  	 User::LeaveIfError( lbt.Open(lbtserver));
  1428  	 User::LeaveIfError( lbt.Open(lbtserver));
  1342  	 iLog->Log(_L("Subsession opened "));
  1429  	 iLog->Log(_L("Subsession opened "));
  1343  	 CleanupClosePushL( lbt );
  1430  	 CleanupClosePushL( lbt );
       
  1431  	 
       
  1432      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1433      // trigger firing.
       
  1434      SetProfileToOfflineL();
       
  1435  	 
  1344  	 //Enable only simpsy
  1436  	 //Enable only simpsy
  1345      EnableSimPSYL();
  1437      EnableSimPSYL();
  1346      //Clear all triggers
  1438      //Clear all triggers
  1347  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1439  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1348  	 
  1440  	 
  1375 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1467 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1376 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1468 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1377 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1469 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1378     	// set condition
  1470     	// set condition
  1379 
  1471 
  1380     	TCoordinate coordinate(62.5285,23.9385);
  1472     TCoordinate coordinate;
       
  1473     GetCurrentCoordinateL( coordinate );
  1381    		    
  1474    		    
  1382    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
  1475    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  1383     	CleanupStack::PushL( circle );
  1476     	CleanupStack::PushL( circle );
  1384     
  1477     
  1385          
  1478          
  1386     	// ownership of circle object transferred to the condition object
  1479     	// ownership of circle object transferred to the condition object
  1387     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1480     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1400     
  1493     
  1401     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1494     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1402         
  1495         
  1403     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1496     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1404     	wait->Start( );
  1497     	wait->Start( );
  1405     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  1498     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  1406     	circle2->SetRadius(500);
  1499     	coordinate.Move(90,200);
  1407     	coordinate.Move(90,1000);
       
  1408     	circle2->SetCenter(coordinate);
  1500     	circle2->SetCenter(coordinate);
  1409     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1501     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1410                                                 circle2,
  1502                                                 circle2,
  1411                                                 CLbtTriggerConditionArea::EFireOnExit);
  1503                                                 CLbtTriggerConditionArea::EFireOnExit);
  1412     	
  1504     	
  1415     	wait->Start( );
  1507     	wait->Start( );
  1416     	
  1508     	
  1417     	iLog->Log(_L("Triggers Created"));
  1509     	iLog->Log(_L("Triggers Created"));
  1418     	notifier->StartNotification( wait );
  1510     	notifier->StartNotification( wait );
  1419   		wait->Start( );
  1511   		wait->Start( );
  1420   	//	notifier->StartNotification( wait );
       
  1421   	//	wait->Start( );
       
  1422   		notifier->After(120000000);
       
  1423   		wait->Start( );
  1512   		wait->Start( );
  1424   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1513   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1425   		lbt.GetFiredTriggersL(Firedtriggers);
  1514   		lbt.GetFiredTriggersL(Firedtriggers);
       
  1515   		RestoreProfileL();
  1426   		if(Firedtriggers.Count()==2)
  1516   		if(Firedtriggers.Count()==2)
  1427   		{
  1517   		{
  1428   			CleanupStack::PopAndDestroy( notifier );
  1518   			CleanupStack::PopAndDestroy( notifier );
  1429 	   CleanupStack::PopAndDestroy( trig );
  1519 	   CleanupStack::PopAndDestroy( trig );
  1430 	   CleanupStack::Pop( &lbt );
  1520 	   CleanupStack::Pop( &lbt );
  1467         iLog->Log(_L("Connection to RLbtServer Passed "));
  1557         iLog->Log(_L("Connection to RLbtServer Passed "));
  1468  	 User::LeaveIfError( lbt.Open(lbtserver));
  1558  	 User::LeaveIfError( lbt.Open(lbtserver));
  1469  	 iLog->Log(_L("Subsession opened "));
  1559  	 iLog->Log(_L("Subsession opened "));
  1470  	 CleanupClosePushL( lbt );
  1560  	 CleanupClosePushL( lbt );
  1471  	 
  1561  	 
       
  1562  	 
       
  1563      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1564      // trigger firing.
       
  1565      SetProfileToOfflineL();
       
  1566  	 
  1472  	 //Enable only simpsy
  1567  	 //Enable only simpsy
  1473      EnableSimPSYL();
  1568      EnableSimPSYL();
  1474      //Clear all triggers
  1569      //Clear all triggers
  1475  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1570  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1476  	 
  1571  	 
  1503 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1598 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1504 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1599 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1505 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1600 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1506     	// set condition
  1601     	// set condition
  1507 
  1602 
  1508     	TCoordinate coordinate(62.5285,23.9385);
  1603     TCoordinate coordinate;
       
  1604     GetCurrentCoordinateL( coordinate );
  1509    		    
  1605    		    
  1510    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
  1606    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  1511     	CleanupStack::PushL( circle );
  1607     	CleanupStack::PushL( circle );
  1512     
  1608     
  1513          
  1609          
  1514     	// ownership of circle object transferred to the condition object
  1610     	// ownership of circle object transferred to the condition object
  1515     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1611     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1529     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1625     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1530         
  1626         
  1531     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1627     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1532     	wait->Start( );
  1628     	wait->Start( );
  1533     	
  1629     	
  1534        	coordinate.Move(90,500);
  1630        	coordinate.Move(90,100);
  1535        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  1631        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  1536     	circle2->SetCenter(coordinate);
  1632     	circle2->SetCenter(coordinate);
  1537     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1633     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1538                                                 circle2,
  1634                                                 circle2,
  1539                                                 CLbtTriggerConditionArea::EFireOnEnter);
  1635                                                 CLbtTriggerConditionArea::EFireOnEnter);
  1540     	
  1636     	
  1543     	wait->Start( );
  1639     	wait->Start( );
  1544     	
  1640     	
  1545     	iLog->Log(_L("Triggers Created"));
  1641     	iLog->Log(_L("Triggers Created"));
  1546     	notifier->StartNotification( wait );
  1642     	notifier->StartNotification( wait );
  1547   		wait->Start( );
  1643   		wait->Start( );
  1548   		notifier->After(120000000);
  1644         wait->Start( );
  1549   		wait->Start( );
  1645 
  1550     	iLog->Log(_L("Trigger Fired"));
  1646     	iLog->Log(_L("Trigger Fired"));
  1551     	RArray<TLbtTriggerFireInfo> Firedtriggers;
  1647     	RArray<TLbtTriggerFireInfo> Firedtriggers;
  1552   		lbt.GetFiredTriggersL(Firedtriggers);
  1648   		lbt.GetFiredTriggersL(Firedtriggers);
       
  1649   		RestoreProfileL();
  1553   		if(Firedtriggers.Count()==2)
  1650   		if(Firedtriggers.Count()==2)
  1554   		{
  1651   		{
  1555   			CleanupStack::PopAndDestroy( notifier );
  1652   			CleanupStack::PopAndDestroy( notifier );
  1556 	   CleanupStack::PopAndDestroy( trig );
  1653 	   CleanupStack::PopAndDestroy( trig );
  1557 	   CleanupStack::Pop( &lbt );
  1654 	   CleanupStack::Pop( &lbt );
  1579 //Testing of cluster of triggers
  1676 //Testing of cluster of triggers
  1580 TInt CAdvancedTriggerSupervision::ATSTest12L( CStifItemParser& aItem )
  1677 TInt CAdvancedTriggerSupervision::ATSTest12L( CStifItemParser& aItem )
  1581     {
  1678     {
  1582 
  1679 
  1583         	iLog->Log(_L("Entering Test1"));
  1680         	iLog->Log(_L("Entering Test1"));
  1584       _LIT( KSimulationFile,"c:\\system\\data\\test3.nme" );
  1681      _LIT( KSimulationFile,"c:\\system\\data\\simu_move2.sps" );
  1585  // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
  1682  // _LIT( KSimulationFile0,"c:\\system\\data\\simu_move2.sps" );
  1586 
  1683 
  1587  	 RLbtServer lbtserver;
  1684  	 RLbtServer lbtserver;
  1588  	 RLbt lbt;
  1685  	 RLbt lbt;
  1589  	 iLog->Log(_L("Before connecting"));
  1686  	 iLog->Log(_L("Before connecting"));
  1592         iLog->Log(_L("Connection to RLbtServer Passed "));
  1689         iLog->Log(_L("Connection to RLbtServer Passed "));
  1593  	 User::LeaveIfError( lbt.Open(lbtserver));
  1690  	 User::LeaveIfError( lbt.Open(lbtserver));
  1594  	 iLog->Log(_L("Subsession opened "));
  1691  	 iLog->Log(_L("Subsession opened "));
  1595  	 CleanupClosePushL( lbt );
  1692  	 CleanupClosePushL( lbt );
  1596  	 
  1693  	 
       
  1694      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1695      // trigger firing.
       
  1696      SetProfileToOfflineL();
       
  1697  	 
  1597  	 //Enable only simpsy
  1698  	 //Enable only simpsy
  1598      EnableSimPSYL();
  1699      EnableSimPSYL();
  1599      //Clear all triggers
  1700      //Clear all triggers
  1600  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1701  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1601  	 
  1702  	 
  1628 		CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1729 		CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1629 		TBuf<KLbtMaxNameLength> ReqData=_L("");
  1730 		TBuf<KLbtMaxNameLength> ReqData=_L("");
  1630 		trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1731 		trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1631     	// set condition
  1732     	// set condition
  1632 
  1733 
  1633     	TCoordinate coordinate(62.5285,23.9385);
  1734 	    TCoordinate coordinate;
  1634    		    
  1735 	    GetCurrentCoordinateL( coordinate );
  1635    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
  1736   		    
       
  1737    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  1636     	CleanupStack::PushL( circle );
  1738     	CleanupStack::PushL( circle );
  1637     
  1739     
  1638          
  1740          
  1639     	// ownership of circle object transferred to the condition object
  1741     	// ownership of circle object transferred to the condition object
  1640     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1742     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1653     
  1755     
  1654     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1756     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1655         
  1757         
  1656     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1758     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1657     	wait->Start( );
  1759     	wait->Start( );
  1658    	 TCoordinate coordinates[10]=
  1760     	TCoordinate movCoordinates( coordinate.Latitude(),coordinate.Longitude() );
       
  1761     	
       
  1762     	TCoordinate coordinates[4];
       
  1763     	// Initialise the coordinate
       
  1764     	for( TInt i=0;i<4;i++ )
  1659    		{
  1765    		{
  1660  		TCoordinate(62.5285,23.9385) ,
  1766    		movCoordinates.Move( 90,300 );
  1661 		TCoordinate(62.5267,23.9636),
  1767    		coordinates[i] = movCoordinates;
  1662 		TCoordinate(62.5167,23.9528),	
  1768    		}
  1663 	/*	TCoordinate(62.5141,23.9312),
       
  1664 		TCoordinate(62.5296,23.9514),
       
  1665 	    TCoordinate(62.5269,23.9331),
       
  1666 		TCoordinate(62.518,23.9401),
       
  1667 		TCoordinate(62.5394,23.9439),
       
  1668 		TCoordinate(62.5275,23.9223),*/
       
  1669 		TCoordinate(62.5331,23.9551)};
       
  1670     	for(int i=0;i<4;i++)
  1769     	for(int i=0;i<4;i++)
  1671     	{
  1770     	{
  1672     	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);	
  1771     	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);	
  1673       //	coordinate.Move(45,100);
  1772       //	coordinate.Move(45,100);
  1674     	circle->SetCenter(coordinates[i]);
  1773     	circle->SetCenter(coordinates[i]);
  1675     	if(i%2==0)
  1774     	if(i%2==0)
  1676     	{
  1775     	{
  1677     		
  1776     		
  1695     
  1794     
  1696     	iLog->Log(_L("Triggers Created"));
  1795     	iLog->Log(_L("Triggers Created"));
  1697     	
  1796     	
  1698     	notifier->StartNotification( wait );
  1797     	notifier->StartNotification( wait );
  1699   		wait->Start( );
  1798   		wait->Start( );
  1700   		notifier->After(600000000);
  1799         wait->Start( );
  1701   		wait->Start( );
  1800         wait->Start( );
       
  1801         wait->Start( );
       
  1802 
       
  1803 
  1702   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1804   		RArray<TLbtTriggerFireInfo> Firedtriggers;
  1703   		lbt.GetFiredTriggersL(Firedtriggers);
  1805   		lbt.GetFiredTriggersL(Firedtriggers);
  1704   		if(Firedtriggers.Count()==3)
  1806   		RestoreProfileL();
       
  1807   		if(Firedtriggers.Count()==4)
  1705   		{
  1808   		{
  1706   			CleanupStack::PopAndDestroy( notifier );
  1809   			CleanupStack::PopAndDestroy( notifier );
  1707 	   CleanupStack::PopAndDestroy( trig );
  1810 	   CleanupStack::PopAndDestroy( trig );
  1708 	   CleanupStack::Pop( &lbt );
  1811 	   CleanupStack::Pop( &lbt );
  1709 	   CleanupStack::PopAndDestroy( &lbtserver );
  1812 	   CleanupStack::PopAndDestroy( &lbtserver );
  1742         CleanupClosePushL( lbtserver );
  1845         CleanupClosePushL( lbtserver );
  1743         iLog->Log(_L("Connection to RLbtServer Passed "));
  1846         iLog->Log(_L("Connection to RLbtServer Passed "));
  1744  	 User::LeaveIfError( lbt.Open(lbtserver));
  1847  	 User::LeaveIfError( lbt.Open(lbtserver));
  1745  	 iLog->Log(_L("Subsession opened "));
  1848  	 iLog->Log(_L("Subsession opened "));
  1746  	 CleanupClosePushL( lbt );
  1849  	 CleanupClosePushL( lbt );
       
  1850  	 
       
  1851      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1852      // trigger firing.
       
  1853      SetProfileToOfflineL();
       
  1854  	 
  1747  	 //Enable only simpsy
  1855  	 //Enable only simpsy
  1748      EnableSimPSYL();
  1856      EnableSimPSYL();
  1749      //Clear all triggers
  1857      //Clear all triggers
  1750  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1858  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1751  	 
  1859  	 
  1776 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1884 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1777 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1885 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1778 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1886 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1779     	// set condition
  1887     	// set condition
  1780 
  1888 
  1781     	TCoordinate coordinate(62.5285,23.9385);
  1889     TCoordinate coordinate;
  1782    	// TCoordinate coordinate(62.4438,23.9385);
  1890     GetCurrentCoordinateL( coordinate );
  1783     	coordinate.Move(90,5000);
  1891     	coordinate.Move(90,1000);
  1784    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,10000);
  1892    	CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,2000);
  1785     	CleanupStack::PushL( circle );
  1893     	CleanupStack::PushL( circle );
  1786     
  1894     
  1787          
  1895          
  1788     	// ownership of circle object transferred to the condition object
  1896     	// ownership of circle object transferred to the condition object
  1789     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1897     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1812     	TReal32 trigDistance;
  1920     	TReal32 trigDistance;
  1813     	TPosition firePosition;
  1921     	TPosition firePosition;
  1814     	FireInfo = notifier->GetFiredTrigger();
  1922     	FireInfo = notifier->GetFiredTrigger();
  1815        	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  1923        	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  1816     	firePosition.Distance(coordinate,trigDistance);
  1924     	firePosition.Distance(coordinate,trigDistance);
  1817      
  1925     	RestoreProfileL();
  1818     	if( trigDistance<=11500 && FireInfo.iTriggerId==trigId)
  1926     	if( FireInfo.iTriggerId==trigId)
  1819     	{
  1927     	{
  1820   
  1928   
  1821 	  	CleanupStack::PopAndDestroy( notifier );
  1929 	  	CleanupStack::PopAndDestroy( notifier );
  1822 	   CleanupStack::PopAndDestroy( trig );
  1930 	   CleanupStack::PopAndDestroy( trig );
  1823 	   CleanupStack::Pop( &lbt );
  1931 	   CleanupStack::Pop( &lbt );
  1862         CleanupClosePushL( lbtserver );
  1970         CleanupClosePushL( lbtserver );
  1863         iLog->Log(_L("Connection to RLbtServer Passed "));
  1971         iLog->Log(_L("Connection to RLbtServer Passed "));
  1864  	 User::LeaveIfError( lbt.Open(lbtserver));
  1972  	 User::LeaveIfError( lbt.Open(lbtserver));
  1865  	 iLog->Log(_L("Subsession opened "));
  1973  	 iLog->Log(_L("Subsession opened "));
  1866  	 CleanupClosePushL( lbt );
  1974  	 CleanupClosePushL( lbt );
       
  1975  	 
       
  1976      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  1977      // trigger firing.
       
  1978      SetProfileToOfflineL();
       
  1979  	 
  1867  	 //Enable only simpsy
  1980  	 //Enable only simpsy
  1868      EnableSimPSYL();
  1981      EnableSimPSYL();
  1869      //Clear all triggers
  1982      //Clear all triggers
  1870  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1983  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  1871  	 
  1984  	 
  1897 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2010 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  1898 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2011 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  1899 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2012 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  1900     	// set condition
  2013     	// set condition
  1901 
  2014 
  1902     	TCoordinate coordinate(62.5285,23.9385);
  2015     TCoordinate coordinate;
       
  2016     GetCurrentCoordinateL( coordinate );
  1903    		    
  2017    		    
  1904    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
  2018    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  1905     	CleanupStack::PushL( circle );
  2019     	CleanupStack::PushL( circle );
  1906     
  2020     
  1907          
  2021          
  1908     	// ownership of circle object transferred to the condition object
  2022     	// ownership of circle object transferred to the condition object
  1909     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2023     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  1923     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2037     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  1924         
  2038         
  1925     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2039     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  1926     	wait->Start( );
  2040     	wait->Start( );
  1927     	
  2041     	
  1928        	coordinate.Move(90,2000);
  2042        	coordinate.Move(90,500);
  1929        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  2043        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  1930     	circle2->SetCenter(coordinate);
  2044     	circle2->SetCenter(coordinate);
  1931     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2045     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  1932                                                 circle2,
  2046                                                 circle2,
  1933                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2047                                                 CLbtTriggerConditionArea::EFireOnEnter);
  1934     	
  2048     	
  1943     	iLog->Log(_L("Trigger Fired"));
  2057     	iLog->Log(_L("Trigger Fired"));
  1944     	TLbtTriggerFireInfo FireInfo;
  2058     	TLbtTriggerFireInfo FireInfo;
  1945     	TReal32 trigDistance;
  2059     	TReal32 trigDistance;
  1946     	TPosition firePosition;
  2060     	TPosition firePosition;
  1947     	FireInfo = notifier->GetFiredTrigger();
  2061     	FireInfo = notifier->GetFiredTrigger();
       
  2062     	RestoreProfileL();
  1948     	if(FireInfo.iTriggerId!=trigId)
  2063     	if(FireInfo.iTriggerId!=trigId)
  1949     	{
  2064     	{
  1950     //	notifier->StartNotification( wait );
  2065     //	notifier->StartNotification( wait );
  1951   		wait->Start( );	
  2066   		wait->Start( );	
  1952     	}
  2067     	}
  1953     	FireInfo = notifier->GetFiredTrigger();
  2068     	FireInfo = notifier->GetFiredTrigger();
  1954     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2069     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  1955     	firePosition.Distance(coordinate,trigDistance);
  2070     	firePosition.Distance(coordinate,trigDistance);
  1956      
  2071      
  1957     	if( trigDistance<=1000 && FireInfo.iTriggerId==trigId)
  2072     	if( FireInfo.iTriggerId==trigId)
  1958     	{
  2073     	{
  1959     
  2074     
  1960 	  	CleanupStack::PopAndDestroy( notifier );
  2075 	  	CleanupStack::PopAndDestroy( notifier );
  1961 	   CleanupStack::PopAndDestroy( trig );
  2076 	   CleanupStack::PopAndDestroy( trig );
  1962 	   CleanupStack::Pop( &lbt );
  2077 	   CleanupStack::Pop( &lbt );
  2005         CleanupClosePushL( lbtserver );
  2120         CleanupClosePushL( lbtserver );
  2006         iLog->Log(_L("Connection to RLbtServer Passed "));
  2121         iLog->Log(_L("Connection to RLbtServer Passed "));
  2007  	 User::LeaveIfError( lbt.Open(lbtserver));
  2122  	 User::LeaveIfError( lbt.Open(lbtserver));
  2008  	 iLog->Log(_L("Subsession opened "));
  2123  	 iLog->Log(_L("Subsession opened "));
  2009  	 CleanupClosePushL( lbt );
  2124  	 CleanupClosePushL( lbt );
       
  2125  	 
       
  2126      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2127      // trigger firing.
       
  2128      SetProfileToOfflineL();
       
  2129  	 
  2010  	 //Enable only simpsy
  2130  	 //Enable only simpsy
  2011      EnableSimPSYL();
  2131      EnableSimPSYL();
  2012      //Clear all triggers
  2132      //Clear all triggers
  2013  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2133  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2014  	 
  2134  	 
  2042 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2162 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2043 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2163 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2044 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2164 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2045     	// set condition
  2165     	// set condition
  2046 
  2166 
  2047     	TCoordinate coordinate(62.5285,23.9385);
  2167     TCoordinate coordinate;
       
  2168     GetCurrentCoordinateL( coordinate );
  2048    		    
  2169    		    
  2049    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,500);
  2170    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  2050     	CleanupStack::PushL( circle );
  2171     	CleanupStack::PushL( circle );
  2051     
  2172     
  2052          
  2173          
  2053     	// ownership of circle object transferred to the condition object
  2174     	// ownership of circle object transferred to the condition object
  2054     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2175     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2068     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2189     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2069         
  2190         
  2070     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2191     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2071     	wait->Start( );
  2192     	wait->Start( );
  2072     	
  2193     	
  2073        	coordinate.Move(90,2000);
  2194        	coordinate.Move(90,300);
  2074        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,800);
  2195        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  2075     	circle2->SetCenter(coordinate);
  2196     	circle2->SetCenter(coordinate);
  2076     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2197     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2077                                                 circle2,
  2198                                                 circle2,
  2078                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2199                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2079     	
  2200     	
  2080     	trig->SetCondition(condition2);
  2201     	trig->SetCondition(condition2);
  2081     	notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
  2202     	notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
  2082     	wait->Start( );
  2203     	wait->Start( );
  2083     	
  2204     	
  2084     	coordinate.Move(90,2000);
  2205     	coordinate.Move(90,400);
  2085     	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,700);
  2206     	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
  2086     	circle3->SetCenter(coordinate);
  2207     	circle3->SetCenter(coordinate);
  2087     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2208     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2088                                                 circle3,
  2209                                                 circle3,
  2089                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2210                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2090     	
  2211     	
  2105     	TReal32 trigDistance;
  2226     	TReal32 trigDistance;
  2106     	TPosition firePosition;
  2227     	TPosition firePosition;
  2107     	FireInfo = notifier->GetFiredTrigger();
  2228     	FireInfo = notifier->GetFiredTrigger();
  2108     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2229     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2109     	firePosition.Distance(coordinate,trigDistance);
  2230     	firePosition.Distance(coordinate,trigDistance);
       
  2231     	RestoreProfileL();
  2110      	if(FireInfo.iTriggerId ==trigIdtochange)
  2232      	if(FireInfo.iTriggerId ==trigIdtochange)
  2111      	{
  2233      	{
  2112      		
  2234      		
  2113      		CleanupStack::PopAndDestroy( notifier );
  2235      		CleanupStack::PopAndDestroy( notifier );
  2114 	    CleanupStack::PopAndDestroy( trig );
  2236 	    CleanupStack::PopAndDestroy( trig );
  2156  	 iLog->Log(_L("Subsession opened "));
  2278  	 iLog->Log(_L("Subsession opened "));
  2157  	 CleanupClosePushL( lbt );
  2279  	 CleanupClosePushL( lbt );
  2158  	 User::LeaveIfError( lbt1.Open(lbtserver));
  2280  	 User::LeaveIfError( lbt1.Open(lbtserver));
  2159  	 iLog->Log(_L("Subsession opened "));
  2281  	 iLog->Log(_L("Subsession opened "));
  2160  	 CleanupClosePushL( lbt1 );
  2282  	 CleanupClosePushL( lbt1 );
       
  2283  	 
       
  2284      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2285      // trigger firing.
       
  2286      SetProfileToOfflineL();
       
  2287  	 
  2161  	 //Enable only simpsy
  2288  	 //Enable only simpsy
  2162      EnableSimPSYL();
  2289      EnableSimPSYL();
  2163      //Clear all triggers
  2290      //Clear all triggers
  2164  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2291  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2165  	 
  2292  	 
  2192 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2319 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2193 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2320 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2194 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2321 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2195     	// set condition
  2322     	// set condition
  2196 
  2323 
  2197     	TCoordinate coordinate(62.5285,23.9385);
  2324     TCoordinate coordinate;
       
  2325     GetCurrentCoordinateL( coordinate );
  2198    		    
  2326    		    
  2199    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
  2327    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  2200     	CleanupStack::PushL( circle );
  2328     	CleanupStack::PushL( circle );
  2201     
  2329     
  2202          
  2330          
  2203     	// ownership of circle object transferred to the condition object
  2331     	// ownership of circle object transferred to the condition object
  2204     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2332     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2218     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2346     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2219         
  2347         
  2220     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2348     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2221     	wait->Start( );
  2349     	wait->Start( );
  2222     	
  2350     	
  2223        	coordinate.Move(90,10000);
  2351        	coordinate.Move(90,500);
  2224        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  2352        	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  2225     	circle2->SetCenter(coordinate);
  2353     	circle2->SetCenter(coordinate);
  2226     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2354     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2227                                                 circle2,
  2355                                                 circle2,
  2228                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2356                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2229     	
  2357     	
  2233     	notifier->StartNotification( wait );
  2361     	notifier->StartNotification( wait );
  2234   		wait->Start( );
  2362   		wait->Start( );
  2235     //	User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
  2363     //	User::LeaveIfError(repository->Set(KCRKeySimPSYSimulationFile, KSimulationFile));
  2236     //	notifier->After(3000000);
  2364     //	notifier->After(3000000);
  2237     //	wait->Start( );
  2365     //	wait->Start( );
  2238     	coordinate.Move(270,5000);
  2366     	coordinate.Move(270,200);
  2239     	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,500);
  2367     	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
  2240     	circle3->SetCenter(coordinate);
  2368     	circle3->SetCenter(coordinate);
  2241     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2369     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2242                                                 circle3,
  2370                                                 circle3,
  2243                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2371                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2244     	
  2372     	
  2258     	TReal32 trigDistance;
  2386     	TReal32 trigDistance;
  2259     	TPosition firePosition;
  2387     	TPosition firePosition;
  2260     	FireInfo = notifier->GetFiredTrigger();
  2388     	FireInfo = notifier->GetFiredTrigger();
  2261     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2389     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2262     	firePosition.Distance(coordinate,trigDistance);
  2390     	firePosition.Distance(coordinate,trigDistance);
  2263      
  2391     	RestoreProfileL();
  2264      	if(FireInfo.iTriggerId ==trigIdtochange)
  2392      	if(FireInfo.iTriggerId ==trigIdtochange)
  2265      	{
  2393      	{
  2266      		CleanupStack::PopAndDestroy( notifier );
  2394      		CleanupStack::PopAndDestroy( notifier );
  2267 	    CleanupStack::PopAndDestroy( trig );
  2395 	    CleanupStack::PopAndDestroy( trig );
  2268 	    CleanupStack::Pop( &lbt1 );
  2396 	    CleanupStack::Pop( &lbt1 );
  2309         CleanupClosePushL( lbtserver );
  2437         CleanupClosePushL( lbtserver );
  2310         iLog->Log(_L("Connection to RLbtServer Passed "));
  2438         iLog->Log(_L("Connection to RLbtServer Passed "));
  2311  	 User::LeaveIfError( lbt.Open(lbtserver));
  2439  	 User::LeaveIfError( lbt.Open(lbtserver));
  2312  	 iLog->Log(_L("Subsession opened "));
  2440  	 iLog->Log(_L("Subsession opened "));
  2313  	 CleanupClosePushL( lbt );
  2441  	 CleanupClosePushL( lbt );
       
  2442  	 
       
  2443      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2444      // trigger firing.
       
  2445      SetProfileToOfflineL();
       
  2446  	 
  2314  	 //Enable only simpsy
  2447  	 //Enable only simpsy
  2315      EnableSimPSYL();
  2448      EnableSimPSYL();
  2316      //Clear all triggers
  2449      //Clear all triggers
  2317  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2450  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2318  	 
  2451  	 
  2345 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2478 	CRequestorBase::_TRequestorFormat ReqFormat=CRequestorBase::EFormatUnknown;
  2346 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2479 	TBuf<KLbtMaxNameLength> ReqData=_L("");
  2347 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2480 	trig->SetRequestorL(ReqType,ReqFormat,ReqData);
  2348     	// set condition
  2481     	// set condition
  2349 
  2482 
  2350     	TCoordinate coordinate(62.5285,23.9385);
  2483     TCoordinate coordinate;
       
  2484     GetCurrentCoordinateL( coordinate );
  2351    		    
  2485    		    
  2352    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,1000);
  2486    		CLbtGeoCircle* circle=CLbtGeoCircle::NewL(coordinate,100);
  2353     	CleanupStack::PushL( circle );
  2487     	CleanupStack::PushL( circle );
  2354     
  2488     
  2355          
  2489          
  2356     	// ownership of circle object transferred to the condition object
  2490     	// ownership of circle object transferred to the condition object
  2357     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2491     	CLbtTriggerConditionArea* condition=CLbtTriggerConditionArea::NewL(
  2371     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2505     	CActiveSchedulerWait* wait=new(ELeave)CActiveSchedulerWait;
  2372         
  2506         
  2373     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2507     	notifier->CreateTriggers( lbt,*trig,trigId,ETrue,wait );
  2374     	wait->Start( );
  2508     	wait->Start( );
  2375     	
  2509     	
  2376        	coordinate.Move(90,5000);
  2510        	coordinate.Move(90,500);
  2377        	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,500);
  2511        	CLbtGeoCircle* circle3=CLbtGeoCircle::NewL(coordinate,100);
  2378     	circle3->SetCenter(coordinate);
  2512     	circle3->SetCenter(coordinate);
  2379     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2513     	CLbtTriggerConditionArea* condition2=CLbtTriggerConditionArea::NewL(
  2380                                                 circle3,
  2514                                                 circle3,
  2381                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2515                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2382     	
  2516     	
  2383     	trig->SetCondition(condition2);
  2517     	trig->SetCondition(condition2);
  2384     	notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
  2518     	notifier->CreateTriggers( lbt,*trig,trigIdtochange,ETrue,wait );
  2385     	wait->Start( );
  2519     	wait->Start( );
  2386     	
  2520     	
  2387     	coordinate.Move(90,5000);
  2521     	coordinate.Move(90,500);
  2388     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,500);
  2522     	CLbtGeoCircle* circle2=CLbtGeoCircle::NewL(coordinate,100);
  2389     	circle2->SetCenter(coordinate);
  2523     	circle2->SetCenter(coordinate);
  2390     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2524     	CLbtTriggerConditionArea* condition3=CLbtTriggerConditionArea::NewL(
  2391                                                 circle2,
  2525                                                 circle2,
  2392                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2526                                                 CLbtTriggerConditionArea::EFireOnEnter);
  2393     	
  2527     	
  2408     	TReal32 trigDistance;
  2542     	TReal32 trigDistance;
  2409     	TPosition firePosition;
  2543     	TPosition firePosition;
  2410     	FireInfo = notifier->GetFiredTrigger();
  2544     	FireInfo = notifier->GetFiredTrigger();
  2411     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2545     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2412     	firePosition.Distance(coordinate,trigDistance);
  2546     	firePosition.Distance(coordinate,trigDistance);
       
  2547     	RestoreProfileL();
  2413      	if(FireInfo.iTriggerId ==trigIdtochange)
  2548      	if(FireInfo.iTriggerId ==trigIdtochange)
  2414      	{
  2549      	{
  2415      		CleanupStack::PopAndDestroy( notifier );
  2550      		CleanupStack::PopAndDestroy( notifier );
  2416 	    CleanupStack::PopAndDestroy( trig );
  2551 	    CleanupStack::PopAndDestroy( trig );
  2417 	    CleanupStack::Pop( &lbt );
  2552 	    CleanupStack::Pop( &lbt );
  2456         CleanupClosePushL( lbtserver );
  2591         CleanupClosePushL( lbtserver );
  2457         iLog->Log(_L("Connection to RLbtServer Passed "));
  2592         iLog->Log(_L("Connection to RLbtServer Passed "));
  2458  	 User::LeaveIfError( lbt.Open(lbtserver));
  2593  	 User::LeaveIfError( lbt.Open(lbtserver));
  2459  	 iLog->Log(_L("Subsession opened "));
  2594  	 iLog->Log(_L("Subsession opened "));
  2460  	 CleanupClosePushL( lbt );
  2595  	 CleanupClosePushL( lbt );
       
  2596  	 
       
  2597      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2598      // trigger firing.
       
  2599      SetProfileToOfflineL();
       
  2600  	 
  2461  	 //Enable only simpsy
  2601  	 //Enable only simpsy
  2462      EnableSimPSYL();
  2602      EnableSimPSYL();
  2463      //Clear all triggers
  2603      //Clear all triggers
  2464  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2604  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2465  	 
  2605  	 
  2559     	TReal32 trigDistance;
  2699     	TReal32 trigDistance;
  2560     	TPosition firePosition;
  2700     	TPosition firePosition;
  2561     	FireInfo = notifier->GetFiredTrigger();
  2701     	FireInfo = notifier->GetFiredTrigger();
  2562     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2702     	FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2563     	firePosition.Distance(coordinate,trigDistance);
  2703     	firePosition.Distance(coordinate,trigDistance);
       
  2704     	RestoreProfileL();
  2564     	if( trigDistance>=1000)
  2705     	if( trigDistance>=1000)
  2565     	{
  2706     	{
  2566     	_LIT(KProcessToSearch, "About"); 
  2707     	_LIT(KProcessToSearch, "About"); 
  2567 	    //_LIT(KProcessToSearch, "TestServerStarter"); 
  2708 	    //_LIT(KProcessToSearch, "TestServerStarter"); 
  2568 		TFullName fullName;
  2709 		TFullName fullName;
  2624      CleanupClosePushL( lbtserver );
  2765      CleanupClosePushL( lbtserver );
  2625      iLog->Log(_L("Connection to RLbtServer Passed "));
  2766      iLog->Log(_L("Connection to RLbtServer Passed "));
  2626  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  2767  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  2627  	 iLog->Log(_L("Subsession opened "));
  2768  	 iLog->Log(_L("Subsession opened "));
  2628  	 CleanupClosePushL( lbt );
  2769  	 CleanupClosePushL( lbt );
       
  2770  	 
       
  2771      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2772      // trigger firing.
       
  2773      SetProfileToOfflineL();
       
  2774  	 
  2629  	 //Enable only simpsy
  2775  	 //Enable only simpsy
  2630      EnableSimPSYL();
  2776      EnableSimPSYL();
  2631      //Clear all triggers
  2777      //Clear all triggers
  2632  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2778  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2633  	 
  2779  	 
  2708     TReal32 trigDistance;
  2854     TReal32 trigDistance;
  2709     TPosition firePosition;
  2855     TPosition firePosition;
  2710     FireInfo = notifier->GetFiredTrigger();
  2856     FireInfo = notifier->GetFiredTrigger();
  2711     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2857     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2712     firePosition.Distance(coordinate,trigDistance);
  2858     firePosition.Distance(coordinate,trigDistance);
       
  2859     RestoreProfileL();
  2713     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
  2860     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
  2714     {
  2861     {
  2715     	CleanupStack::PopAndDestroy( notifier );
  2862     	CleanupStack::PopAndDestroy( notifier );
  2716     CleanupStack::PopAndDestroy( trig );
  2863     CleanupStack::PopAndDestroy( trig );
  2717     CleanupStack::Pop( &lbt );
  2864     CleanupStack::Pop( &lbt );
  2752      CleanupClosePushL( lbtserver );
  2899      CleanupClosePushL( lbtserver );
  2753      iLog->Log(_L("Connection to RLbtServer Passed "));
  2900      iLog->Log(_L("Connection to RLbtServer Passed "));
  2754  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  2901  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  2755  	 iLog->Log(_L("Subsession opened "));
  2902  	 iLog->Log(_L("Subsession opened "));
  2756  	 CleanupClosePushL( lbt );
  2903  	 CleanupClosePushL( lbt );
       
  2904  	 
       
  2905      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  2906      // trigger firing.
       
  2907      SetProfileToOfflineL();
       
  2908  	 
  2757  	 //Enable only simpsy
  2909  	 //Enable only simpsy
  2758      EnableSimPSYL();
  2910      EnableSimPSYL();
  2759      //Clear all triggers
  2911      //Clear all triggers
  2760  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2912  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2761  	 
  2913  	 
  2832     TReal32 trigDistance;
  2984     TReal32 trigDistance;
  2833     TPosition firePosition;
  2985     TPosition firePosition;
  2834     FireInfo = notifier->GetFiredTrigger();
  2986     FireInfo = notifier->GetFiredTrigger();
  2835     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2987     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2836     firePosition.Distance(coordinate,trigDistance);
  2988     firePosition.Distance(coordinate,trigDistance);
       
  2989     RestoreProfileL();
  2837     if( trigDistance>=1000 &&notifier->iTriggerFireCount ==2)
  2990     if( trigDistance>=1000 &&notifier->iTriggerFireCount ==2)
  2838     {
  2991     {
  2839     	CleanupStack::PopAndDestroy( notifier );
  2992     	CleanupStack::PopAndDestroy( notifier );
  2840     CleanupStack::PopAndDestroy( trig );
  2993     CleanupStack::PopAndDestroy( trig );
  2841     CleanupStack::Pop( &lbt );
  2994     CleanupStack::Pop( &lbt );
  2875      CleanupClosePushL( lbtserver );
  3028      CleanupClosePushL( lbtserver );
  2876      iLog->Log(_L("Connection to RLbtServer Passed "));
  3029      iLog->Log(_L("Connection to RLbtServer Passed "));
  2877  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  3030  	 User::LeaveIfError( lbt.Open( lbtserver ) );
  2878  	 iLog->Log(_L("Subsession opened "));
  3031  	 iLog->Log(_L("Subsession opened "));
  2879  	 CleanupClosePushL( lbt );
  3032  	 CleanupClosePushL( lbt );
       
  3033  	 
       
  3034      // Set profile to offline mode.This is required to avoid movement detection blocking the 
       
  3035      // trigger firing.
       
  3036      SetProfileToOfflineL();
       
  3037  	 
  2880  	 //Enable only simpsy
  3038  	 //Enable only simpsy
  2881      EnableSimPSYL();
  3039      EnableSimPSYL();
  2882      //Clear all triggers
  3040      //Clear all triggers
  2883  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  3041  	 TRAP_IGNORE(lbt.DeleteTriggersL()) ;       
  2884  	 
  3042  	 
  2954     TReal32 trigDistance;
  3112     TReal32 trigDistance;
  2955     TPosition firePosition;
  3113     TPosition firePosition;
  2956     FireInfo = notifier->GetFiredTrigger();
  3114     FireInfo = notifier->GetFiredTrigger();
  2957     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  3115     FireInfo.iFiredPositionInfo.GetPosition(firePosition);
  2958     firePosition.Distance(coordinate,trigDistance);
  3116     firePosition.Distance(coordinate,trigDistance);
       
  3117     RestoreProfileL();
  2959     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
  3118     if( trigDistance<=1000 &&notifier->iTriggerFireCount ==2)
  2960     {
  3119     {
  2961     	CleanupStack::PopAndDestroy( notifier );
  3120     	CleanupStack::PopAndDestroy( notifier );
  2962     CleanupStack::PopAndDestroy( trig );
  3121     CleanupStack::PopAndDestroy( trig );
  2963     CleanupStack::Pop( &lbt );
  3122     CleanupStack::Pop( &lbt );