Skip to content

lsst-ts/ts_criopy

Repository files navigation

Python EUI/GUI for M1M3 Support System

Engineering / User Graphical Interface for cRIO systems. Provides generic GUI classes as well as SALobj specific classes.

Directory structure

Under python/lsst/ts/criopy, the directories are:

  • aircompressor widget for M1M3-ComCam air compressor
  • gui generic GUI widgets
    • actuatorsdisplay contains widgets to plot actuators
    • custom_labels contains plenty of QLabel childs to be used building up user interface
    • sal contains SAL bindend Labels. Please see SALComm for details
    • timechart contains QtCharts.QChart subclasses to build up real-time graphs
  • m1m3 widgets for M1M3 support system
  • m1m3ts widgets for M1M3 thermal system
  • vms graphs for ts_VMS

Applications

Applications are located in bin directory. Before running those, please make sure that required Python packages (in python directory) are available:

python3.8 -c "from lsst.ts.criopy.gui import *"

shall pass without error.

The following command shall install those commands and packages needed for running them for you.

pip install .

M1M3GUI

GUI/EUI for M1M3 static supports. Allows to perform various M1M3 operations, including FA bump testing and manual mirror positioning. Requires ts_m1m3support CSC running.

M1M3TSGUI

GUI/EUI for M1M3 thermal system. Allows TS monitoring and performing various M1M3 thermal system operations. Requires ts_m1m3thermal CSC running.

VMSGUI

GUI/EUI for VMS (Vibration Monitoring System). Plots various graphs from VMS, including PSD/FFT/DFT. Requires ts_vms CSC running.

VMSlogger

CLI for VMS logging. Can save VMS data as cvs or, with optional h5py, as HDF5.

Dependencies

For SAL etc:

SAL binding

The GUI/EUI contains code which depends on ts_salobj and related infrastructure. Files in (and only in) python/lsst/ts/criopy/GUI directory are generics and don't depend on ts_salobj. All other code usually depends on ts_salobj, including code in GUI subdirectories (ActuatorsDisplay, SAL).

You shall be able to:

from lsst.ts.criopy.gui import *

to get access to common GUI widgets (UnitLabel & friends, various improved layouts,..).

Prerequsities

make_idl_files.py MTM1M3 MTM1M3TS MTMount MTVMS

SALComm

Heart of the application is SALComm. The module links ts_salobj callbacks with Qt Signals. Names of signals matches SAL events and telemetry topics. This allows for simple integration of DDS/SAL and GUI widgets. Widgets in need to receive SAL data accept SALComm as constructor parameter, and after setting up the widget SALComm provided Qt Signals are connected to slots in the widget.

Custom widgets

Qt Slots are decorated with @Slot and usually not documented, as the only functions is to update widgets with data received from SAL/DDS. Please see PySide2 documentation and SALComm for details how this works.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages