Files
pva2pva/README.md
Michael Davidsaver e01d71b95b update README
2017-09-12 10:20:55 -05:00

75 lines
1.9 KiB
Markdown

This repository contains two distinct pieces of software.
QSRV
----
A PV Access (protocol) server to be included in an EPICS IOC.
```
myioc_DBD += qsrv.dbd
myioc_LIBS += qsrv
```
For convenience an executable `softIocPVA' is also built which is equivalent to the
'softIoc' executable from EPICS Base with the addition of QSRV.
p2p
---
A PV Access gateway (aka proxy).
The 'p2p' executable.
Dependencies
------------
- [epics-base](http://www.aps.anl.gov/epics/) >= 3.15.3
- [pvDataCPP](http://epics-pvdata.sourceforge.net/)
- [pvAccessCPP](http://epics-pvdata.sourceforge.net/)
Building
--------
To build all dependencies from source:
```sh
git clone https://github.com/epics-base/epics-base.git
git clone https://github.com/epics-base/pvDataCPP.git
git clone https://github.com/epics-base/pvAccessCPP.git
git clone https://github.com/mdavidsaver/pva2pva.git
make -C epics-base
make -C pvDataCPP
make -C pvAccessCPP
make -C pva2pva
```
Running QSRV
------------
Any IOC which includes QSRV will automatically start a PV Access server
which exposes all channels (aka. "recordname.FLD") in the same manner
as the built-in Channel Access (protocol) server.
Running p2p
-----------
pva2pva gateway is intended for use on a computer with at least two ethernet interfaces.
At present each pva2pva process can act as a uni-directional proxy,
presenting a pvAccess server on one interface,
and a client on other(s).
The file [example.cmd](example.cmd) provides a starting point.
Adjust *EPICS_PVAS_INTF_ADDR_LIST* and *EPICS_PVA_ADDR_LIST*
according to the host computer's network configuration.
At present there are no safe guard against creating loops
where a gateway client side connects to its own server side.
To avoid this ensure that the address list does not contain
the interface used for the server (either directly, or included in a broadcast domain).
*EPICS_PVA_AUTO_ADDR_LIST* __must__ remain set to *NO*.
```
cd pva2pva
./bin/linux-x86_64/pva2pva example.cmd
```