Failure to set up SRQ handling shouldn't cause other I/O operations to fail. VX11 SRQ handling is a bit of a black art. Tektronix, for example, refused to provide the information we needed to get this working.
I notice that you're using address 3 to set the tracing:
asynSetTraceMask("osc",3,0xff)
What's the significance of the '3'?
Also, it would be useful to actually see the characters being transferred. Add
asynSetTraceIOMask("osc",3,0x2)
to the startup just before the asynSetTraceMask line.
Also, I don't see any line terminators being specified anywhere.
Try adding
Terminator = '\n';
to top of XStream.proto.
On Dec 12, 2012, at 7:25 AM, Jörn Wüstenfeld <[email protected]> wrote:
> Hello,
>
> I'm running into a problem trying to access a LeCrow WR640Zi DSO using its LXI interface.
>
> In st.cmd I have:
>
> vxi11Configure("osc","192.168.0.1",0,0.0,"inst0",0,0)
> asynSetTraceMask("osc",3,0xff)
>
> In XStream.proto:
>
> identify {
> out "*IDN?";
> in "%s";
> @init {
> out "*IDN?";
> in "%s";
> }
> }
>
> And in my db file:
>
> record (stringin, "OSC:identify")
> {
> field (DTYP, "stream")
> field (INP, "@XStream.proto identify $(interface)")
> }
>
> If I start my IOC under Linux, I get the following output:
>
> #!../../bin/linux-x86/crpc
> < envPaths
> epicsEnvSet("ARCH","linux-x86")
> epicsEnvSet("IOC","ioccrpc")
> epicsEnvSet("TOP","/aaa/apps")
> epicsEnvSet("EPICS_BASE","/aaa/base-3.14.12.2")
> epicsEnvSet("ASYN","/aaa/modules/src/asyn4-20")
> epicsEnvSet("STREAM_PROTOCOL_PATH","/aaa/apps/protocols")
> cd /aaa/apps
> ## Register all support components
> dbLoadDatabase "dbd/crpc.dbd"
> crpc_registerRecordDeviceDriver pdbbase
> vxi11Configure("osc","192.168.0.1",0,0.0,"inst0",0,0)
> asynSetTraceMask("osc",3,0xff)
> ## Load record instances
> dbLoadRecords "db/LeCroy.db"
> cd /aaa/apps/iocBoot/ioccrpc
> iocInit
> Starting iocInit
> ############################################################################
> ## EPICS R3.14.12.2 $Date: Mon 2011-12-12 14:09:32 -0600$
> ## EPICS Base built Jul 12 2012
> ############################################################################
> 2012/12/12 14:30:54.111 osc -1 registerInterruptUser
> 2012/12/12 14:30:54.112 osc -1 registerInterruptUser
> 2012/12/12 14:30:54.112 osc addr -1 queueRequest priority 3 not lockHolder
> 2012/12/12 14:30:57.619 osc vxi11 clientCall errno Permission denied clnt_stat 5
> 2012/12/12 14:30:57.619 osc vxiCreateIrqChannel (create_intr_chan): RPC: Timed out
>
> 2012/12/12 14:30:57.619 osc Warning -- SRQ not operational.
> 2012/12/12 14:31:01.623 osc vxi11 clientCall errno Success clnt_stat 5
> osc vxiSrqEnable RPC error : RPC: Timed out
>
> 2012/12/12 14:31:01.623 osc asynGpib:pollAddr srqEnable
> 2012/12/12 14:31:01.623 osc asynGpib:srqHappened
> 2012/12/12 14:31:01.623 osc addr -1 queueRequest priority 1 not lockHolder
> 2012/12/12 14:31:01.623 asynManager connect queueCallback port:osc
> 2012/12/12 14:31:01.623 osc addr -1 queueRequest priority 0 not lockHolder
> 2012/12/12 14:31:01.623 osc schedule queueRequest timeout
> 2012/12/12 14:31:01.623 asynManager::portThread port=osc callback
> 2012/12/12 14:31:01.623 asynManager::portThread port=osc callback
> 2012/12/12 14:31:01.623 osc -1 vxiWrite numchars 5
> 2012/12/12 14:31:05.627 osc vxi11 clientIoCall errno Success clnt_stat 5
> 2012/12/12 14:31:05.627 osc CBM:HZDR:OSC:identify: asynError in write: osc RPC failed
> 2012/12/12 14:31:05.627 _main_ OSC:identify: @init handler failed
> 2012/12/12 14:31:05.627 _main_ OSC:identify: Record initialization failed
> iocRun: All initialization complete
>
>
> Here the Error messages fro clientCall and clientIOCall are missleading, as drvVxi11.c uses strerror instead of clnt_sperrno to print the rpc related error message from the return value of clnt_call(). Insted it should always read : Timeout.
> I'm using base 3.14.12.2 and asyn 4.20.
>
>
> In the log of the scope I see that it recieves the *IDN? query, and that it also sends the correct return string. Probably due to the fat, that it did ot set up the SRQ handler on the socket correctly.
>
> Has anybody an idea how to debug this further? I have seen in the archive the recommendation to use an IOC on the scope directly (Win7) using the supplied ActiveX program to access thescope software. But I prefere the IOC externaly, as I had to install an AV Software on the scope to be allowed to include it in our network which consumes quite a bit of CPU.
>
> Regards,
>
> Joern
>
>
--
Eric Norum
[email protected]
- Replies:
- Re: LeCroy DSO using VXI Jörn Wüstenfeld
- References:
- LeCroy DSO using VXI Jörn Wüstenfeld
- Navigate by Date:
- Prev:
Re: Utilities for EPICS on Multi-Core Linux Shen, Guobao
- Next:
Re: Utilities for EPICS on Multi-Core Linux Till Straumann
- 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: LeCroy DSO using VXI Nicholas P. DiMonte
- Next:
Re: LeCroy DSO using VXI Jörn Wüstenfeld
- 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
|