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