Hi Robert,
When I tried using asynSetTraceMask with my ioc that was
working using asyn 4.5, the ports that I set asynTraceMask
for would no longer connect.
That is very interesting. When you set asynTraceMask that actually
results in a call to pasynCommon->connect. That happens at the time of
the call to asynSetTraceMask. So it is should be connecting to the
device at that point.
But then you have this line:
## Reboot the GPIB gateway
E5810Reboot("192.168.0.63",0)
I am not familiar with the VXI-11 and GPIB gateway, but is it possible
that rebooting the gateway is breaking the connection that has already
been made because you set the asynTraceMask?
Here are 3 suggestions:
- Remove the call to E5810Reboot temporarily to see if that fixes the
problem.
- Move the call to asynSetTraceMask to after the E5810Reboot call
- Put a delay (epicsThreadSleep) after the E5810Reboot to see if the
device is simply not quite ready yet to accept connections when iocInit
is run.
Mark
-----Original Message-----
From: Robert Emery [mailto:[email protected]]
Sent: Thursday, August 23, 2007 11:02 AM
To: Mark Rivers
Cc: [email protected]
Subject: Re: asyn 4.8 problem
Mark,
I made the changes to asynManager but that made no
difference. I tried
using the asynSetTraceMask but that did not give me any more
information. When I tried using asynSetTraceMask with my ioc
that was
working using asyn 4.5, the ports that I set asynTraceMask
for would no
longer connect.
I have attached the outputs from various ioc configurations.
Thanks
Rob
Mark Rivers wrote:
Rob,
We recently had a report from Dirk Zimich at PSI that VXI11 was not
working with asyn R4-8. But he was upgrading from EPICS
R3.13, not an
earlier version of asyn. So your report is very useful,
since you say
it worked in asyn R4-5.
Can you send the complete output when your IOC starts?
Can you set the asynTraceMask on that asyn port so that you get full
debugging information?
Also, I suspect that the problem may be coming from the
code that was
added in asyn R4-6 to automatically queue a connect request (call to
pasynCommon->connect) when a call to
pasynManager->connectDevice is done
for a port with the attributes autoConnect=Yes and isConnected=No.
Can you please try disabling this code with the following
change that
comments out the call to pasynCommon->connect() and letting
me know if
it fixes the problem?
corvette> cvs diff -rR4-8 asynManager.c
Index: asynManager.c
===================================================================
RCS file:
/net/phoebus/epicsmgr/cvsroot/epics/modules/soft/asyn/asyn/asy
nDriver/as
ynManager.c,v
retrieving revision 1.93
diff -u -r1.93 asynManager.c
--- asynManager.c 28 Apr 2007 21:19:58 -0000 1.93
+++ asynManager.c 22 Aug 2007 17:25:32 -0000
@@ -1185,6 +1185,7 @@
}
pasynCommon = (asynCommon *)pasynInterface->pinterface;
commonPvt = pasynInterface->drvPvt;
+/*
status = pasynCommon->connect(commonPvt, pasynUser);
if (status != asynSuccess) {
asynPrint(pasynUser, ASYN_TRACE_ERROR,
@@ -1192,6 +1193,7 @@
portName, pasynUser->errorMessage);
goto cleanup;
}
+*/
cleanup:
status = pasynManager->freeAsynUser(pasynUser);
if (status != asynSuccess) {
Thanks,
Mark
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Robert Emery
Sent: Wednesday, August 22, 2007 11:25 AM
To: [email protected]
Subject: asyn 4.8 problem
I have recently upgraded from asyn 4.5 to 4.8 and am seeing the
following error messages whereas I didn't have them with 4.5:
Starting iocInit
##############################################################
##############
### EPICS IOC CORE built on Oct 9 2006
### EPICS R3.14.8.2 $R3-14-8-2$ $2006/01/06 15:55:13$
##############################################################
##############
2007/08/22 09:01:13.319 gpib0,1 vxiCreateDeviceLink RPC
error : RPC:
Unable to receive; errno = Connection reset by peer
2007/08/22 09:01:13.319 CoilA vxiCreateDevLink failed for addr 1
2007/08/22 09:01:13.319 asynManager::asynConnectCallback,
port CoilA
error calling asynCommon->connect
2007/08/22 09:01:13.319 gpib0,1 vxiCreateDeviceLink RPC
error : RPC:
Unable to send; errno = Broken pipe
2007/08/22 09:01:13.319 CoilA vxiCreateDevLink failed for addr 1
.
.
.
I am using this to control equipment on GPIB via an Agilent E5810
Ethernet/GPIB bridge.
Any ideas?
Thanks
Rob Emery
UW Medical Center