Sorry I think I have chosen the wrong reply method.
Hi Andy,
I already got rid of Python on both sides. CoProcessing with Live connection is
working by directly using the vtkLiveInsituLink (pure C++ implementation).
Working with both Paraview 5.2 and 5.4.
My problem is closing the connection on the Live side (e.g. closing Paraview).
Doing so, my Insitu side hangs (when trying again to send data,
m_link->InsituUpdate, see below) in the receive method of the vtkSocket class
until at some point an integer underflow happens.
Closing the connection from the Insitu side everything works as expected.
Are there any methods to directly check if the connection is still alive?
Or is it a Windows specific problem?
Additionally the steps for the live connection in C++, for sure there may be
more elegant ways:
// Initialization
vtkCPProcessor *m_proc = vtkCPProcessor::New();
m_proc->Initialize();
vtkLiveInsituLink *m_link = vtkLiveInsituLink::New();
m_link->SetInsituPort(22222);
m_link->SetHostname("localhost");
m_link->SetProcessType(vtkLiveInsituLink::INSITU);
vtkSMProxyManager *m_spxm =
vtkSMProxyManager::GetProxyManager()->GetActiveSessionProxyManager();
vtkSMProxy *m_px = m_spxm->NewProxy("sources",
"PVTrivialProducer");
vtkSMSourceProxy *m_spx = vtkSMSourceProxy::SafeDownCast(m_px);
m_spxm->RegisterProxy("sources", m_spx);
vtkObjectBase *obase = m_spx->GetClientSideObject();
vtkPVTrivialProducer *prod =
vtkPVTrivialProducer::SafeDownCast(obase);
prod->SetOutput(m_toplot, m_time); // m_toplot is a
vtkMultiBlockDataSet
m_link->Initialize(m_spxm);
//Update the live side
m_link->InsituUpdate(m_time, m_tstep);
m_spx->UpdatePipeline(m_time);
m_link->InsituPostProcess(m_time,m_tstep);
Thanks,
Simon
Von: Andy Bauer [mailto:[email protected]]
Gesendet: Donnerstag, 6. Juli 2017 17:14
An: Simon Klarmann
Cc: [email protected]
Betreff: Re: [Paraview] C++ Catalyst vtkSocket::Receive stuck in loop on Windows
Hi Simon,
Is the Python dependency that you're trying to get rid of on the Catalyst side
or on the pvserver/GUI side? If I remember correctly on the Catalyst side
Python was required for the Live connection.
Cheers,
Andy
On Wed, Jul 5, 2017 at 10:11 AM, Simon Klarmann
<[email protected]> wrote:
Dear Members,
I wanted to get rid of the dependency on Python. The connection by pure C++
works just fine.
The problem occurs when establishing the live connection to Paraview, closing
Paraview and then try to send some data again.
I tracked it down to the vtkSocket class inside the method Receive. After the
connection is terminated on the Paraview side, e.g. by closing Paraview, the
call of vtkLiveInsituLink::InsituUpdate gets stuck in the vtkSocket::Receive
method. Even though I get a message that the connection was terminated.
A temporary fix for my case was to replace in Line 609 of the vtkSocket.cxx if
(nRecvd == 0) with if (nRecvd <= 0), because on disconnection the return value
of nRecvd is -1. Then everything works well.
I only used the following methods in the given order to transfer the data:
vtkLiveInsituLink::InsituUpdate
vtkSMSourceProxy::UpdatePipeline
vtkLiveInsituLink::InsituPostProcess
Are there further steps to perform or is there a way to check if the connection
is still alive?
Operating System: Windows 7, Visual Studio 2017
Thanks,
Simon
Dipl.-Ing. Simon Klarmann
Bau- und Umweltingenieurwissenschaften
Technische Universität Darmstadt
Fachgebiet Festkörpermechanik
Tel.: +49 6151 16 – 22642 <tel:+49%206151%201622642>
Mail: [email protected]
Franziska-Braun-Straße 7
Gebäude L5|01, Raum 542
64287 Darmstadt
_______________________________________________
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
Search the list archives at: http://markmail.org/search/?q=ParaView
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview
_______________________________________________
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
Search the list archives at: http://markmail.org/search/?q=ParaView
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/paraview