Epics Applications with PyEpics

EpicsApps is a collection of Epics Applications written in Python, using the pyepics library for interacting with Epics devices through Channel Access. Many of the applications are Graphical User Interface programs built with wxPython.

While a part of the goal for this project is to demonstrate how one can build complex programs with pyepics, the applications here are intended to be useful to beamline scientists and users at facilities such as synchrotrons that use the Epics control system.

The main applications included in EpicsApps are

  • Strip Chart Display: A GUI application to show a live, real-time plot of the recent values for a set of PV values. Time ranges and ranges for Y values can be changed, and data can be saved to plain text files.

  • Area Detector Display: A GUI application to view live images and control the data collection for an Epics Area Detector. Standard controls allow starting and stopping acquistion, changing image mode, exposure time, and frame rate, and more controls can be be added using a simple configuration file. The user can change the color table, contrast level, and orientation of the image, and use a Zoom Box to enhance portions of the image.

  • Epics Instruments: A GUI application to organize PVs, by grouping them into user-defined “Instruments”. Each Instrument can have any number of PVs included. For each Instrument, positions can be saved by named, and then restored using that named position.

  • PV Logger: A pair of applications to collect and view time seriese of “metadata” PVs. Run from a command-line with a configuration file listing PVs to save, this will save data for PVs into plain text files in a folder named pvlog. Run as a GUI Application during or after acquisition, this application can read data from that folder and plot data as time-series for reviewing changes in these meta-data PVs.

  • Converting Ion Chamber readings to flux: A non-GUI application to read Ion Chamber voltages and amplifier setting, compute X-ray fluxes, and write these back to Epics PVs.