CBPCSC¶
-
class
lsst.ts.cbp.CBPCSC(simulation_mode=0, initial_state: lsst.ts.salobj.sal_enums.State = <State.STANDBY: 5>, config_dir=None)¶ Bases:
lsst.ts.salobj.configurable_csc.ConfigurableCscThis defines the CBP CSC using ts_salobj.
- Parameters
- simulation_mode
int, optional Supported simulation mode values
0: normal operation
1: mock controller
- initial_state
lsst.ts.salobj.State, optional Initial state is meant for unit tests, defaults to
lsst.ts.salobj.State.STANDBY- config_dir
Noneorstrorpathlib.Path, optional Meant for unit tests. Tells the CSC where to look for the configuration files. Normal operation will always be in a configuration repository returned
get_config_dir.
- simulation_mode
- Attributes
- component
CBPComponent - simulator
NoneorMockServer - telemetry_task
asyncio.Future - telemetry_interval
float The interval that telemetry is published.
- in_position_timeout
int The time to wait for all encoders of the CBP to be in position.
- component
Attributes Summary
Get or set the configuration directory.
Return True if the summary state is
State.DISABLEDorState.ENABLED.Get the current simulation mode.
Get the summary state as a
Stateenum.The valid simulation modes for the CBP.
Methods Summary
add_arguments(parser)Add arguments to the parser created by
make_from_cmd_line.add_kwargs_from_args(args, kwargs)Add constructor keyword arguments based on parsed arguments.
amain(index, **kwargs)Make a CSC from command-line arguments and run it.
assert_enabled([action])Assert that an action that requires ENABLED state can be run.
begin_disable(data)Begin do_disable; called before state changes.
begin_enable(data)Begin do_enable; called before state changes.
begin_exitControl(data)Begin do_exitControl; called before state changes.
begin_standby(data)Begin do_standby; called before the state changes.
begin_start(data)Begin do_start; configure the CSC before changing state.
close([exception, cancel_start])Shut down, clean up resources and set done_task done.
Shut down pending tasks.
configure(config)Configure the CSC.
do_changeMask(data)Changes the mask.
do_disable(data)Transition from
State.ENABLEDtoState.DISABLED.do_enable(data)Transition from
State.DISABLEDtoState.ENABLED.do_exitControl(data)Transition from
State.STANDBYtoState.OFFLINEand quit.do_move(data)Move the CBP mount to a specified position.
do_park(data)Park the CBP.
do_setAuthList(data)Update the authorization list.
do_setFocus(data)Sets the focus.
do_setLogLevel(data)Set logging level.
do_standby(data)Transition from
State.DISABLEDorState.FAULTtoState.STANDBY.do_start(data)Transition from
State.STANDBYtoState.DISABLED.do_unpark(data)Unpark the CBP.
end_disable(data)End do_disable; called after state changes but before command acknowledged.
end_enable(data)End do_enable; called after state changes but before command acknowledged.
end_exitControl(data)End do_exitControl; called after state changes but before command acknowledged.
end_standby(data)End do_standby; called after state changes but before command acknowledged.
end_start(data)End do_start; called after state changes but before command acknowledged.
fault(code, report[, traceback])Enter the fault state and output the
errorCodeevent.Return the name of the configuration repository.
Handle the summary state.
implement_simulation_mode(simulation_mode)Implement going into or out of simulation mode.
Wait for all axes of the CBP to be in position.
make_from_cmd_line(index, **kwargs)Construct a CSC from command line arguments.
position()Is all of the axes of the CBP in position.
Output the logLevel event.
Set
self.config_label_dictand outputevt_settingVersions.Report a new value for summary_state, including current state.
set_simulation_mode(simulation_mode)Set the simulation mode.
start()Finish constructing the CSC.
Publish the updated telemetry.
Attributes Documentation
-
config_dir¶ Get or set the configuration directory.
- Parameters
- config_dir
str,bytes, orpathlib.Path New configuration directory.
- config_dir
- Returns
- config_dir
pathlib.Path Absolute path to the configuration directory.
- config_dir
- Raises
- ValueError
If the new configuration dir is not a directory.
-
default_initial_state= 5¶
-
disabled_or_enabled¶ Return True if the summary state is
State.DISABLEDorState.ENABLED.This is useful in
handle_summary_stateto determine if you should start or stop a telemetry loop, and connect to or disconnect from an external controller
-
domain¶
-
enable_cmdline_state= False¶
-
require_settings= False¶
-
simulation_help= None¶
-
simulation_mode¶ Get the current simulation mode.
0 means normal operation (no simulation).
- Raises
- ExpectedError
If the new simulation mode is not a supported value.
-
summary_state¶ Get the summary state as a
Stateenum.
-
valid_simulation_modes= (0, 1)¶ The valid simulation modes for the CBP.
-
version= '0.1.dev107+g5bb2bf4'¶
Methods Documentation
-
classmethod
add_arguments(parser)¶ Add arguments to the parser created by
make_from_cmd_line.- Parameters
- parser
argparse.ArgumentParser The argument parser.
- parser
Notes
If you override this method then you should almost certainly override
add_kwargs_from_argsas well.
-
classmethod
add_kwargs_from_args(args, kwargs)¶ Add constructor keyword arguments based on parsed arguments.
- Parameters
- args
argparse.namespace Parsed command.
- kwargs
dict Keyword argument dict for the constructor. Update this based on
args. The index argument will already be present if relevant.
- args
Notes
If you override this method then you should almost certainly override
add_argumentsas well.
-
async classmethod
amain(index, **kwargs)¶ Make a CSC from command-line arguments and run it.
- Parameters
- index
int,enum.IntEnum,True, orNone If the CSC is indexed, do one of the following:
Specify
Trueto makeindexa required command-line argument that accepts any nonzero index.Specify an
enum.IntEnumclass to makeindexa required command-line argument that only accepts the enum values.Specify a non-zero integer to use that index. This is rare; if the CSC is indexed then the user should usually be allowed to specify the index.
If the CSC is not indexed, specify
Noneor 0.- **kwargs
dict, optional Additional keyword arguments for your CSC’s constructor.
- index
-
assert_enabled(action='')¶ Assert that an action that requires ENABLED state can be run.
- Parameters
- action
str, optional Action attempted. Not needed if this is called at the beginning of a
do_...method, since the user will know what command was called.
- action
-
async
begin_disable(data)¶ Begin do_disable; called before state changes.
- Parameters
- data
DataType Command data
- data
-
async
begin_enable(data)¶ Begin do_enable; called before state changes.
- Parameters
- data
DataType Command data
- data
-
async
begin_exitControl(data)¶ Begin do_exitControl; called before state changes.
- Parameters
- data
DataType Command data
- data
-
async
begin_standby(data)¶ Begin do_standby; called before the state changes.
- Parameters
- data
DataType Command data
- data
-
async
begin_start(data)¶ Begin do_start; configure the CSC before changing state.
- Parameters
- data
cmd_start.DataType Command data
- data
Notes
The
settingsToApplyfield must be one of:The name of a config label or config file
The name and version of a config file, formatted as
<file_name>:<version>, where the version is a git reference, such as a git tag or commit hash. This form does not support labels.
-
async
close(exception=None, cancel_start=True)¶ Shut down, clean up resources and set done_task done.
May be called multiple times. The first call closes the Controller; subsequent calls wait until the Controller is closed.
Subclasses should override
close_tasksinstead ofclose, unless you have a good reason to do otherwise.- Parameters
- exception
Exception, optional The exception that caused stopping, if any, in which case the
self.done_taskexception is set to this value. SpecifyNonefor a normal exit, in which case theself.done_taskresult is set toNone.- cancel_start
bool, optional Cancel the start task? Leave this true unless calling this from the start task.
- exception
Notes
Removes the SAL log handler, calls
close_tasksto stop all background tasks, pauses briefly to allow final SAL messages to be sent, then closes the dds domain.
-
async
configure(config)¶ Configure the CSC.
- Parameters
- config
types.SimpleNamespace
- config
-
async
do_changeMask(data)¶ Changes the mask.
- Parameters
- data
cmd_changeMask.DataType
- data
-
async
do_disable(data)¶ Transition from
State.ENABLEDtoState.DISABLED.- Parameters
- data
cmd_disable.DataType Command data
- data
-
async
do_enable(data)¶ Transition from
State.DISABLEDtoState.ENABLED.- Parameters
- data
cmd_enable.DataType Command data
- data
-
async
do_exitControl(data)¶ Transition from
State.STANDBYtoState.OFFLINEand quit.- Parameters
- data
cmd_exitControl.DataType Command data
- data
-
async
do_move(data)¶ Move the CBP mount to a specified position.
- Parameters
- data
cmd_move.DataType
- data
-
async
do_park(data)¶ Park the CBP.
- Parameters
- data
cmd_park.DataType
- data
-
do_setAuthList(data)¶ Update the authorization list.
- Parameters
- data
cmd_setAuthList.DataType Authorization lists.
- data
Notes
Add items if the data string starts with “+”, ignoring duplicates (both with respect to the existing items and within the data string). Remove items if the data string starts with “-“, ignoring missing items (items specified for removal that do not exist). Ignore whitespace after each comma and after the +/- prefix.
-
async
do_setFocus(data)¶ Sets the focus.
- Parameters
- data
cmd_setFocus.DataType
- data
-
do_setLogLevel(data)¶ Set logging level.
- Parameters
- data
cmd_setLogLevel.DataType Logging level.
- data
-
async
do_standby(data)¶ Transition from
State.DISABLEDorState.FAULTtoState.STANDBY.- Parameters
- data
cmd_standby.DataType Command data
- data
-
async
do_start(data)¶ Transition from
State.STANDBYtoState.DISABLED.- Parameters
- data
cmd_start.DataType Command data
- data
-
async
do_unpark(data)¶ Unpark the CBP.
- Parameters
- data
cmd_unpark.DataType
- data
-
async
end_disable(data)¶ End do_disable; called after state changes but before command acknowledged.
- Parameters
- data
DataType Command data
- data
-
async
end_enable(data)¶ End do_enable; called after state changes but before command acknowledged.
- Parameters
- data
DataType Command data
- data
-
async
end_exitControl(data)¶ End do_exitControl; called after state changes but before command acknowledged.
- Parameters
- data
DataType Command data
- data
-
async
end_standby(data)¶ End do_standby; called after state changes but before command acknowledged.
- Parameters
- data
DataType Command data
- data
-
async
end_start(data)¶ End do_start; called after state changes but before command acknowledged.
- Parameters
- data
DataType Command data
- data
-
fault(code, report, traceback='')¶ Enter the fault state and output the
errorCodeevent.
-
static
get_config_pkg()¶ Return the name of the configuration repository.
-
async
handle_summary_state()¶ Handle the summary state.
-
async
implement_simulation_mode(simulation_mode)¶ Implement going into or out of simulation mode.
Deprecated. See simulation mode for details.
- Parameters
- simulation_mode
int Requested simulation mode; 0 for normal operation.
- simulation_mode
- Raises
- ExpectedError
If
simulation_modeis not a supported value.
-
async
in_position()¶ Wait for all axes of the CBP to be in position.
In this case, in position is defined as the encoder values being within tolerance to the target values.
-
classmethod
make_from_cmd_line(index, **kwargs)¶ Construct a CSC from command line arguments.
- Parameters
- index
int,enum.IntEnum,True, orNone If the CSC is indexed, do one of the following:
Specify
Trueto makeindexa required command-line argument that accepts any nonzero index.Specify an
enum.IntEnumclass to makeindexa required command-line argument that only accepts the enum values.Specify a non-zero integer to use that index. This is rare; if the CSC is indexed then the user should usually be allowed to specify the index.
If the CSC is not indexed, specify
Noneor 0.- **kwargs
dict, optional Additional keyword arguments for your CSC’s constructor.
- index
- Returns
- csc
cls The CSC.
- csc
Notes
To add additional command-line arguments, override
add_argumentsandadd_kwargs_from_args.
-
position()¶ Is all of the axes of the CBP in position.
-
put_log_level()¶ Output the logLevel event.
-
read_config_dir()¶ Set
self.config_label_dictand outputevt_settingVersions.Set
self.config_label_dictfromself.config_dir/_labels.yaml. Output thesettingVersionsevent (if changed) as follows:recommendedSettingsLabelsis a comma-separated list of labels inself.config_label_dict, truncated by omitting labels if necessary.recommendedSettingsVersionis derived from git information forself.config_dir, if it is a git repository, else “”.
-
report_summary_state()¶ Report a new value for summary_state, including current state.
Subclasses may wish to override for code that depends on the current state (rather than the state transition command that got it into that state).
-
async
set_simulation_mode(simulation_mode)¶ Set the simulation mode.
Await implement_simulation_mode, update the simulation mode property and report the new value.
- Parameters
- simulation_mode
int Requested simulation mode; 0 for normal operation.
- simulation_mode
-
async
start()¶ Finish constructing the CSC.
If
initial_summary_stateisState.DISABLEDorState.ENABLEDthen callconfigure.Run
BaseCsc.start
-
async
telemetry()¶ Publish the updated telemetry.