EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO"
From: "Mark Rivers" <[email protected]>
To: "Piccoli, Luciano" <[email protected]>, <[email protected]>
Date: Mon, 28 Nov 2011 19:48:16 -0600
Now that you have fixed that record please send the output of 
 
dbpr "record" 10
 
for all 4 records.  
 
Also send the complete output when you start the IOC.
 
It does not make sense that dbpr is reporting DPVT=nil if you see the error message, since the error message is printed after DPVT is allocated.
 
Mark
 

________________________________

From: Piccoli, Luciano [mailto:[email protected]]
Sent: Mon 11/28/2011 6:33 PM
To: Mark Rivers; [email protected]
Subject: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO"



Thanks Mark and Eric.

I made the suggested changes to the template file:

        record(ao, "KLYS:$(AREA):$(LOCATION):WF_TRIG_DELAY_WRITE") {
          field(DESC, "Waveform trigger delay (write)")
          field(DTYP, "asynInt32")
          field(OUT, "@asyn($(PORT) $(CHANNEL) $(TIMEOUT))WF_TRIG_DELAY_WRITE")
        }

        record(ao, "KLYS:$(AREA):$(LOCATION):MOD_TRIG_DELAY_WRITE") {
          field(DESC, "Remote modulator trigger delay (write)")
          field(DTYP, "asynInt32")
          field(OUT, "@asyn($(PORT) $(CHANNEL) $(TIMEOUT))MOD_TRIG_DELAY_WRITE")
        }
       
        record(ai, "KLYS:$(AREA):$(LOCATION):WF_TRIG_DELAY_READ") {
          field(DESC, "Waveguide trigger delay (read)")
          field(DTYP, "asynInt32")
          field(INP, "@asyn($(PORT) $(CHANNEL) $(TIMEOUT))WF_TRIG_DELAY_READ")
          field(SCAN, "$(SCAN)")
        }
       
        record(ai, "KLYS:$(AREA):$(LOCATION):MOD_TRIG_DELAY_READ") {
          field(DESC, "Remote modulator trigger delay (read)")
          field(DTYP, "asynInt32")
          field(INP, "@asyn($(PORT) $(CHANNEL) $(TIMEOUT))MOD_TRIG_DELAY_READ")
          field(SCAN, "$(SCAN)")
        }

However, in the previous mksu.template file only the KLYS:$(AREA):$(LOCATION):MOD_TRIG_DELAY_WRITE record had the DTYP/OUT in the wrong order and the error message appeared for all four records.

This is the Makefile section that defines the example.dbd:

        DBD += example.dbd
        example_DBD += base.dbd
        example_DBD += asyn.dbd
        example_DBD += drvAsynIPPort.dbd
        example_DBD += mksu.dbd

Following the initialization it seems I have an issue when hitting line 181 in the devAsynInt32.c:181. The routine initCommon() is failing on pasinEpicsUtils->parseLink(), which is defined in asynEpicsUtils.c:67. In it the plink->type is 0 (CONSTANT) where I think the correct value would be INST_IO.

The asyn version is 4-14 by the way.

Thanks,
Luciano



-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: Monday, November 28, 2011 15:57
To: Piccoli, Luciano; [email protected]
Subject: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO"

Hi Luciano,

I am not sure what is wrong.

You said previously:

> Using gdb I see that they have the link type set to 0 (CONSTANT).

That is not what "dbpr" is showing for your record.  It shows

OUT:INST_IO @asyn(Mksu 0 1)WF_TRIG_DELAY_WRITE

That looks correct, as does DTYP.

DTYP: asynInt32

Here are the fields that don't look correct in your record:

DPVT: (nil)
SEVR: <nil>
ASP: (nil)

DPVT is initialized in the initCommon function in
asyn/devEpics/devAsynInt32.c.  It allocates that memory before it parses
the link, and parsing the link is where it prints the error message in
your original message.  So I don't see how it prints that error message
and still has DPVT=(nil).  And I don't understand why it is printing
that error message when dbpr shows the OUT link has the correct syntax.

I suspect a problem with your example.dbd file.  How did you create that
file?  Does it include all of the asyn dbd stuff?

Here is the output for an ao record with asyn device support for one of
my IOCs.  Note that none of the files are are (nil) in your record are
(nil) in mine.

ioc13lab> dbpr "13LAB:tca1SCA1_HI",10
ACKS: NO_ALARM      ACKT: YES           ADEL: 0             ALST: 0

AOFF: 0             ASG:                ASLO: 0             ASP: 0x0

BKPT: 00            DESC: SCA 1 high limit                  DISA: 0

DISP: 0             DISS: NO_ALARM      DISV: 1             DOL:CONSTANT

DPVT: 0x114c108     DRVH: 100           DRVL: 0             DSET:
0x1c7736c    
DTYP: asynFloat64   EGU:                EGUF: 0             EGUL: 0

EOFF: 0             ESLO: 1             EVNT: 0
FLNK:CONSTANT 0    
HHSV: NO_ALARM      HIGH: 0             HIHI: 0             HOPR: 100

HSV: NO_ALARM       HYST: 0             INIT: 0            
IVOA: Continue normally                 IVOV: 0             LALM: 0

LBRK: 0             LCNT: 0             LINR: NO CONVERSION LLSV:
NO_ALARM     
LOLO: 0             LOPR: 0             LOW: 0              LSET:
0xff2fb8     
LSV: NO_ALARM       MDEL: 0            
MLIS: 00 bd b5 78 00 bd b5 78 00 00 00 01                   MLOK: 01 2b
e4 50  
MLST: 0             NAME: 13LAB:tca1SCA1_HI                 NSEV:
NO_ALARM     
NSTA: NO_ALARM      OIF: Full           OMOD: 0             OMSL:
supervisory  
ORAW: 0             ORBV: 0             OROC: 0            
OUT:INST_IO @asyn(icbTca1)HI1           OVAL: 0             PACT: 0

PBRK: 0x0           PHAS: 0             PINI: YES           PPN: 0x0

PPNR: 0x0           PREC: 2             PRIO: LOW           PROC: 0

PUTF: 0             PVAL: 0             RBV: 0              RDES:
0x1cdf8b0    
ROFF: 0             RPRO: 0             RSET: 0x1c7781c     RVAL: 0

SCAN: Passive       SDIS:CONSTANT       SEVR: NO_ALARM
SIML:CONSTANT      
SIMM: NO            SIMS: NO_ALARM      SIOL:CONSTANT       SPVT: 0x0

STAT: NO_ALARM      TIME: 2011-11-04 11:11:27.320887998     TPRO: 0

TSE: 0              TSEL:CONSTANT       UDF: 0              VAL: 0

value = 0 = 0x0


Mark


-----Original Message-----
From: Piccoli, Luciano [mailto:[email protected]]
Sent: Monday, November 28, 2011 11:57 AM
To: Mark Rivers; [email protected]
Subject: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO"


Hi Mark,

Here is the info you requested:

        epics> asynReport 10
        MksuServer multiDevice:No canBlock:Yes autoConnect:Yes
            enabled:Yes connected:Yes numberConnects 1
            nDevices 0 nQueued 0 blocked:No
            asynManagerLock:No synchronousLock:No
            exceptionActive:No exceptionUsers 0 exceptionNotifys 0
            interposeInterfaceList
                asynOctet pinterface 0x68efa0 drvPvt 0x8f70aa8
            interfaceList
                asynCommon pinterface 0x68e05c drvPvt 0x8f27858
                asynOctet pinterface 0x8f278a0 drvPvt 0x8f27858
            Port 194.168.0.21:56789 UDP: Connected
                            fd: 4
            Characters written: 0
               Characters read: 0
        Mksu multiDevice:Yes canBlock:Yes autoConnect:Yes
            enabled:Yes connected:Yes numberConnects 1
            nDevices 1 nQueued 0 blocked:No
            asynManagerLock:No synchronousLock:No
            exceptionActive:No exceptionUsers 0 exceptionNotifys 0
            interfaceList
                asynCommon pinterface 0x68f12c drvPvt 0x8f70cf8
                asynDrvUser pinterface 0x68f204 drvPvt 0x8f70cf8
                asynInt32 pinterface 0x68f138 drvPvt 0x8f70cf8
                asynInt16Array pinterface 0x68f1b4 drvPvt 0x8f70cf8
            addr 0 autoConnect Yes enabled Yes connected No
exceptionActive No
            exceptionActive No exceptionUsers 0 exceptionNotifys 0
            blocked No
        Mksu: missing report - MksuServer
        Port: Mksu
        Parameter list 0
        Number of parameters is: 4
        Parameter 0 type=asynInt32, name=WF_TRIG_DELAY_WRITE, value is
undefined
        Parameter 1 type=asynInt32, name=MOD_TRIG_DELAY_WRITE, value is
undefined
        Parameter 2 type=asynInt32, name=WF_TRIG_DELAY_READ, value is
undefined
        Parameter 3 type=asynInt32, name=MOD_TRIG_DELAY_READ, value is
undefined
        epics>  dbpr KLYS:IN20:3130:WF_TRIG_DELAY_WRITE 10
        ACKS: NO_ALARM      ACKT: YES           ADEL: 0
ALST: 0
        AOFF: 0             ASG:                ASLO: 0             ASP:
(nil)
        BKPT: 00            DESC: Waveform trigger delay (write)
DISA: 0
        DISP: 0             DISS: NO_ALARM      DISV: 1
DOL:CONSTANT
        DPVT: (nil)         DRVH: 0             DRVL: 0
DSET: 0x68f470
        DTYP: asynInt32     EGU:                EGUF: 0
EGUL: 0
        EOFF: 0             ESLO: 1             EVNT: 0
FLNK:CONSTANT 0
        HHSV: NO_ALARM      HIGH: 0             HIHI: 0
HOPR: 0
        HSV: NO_ALARM       HYST: 0             INIT: 1
        IVOA: Continue normally                 IVOV: 0
LALM: 0
        LBRK: 0             LCNT: 0             LINR: NO CONVERSION
LLSV: NO_ALARM
        LOLO: 0             LOPR: 0             LOW: 0
LSET: 0x8f7d120
        LSV: NO_ALARM       MDEL: 0
        MLIS: 00 00 00 00 00 00 00 00 00 00 00 00
MLOK: 40 46 f7 08
        MLST: 0             NAME: KLYS:IN20:3130:WF_TRIG_DELAY_WRITE
        NSEV: NO_ALARM      NSTA: NO_ALARM      OIF: Full
OMOD: 0
        OMSL: supervisory   ORAW: 0             ORBV: 0
OROC: 0
        OUT:INST_IO @asyn(Mksu 0 1)WF_TRIG_DELAY_WRITE
OVAL: 0
        PACT: 0             PBRK: (nil)         PHAS: 0
PINI: NO
        PPN: (nil)          PPNR: (nil)         PREC: 0
PRIO: LOW
        PROC: 0             PUTF: 0             PVAL: 0             RBV:
0
        RDES: 0x8f2f7f8     ROFF: 0             RPRO: 0
RSET: 0x25a8e0
        RVAL: 0             SCAN: Passive       SDIS:CONSTANT
SEVR: <nil>
        SIML:CONSTANT       SIMM: NO            SIMS: NO_ALARM
SIOL:CONSTANT
        SPVT: 0x8f74b40     STAT: UDF           TIME: <undefined>
TPRO: 0
        TSE: 0              TSEL:CONSTANT       UDF: 0              VAL:
0
        epics>

File mksu.template:

        record(ao, "KLYS:$(AREA):$(LOCATION):WF_TRIG_DELAY_WRITE") {
          field(DESC, "Waveform trigger delay (write)")
          field(DTYP, "asynInt32")
          field(OUT, "@asyn($(PORT) $(CHANNEL)
$(TIMEOUT))WF_TRIG_DELAY_WRITE")
          field(SCAN, "$(SCAN)")
        }
       
        record(ao, "KLYS:$(AREA):$(LOCATION):MOD_TRIG_DELAY_WRITE") {
          field(OUT, "@asyn($(PORT) $(CHANNEL)
$(TIMEOUT))MOD_TRIG_DELAY_WRITE")
          field(DTYP, "asynInt32")
          field(SCAN, "$(SCAN)")
          field(DESC, "Remote modulator trigger delay (write)")
        }
       
        record(ai, "KLYS:$(AREA):$(LOCATION):WF_TRIG_DELAY_READ") {
          field(DTYP, "asynInt32")
          field(SCAN, "$(SCAN)")
          field(INP, "@asyn($(PORT) $(CHANNEL)
$(TIMEOUT))WF_TRIG_DELAY_READ")
          field(DESC, "Waveguide trigger delay (read)")
        }
       
        record(ai, "KLYS:$(AREA):$(LOCATION):MOD_TRIG_DELAY_READ") {
          field(DTYP, "asynInt32")
          field(SCAN, "$(SCAN)")
          field(INP, "@asyn($(PORT) $(CHANNEL)
$(TIMEOUT))MOD_TRIG_DELAY_READ")
          field(DESC, "Remote modulator trigger delay (read)")
        }

File mksu.substitutions:

        file ../../db/mksu.template
        {
        pattern
        {AREA, LOCATION, PORT, CHANNEL, TIMEOUT, SCAN}
        {IN20, 3130, Mksu, 0, 1, "I/O Intr"}
        }

Thanks,
Luciano

-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: Thursday, November 24, 2011 05:05
To: Piccoli, Luciano; [email protected]
Subject: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO"

Hi Luciano,

Can you send mksu.substitutions and whatever .template or .db files it
loads?

What do you get at the IOC prompt for

asynReport 10
dbpr  KLYS:IN20:3130:WF_TRIG_DELAY_WRITE 10

Mark


________________________________

From: [email protected] on behalf of Piccoli, Luciano
Sent: Wed 11/23/2011 5:56 PM
To: [email protected]
Subject: Asyn: "devAsynInt32::initCommon Link must be INST_IO"



Hi,

I'm writing a simple asyn driver which I started out from the HMS
example. When starting the ioc I get these messages:

        lpiccoli@cdlx22 iocMksu]$ ./st.cmd
        #! ../../bin/linux-x86/example
        dbLoadDatabase("../../dbd/example.dbd")
        example_registerRecordDeviceDriver(pdbbase)
        drvMksu_init()
        drvAsynIPPortConfigure("MksuServer", "194.168.0.21:56789 UDP",
0, 0, 1)
        initMksu("Mksu", "MksuServer")
        dbLoadTemplate("mksu.substitutions")
        iocInit()
        Starting iocInit

########################################################################
####
        ## EPICS R3.14.10-lcls1 $R3-14-10$ $2008/10/27 19:39:04$
        ## EPICS Base built Jul 15 2009

########################################################################
####
        KLYS:IN20:3130:MOD_TRIG_DELAY_READ devAsynInt32::initCommon
Link must be INST_IO
        KLYS:IN20:3130:WF_TRIG_DELAY_READ devAsynInt32::initCommon  Link
must be INST_IO
        KLYS:IN20:3130:MOD_TRIG_DELAY_WRITE devAsynInt32::initCommon
Link must be INST_IO
        KLYS:IN20:3130:WF_TRIG_DELAY_WRITE devAsynInt32::initCommon
Link must be INST_IO
        iocRun: All initialization complete
        epics>   

It looks like something is not getting set correctly, the link type of
those records should be INST_IO. Using gdb I see that they have the link
type set to 0 (CONSTANT).

Am I missing something in the st.cmd file? Suggestions are welcome :)

Thank you,
Luciano







Replies:
RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
References:
Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Mark Rivers
RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Mark Rivers
RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano

Navigate by Date:
Prev: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
Next: Re: [help] degree in Computer Science/Software Engineering djquock
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
Next: RE: Asyn: "devAsynInt32::initCommon Link must be INST_IO" Piccoli, Luciano
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·