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.ConfigurableCsc
This 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
None
orstr
orpathlib.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
None
orMockServer
- 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.DISABLED
orState.ENABLED
.Get the current simulation mode.
Get the summary state as a
State
enum.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.ENABLED
toState.DISABLED
.do_enable
(data)Transition from
State.DISABLED
toState.ENABLED
.do_exitControl
(data)Transition from
State.STANDBY
toState.OFFLINE
and 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.DISABLED
orState.FAULT
toState.STANDBY
.do_start
(data)Transition from
State.STANDBY
toState.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
errorCode
event.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_dict
and 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: State = 5¶
- disabled_or_enabled¶
Return True if the summary state is
State.DISABLED
orState.ENABLED
.This is useful in
handle_summary_state
to determine if you should start or stop a telemetry loop, and connect to or disconnect from an external controller
- domain¶
- enable_cmdline_state = False¶
- 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
State
enum.
- valid_simulation_modes: typing.Optional[typing.Sequence[int]] = (0, 1)¶
The valid simulation modes for the CBP.
- version = '0.1.dev112+g07704a7'¶
Methods Documentation
- classmethod add_arguments(parser: argparse.ArgumentParser) → None¶
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_args
as well.
- classmethod add_kwargs_from_args(args: argparse.Namespace, kwargs: Dict[str, Any]) → None¶
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_arguments
as well.
- async classmethod amain(index: Optional[Union[int, enum.IntEnum, bool]], **kwargs: Any) → None¶
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
True
to makeindex
a required command-line argument that accepts any nonzero index.Specify an
enum.IntEnum
class to makeindex
a 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
None
or 0.- **kwargs
dict
, optional Additional keyword arguments for your CSC’s constructor.
- index
- assert_enabled(action: str = '') → None¶
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: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Begin do_disable; called before state changes.
- Parameters
- data
DataType
Command data
- data
- async begin_enable(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Begin do_enable; called before state changes.
- Parameters
- data
DataType
Command data
- data
- async begin_exitControl(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Begin do_exitControl; called before state changes.
- Parameters
- data
DataType
Command data
- data
- async begin_standby(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Begin do_standby; called before the state changes.
- Parameters
- data
DataType
Command data
- data
- async begin_start(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Begin do_start; configure the CSC before changing state.
- Parameters
- data
cmd_start.DataType
Command data
- data
Notes
The
settingsToApply
field 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: Optional[Exception] = None, cancel_start: bool = True) → None¶
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_tasks
instead 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_task
exception is set to this value. SpecifyNone
for a normal exit, in which case theself.done_task
result 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_tasks
to 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: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Transition from
State.ENABLED
toState.DISABLED
.- Parameters
- data
cmd_disable.DataType
Command data
- data
- async do_enable(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Transition from
State.DISABLED
toState.ENABLED
.- Parameters
- data
cmd_enable.DataType
Command data
- data
- async do_exitControl(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Transition from
State.STANDBY
toState.OFFLINE
and 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: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
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: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Set logging level.
- Parameters
- data
cmd_setLogLevel.DataType
Logging level.
- data
- async do_standby(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Transition from
State.DISABLED
orState.FAULT
toState.STANDBY
.- Parameters
- data
cmd_standby.DataType
Command data
- data
- async do_start(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
Transition from
State.STANDBY
toState.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: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
End do_disable; called after state changes but before command acknowledged.
- Parameters
- data
DataType
Command data
- data
- async end_enable(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
End do_enable; called after state changes but before command acknowledged.
- Parameters
- data
DataType
Command data
- data
- async end_exitControl(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
End do_exitControl; called after state changes but before command acknowledged.
- Parameters
- data
DataType
Command data
- data
- async end_standby(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
End do_standby; called after state changes but before command acknowledged.
- Parameters
- data
DataType
Command data
- data
- async end_start(data: lsst.ts.salobj.type_hints.BaseDdsDataType) → None¶
End do_start; called after state changes but before command acknowledged.
- Parameters
- data
DataType
Command data
- data
- fault(code: Optional[int], report: str, traceback: str = '') → None¶
Enter the fault state and output the
errorCode
event.
- 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: int) → None¶
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_mode
is 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: Optional[Union[int, enum.IntEnum, bool]], **kwargs: Any) → lsst.ts.salobj.base_csc.BaseCsc¶
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
True
to makeindex
a required command-line argument that accepts any nonzero index.Specify an
enum.IntEnum
class to makeindex
a 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
None
or 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_arguments
andadd_kwargs_from_args
.
- position()¶
Is all of the axes of the CBP in position.
- read_config_dir() → None¶
Set
self.config_label_dict
and outputevt_settingVersions
.Set
self.config_label_dict
fromself.config_dir/_labels.yaml
. Output thesettingVersions
event (if changed) as follows:recommendedSettingsLabels
is a comma-separated list of labels inself.config_label_dict
, truncated by omitting labels if necessary.recommendedSettingsVersion
is derived from git information forself.config_dir
, if it is a git repository, else “”.
- report_summary_state() → None¶
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: int) → None¶
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() → None¶
Finish constructing the CSC.
If
initial_summary_state
isState.DISABLED
orState.ENABLED
then callconfigure
.Run
BaseCsc.start
- async telemetry()¶
Publish the updated telemetry.