CBP Developer Guide

The CBP software consists of a typical salobj CSC, a firmware written in DMC and a TCP/IP socket controller written in python.

DMC
A language based on C for writing Galil motion control firmware logic.

Dependencies

CBP API

The content in this section is autogenerated from docstrings.

lsst.ts.cbp Package

Classes

CBPCSC(initial_state[, config_dir, speed, …]) This defines the CBP CSC using ts_salobj.
CBPComponent() This class is for implementing the CBP component.
MockServer([log])
Status The status for the encoders.

Build and Test

pip install -e .[dev]
# Make sure environment variable TS_CONFIG_MTCALSYS_DIR points to the ts_config_mtcalsys package
export TS_CONFIG_MTCALSYS_DIR=/home/saluser/repos/ts_config_mtcalsys
pytest --cov lsst.ts.cbp -ra

Usage

Starting the CSC.

run_cbp.py

Stopping the CSC.

await cbp.cmd_exitControl.set_start(timeout=10)

Simulator

The simulator is located in the mock_server module. It is not ready for use.

Updating Firmware of the CBP

  1. Download Galil Design Kit
  2. Edit dmc code
  3. Click Download program to hardware

Building the Documentation

pip install -e .[dev]
package-docs clean && package-docs build
# files located in doc/_build/html/ directory

Contributing

Code and documentation contributions utilize pull-requests on GitHub. Feature requests can be made by filing a Jira ticket with the ts_CBP label in the Data Management(DM) project. In all cases, reaching out to the contacts for this CSC is recommended.