1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 <2022> 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Embedding pyPVA server in EPICS IOC: How? |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>, Kuldeep Joshi <kuldeep.joshi at gmail.com> |
Date: | Fri, 6 May 2022 12:55:34 +0000 |
Hi Kuldeep,
There is an areaDetector driver called NDDriverStdArrays that is intended to do more or less what you want, but without Python. It listens for CA monitors on arrays (like those from the sscan record) and puts them into NTNDArrays that can be published with
PVA via NDPluginPva. It has a number of operating options, and so might be able to do what you want.
I realize this does not answer your original question, which is about using Python.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Kuldeep Joshi via Tech-talk <tech-talk at aps.anl.gov>
Sent: Friday, May 6, 2022 12:09 AM To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> Subject: Embedding pyPVA server in EPICS IOC: How? Hello,
I am presently having an EPICS IOC with CA protocol, with SynApps toolkit. ( can python softIoc be used with SynApps)
I wanted the data to be displayed in a Tabular format. For this I set up a separate multi threaded python process, with pyepics on the client side, gathering (monitoring for change) the data from the SynApps SScan Module, this data is processes and published
on a python pvaccess server (pypva) in a tabular format.
Here I intentionally kept the processing in python code as the user has flexibility to adapt the code without recompiling.
The EPICS IOC and the python (pyepics client, pypva server) are started as separate processes. I can use procserv to initiate the IOC as well as the python based CA and PVA client-server.
I was wondering if by using pyDevSup or PyDevice, can I directly monitor the SScan data from the IOC and publish it directly to the python pvaccess server. This will save me one external CA connection. ie is it possible in pyDevSup and PyDevice to use
the internal mechanism of IOC for monitoring and acquiring data.
The attempted connection is as below. Is there an easier/elegant way?
<------------------------------------------------------->
EPICS IOC <--> pyepics <---> pypva <---> phoebusI tried embedding the above python client server code using pyDevSup and PyDevice I am getting similar warnings in both modules.
cas warning: Configured TCP port was unavailable.
cas warning: Using dynamically assigned TCP port 34549, cas warning: but now two or more servers share the same UDP port. cas warning: Depending on your IP kernel this server may not be cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST) iocRun: All initialization complete I guess it has to do with the same port used by the IOC and pyepics. How do I separate the port on the client and server side so as to avoid conflict.
Regards,
Kuldeep Joshi
PS: I am using the following sequence (in pyepics) as given in the SScan documentation to gather the data
|