From: Sinisa V. <sv...@ap...> - 2013-04-15 17:29:30
|
Hi David, I am working on a similar area detector application for SPX. We have prototype of an area detector plugin that uses asyn TCP driver to stream data (ND arrays+associated parameters) to a remote machine where data is saved as SDDS file. At the moment the plugin is able to push data at a rate of about 520Mbps between two machines with 1 gigabit network connection. I would be interested in repeating what you have done with V4, and comparing performance. Would be possible to get your area detector driver/plugin code somewhere? Thanks a lot, Sinisa On 04/08/2013 03:12 PM, dav...@di... wrote: > On Friday I got the full data path working for my area detector application. > > As you may be aware I already had an area detector plugin which ran a pvAccess server that served up an area detector image. I demoed this at PSI using simDetector to generate the images and got and monitored the PV with pvget/pvget -m. > > Last week I wrote a pvAccess client that implements area detector and creates NDArrays by monitoring the image. I can now run this and connect it to existing plugins. > > This was one of our main objectives for Diamond as discussed at the BNL meeting in October (http://epics-pvdata.sourceforge.net/meetings/2012-10/18-minutes.html): > > "Want to be able to run an areaDetector driver on one machine, and an areaDetector plugin on another machine, and transfer the NDArrays between the two using EPICS V4 monitors" > > I also got to the bottom of the main issue I was having with the plugin - the reason the server was locking up for several minutes was due to the first array copy actually taking that long. Now I understand that issue I should be able to make more progress server-side. > > I've attached a screenshot. The left-hand panel is for the machine running the area detector driver (pc0046). The selected tab is the one for sim detector which is generating a scrolling black and white image. The mpg plugin (which you can see on the tab on the right hand side of the panel) provides the window displaying the image in the top right. The adImSrv tab corresponds to the V4 plugin serving up the image. > > The right-hand panel is the client running on pc0008. The tab on the left is not actually one for sim detector, but the v4 client. It's monitoring the image pv, converting it to an NDArray and sending it to the plugins, including the mpg plugin seen on the right-hand tab, which provides the image window in the bottom right. You can see the dimensions, color mode and unique ID on the mpg tab of the right hand panel. > > So this is proof of concept. One of our beamline engineers has given me some requirements -- 90 10 MB images a second. I'm quite a way off this (this is producing 7MB images and starts dropping them above 8 or 9 a second -- so lots of work to do). I'll have to look at the efficiency of my code and that in pvData. It may be that we need to compress the data to get the rates we want -- I don't know yet. > > I need to do some other work now for the next run which starts on Friday. After that I should be able to resume work on this. > > Next tasks: > Improve/tidy up the code. > Make the server plugin and client more reliable (they're very buggy at the moment). > Try and improve the data rate. > Work how to package this up so other people can use it. > > So still plenty to do, but it's a good start. > > Dave > > > > > > ------------------------------------------------------------------------------ > Minimize network downtime and maximize team effectiveness. > Reduce network management and security costs.Learn how to hire > the most talented Cisco Certified professionals. Visit the > Employer Resources Portal > http://www.cisco.com/web/learning/employer_resources/index.html -- Sinisa Veseli Software Services Group APS Engineering Support Division Argonne National Laboratory sv...@an... (630)252-9182 |