On 12.08.2013 14:08, Pavel Maslov wrote:
I think I have understood the origin of these messages. A possible
remedy is not to include base.dbd in the "main" IOC, because it has
already been included in the support module's dbd file.
Thanks to all who helped!
When I build loadable modules, I use base.dbd only in the main IOC, but
not in the module. My module .dbd contains only what is defined inside
the module itself.
Dirk
--
Regards,
Pavel Maslov, MS
On Mon, Aug 12, 2013 at 9:48 AM, Pavel Maslov <[email protected]
<mailto:[email protected]>> wrote:
Hi Dirk,
Thanks for a good pointer - my asyn and streamdevice versions didn't
match! Now everything works.
I get a couple of warnings, though. Do you know what they say?
registryFunctionRefAdd: could not register asSubInit
Warning -- iocshRegisterVariable redefining asCaDebug.
Warning -- iocshRegisterVariable redefining dbRecordsOnceOnly.
Warning -- iocshRegisterVariable redefining dbBptNotMonotonic.
--
Regards,
Pavel Maslov, MS
On Mon, Aug 12, 2013 at 9:06 AM, Dirk Zimoch <[email protected]
<mailto:[email protected]>> wrote:
On 09.08.2013 17:05, Pavel Maslov wrote:
Mark, I cannot do anything to StreamDevice records - I mean
I can caget
and caput, but everytime they get processed - those error
messages pop
up. And the PVs are invalid all the time never change
values. This said,
I can talk to my Java Simulator using asynrecord:
dbpf lambda1-ps:asyn.AOUT "*idn?"
, and I get the response. No problem. So it's StreamDevice
that produces
these errors (as you pointed out). Also, I don't think that
my Java
Simulator is slow. I tried your solution to lengthen the
auto connect
time but the problem still remains.
What I am confident in, though, (sorry for not telling this
before) is
that it has to do with the fact that I am loading
asyn+streamdevice
support module dynamically (from iocsh).
When I use it the normal EPICS way - everything is fine as
it should be.
I do the same and that works for me. But you have to be careful:
Are you sure that you load the same version of asyn that you
used to compile StreamDevice?
Sometimes the binary API of asyn changes from one version to
another (although the source API is the same). That happens when
functions pointers in the function tables get re-ordered in a
new asyn version.
Dirk
--
Regards,
Pavel Maslov, MS
On Fri, Aug 9, 2013 at 4:14 PM, Mark Rivers
<[email protected] <mailto:[email protected]>
<mailto:[email protected].__edu
<mailto:[email protected]>>> wrote:
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]
<mailto:[email protected]>
<mailto:pavel.masloff@gmail.__com
<mailto:[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>
<http://127.0.0.1:7001><http:/__/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]>
<mailto:[email protected].__edu
<mailto:[email protected]>><mailto:rivers@cars.__uchicago.edu
<mailto:[email protected]>
<mailto:[email protected].__edu
<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]>
<mailto:tech-talk-bounces@aps.__anl.gov
<mailto:[email protected]>><mailto:[email protected]
<mailto:[email protected]>
<mailto:tech-talk-bounces@aps.__anl.gov
<mailto:[email protected]>>>
[[email protected]
<mailto:[email protected]>
<mailto:tech-talk-bounces@aps.__anl.gov
<mailto:[email protected]>><mailto:[email protected]
<mailto:[email protected]>
<mailto:tech-talk-bounces@aps.__anl.gov
<mailto:[email protected]>>>] on behalf of Pavel
Maslov
[[email protected] <mailto:[email protected]>
<mailto:pavel.masloff@gmail.__com
<mailto:[email protected]>><mailto:pavel.masloff@__gmail.com
<mailto:[email protected]>
<mailto:pavel.masloff@gmail.__com
<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><http:/__/127.0.0.1:7001
<http://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
- RE: [asyn] link already open! Mark Rivers
- Re: [asyn] link already open! Pavel Maslov
- Re: [asyn] link already open! Dirk Zimoch
- Re: [asyn] link already open! Pavel Maslov
- Re: [asyn] link already open! Pavel Maslov
- Navigate by Date:
- 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
- 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
|