Observatory Control Developer Guide¶
The repo defines the RemoteGroup
class which represent a group of Commandable SAL Components (CSCs) in the control system.
This class implements basic functionality that is common to all groups of CSCs.
Usages: Limiting required resources¶
In some cases, the high level class may need to communicate with several components at the same time to achieve high-level operations.
Some of these components can have high frequency topics which will make the remotes quite heavy to operate.
At the same time, depending on the number of remotes a group defines, or the number of groups needed by a certain operation, the overall resources might also be quite heavy.
To work around this the RemoteGroup
base class provides ways for users to limit the resources to the minimum set required for the intended usage.
This is controlled by the optional parameter intended_usage
in RemoteGroup
.
By default intended_usage = None
, which causes the class to load all the resources from the remotes.
This can be very helpful when using Jupyter notebooks or testing environments where the user need more flexibility.
The Usages
class contains the usages definition.
By default, only a small subset of generic operations are defined, e.g., All
, StateTransition
, MonitorState
and MonitorHeartBeat
.
Note that the meaning of Usages.All
is to load the resources for all the defined operations and not to load all the resources.
The resources needed for each operation are defined in the usages
property of the RemoteGroup
class.
This class property defines a dictionary where the keys are the usages and the values are the resources.
The resources are instances of types.SimpleNamespace
with attributes;
components
List of components required for the usage. If a component is part of a group but it is not needed for a certain type of usage, the component will not be instantiated during the initialization procedure.
readonly
Defines an operation as read only. This will cause all commands to be ignored.
include
List with topics to include in the operation. The list is common to all components to avoid duplication of generic topics.
Usages can be combined in bitwise operation, e.g.;
intended_usage = Usages.StateTransition | Usages.MonitorHeartBeat
This would cause the class to load the combined resources for both StateTransition
and MonitorHeartBeat
operations.
When subclassing RemoteGroup
, users will probably also have to subclass the Usages
class to add operations define by their class.
It will also be necessary to override the the usages
property to return a dictionary with the new definition and make sure to return the new Usages
class in valid_use_cases
.
Contributing¶
lsst.ts.observatory.control
is developed at https://github.com/lsst-ts/ts_observatory_control.
You can find Jira issues for this module under the ts_observatory_control component.
Python API reference¶
lsst.ts.observatory.control Package¶
Functions¶
|
Calculate the parallactic angle. |
|
Return an int or a string. |
|
Add dunder methods based on the fields defined in the class. |
Return the path to the internal catalog directory. |
|
Return the path to the internal data directory. |
|
|
Handle execeptions in dictionary items. |
Classes¶
|
Base class for camera instruments. |
|
Base class for Telescope Control System. |
|
Defines the different types of flat field calibrations |
|
Store the parameters that define an exposure. |
|
Defines the different mode to run closed loop. |
|
Defines the different Degrees of Freedom used in AOS. |
|
Defines the different types of instrument focus location. |
|
|
|
|
|
|
|
|
|
|
|
High-level abstraction of a collection of |
Base class for testing groups of CSCs. |
|
|
Available types of rotation, i.e. the meaning of the rot_angle argument in slew operations. |
|
Define usages for a |
|
Represent the resources needed for |
lsst.ts.observatory.control.auxtel Package¶
Classes¶
|
High level library for the Auxiliary Telescope Control System |
ATCS usages definition. |
|
|
Implement high level ATCalSys functionality. |
|
High level class to operate the Auxiliary Telescope ScriptQueue. |
|
LSST Auxiliary Telescope Image and Slit less Spectrograph (LATISS). |
LATISS usages definition. |
lsst.ts.observatory.control.maintel Package¶
Classes¶
|
Commissioning Camera (ComCam). |
|
LSST Camera (LSSTCam). |
|
High level library for the Main Telescope Control System |
|
High level class to operate the Main Telescope ScriptQueue. |