Abort
Dish Leaf Node provides API for Abort workflow.
The Dish Leaf Node accepts the command unconditionally :-
No checks on DishMode, PointingState, or current operation.
Designed to interrupt any ongoing activity and force the system into a safe ABORTED state.
The following state requirements are applied for command execution :-
Dish Master must be responsive (TANGO device proxy and adapter must initialize successfully).
No dependency on current dish operating mode or pointing state.
No input JSON validation is performed :-
The Abort command requires no input arguments.
No JSON parsing or schema validation is needed.
The command execution involves the following key operations :-
Trigger global abort signal
abort_event is set to notify all background tasks and observers.
TANGO clients are notified of state changes via attribute update.
abort_event is cleared immediately after.
Terminate all ongoing internal tasks
All background operations (e.g., tracking, configuration) are aborted.
Progress is reported in two phases:
0-50%: Completion of internal task termination.
50-100%: Completion of Abort on Dish Master and track table stop.
Invoke Abort on Dish Master (conditional)
If is_dish_abort_commands_enabled == True:
Abort() command is sent to Dish Master via adapter.
A unique command ID is recorded for tracking.
If Dish Master returns REJECTED, NOT_ALLOWED, or ABORTED → command fails immediately with same result.
Otherwise, execution continues (long-running command).
Stop ProgramTrackTable generation
StopProgramTrackTable() is invoked on the Dish LN Pointing Device.
On failure:
Error is logged.
Health state is updated to DEGRADED.
Command fails with ResultCode.FAILED.
Clear residual track table errors
Any stored track table errors are reset.
The TMC Dish Leaf Node monitors progress via task callbacks and timeout tracking :-
Command reports ResultCode.STARTED immediately after:
Adapter initialization.
Issuing Abort (if enabled) and StopProgramTrackTable.
Final success/failure is reported asynchronously.
Success criteria (reported as TaskStatus.COMPLETED)
All internal tasks are terminated.
StopProgramTrackTable completes without error.
Abort command (if sent) is accepted by Dish Master.
Progress reaches 100% via callback.
Failure is reported in any of the following cases (TaskStatus.FAILED)
Dish Master adapter fails to initialize.
StopProgramTrackTable() raises an exception → health DEGRADED.
Internal task abortion fails.
Timeout: Command exceeds command_timeout (configured via TimeKeeper) → automatic failure.
No input JSON schema
The Abort command accepts no input.
No reference to external schema (unlike Configure command).
Schema URL: Not applicable