Hi Zen,
Please try adding the asynSetTraceMask command to your st.cmd right
after the vxi11Configure command.
vxi11Configure( "L0","134.79.64.25",0,0.0,"gpib0",0,0)
asynSetTraceMask("LO",0,1)
That will force a connection to the controller before iocInit. See if
it helps. If it does not help then change the line to:
asynSetTraceMask("LO",0,255)
so we can get a complete printout of what is happening.
Mark
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Dirk Zimoch
> Sent: Thursday, October 25, 2007 6:46 AM
> To: Szalata, Zenon M.
> Cc: EPICS tech-talk
> Subject: Re: Stream device
>
> Hi Zen,
>
> the @init handler runs during iocInit, to be exact during
> init_record. Maybe the
> vxi11 has not yet connected by that time (when
> interruptAccept is still 0). I
> have to check that. I only tested it with serial and TCP
> ports so far.
> Unfortunately, not all asyn ports behave the same.
>
> I have not time this week any more. I hope I can help you by
> the end of next week.
>
> Dirk
>
> Szalata, Zenon M. wrote:
> > I am learning to use stream device to implement a soft IOC
> to control an Agilent 33220A waveform generator, which is
> attached to an ICS 8065 Ethernet-GPIB controller. I have a
> very simple program at this point. It consists of two
> records: ai and ao and a very simple protocol file. I am
> unable to use the @init{} command/handler. Without the
> @init{} commented out the program works as it should. But
> when I uncomment either of the two @init{} statements an
> error results. Here is the output:
> > ------------------------------
> > zms@esaux1 $ ../../bin/linux-x86/atest st.cmd
> > #!../../bin/linux-x86/atest
> > < envPaths
> > epicsEnvSet(ARCH,"linux-x86")
> > epicsEnvSet(IOC,"iocagwfg")
> >
> epicsEnvSet(TOP,"/afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest")
> > epicsEnvSet(ASYN,"/afs/slac/g/esa/ilc/epics/modules/asyn/4-9")
> >
> epicsEnvSet(STRM,"/afs/slac/g/esa/ilc/epics/modules/streamdevice-2-3")
> >
> epicsEnvSet(EPICS_BASE,"/afs/slac/g/esa/ilc/epics/base/R3-14-9-ilc1")
> > epicsEnvSet( "STREAM_PROTOCOL_PATH","../../atestApp/Db:.")
> > cd /afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest
> > ## Register all support components
> > dbLoadDatabase("dbd/atest.dbd",0,0)
> > atest_registerRecordDeviceDriver(pdbbase)
> > vxi11Configure( "L0","134.79.64.25",0,0.0,"gpib0",0,0)
> > dbLoadRecords("db/atest.db","P=AG:")
> > cd
> /afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest/iocBoot/iocagwfg
> > iocInit()
> > Starting iocInit
> >
> ##############################################################
> ##############
> > ## EPICS R3.14.9-lcls1 $R3-14-9$ $2007/02/05 16:31:45$
> > ## EPICS Base built Oct 2 2007
> >
> ##############################################################
> ##############
> > 2007/10/24 18:21:44.742 L0 port not connected
> > 2007/10/24 18:21:45.307 AG:RFreq: asynError in write: L0
> port is not connected
> >
> > 2007/10/24 18:21:45.308 AG:RFreq: @init handler failed
> > 2007/10/24 18:21:45.308 AG:RFreq: Record initialization failed
> > 2007/10/24 18:21:45.308 AG:WFreq: asynError in write: L0
> port is not connected
> >
> > 2007/10/24 18:21:45.308 AG:WFreq: @init handler failed
> > 2007/10/24 18:21:45.308 AG:WFreq: Record initialization failed
> > Bad init_rec return value PV: AG:WFreq ao: init_record
> > iocInit: All initialization complete
> > epics> exit
> > ---------------------------------
> > Here is my atest.db:
> >
> > ---------------------------------
> > record( ai,"$(P)RFreq"){
> > field( DESC, "read frequency")
> > field( DTYP, "stream")
> > field( SCAN, "10 second")
> > field( PREC, "2")
> > field( EGU, "Hz")
> > field( INP, "@atest.proto rFreq L0 8")
> > }
> > record( ao,"$(P)WFreq"){
> > field( DESC, "write frequency")
> > field( DTYP, "stream")
> > field( SCAN, "Passive")
> > field( PREC, "2")
> > field( EGU, "Hz")
> > field( OUT, "@atest.proto wFreq L0 8")
> > }
> > ---------------------------------
> >
> > And atest.proto, shown here with both @init statements
> commented out:
> >
> > ---------------------------------
> > # file: atest.proto
> >
> > Terminator=LF;
> >
> > #@init{ out " ";}
> >
> > rFreq{
> > out "FREQ?"; in "%f";
> > }
> > wFreq{
> > out "FREQ %f";
> > # @init{ rFreq;}
> > }
> > -----------------------------------
> >
> > Also here is atestApp/src/Makefile
> >
> > -----------------------------------
> > TOP=../..
> >
> > include $(TOP)/configure/CONFIG
> > #----------------------------------------
> > # ADD MACRO DEFINITIONS AFTER THIS LINE
> > #=============================
> >
> > #=============================
> > # build an ioc application
> >
> > PROD_IOC = atest
> >
> > DBD += atest.dbd
> > # atest.dbd will be made up from these files:
> > atest_DBD += base.dbd
> > atest_DBD += atestSup.dbd
> > atest_DBD += stream.dbd
> > atest_DBD += asyn.dbd
> > atest_DBD += drvVxi11.dbd
> >
> > # <name>_registerRecordDeviceDriver.cpp will be created
> from <name>.dbd
> > atest_SRCS += atest_registerRecordDeviceDriver.cpp
> > atest_SRCS_DEFAULT += atestMain.cpp
> > atest_SRCS_vxWorks += -nil-
> >
> > #The following adds support from base/src/vxWorks
> > atest_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
> >
> > #add a definition for each support application used by this
> application
> > atest_LIBS += asyn
> > atest_LIBS += stream
> > #atest_LIBS += genSub
> > #atest_LIBS += calc
> >
> > atest_LIBS += $(EPICS_BASE_IOC_LIBS)
> >
> > #----------------------------------------
> > include $(TOP)/configure/RULES
> > #----------------------------------------
> > # ADD RULES AFTER THIS LINE
> > ------------------------------------------
> >
> > And contents of my atestSup.dbd:
> >
> > ------------------------------------------
> > registrar( drvAsynIPPortRegisterCommands)
> > ------------------------------------------
> >
> > When the @init statements are commented out, this is what I get:
> >
> > -------------------------------------------
> > #!../../bin/linux-x86/atest
> > < envPaths
> > epicsEnvSet(ARCH,"linux-x86")
> > epicsEnvSet(IOC,"iocagwfg")
> >
> epicsEnvSet(TOP,"/afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest")
> > epicsEnvSet(ASYN,"/afs/slac/g/esa/ilc/epics/modules/asyn/4-9")
> >
> epicsEnvSet(STRM,"/afs/slac/g/esa/ilc/epics/modules/streamdevice-2-3")
> >
> epicsEnvSet(EPICS_BASE,"/afs/slac/g/esa/ilc/epics/base/R3-14-9-ilc1")
> > epicsEnvSet( "STREAM_PROTOCOL_PATH","../../atestApp/Db:.")
> > cd /afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest
> > ## Register all support components
> > dbLoadDatabase("dbd/atest.dbd",0,0)
> > atest_registerRecordDeviceDriver(pdbbase)
> > vxi11Configure( "L0","134.79.64.25",0,0.0,"gpib0",0,0)
> > dbLoadRecords("db/atest.db","P=AG:")
> > cd
> /afs/slac.stanford.edu/g/esa/ilc/epics/iocTop/atest/iocBoot/iocagwfg
> > iocInit()
> > Starting iocInit
> >
> ##############################################################
> ##############
> > ## EPICS R3.14.9-lcls1 $R3-14-9$ $2007/02/05 16:31:45$
> > ## EPICS Base built Oct 2 2007
> >
> ##############################################################
> ##############
> > iocInit: All initialization complete
> > epics> dbl
> > AG:RFreq
> > AG:WFreq
> > epics>
> > -------------------------------------------
> > And I can examine the value read in a very simple edm screen.
> >
> > Sorry for such a lengthy note. Thanks for helping,
> > Zen
> >
> >
>
> --
> Dr. Dirk Zimoch
> Paul Scherrer Institut, WBGB/006
> 5232 Villigen PSI, Switzerland
> Phone +41 56 310 5182
>
- Replies:
- RE: Stream device Szalata, Zenon M.
- References:
- Re: Stream device Dirk Zimoch
- Navigate by Date:
- Prev:
Epicstcl Eric Berryman
- Next:
RE: another question on custom record stuff Jeff Hill
- 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: Stream device Dirk Zimoch
- Next:
RE: Stream device Szalata, Zenon M.
- 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
|