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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Asyn: disconnect and reconnect port via PV |
From: | Mark Rivers <[email protected]> |
To: | "'Niedermayer, Philipp'" <[email protected]>, "[email protected]" <[email protected]> |
Date: | Fri, 31 Aug 2018 13:27:08 +0000 |
Hi Philip, You should be able to do what you want by loading an asynRecord in that IOC and setting its PORT field to the name of “device_port” you used in the vxi11Configure command.
Below is a screen shot of the medm screen for controlling the asynRecord. Note that there are 2 widgets labelled “Connect”, which is a bit confusing. The upper one is the .PCNCT field and connects the asynRecord to an asyn port. It results in a call to pasynManager->connectDevice() or pasynManager->disconnect(). You
want to leave that in the Connect state. The lower one is the .CNCT field, and connects or disconnects the actual device, i.e. it calls pasynCommon->connect() or pasynCommon->disconnect(). If you select Disconnect
on this then it will close the VXI11 connection. You will also need to set the .AUCT field to noAutoConnect so that asynManager does not try to automatically reconnect the device the next time a record tries to communicate with it. Let me know if you have questions or problems. Mark From: [email protected] <[email protected]>
On Behalf Of Niedermayer, Philipp Hello everyone, I have implemented a soft IOC that communicates to a spectrum analyzer via asyn and stream device using vxi11: vxi11Configure("device_port","$(DEVICE_IP)",0,"0.0","inst0",0,0) The device has a limitation that it can only be controlled by one remote controller at a time. The current approach is to temporarily stop the entire soft IOC when required and then restart it via the st.cmd file. It would be better to have a PV (e.g. a bo with CONNECTED/DISCONNECTED state) for this task, that can dis- and reconnect the asyn port. I know that you can disable record processing by the DISA field, but that did not prevent asyn to keep up a connection to the device in background. I found the “asynManager” which has the promising “connectDevice” and “disconnect” option, but I’m not sure how to (if at all) call them from the PV. Is there a way to have such a PV? How could that be implemented? Greetings and tanks in advance Philipp
|