We have been developing an interface which allows us to control our simulations
on the fly and have used a Qtimer in a custom panel, to query when new data is
available from the server. When data is ready we
when the timer is triggered and the server reports that data is ready, we do a
number of bookkepping taks, and then update the pipeline/representation and
other stuff using server manager objects like so...
this->Reader->InvokeCommand("Modified");
this->Reader->UpdatePropertyInformation();
this->Reader->UpdateVTKObjects();
this->Reader->UpdatePipeline();
and finally after more stuff ... trigger a render ...
if (pqActiveObjects::instance().activeView())
{
pqActiveObjects::instance().activeView()->render();
}
This has been working fine for some months, but recently, we've been getting
strange errors which look like the paraview client is interacting with the
server manager, at the same time as we are triggering updates. A classic
threading type problem. [We have added another thread to pvserver which accepts
data from the simulation via its own socket communicator, this appears stable
as we can do much stuff without forcing updates in the pvclient gui and we get
no errors, these threads reside only inside pvserver ]
Within a Qt+ParaView framework, can anyone tell me if it is "safe" to Update
pipelines from the server manager within a timer triggered slot. Is there an
existing example of anything similar which updates server manager objects from
a timer - also forcing renders. I know that rendering should be triggered from
the gui thread only - should this be removed from the Qtimer slot.
Any feedback welcome.
Thanks
JB
--
John Biddiscombe, email:biddisco @ cscs.ch
http://www.cscs.ch/
CSCS, Swiss National Supercomputing Centre | Tel: +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland | Fax: +41 (91) 610.82.82
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the ParaView Wiki at:
http://paraview.org/Wiki/ParaView
Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview