Skip to content
Snippets Groups Projects
Commit 1566732d authored by armar-user's avatar armar-user
Browse files

(FP, RK) ArViz: Replace Coin timer by QtTimer to fix ArViz from freezing...

(FP, RK) ArViz: Replace Coin timer by QtTimer to fix ArViz from freezing (update() would not be called in some cases)
parent 50dcabd2
No related branches found
No related tags found
No related merge requests found
...@@ -51,11 +51,11 @@ namespace armarx::viz ...@@ -51,11 +51,11 @@ namespace armarx::viz
return "UNKNOWN"; return "UNKNOWN";
} }
static void updateVisualizationCB(void* data, SoSensor* sensor) // static void updateVisualizationCB(void* data, SoSensor* sensor)
{ // {
auto* visu = static_cast<CoinVisualizer*>(data); // auto* visu = static_cast<CoinVisualizer*>(data);
visu->update(); // visu->update();
} // }
struct TimedBlock struct TimedBlock
{ {
...@@ -89,10 +89,10 @@ namespace armarx::viz ...@@ -89,10 +89,10 @@ namespace armarx::viz
&CoinVisualizerWrapper::onUpdateFailure); &CoinVisualizerWrapper::onUpdateFailure);
root = new SoSeparator; root = new SoSeparator;
timerSensor = new SoTimerSensor(updateVisualizationCB, this); //timerSensor = new SoTimerSensor(updateVisualizationCB, this);
float cycleTimeMS = 33.0f; //float cycleTimeMS = 33.0f;
timerSensor->setInterval(SbTime(cycleTimeMS / 1000.0f)); //timerSensor->setInterval(SbTime(cycleTimeMS / 1000.0f));
} }
CoinVisualizer::~CoinVisualizer() CoinVisualizer::~CoinVisualizer()
...@@ -115,8 +115,8 @@ namespace armarx::viz ...@@ -115,8 +115,8 @@ namespace armarx::viz
state = CoinVisualizerState::STARTING; state = CoinVisualizerState::STARTING;
stateStorage = storage; stateStorage = storage;
SoSensorManager* sensor_mgr = SoDB::getSensorManager(); //SoSensorManager* sensor_mgr = SoDB::getSensorManager();
sensor_mgr->insertTimerSensor(timerSensor); //sensor_mgr->insertTimerSensor(timerSensor);
} }
void CoinVisualizer::stop() void CoinVisualizer::stop()
......
...@@ -65,6 +65,9 @@ namespace armarx ...@@ -65,6 +65,9 @@ namespace armarx
widget.setupUi(getWidget()); widget.setupUi(getWidget());
updateTimer = new QTimer(this);
connect(updateTimer, &QTimer::timeout, this, QOverload<>::of(&This::onUpdate));
timingObserverTimer = new QTimer(this); timingObserverTimer = new QTimer(this);
connect(timingObserverTimer, &QTimer::timeout, this, QOverload<>::of(&This::onTimingObserverUpdate)); connect(timingObserverTimer, &QTimer::timeout, this, QOverload<>::of(&This::onTimingObserverUpdate));
...@@ -186,6 +189,7 @@ namespace armarx ...@@ -186,6 +189,7 @@ namespace armarx
changeMode(ArVizWidgetMode::Live); changeMode(ArVizWidgetMode::Live);
timingObserverTimer->start(33); timingObserverTimer->start(33);
updateTimer->start(33);
} }
void ArVizWidgetController::onDisconnectGui() void ArVizWidgetController::onDisconnectGui()
...@@ -440,6 +444,11 @@ namespace armarx ...@@ -440,6 +444,11 @@ namespace armarx
layerTreeChanged(nullptr, 0); layerTreeChanged(nullptr, 0);
} }
void ArVizWidgetController::onUpdate()
{
visualizer.update();
}
void ArVizWidgetController::onTimingObserverUpdate() void ArVizWidgetController::onTimingObserverUpdate()
{ {
viz::CoinVisualizer_UpdateTiming timing = visualizer.getTiming(); viz::CoinVisualizer_UpdateTiming timing = visualizer.getTiming();
......
...@@ -140,6 +140,7 @@ namespace armarx ...@@ -140,6 +140,7 @@ namespace armarx
void showAllLayers(bool visible); void showAllLayers(bool visible);
void showFilteredLayers(bool visible); void showFilteredLayers(bool visible);
void onUpdate();
void onTimingObserverUpdate(); void onTimingObserverUpdate();
...@@ -174,6 +175,7 @@ namespace armarx ...@@ -174,6 +175,7 @@ namespace armarx
QPointer<SimpleConfigDialog> configDialog; QPointer<SimpleConfigDialog> configDialog;
QTimer* updateTimer;
QTimer* timingObserverTimer; QTimer* timingObserverTimer;
viz::CoinVisualizer_UpdateTiming lastTiming; viz::CoinVisualizer_UpdateTiming lastTiming;
StringVariantBaseMap timingMap; StringVariantBaseMap timingMap;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment