Skip to content

tacaswell/typhon

 
 

Repository files navigation

Typhon

Automated User Interface Creation from Ophyd Devices

Build Status codecov.io

EPICS is a flexible and powerful controls system to access to experimental information, however, the relation and meaning of process variables is often obscure. Many of the user interfaces for EPICS information reflect this, as walls of buttons and flashing lights bombard the user with little thought to structure or cohesion.

Typhon addresses this by providing an automated way to generate screens based on a provided hierarchy of devices and signals. Built using PyDM, a PyQt based display manager developed at SLAC National Laboratory, Typhon utilizes a large toolkit of widgets to display EPICS information. For each process variable, a corresponding widget is created based on; the importance to the average operator, the type of value the EPICS PV will return, and whether a user should be allowed to write to the variable. These widgets are then placed in a convenient tab-based system to only show the necessary information for basic function, but still allow access to more advanced signals.

Instead of reinventing a new way to specify device structures, Typhon uses Ophyd, a library to abstract EPICS information into consistently structured Python objects. Originally built for scripting experimental procedures at NSLSII, Ophyd represents devices as combinations of components which are either signals or nested devices. Then, either at runtime or by using the defaults of the representative Python class, these signals are sorted into different categories based on their relevance to operators. Typhon uses this information to craft user interfaces.

Installation

Recommended installation:

conda install typhon -c pcds-tag -c pydm-tag -c lightsource2-tag -c conda-forge

All -tag channels have -dev counterparts for bleeding edge installations. Both requirements.txt and optional dev-requirements.txt are kept up to date as well for those who prefer installation via pip

Related Projects

PyDM - PyQT Display Manager for EPICS information

Ophyd - Device abstraction for Experimental Control

About

Interface Generation for Ophyd Devices

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%