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
1 merge request!183ArViz: Replace Coin timer by QtTimer to fix ArViz from freezing...
...@@ -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