TunableLaser Developer Guide¶
The CSC is a standard salobj CSC.
The TunableLaser’s communication with the hardware is written in Python using the async TCP/IP library.
The laser is connected to a terminal server.
There is a UDev rule running on the computer that symlinks the serial port to /dev/laser
for consistent access.
The modules are divided into ascii, component, csc and hardware. The ascii module deals with the TCP/IP communication of the software. The component provides abstraction for controlling the hardware. The csc implements the CSC. The hardware abstracts the hardware of the laser.
The laser is logically divided into hardware modules that each report and control a different aspect of the laser. Each module has a register that it can read and write, not every register is writable.
Dependencies¶
TunableLaser API¶
The content in this section is autogenerated from docstrings.
lsst.ts.tunablelaser Package¶
Functions¶
Run the TunableLaser CSC. |
Classes¶
|
A representation of an Ascii register inside of a module of the laser. |
|
Implement the CPU8000 laser module which displays information about the primary CPU of the laser. |
|
Implement DelayLin laser module. |
|
Implement HV40W laser module which contains voltage register. |
|
A hardware module for the laser. |
|
Implement the LLPMKU laser module which contains a register for power. |
|
Implement common Laser interface. |
|
This is the class that implements the TunableLaser CSC. |
|
Implement the MCPU800 laser module which contains registers for controlling aspects of the propagation of the laser. |
|
Implement MLDCO48 laser module which contains temperature registers. |
|
The class that implements the TunableLaser component. |
|
Simulates the TunableLaser. |
|
Implement the MaxiOPG laser module which contains registers for optical alignment and wavelength. |
|
Implement the MidiOPG module which controls the wavelength register. |
|
Implement the MiniOPG laser module. |
|
Parse a command from the client. |
Implement the mock NT252 device. |
|
Implements a mock NT900 laser. |
|
|
The different propagation modes of the laser. |
|
The no Spectral Cleaning Unit configuration |
|
The output energy level. |
|
The power states for the laser's propagation module. |
|
The Spectral Cleaning Unit configuration |
|
Implement the Stubbs NT-252 laser. |
Implement Stubbs mock server. |
|
|
Implement TK6 laser module which contains several temperature registers. |
Build and Test¶
Assuming that the develop-env
docker container is running.
cd develop/ts_TunableLaser
setup -kr .
scons
An alternative
cd develop/ts_TunableLaser
pip install -e .[dev]
pre-commit install # install black hook
pytest --cov lsst.ts.tunablelaser -ra
Usage¶
The laser is connected via a terminal server.
The CSC is started using the following python script located in the bin
directory.
python run_tunable_laser.py
Simulator¶
There is a basic simulation mode included in the CSC. Returns basic information to the CSC.
Updating Firmware of the TunableLaser¶
Ensure laser is powered on
Plug laser into network switch
Type ip address into browser
Click upload firmware button on web page
Follow prompted directions
Building the Documentation¶
package-docs clean && package-docs build
Contributing¶
Code and documentation contributions utilize pull-requests on github.
Feature requests can be made by filing a Jira ticket with the TunableLaser
label.
In all cases, reaching out to the contacts for this CSC is recommended.