You have created the port with autoconnect disabled. Thus, I expect the error message that says that queueRequest failed, because the port is not connected. But then asynReport says that the port is connected. This must be because StreamDevice connected it? But once it is connected then your StreamDevice records should work correctly. Do they? If you force an input or output record to process does it work?
One possibility for your problem is that your Java server takes longer than 0.5 second to connect. If a port has autoconnect enabled, then when the port is first connected asyn will try to connect to it, but it will only wait 0.5 seconds by default. You can lengthen that time to 2 seconds, for example with this command before you create the IP port.
asynSetAutoConnectTimeout 2.0
You can also try to wait for the port to connect in your startup script with this command:
asynWaitConnect(const char *portName, double timeout)
i.e.
asynWaitConnect("lambda1", 2.0)
right after your drvAsynIPPortConfigure command.
Mark
________________________________
From: Pavel Maslov [[email protected]]
Sent: Friday, August 09, 2013 9:00 AM
To: Mark Rivers; EPICS Tech Talk
Subject: Re: [asyn] link already open!
Hi Mark!
The error occurs at iocInit (since my PVs have PINI=YES) and each time I read/write via CA.
The server is a Java Device Simulator at localhost:7001. It is always running and it never disconnects. All of my PVs are marked Invalid. In fact they have not been initialized.
I have tried with noAutoConnect=1 and this is what i get:
epics> 2013/08/09 15:48:06.034504 CAS-client lambda-ps:PWR_OUTPUT:RBV lockRequest: pasynManager->queueRequest() failed: port lambda1 not connected
epics> asynReport 2
lambda1 multiDevice:No canBlock:Yes autoConnect:No
enabled:Yes connected:Yes numberConnects 1
nDevices 0 nQueued 0 blocked:No
asynManagerLock:No synchronousLock:No
exceptionActive:No exceptionUsers 2 exceptionNotifys 0
interposeInterfaceList
asynOctet pinterface 0x7fdceea29800 drvPvt 0x1c6f820
interfaceList
asynCommon pinterface 0x7fdceea26c60 drvPvt 0x1c6c270
asynOctet pinterface 0x1c6c2f8 drvPvt 0x1c6c270
Port 127.0.0.1:7001<http://127.0.0.1:7001>: Connected
fd: 9
Characters written: 0
Characters read: 0
--
Regards,
Pavel Maslov, MS
On Fri, Aug 9, 2013 at 3:16 PM, Mark Rivers <[email protected]<mailto:[email protected]>> wrote:
Please provide some more information:
- When does the error occur? At iocInit when connecting to the device for the first time? When the server first comes on line? When the server is restarted?
- The server is at port 7001 on the localhost. Is that server always running when the IOC is running? Does the server disconnect after each transaction?
You have created the drvAsynIPPort with the default value of 0 for the last 3 parameters, so it is using noAutoConnect=0, which means that asynManager will automatically try to connect the port before queuing a request. If the connection attempt fails then asynManager will not queue the request. So I am having a hard time understanding how StreamDevice found the port disconnected, unless your server disconnected in the time between when asynManager queued the request and when StreamDevice was called.
Mark
________________________________
From: [email protected]<mailto:[email protected]> [[email protected]<mailto:[email protected]>] on behalf of Pavel Maslov [[email protected]<mailto:[email protected]>]
Sent: Friday, August 09, 2013 4:20 AM
To: EPICS Tech Talk
Subject: [asyn] link already open!
Hello all,
When can this message pop up:
2013/08/09 11:03:11.051131 lambda1 lambda-ps:CURR:MAX:RBV: pasynCommon->connect() failed: 127.0.0.1:7001<http://127.0.0.1:7001><http://127.0.0.1:7001>: Link already open!
2013/08/09 11:03:11.052968 lambda1 lambda-ps:CURR:MAX:RBV: Protocol aborted
--
Regards,
Pavel Maslov, MS
Controls Engineer
- Replies:
- Re: [asyn] link already open! Pavel Maslov
- References:
- [asyn] link already open! Pavel Maslov
- RE: [asyn] link already open! Mark Rivers
- Re: [asyn] link already open! Pavel Maslov
- Navigate by Date:
- Prev:
Re: motor record: continuously update limit switches Ron Sluiter
- Next:
Re: motorRecord simulation & STUP field Pearson, Matthew R.
- 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
- Navigate by Thread:
- Prev:
Re: [asyn] link already open! Pavel Maslov
- Next:
Re: [asyn] link already open! Pavel Maslov
- 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
|