0.3.1
PVXS Python / win64 3.10 (push) Failing after 1s
PVXS Python / win64 3.5 (push) Failing after 0s
PVXS Python / win64 3.6 (push) Failing after 0s
PVXS Python / win64 3.7 (push) Failing after 0s
PVXS Python / win64 3.8 (push) Failing after 0s
PVXS Python / win64 3.9 (push) Failing after 0s
PVXS EPICS / Linux centos 7 (push) Failing after 1s
PVXS EPICS / Linux fedora 34 (push) Failing after 2s
PVXS Python / linux64 test (push) Failing after 1s
PVXS Python / linux 2.7 i686 (push) Failing after 7s
PVXS Python / linux 2.7u i686 (push) Failing after 7s
PVXS Python / linux 3.5 i686 (push) Failing after 7s
PVXS Python / linux 3.6 i686 (push) Failing after 7s
PVXS Python / linux 3.7 i686 (push) Failing after 7s
PVXS Python / linux 3.8 i686 (push) Failing after 7s
PVXS Python / linux 3.9 i686 (push) Failing after 8s
PVXS Python / linux 2.7 amd64 (push) Failing after 7s
PVXS Python / linux 2.7u amd64 (push) Failing after 7s
PVXS Python / linux 3.5 amd64 (push) Failing after 7s
PVXS Python / linux 3.6 amd64 (push) Failing after 8s
PVXS Python / linux 3.7 amd64 (push) Failing after 7s
PVXS Python / linux 3.9 amd64 (push) Failing after 7s
PVXS Python / linux 3.10 amd64 (push) Failing after 7s
PVXS Python / linux 3.8 amd64 (push) Failing after 13s
PVXS EPICS / Native Linux with 3.14 (push) Cancelled after 0s
PVXS EPICS / Native Linux with 3.15 (push) Cancelled after 0s
PVXS EPICS / Native Linux with clang (push) Cancelled after 0s
PVXS EPICS / OSX (push) Cancelled after 0s
PVXS EPICS / Native Linux (WError) (push) Cancelled after 0s
PVXS EPICS / Cross mingw64 DLL (push) Cancelled after 0s
PVXS EPICS / RTEMS5 (push) Cancelled after 0s
PVXS EPICS / Native Linux with libevent stable (push) Cancelled after 0s
PVXS EPICS / Cross mingw64 static (push) Cancelled after 0s
PVXS EPICS / vs2019 DLL (push) Cancelled after 0s
PVXS EPICS / vs2019 static (push) Cancelled after 0s
PVXS Python / osx 3.7 intel (push) Cancelled after 0s
PVXS Python / osx 2.7 intel (push) Cancelled after 0s
PVXS Python / osx 3.10 intel (push) Cancelled after 0s
PVXS Python / osx 3.6 intel (push) Cancelled after 0s
PVXS Python / osx 3.8 intel (push) Cancelled after 0s
PVXS Python / osx 3.9 intel (push) Cancelled after 0s

This commit is contained in:
Michael Davidsaver
2022-06-19 09:47:11 -07:00
parent 3f3e39418c
commit 3329b4d4ca
7 changed files with 44 additions and 30 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
.. _clientapi:
Client
======
Client API
==========
`pvxs::client::Context` represents a PVA protocol client. ::
+6 -8
View File
@@ -9,22 +9,20 @@ PVXS is functionally equivilant to the
`pvAccessCPP <https://github.com/epics-base/pvAccessCPP>`_ modules,
which it hopes to eventually surplant (Ok, the author hopes).
The canonical version of this page is https://mdavidsaver.github.io/pvxs
Versioned source can be found at https://github.com/mdavidsaver/pvxs ,
which is also where `issues <https://github.com/mdavidsaver/pvxs/issues>`_ should be reported.
See :ref:`reportbug`.
Also :ref:`contrib` if you are so inclined.
- VCS: https://github.com/mdavidsaver/pvxs
- Docs: https://mdavidsaver.github.io/pvxs
- `Issues <https://github.com/mdavidsaver/pvxs/issues>`_ (see :ref:`reportbug`)
- :ref:`contrib`
Dependencies
* A C++11 compliant compiler
* GCC >= 4.8
* Visual Studio >= 2015 (>= 12.0)
* Visual Studio >= 2015 / 12.0
* `EPICS Base <https://epics-controls.org/resources-and-support/base/>`_ >=3.15.1
* `libevent <http://libevent.org/>`_ >=2.0.1
* `libevent <http://libevent.org/>`_ >=2.0.1 (Optionally bundled)
* (optional) `CMake <https://cmake.org/>`_ >=3.1, only needed when building bundled libevent
See :ref:`building` for details.
+26 -13
View File
@@ -14,11 +14,11 @@ https://epics.anl.gov/
What is PVAccess?
^^^^^^^^^^^^^^^^^
The PVAccess network protocol is a hybrid supporting request/response,
PVAccess is network protocol supporting both request/response,
and publish/subscribe operations.
PVA is closely related to the Channel Access (CA) protocol,
which may work alongside, and is intended to supersede.
which PVA may work alongside, and is intended to supersede.
Four protocol operations are supported by PVXS.
@@ -33,26 +33,39 @@ Get, Put, Monitor, and RPC are to the PVA protocol what GET, PUT, POST are to th
What is a PV?
^^^^^^^^^^^^^
In the EPICS world a Process Variable (PV) refers to the idea of
a globally addressed data structure. An EPICS control system is
composed of many PVs (in the millions for large facilities). The present value of
a PV is modified by a combination of remote operations via CA
and/or PVA, and via local processing (eg. values read from local
hardware).
In the EPICS world a Process Variable (PV) refers to the idea of a globally addressed data structure.
An EPICS control system is composed of many PVs.
In the millions for large facilities.
The present value of a PV is modified by a combination of remote operations via CA and/or PVA,
and via local processing (eg. values read from local hardware).
A common example of a PV is a measurement value, for example
a temperature measured by a particular sensor.
a temperature measured by a particular sensor (eg. ``mylab:temp1``).
Another example would be an electromechanical relay, which may be opened or closed.
(eg. ``mylab:valve2``)
In this case a Get operation would poll the current open/closed state of the relay.
A Monitor operation (subscription) would receive notification when the relay state changes.
A PV name is needed when initiating any PVA operation.
eg. with the ``pvx*`` utility executables. ::
## fetch current value of both measurement and setting
$ pvxget mylab:temp1 mylab:valve2
...
## setup subscription of both.
$ pvxmonitor mylab:temp1 mylab:valve2
...
Ctrl+c
## Request setting change
$ pvxput mylab:valve2 1
...
In the case of the relay, a Get operation would poll the current open/closed state of the relay.
A Monitor operation (subscription) would setup and receive notification when the relay state changes.
A Put operation would be used to command the relay to open or close, or perhaps toggle (the precise meaning of a Put is context dependent).
So the Get, Put, and Monitor operation on a given PV are conventionally operating on a common data structure.
The RPC operation is more arbitrary, and need not have any relationship with a common data structure (eg. the open/closed state of the relay.)
.. note:: In the context of the PVA or CA protocols, a **"PV name"** is an address string which uniquely identifies a Process Variable.
.. note:: In the context of the PVA or CA protocols, a "PV name" is an address string which uniquely identifies a Process Variable.
All PVA network operations begin with a "PV name" string.
A "PV name" string is to the PVA and CA protocols what a URL is to the HTTP protocol.
+5 -2
View File
@@ -3,8 +3,11 @@
Release Notes
=============
0.3.1 (UNRELEASED)
------------------
0.3.1 (June 2022)
-----------------
* Fix ifaddrs::ifa_addr can be NULL
* Limit beacon tracking by size as well as time
0.3.0 (May 2022)
----------------
+2 -2
View File
@@ -1,7 +1,7 @@
.. _serverapi:
Server
======
Server API
==========
.. toctree::
:maxdepth: 2
+2 -2
View File
@@ -1,5 +1,5 @@
Value Container
===============
Value Container API
===================
.. toctree::
:maxdepth: 2
+1 -1
View File
@@ -624,7 +624,7 @@ build_dso.sub_commands.extend([
pvxs_ver = '%(PVXS_MAJOR_VERSION)s.%(PVXS_MINOR_VERSION)s.%(PVXS_MAINTENANCE_VERSION)s'%pvxsversion
pvxs_ver += 'a1'
#pvxs_ver += 'a1'
with open(os.path.join(os.path.dirname(__file__), 'README.md')) as F:
long_description = F.read()