EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Bandwidth limits in asyn
From: Mark Rivers <[email protected]>
To: 'Iain Marcuson' <[email protected]>, "[email protected] >> EPICS Tech Talk" <[email protected]>
Date: Fri, 21 Apr 2017 17:46:18 +0000
If the diagnostics on each end don't solve the problem you may want to look at the network traffic with Wireshark.

Mark


-----Original Message-----
From: Iain Marcuson [mailto:[email protected]] 
Sent: Friday, April 21, 2017 8:50 AM
To: Mark Rivers; [email protected] >> EPICS Tech Talk
Subject: RE: Bandwidth limits in asyn

I wrote a C program to read the data, and it also fails at about the same point.  The camera is a custom one, so I can put any diagnostics on it I want.

Iain.

> -----Original Message-----
> From: Mark Rivers [mailto:[email protected]]
> Sent: Thursday, April 20, 2017 5:17 PM
> To: Iain Marcuson <[email protected]>
> Subject: RE: Bandwidth limits in asyn
> 
> It does not sound to me like the error you are getting has anything to do with
> the fact that you are using asyn or EPICS.  Have you tried a simple C test
> program to read the data from the device?  It seems like a low-level
> communication problem.  What is the camera device on the other end of the
> wire?  Do you have access to any diagnostics on that end?
> 
> Mark
> 
> 
> -----Original Message-----
> From: Iain Marcuson [mailto:[email protected]]
> Sent: Thursday, April 20, 2017 3:50 PM
> To: Mark Rivers
> Subject: RE: Bandwidth limits in asyn
> 
> I am using recv() on a socket opened in the constructor.  Recv() returns a -1
> and perror() says "Bad address".  In  the mockup server I made using Python,
> it reported "socket.error: [Errno 104] Connection reset by peer".
> 
> Iain.
> 
> > -----Original Message-----
> > From: Mark Rivers [mailto:[email protected]]
> > Sent: Thursday, April 20, 2017 4:47 PM
> > To: Iain Marcuson <[email protected]>; tech-
> > [email protected] >> EPICS Tech Talk <[email protected]>
> > Subject: RE: Bandwidth limits in asyn
> >
> > What function does your readInt16Array function call to do the network
> > transfer?  Are you using the native socket calls, i.e. recv() or recvfrom()?
> >
> > Are you using the EPICS osiSock.h to make your driver portable to
> > different OS?
> >
> > When you say "the connection breaks" what exactly do you mean?  Is
> > recv() or recvfrom() returning 0 or a negative number?
> >
> > Mark
> >
> >
> > -----Original Message-----
> > From: Iain Marcuson [mailto:[email protected]]
> > Sent: Thursday, April 20, 2017 3:36 PM
> > To: Mark Rivers; [email protected] >> EPICS Tech Talk
> > Subject: RE: Bandwidth limits in asyn
> >
> > I am calling my own asynPortDriver function with the readInt16Array
> > method.  This is 1 Gbit Ethernet.  On my most recent run, it took
> > 0.854 seconds to receive 19214960 bytes.
> >
> >
> > > -----Original Message-----
> > > From: Mark Rivers [mailto:[email protected]]
> > > Sent: Thursday, April 20, 2017 4:06 PM
> > > To: Iain Marcuson <[email protected]>; tech-
> > > [email protected] >> EPICS Tech Talk <[email protected]>
> > > Subject: RE: Bandwidth limits in asyn
> > >
> > > How are you reading the data, i.e. are you calling the drvAsynIPPort
> > > driver from your driver?
> > >
> > > If so, how have you called drvAsynIPPortConfigure?  What value are
> > > you specifying for the timeout?
> > >
> > > Is this 1 Gbit Ethernet?
> > >
> > > What is the time between when you start the transfer and it breaks
> > > after
> > > 17640000 bytes?
> > >
> > > Mark
> > >
> > >
> > > -----Original Message-----
> > > From: [email protected] [mailto:tech-talk-
> > > [email protected]] On Behalf Of Iain Marcuson
> > > Sent: Thursday, April 20, 2017 2:28 PM
> > > To: [email protected] >> EPICS Tech Talk
> > > Subject: Bandwidth limits in asyn
> > >
> > > I've been writing an asyn driver to receive data from a camera, but
> > > I seem to be hitting some sort of limit.  The total size to transmit
> > > is
> > > 35280000 bytes, but the connection breaks at around 17640000 bytes.
> > > In a mockup test, I was able to transfer all the data by sending 16k
> > > with a pause of 0.5 seconds between each packet.  The receiving
> > > routine just buffers all the incoming data until it reads the
> > > predetermined amount.  Is there something else I need to be doing to
> > > get
> > all the data?
> > >
> > > Thank you,
> > >
> > > Iain.

References:
Bandwidth limits in asyn Iain Marcuson
RE: Bandwidth limits in asyn Mark Rivers
RE: Bandwidth limits in asyn Iain Marcuson
RE: Bandwidth limits in asyn Mark Rivers
RE: Bandwidth limits in asyn Iain Marcuson

Navigate by Date:
Prev: Re: dbreport or similar? Michael Davidsaver
Next: EPICS Archiver Appliance does not transfer PVs to "Being archived" Abdalla Ahmad
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Bandwidth limits in asyn Iain Marcuson
Next: dbreport or similar? Steve Kinder
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024