diff --git a/docs/user/widgets/scan_control.gif b/docs/user/widgets/scan_control.gif new file mode 100644 index 00000000..449b4d92 Binary files /dev/null and b/docs/user/widgets/scan_control.gif differ diff --git a/docs/user/widgets/scan_control.md b/docs/user/widgets/scan_control.md new file mode 100644 index 00000000..b71fa142 --- /dev/null +++ b/docs/user/widgets/scan_control.md @@ -0,0 +1,35 @@ +(user.widgets.scan_control)= + +# Scan Control + +**Purpose:** + +The `ScanControl` widget is designed to generate a graphical user interface (GUI) to control various scan operations +based on the scan's signature and `gui_config`. The widget is used to control the scan operations, such as starting, +stopping, and pausing the scan. The widget also provides a graphical representation of the scan progress and the scan +status. The widget is designed to be used in conjunction with the `ScanServer` and `ScanBundler` services from the BEC +core services. + +By default the widget supports only the scans which have defined `gui_config` and are inhereted from these scan classes: + +- [ScanBase](https://beamline-experiment-control.readthedocs.io/en/latest/api_reference/_autosummary/bec_server.scan_server.scans.ScanBase.html) +- [SyncFlyScanBase](https://beamline-experiment-control.readthedocs.io/en/latest/api_reference/_autosummary/bec_server.scan_server.scans.SyncFlyScanBase.html) +- [AsyncFlyScanBase](https://beamline-experiment-control.readthedocs.io/en/latest/api_reference/_autosummary/bec_server.scan_server.scans.AsyncFlyScanBase.html) + +**Key Features:** + +- Automatically generates a control interface based on scan signatures and `gui_config`. +- Supports adding and removing argument bundles dynamically. +- Provides a visual representation of scan parameters grouped by functionality. +- Integrates start and stop controls for executing and halting scans. + +**Example of Use:** + +**Code example:** +The following code snipped demonstrates how to create a `ScanControl` widget using BEC Widgets within `BECIPythonClient` + +![ScanControl](./scan_control.gif) + +```python +scan_control = gui.add_dock().add_widget("ScanControl") +``` \ No newline at end of file