minor refactoring...

git-svn-id: http://rtabmap.googlecode.com/svn/branches/0.3/rtabmap@78 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
matlabbe
2011-06-08 13:34:39 +00:00
parent a0576be506
commit bc3f5f2ba2
2 changed files with 52 additions and 45 deletions
+2
View File
@@ -111,6 +111,8 @@ private:
virtual void killCleanup(); virtual void killCleanup();
virtual void startInit(); virtual void startInit();
void process(); void process();
void resetMemory();
void deleteMemory();
void addSMState(SMState * data); // ownership is transferred void addSMState(SMState * data); // ownership is transferred
SMState * getSMState(); SMState * getSMState();
void setupLogFiles(); void setupLogFiles();
+36 -31
View File
@@ -445,23 +445,7 @@ void Rtabmap::mainLoop()
this->parseParameters(parameters); this->parseParameters(parameters);
break; break;
case kStateReseting: case kStateReseting:
if(_memory) this->resetMemory();
{
if(_memory)
{
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
_memory->init(DB_TYPE, _wDir + DB_NAME);
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitialized));
}
if(_bayesFilter)
{
_bayesFilter->reset();
}
}
_reactivateId = 0;
_highestHypothesisValue = 0;
_spreadMargin = 0;
this->setupLogFiles();
break; break;
case kStateDumpingMemory: case kStateDumpingMemory:
if(_memory) if(_memory)
@@ -483,6 +467,38 @@ void Rtabmap::mainLoop()
} }
break; break;
case kStateDeletingMemory: case kStateDeletingMemory:
this->deleteMemory();
break;
default:
uSleep(100);
ULOGGER_ERROR("not supposed to be here...");
break;
}
}
void Rtabmap::resetMemory()
{
if(_memory)
{
if(_memory)
{
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
_memory->init(DB_TYPE, _wDir + DB_NAME);
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitialized));
}
if(_bayesFilter)
{
_bayesFilter->reset();
}
}
_reactivateId = 0;
_highestHypothesisValue = 0;
_spreadMargin = 0;
this->setupLogFiles();
}
void Rtabmap::deleteMemory()
{
if(_memory) if(_memory)
{ {
UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing)); UEventsManager::post(new RtabmapEventInit(RtabmapEventInit::kInitializing));
@@ -501,22 +517,11 @@ void Rtabmap::mainLoop()
_highestHypothesisValue = 0; _highestHypothesisValue = 0;
_spreadMargin = 0; _spreadMargin = 0;
this->setupLogFiles(); this->setupLogFiles();
break;
default:
uSleep(100);
ULOGGER_ERROR("not supposed to be here...");
break;
}
} }
void Rtabmap::handleEvent(UEvent* event) void Rtabmap::handleEvent(UEvent* event)
{ {
if(this->isKilled()) if(this->isRunning())
{
return;
}
if(_state.empty()) // If empty, RTAB-Map is detecting
{ {
if(event->getClassName().compare("SMStateEvent") == 0) if(event->getClassName().compare("SMStateEvent") == 0)
{ {
@@ -525,7 +530,7 @@ void Rtabmap::handleEvent(UEvent* event)
this->addSMState(data); this->addSMState(data);
} }
} }
if(event->getClassName().compare("RtabmapEventCmd") == 0) else if(event->getClassName().compare("RtabmapEventCmd") == 0)
{ {
RtabmapEventCmd * rtabmapEvent = (RtabmapEventCmd*)event; RtabmapEventCmd * rtabmapEvent = (RtabmapEventCmd*)event;
RtabmapEventCmd::Cmd cmd = rtabmapEvent->getCmd(); RtabmapEventCmd::Cmd cmd = rtabmapEvent->getCmd();
@@ -568,7 +573,7 @@ void Rtabmap::handleEvent(UEvent* event)
pushNewState(kStateDeletingMemory); pushNewState(kStateDeletingMemory);
} }
} }
if(event->getClassName().compare("ParamEvent") == 0) else if(event->getClassName().compare("ParamEvent") == 0)
{ {
ULOGGER_DEBUG("changing parameters"); ULOGGER_DEBUG("changing parameters");
pushNewState(kStateChangingParameters, ((ParamEvent*)event)->getParameters()); pushNewState(kStateChangingParameters, ((ParamEvent*)event)->getParameters());