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: Adding new record to EPICS 7 IOC with pvDatabase
From: Joao Paulo Martins via Tech-talk <tech-talk at aps.anl.gov>
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 27 Apr 2020 14:36:32 +0000

Hello Tech-Talk,

 

I’m trying to compile an IOC that has a single PV created using pvDatabase, pvData and pvAccess facilities. I’m using the “database” example in exampleCPP and also “NDPluginPVA.cpp” from ADCore as the models on how to do this task. Basically I have an an EPICS shell function that will has the following code:

 

PVDatabasePtr master = PVDatabase::getMaster();

 

string recordName = “my_record_name”;

NTScalarBuilderPtr ntScalarBuilder = NTScalar::createBuilder();

PVStructurePtr pvStructure = ntScalarBuilder->

    value(pvInt)->

    addAlarm()->

    addTimeStamp()->

    createPVStructure();

 

PVRecordPtr pvRecord = PVRecord::create(recordName,pvStructure);

bool result = master->addRecord(pvRecord);

 

The above code is include in the source of the support library built together with the IOC. The Makefile looks like this:

 

mySupport_LIBS += qsrv nt pvDatabase

mySupport_LIBS += $(EPICS_BASE_PVA_CORE_LIBS)

mySupport_LIBS += $(EPICS_BASE_IOC_LIBS)

 

I’ve also included the same libs for the IOC rules:

myIOC_LIBS += mySupport

myIOC_LIBS += qsrv nt pvDatabase

myIOC_LIBS += $(EPICS_BASE_PVA_CORE_LIBS)

myIOC_DBD  += PVAServerRegister.dbd

myIOC_DBD  += qsrv.dbd

 

However, when I compile the module, the linking process shows that there are two undefined references:

mySupport.so: undefined reference to `epics::pvDatabase::PVDatabase::addRecord(std::shared_ptr<epics::pvDatabase::PVRecord> const&)'

mySupport.so: undefined reference to `epics::pvDatabase::PVRecord::create(std::string const&, std::shared_ptr<epics::pvData::PVStructure> const&)'

 

I would appreciate any help to overcome these basics steps.

Thanks in advance!

______________________

Joao Paulo Martins

Control Systems Engineer

European Spallation Source ERIC

 

 

 


Replies:
Re: Adding new record to EPICS 7 IOC with pvDatabase Marty Kraimer via Tech-talk

Navigate by Date:
Prev: Stream Device Format "%d" has data type signed which is not supported by RECORD Peter Milne via Tech-talk
Next: Tips for doing conditional logic in EPICS records Mark Davis 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: Stream Device Format "%d" has data type signed which is not supported by RECORD Peter Milne via Tech-talk
Next: Re: Adding new record to EPICS 7 IOC with pvDatabase Marty Kraimer 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, 28 Apr 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·