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  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Sub record not finding INAM and SNAM
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Ernesto Paiser <ernesto_paiser at lynceantech.com>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Mon, 29 Jun 2020 15:33:21 +0000
In addition to Michael’s question, are you loading a registrar entry for condition in your DBD file? Your IOC must load a DBD entry looking like this:

registrar(condition)

I suspect that may be your issue.

- Andrew



On Jun 28, 2020, at 11:32 PM, Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov> wrote:

What does the record "T:Q03:CndtnSB" definition look like?
Do you set INAM to "conditionInit"?

On 6/28/20 5:10 PM, Ernesto Paiser via Tech-talk wrote:
Hello,

My subroutine record (3.15.5) is not finding the INAM and the SNAM subroutines:

iocInit()
Starting iocInit
############################################################################
## EPICS R3.15.5-01
## EPICS Base built Feb 21 2020
############################################################################
Subroutine not found PV: T:Q03:CndtnSB Init subroutine (INAM)

The code was working in 3.14.11 (lised below):

static long conditionInit(subRecord *psub)
{
 struct myCallbackStruct *pcb;

 ...
 pcb->precord = psub;
 psub->dpvt = (void *)pcb;
 return(0);
}

static long conditionProc(subRecord *psub)
{
 struct myCallbackStruct *pcb;
 long nRequest = 1;

 ...
 return(0);
}

static registryFunctionRef conditionRef[] = {
   {"conditionInit",(REGISTRYFUNCTION)conditionInit},
   {"conditionProc",(REGISTRYFUNCTION)conditionProc}
};

static void condition(void)
{
   registryFunctionRefAdd(conditionRef,NELEMENTS(conditionRef));
}
epicsExportRegistrar(condition);

In the Makefile I have included the source code like below:

# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
$(PROD_IOC)_SRCS += $(PROD_IOC)_registerRecordDeviceDriver.cpp
$(PROD_IOC)_SRCS_DEFAULT += iocshMain.c
$(PROD_IOC)_SRCS += condition.c

What I'm missing, is there some changes from 3.14.11 to 3.15.5.

Thank you,

Ernesto



-- 
Complexity comes for free, simplicity you have to work for.


References:
Sub record not finding INAM and SNAM Ernesto Paiser via Tech-talk
Re: Sub record not finding INAM and SNAM Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Re: Sub record not finding INAM and SNAM Michael Davidsaver via Tech-talk
Next: ci-scripts 3.1 release: support for GitHub Actions Ralph Lange via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Sub record not finding INAM and SNAM Michael Davidsaver via Tech-talk
Next: Re: Sub record not finding INAM and SNAM Ernesto Paiser via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 29 Jun 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·