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 2020 2021 2022 2023 2024 2025 | 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 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: IOC in EPICS v4 C++ |
From: | <[email protected]> |
To: | <[email protected]>, <'[email protected]'> |
Date: | Thu, 20 Nov 2014 18:03:15 +0000 |
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 From: Ganesh Jangir [mailto:[email protected]]
Hi
=====-----=====-----=====
-- 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. |