Skip to content

delta-accelerator/channel_access.server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Channel Access server library

This library contains a low-level binding to the cas library in EPICS base and a thread-safe high level interface to create channel access servers.

For the client implementation see channel_access.client.

Installation

Before installing the library, the environment variables EPICS_BASE and EPICS_HOST_ARCH must be set.

Then the library can be installed with pip:

pip install channel_access.server

If numpy can be imported at install time, numpy support is automatically activated. This can be explicitly controlled with the environment variable CA_WITH_NUMPY:

CA_WITH_NUMPY=0 pip install channel_access.server
CA_WITH_NUMPY=1 pip install channel_access.server

If the package is compiled with numpy support, numpy arrays are used by default. If numpy arrays should not be used, the parameter use_numpy can be set to False.

Example

This example shows a simple server with a PV counting up:

import time
import channel_access.common as ca
import channel_access.server as cas

with cas.Server() as server:
    pv = server.createPV('CAS:Test', ca.Type.LONG)
    while True:
        pv.value += 1
        time.sleep(1.0)

Documentation

The documentation is available online or it can be generated from the source code with sphinx:

cd /path/to/repository
pip install -e .[doc]
python setup.py build_sphinx

Then open build/sphinx/html/index.html.

Get the source

The source code is available in a Github repository:

git clone https://github.com/delta-accelerator/channel_access.server

Tests

Tests are run with pytest:

cd /path/to/repository
pip install -e .[dev]
pytest -v

To run the tests for all supported version use tox:

cd /path/to/repository
tox

About

Channel Access server library

Resources

License

Stars

Watchers

Forks

Packages

No packages published