CommandFutures#
- class lsst.ts.mtmount.CommandFutures(command)#
Bases:
objectasyncio futures to track the progress of a low-level controller command.
- Parameters:
command (
commands.Command) – The command.
- ack#
Future which ends as follows:
result = timeout (in sec) when the command is acknowledged, and the command is not one of those that is done when acknowledged.
exception =
lsst.ts.salobj.ExpectedErrorif the command is rejected (fails before it is acknowledged).
- Type:
- done#
Future which ends as follows:
result =
Nonewhen the command finishes successfully.exception =
lsst.ts.salobj.ExpectedErrorif the command is rejected or fails.
- Type:
Attributes Summary
Return the timeout, in seconds.
Methods Summary
setack(timeout)Report a command as started.
setdone()Report a command as finished successfully.
setnoack(explanation)Report a command as failed.
Attributes Documentation
- timeout#
Return the timeout, in seconds.
Return None if command not acknowledged. Raise an exception if the command failed before being acknowledged.
- Raises:
InvalidStateError – If
ackis not done.CancelledError – If
ackwas cancelled.The exception set by asyncio.Future.set_exception – If
ackwas set to an exception.
Methods Documentation
- setack(timeout)#
Report a command as started.
Call this when the command receives ReplyId.CMD_ACKNOWLEDGED, but only if the command is not done (a few commands are done when acknowledged). If the command is done, call
setdone.- Parameters:
timeout (
float) – Max time for command to complete (sec).
- setdone()#
Report a command as finished successfully.
Call this if the command receives ReplyId.CMD_SUCCEEDED, or if it is one of the few commands that is done when acknowledged and the command receives ReplyId.CMD_ACKNOWLEDGED.
- setnoack(explanation)#
Report a command as failed.
Call this if the command receives ReplyId.CMD_REJECTED or ReplyId.CMD_FAILED.
- Parameters:
explanation (
str) – Explanation of what went wrong.
Notes
Sets the
ack(if not done) elsedonefuture tolsst.ts.salobj.ExpectedErrorexception.Do not set both, to avoid “exception was never retrieved” warnings.