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  <20142015  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  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: IOC in EPICS v4 C++
From: Ganesh Jangir <[email protected]>
To: <[email protected]>
Cc: '[email protected]'
Date: Fri, 21 Nov 2014 20:21:34 +0530
Hi Dave, Kay,

Thank you for the detailed reply.
I am trying these steps. Will let you know once done.

Ganesh



____________________________________________




From:        <[email protected]>
To:        <[email protected]>, <'[email protected]'>
Date:        11/20/2014 11:35 PM
Subject:        RE: IOC in EPICS v4 C++




Hi Ganesh,
 
1. The getting guide started is a good place to start. It is correct with respect to the version 4.3 release, but I need to update it for version 4.4. It also doesn’t describe pvDatabaseCPP, which is one option you might consider.
 
What EPICS V4 source are you using: 4.3, 4.4-pre1/2 or the mercurial repositories? I recommend trying the 4.4 pre release from the SourceForge site or the mercurial repos as a lot has changed since 4.3. The instructions are in the guide about how to clone from SourceForge. I’ve put some basic instructions below if you want to build from the 4.4 pre-release tars.
 
There are 3 things you might try for creating V4 clients and servers. The best way to create a new example at the moment  is to copy one of the ones described  below and modify it.
 
A. If you want to create an example RPC service the best way to do this is to copy the HelloWorld example and modify the server. You could modify the client or query the service with eget  using the -z and -N options. Then you could also look at the Channel Archiver Service, also in exampleCPP. Let me know if you have any problems with this.
 
B. If you have an existing V3 IOC you can make it publish PVs over pvAccess, effectively making a V4 IOC, using the pvaSrv module. It’s relatively straightforward to do, just a configuration task, and should “just work”. The instructions are in the getting started guide, but note that you now don’t have to build pvIOCCPP to build pvaSrv if you’re building the latest mercurial code or the 4.4 release. Again, let me know if you have any problems.
 
C. There is also a module called pvDatabaseCPP, which is included in the  4.4 release, but not the 4.3. You can also get it by cloning the mercurial repo. This will allow you to create a pure V4 “IOC” without any V3 records and without publishing over channel access. I’ve used it for an areaDetector application and Kay’s used it for neutron data. [In both cases it’s used for transporting experimental data rather than controls so these are not IOCs in the traditional sense.] You can create V4 records by deriving from a C++ class called PVRecord. pvDatabaseCPP is beta at the moment, but works pretty well. It has a number of examples you can try. To get started with your own server copy one of the examples such as “exampleServer” and modify. There are example clients in this module too.
 
Which you do depends on what you’re trying to achieve. If you want to add pvAccess to an existing database use pvaSrv. If you want to write your own pure V4 IOC use pvDatabaseCPP. If you want to create a service look at exampleCPP.
 
2. You need a V3 installation, 3.14.12.x or above, to build the version 4 C++ libraries and applications.
 
3. There’s a documentation page on SourceForge:
http://epics-pvdata.sourceforge.net/literature.html
which has a number of documents and also includes  Doxygen.  Most of the modules have a documentation dir with an html file you can look at. You can also look at the equivalent file for the Java code. The examples each have a quite detailed readme.
 
Hope that helps. Let me know if you have any questions.
 
Dave
 
 
Quick instructions for building pre2
------------------------------------------
 
$ tar zxf EPICS-CPP-4.4.0-pre2.tar.gz
$ cd EPICS-CPP-4.4.0-pre2

(with EPICS_BASE set to point to you EPICS V3 base installation)

$ chmod +x configure.sh
$ make configure
$ make

(if the ChannelArchiver is present in your installation you can set ARCHIVER_DIR  with “export ARCHIVER_DIR=<archiver_dir>”  and build the Channel Archiver service:

$ make configure
$ make default archSrv

)

then to build pvaPy

$ export EPICS4_DIR=`pwd`
$ cd pvaPy
$ make configure
$ make

 
 
 
 
From: Ganesh Jangir [mailto:[email protected]]
Sent:
20 November 2014 15:07
To:
'[email protected]'
Subject:
IOC in EPICS v4 C++

 
Hi

I am starting with EPICS v4 C++. I have installed the same and completed Helloworld example.


1. But  I could not figure out  How to form own new IOC and application in v4.  i.e. Something similar to makebaseApp.pl in EPICS v3 base.

Do we have to use EPICS base v3 IOC only



2. Is it possible to install and run EPICS v4 without EPICS v3.


3. Where to find beginner material and ppts  for EPICS v4 C++. I am already referring to .
http://epics-pvdata.sourceforge.net/gettingStarted.html

Thank you

Regards
Ganesh
____________________________________________

=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you

 

--  

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


References:
IOC in EPICS v4 C++ Ganesh Jangir
RE: IOC in EPICS v4 C++ david.hickin

Navigate by Date:
Prev: Re: Incorrect Timestamp in aSubRecord Bruce Hill
Next: RE: epicsqt QETable or QElabel for waveforms readout Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: IOC in EPICS v4 C++ david.hickin
Next: Defining enums to express state? Ryan Pierce
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·