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  <20192020  2021  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  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: I'm looking for a pvacces example to read PVStructure
From: Heinz Junkes via Tech-talk <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 12 Mar 2019 15:29:40 +0100
Sorry for saying the examples don't work.

The "problem" I've had is that in the (standard) environment 

EPICS_BASE_PVA_CORE_LIBS = pvAccessIOC pvAccessCA pvAccess pvData

e.g. libnt is not included.

That's why I got the unresolved symbols :-(

Danke Heinz 



On 12. Mar 2019, at 11:20, Heinz Junkes via Tech-talk <[email protected]> wrote:

Hi Will,

thanks for looking it up. But I always seem to try the examples that don't work.

E.G. getputmonitor.cpp




In file included from ../getputmonitor.cpp:16:
/Users/junkes/ABER_JETZT/epics-base/include/pv/pvaClient.h:1736:10: warning: 'epics::pvaClient::PvaClientMonitor::monitorConnect' hides overloaded virtual function [-Woverloaded-virtual]
    void monitorConnect(
         ^
/Users/junkes/ABER_JETZT/epics-base/include/pv/pvaClient.h:1603:18: note: hidden overloaded virtual function 'epics::pvaClient::PvaClientMonitorRequester::monitorConnect' declared here: type mismatch at 2nd parameter ('const epics::pvaClient::PvaClientMonitorPtr &' (aka 'const shared_ptr<epics::pvaClient::PvaClientMonitor> &') vs 'const epics::pvData::MonitorPtr &' (aka 'const shared_ptr<epics::pvAccess::Monitor> &'))
    virtual void monitorConnect(epics::pvData::Status const & status,
                 ^
/Users/junkes/ABER_JETZT/epics-base/include/pv/pvaClient.h:1740:10: warning: 'epics::pvaClient::PvaClientMonitor::unlisten' hides overloaded virtual function [-Woverloaded-virtual]
    void unlisten(epics::pvData::MonitorPtr const & monitor);
         ^
/Users/junkes/ABER_JETZT/epics-base/include/pv/pvaClient.h:1616:18: note: hidden overloaded virtual function 'epics::pvaClient::PvaClientMonitorRequester::unlisten' declared here: different number of parameters (0 vs 1)
    virtual void unlisten()
                 ^
2 warnings generated.
c++ -o myEx  -L/Users/junkes/pvTest/lib/darwin-x86 -L/Users/junkes/ABER_JETZT/epics-base/lib/darwin-x86        -arch x86_64            myEx_registerRecordDeviceDriver.o getputmonitor.o    -lmyExSupport -lqsrv -lpvAccessIOC -lpvAccessCA -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom   
Undefined symbols for architecture x86_64:
  "epics::pvaClient::PvaClientGet::issueConnect()", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientGet::setRequester(std::__1::shared_ptr<epics::pvaClient::PvaClientGetRequester> const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientGet::get()", referenced from:
      ClientGetPutMonitor::get() in getputmonitor.o
  "epics::pvaClient::PvaClientGet::getData()", referenced from:
      ClientGetPutMonitor::get() in getputmonitor.o
  "epics::pvaClient::PvaClientPut::issueConnect()", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientPut::setRequester(std::__1::shared_ptr<epics::pvaClient::PvaClientPutRequester> const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientPut::getData()", referenced from:
      ClientGetPutMonitor::put(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in getputmonitor.o
      ClientGetPutMonitor::getDone(epics::pvData::Status const&, std::__1::shared_ptr<epics::pvaClient::PvaClientPut> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientPut::issuePut()", referenced from:
      ClientGetPutMonitor::put(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in getputmonitor.o
  "epics::pvaClient::PvaClientChannel::issueConnect()", referenced from:
      ClientGetPutMonitor::init(std::__1::shared_ptr<epics::pvaClient::PvaClient> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientChannel::createMonitor(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientChannel::setStateChangeRequester(std::__1::shared_ptr<epics::pvaClient::PvaClientChannelStateChangeRequester> const&)", referenced from:
      ClientGetPutMonitor::init(std::__1::shared_ptr<epics::pvaClient::PvaClient> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientChannel::createGet(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientChannel::createPut(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientGetData::showChanged(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
      ClientGetPutMonitor::get() in getputmonitor.o
  "epics::pvaClient::PvaClientGetData::getChangedBitSet()", referenced from:
      ClientGetPutMonitor::get() in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::issueConnect()", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::releaseEvent()", referenced from:
      ClientGetPutMonitor::event(std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::setRequester(std::__1::shared_ptr<epics::pvaClient::PvaClientMonitorRequester> const&)", referenced from:
      ClientGetPutMonitor::channelStateChange(std::__1::shared_ptr<epics::pvaClient::PvaClientChannel> const&, bool) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::poll()", referenced from:
      ClientGetPutMonitor::event(std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::stop()", referenced from:
      simple(char*) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::start()", referenced from:
      simple(char*) in getputmonitor.o
      ClientGetPutMonitor::monitorConnect(epics::pvData::Status const&, std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&, std::__1::shared_ptr<epics::pvData::Structure const> const&) in getputmonitor.o
      non-virtual thunk to ClientGetPutMonitor::monitorConnect(epics::pvData::Status const&, std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&, std::__1::shared_ptr<epics::pvData::Structure const> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitor::getData()", referenced from:
      ClientGetPutMonitor::event(std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientPutData::getPVStructure()", referenced from:
      ClientGetPutMonitor::put(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in getputmonitor.o
      ClientGetPutMonitor::getDone(epics::pvData::Status const&, std::__1::shared_ptr<epics::pvaClient::PvaClientPut> const&) in getputmonitor.o
  "epics::pvaClient::PvaClientMonitorData::showChanged(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
      ClientGetPutMonitor::event(std::__1::shared_ptr<epics::pvaClient::PvaClientMonitor> const&) in getputmonitor.o
  "epics::pvaClient::PvaClient::createChannel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      ClientGetPutMonitor::init(std::__1::shared_ptr<epics::pvaClient::PvaClient> const&) in getputmonitor.o
  "epics::pvaClient::PvaClient::get(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      simple(char*) in getputmonitor.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [myEx] Error 1
make[2]: *** [install.darwin-x86] Error 2
make[1]: *** [src.install] Error 2
make: *** [myExApp.install] Error 2


On 12. Mar 2019, at 09:57, [email protected] wrote:

Hi Heinz,


I have recently tested some of the examples in https://github.com/epics-base/exampleCPP and they are working with EPICS 7.0.2.


Cheers,

Will


________________________________
From: [email protected] <[email protected]> on behalf of Heinz Junkes via Tech-talk <[email protected]>
Sent: 11 March 2019 16:41:54
To: tech-talk
Subject: I'm looking for a pvacces example to read PVStructure

I'm looking for a pva example c++ program which I can currently use (with Epics 7).

Unfortunately the examples I've found on the net don't work at all.

Above all, there seems to be a little confusion between PVAClient and pvac? (Or I don't get it)

I have a client that wants to read the PVStructure of a PV and then put new data  into
NTTable vector fields (x, y, z and time_index):

humma-kavula:~ junkes$ pvlist 0xB9EC6A5C00000000C2AFA421
CRYVISIL:STM:FASTSCAN:IMAGE_CHUNK

humma-kavula:~ junkes$ pvinfo CRYVISIL:STM:FASTSCAN:IMAGE_CHUNK
CHANNEL  : CRYVISIL:STM:FASTSCAN:IMAGE_CHUNK
STATE    : CONNECTED
ADDRESS  : 141.14.133.59:53379
epics:nt/NTTable:1.0
   string[] labels
   structure value
       double[] x
       double[] y
       double[] z
       int[] time_index
   string descriptor
   alarm_t alarm
       int severity
       int status
       string message
   time_t timeStamp
       long secondsPastEpoch
       int nanoseconds
       int userTag
   int counter


--
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom



Attachment: smime.p7s
Description: S/MIME cryptographic signature


References:
I'm looking for a pvacces example to read PVStructure Heinz Junkes via Tech-talk
Re: I'm looking for a pvacces example to read PVStructure will.rogers--- via Tech-talk
Re: I'm looking for a pvacces example to read PVStructure Heinz Junkes via Tech-talk

Navigate by Date:
Prev: Re: I'm looking for a pvacces example to read PVStructure Marty Kraimer via Tech-talk
Next: Re: I'm looking for a pvacces example to read PVStructure 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  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: I'm looking for a pvacces example to read PVStructure Heinz Junkes via Tech-talk
Next: Re: I'm looking for a pvacces example to read PVStructure 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  <20192020  2021  2022  2023  2024 
ANJ, 12 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·