diff --git a/README.md b/README.md index a905addc5c45a98848ad94d28cd2f57001040af3..5c4355290cf235df22bc86c3cd4aef7ff0cc41b2 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,20 @@ AmptekHardwareInterface ======================= +Implementation of [Amptek's](https://www.amptek.com) DP5 Protocol for controlling PX5/DP5 Digital Pulse Processors. The code is tested with both, the PX5/XR-100 combination and the X-123 CdTe and SDD detectors. -Communication interface for Amptek PX5 as a new backend for a Tango Device Server. -This interface will be designed to work with both, USB and UDP connection. It is based on the original AmptekPX5 Tango Device Server. +The low level communication is implemented in C++ and supports both Ethernet via UDP and USB communication. A autogenerated high-level interface python as well as a Device Server for the [Tango Controls](https://www.tango-controls.org) SCADA system is available, allowing simple integration into many synchrotron beamlines. -Current Plan is, to strip the connection-dependent part to seperate comm handlers for USB and UDP and use common code for everything except receiving and sending of the packets. -The Tango Server will the be implemented using python and SWIG. This is based on the much more modern design of Tango device servers in python resulting in a better readability and development. No need for code generators! +The low level implementation is based on [previous work](https://github.com/ALBA-Synchrotron/AmptekPX5DS) at the ALBA synchrotron. However, the communication layer has been completely redesigned for more stability and added support for USB connections, circumventing the bottleneck of the low speed base-10 ethernet PHY of the hardware. +This code is meant to be a mostly drop-in replacement of the original Tango server, therefore the same server name and many commands & attributes are used. So far, the SCA channels and the MCS mode is not implemented, if those are needed, the original code should be used. + +Prerequisites +------------- + - libusb1-dev + - SWIG 3 (v4 currently not supported) + - numpy + - pytango (optionally, only when using the tango server) + Install ------- Run @@ -14,9 +22,3 @@ Run python setup.py install -TODOs ------- -- propagde the device state properly up to tango -- verify correct error handling -- add comments, docs -