Permalink
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (33 sloc) 1.9 KB

Welcome to CaChannel's documentation!

Overview

:class:`CaChannel.CaChannel` wraps the low level :mod:`ca` functions into a Python class. It provides methods to operate on the remote process variable over channel access connection.

It was developed in 2000 by Geoff Savage using caPython extension Later on the CA library becomes multi-threaded with EPICS base 3.14. The original developer did not address this change however.

In 2008 during the transition to EPICS 3.14, a new implementation of CaChannel interface, version 2.x, was developed based on PythonCA extension from Noboru Yamamoto. It was highly backwards compatible with the original implementation based on caPython.

In 2014, package caffi was created in place of caPython or PythonCA extension to expose the Channel Access API using cffi. It aimed to create a Pythonic API of one-to-one map to the counterpart C functions. After that has been accomplished, CaChannel interface was re-implemented using the :mod:`caffi.ca` module, versioned 3.x.

In 2015-16, with all previous experiences, the :mod:`CaChannel.ca` module was rewritten from scratch using Python/C API. The new :mod:`CaChannel.ca` module has a compatible API with :mod:`caffi.ca`. Because of that, the CaChannel interface can use :mod:`caffi.ca` by setting environment variable CACHANNEL_BACKEND=caffi. This is also the fallback backend if no EPICS installation exists or the C extension fails to import.

Contents

.. toctree::
 :maxdepth: 2

 installation
 tutorial
 cachannel
 recipes
 changes

Indices and tables