DSM Developer Guide

The DSM is a non-configurable CSC that looks for output telemetry files from the Dome Seeing Monitor UI and sends that information across SAL for recording in the EFD. The CSC also has two simulation modes in addition to the standard operational (real) mode.

API

The content in this section is autogenerated from docstrings.

lsst.ts.dsm Package

Functions

convert_time(in_time)

Convert an ISO UTC timestring to TAI timestamp.

create_telemetry_config(output_dir, ...)

Create the DSM UI Configuration file for simulation mode.

create_telemetry_data(output_dir, sim_loop_time)

Create the DSM UI telemetry file for simulation mode.

run_dsm()

Run the DSM CSC.

shutdown_dsm()

Classes

DSMCSC(index[, initial_state, simulation_mode])

Commandable SAL Component to interface with the LSST DSMs.

Build and Test

The recommended method for development is to get the T&S development Docker container. Instructions for this can be found here. Follow the section on Developing on your own local folder on Docker. Since the DSM code is not shipped with the development container, a clone of the code is necessary.

git clone git@github.com:lsst-ts/ts_dsm.git

Change or create the appropriate branch in the clone.

To build the code and run the unit tests, do the following.

docker run -it --name {name for container} -v {repository_location}:/home/saluser/develop lsstts/develop-env:{tag}
cd develop/ts_dsm
setup -kr .
conda install -c conda-forge asyncinotify
pytest

The conda` installation of ``asyncinotify is required since the package does not come with the development environment. While developing the code, pytest can be used to run the unit tests after code changes.

Usage

The nominal usage patterns are covered in the User Guide

If the DSM is run in real mode for testing with the DSM UI, the telemetry directory that the UI uses must be mounted into the container. If one uses the repository location directory to create a directory (say telemetry), this is handled by the docker run command shown above. However, the DSM CSC expects the telemetry directory to be in /home/saluser/telemetry which is not provided in the development container. This can be overridden by using the DSM_TELEMETRY_DIR environment variable to set the new path. The environment variable can be passed in as a command-line argument when the development container is started.

Building the Documentation

If the process described in Build and Test has been followed, then one builds the documentation by running the following from the top-level directory of the repository clone:

package-docs build

If the documenteer package is not installed, then do the following before building the documentation from the top-level repository directory.

pip install -r docs/requirements.txt

Contributing

Code and documentation contributions utilize pull-requests on github. Feature requests can be made by filing a Jira ticket with the DSM label. In all cases, reaching out to the contacts for this CSC is recommended.