refactor(eiger): add alarm in case beam energy can not recovered
CI for csaxs_bec / test (push) Successful in 1m32s
CI for csaxs_bec / test (push) Successful in 1m32s
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# Guidelines to generate the SAXS widget
|
||||
- Follow the style and structure of the bec_widgets/widgets main repository.
|
||||
- Follow best practices for coding in Python and Documentation.
|
||||
- Respect the lynter rules and conventions used in the main repository.
|
||||
- Write simple and clear code, with comments and docstrings where necessary.
|
||||
- Ensure that the widget is compatible with the BEC framework and can be easily integrated into the existing system.
|
||||
- Use the relevant base classes from BEC Widget whenever possible
|
||||
- Make the UI look nice, but not too complicated. Avoid unnecessary complexity and keep the user interface intuitive and user-friendly.
|
||||
- Keep widgets modular to simplify maintenance and future updates.
|
||||
|
||||
## SAXS Widget Structure
|
||||
We need to build a larger widget composed of several smaller sub-widgets.
|
||||
- On the left side, please use the Image widget from bec_widgets to generate an image view of a live camera feed. We will also need a single ROI that can not be deleted, but moved and resized. It will later be used to define the are of interest for preparing individual SAXS measurements.
|
||||
|
||||
- Below the image widget, please add a positioner_group widget that will contain two positioners.
|
||||
- One for the X position of the camera
|
||||
- One for the Y position of the camera
|
||||
- On the right top side. Please create a new group of input widgets for configurations. This should contain
|
||||
- input for the X & Y positioners for the positioner group
|
||||
- scale, offset and direction for positioners
|
||||
- exposure time and step size for SAXS measurements
|
||||
- Below the widget on the top, I need a table. I would like one selection box that allows the user to choose between two templates for the table. Both templates always have the following columns:
|
||||
|
||||
- Sample Name (str)
|
||||
- ROI coordinates (x, y, width, height) -> taken from ROI of image widget. Please store original values too somewhere as metadata.
|
||||
- Exposure time (float)
|
||||
- Step size (float)
|
||||
- Comment (str)
|
||||
- Sample ID (str - autogenerated 4 chars)
|
||||
Additionally one template is for SAXS tensor tomography, where we would like to produce N entries in the table with two more motors, rotx and roty. The user should be able to define a single roty, and a range of rotx values. Either manually or via range between 0...180 with N angles (including last position).
|
||||
The other template is only for scanning SAXS, so just the basic columns used up there. One more comment, the control panel at the top should have an option to potentially apply corrected values for the whole table that was created, in case the offset or scale was off. Offset and scale allows to transfer the ROI coordinates from the camera to the positions of the positioners. So if the user changes the offset or scale, they should have an option to update and apply the values to the table. Per default, it only applies to new entries. The exact behavior should still be discussed. Also, the control panel should allow for a "lock" button to make entries read-only and not change them by accident. The table should also have a button to delete selected entries, to edit them and a button to clear the whole table. I think it might be nice to have a popup to enter individual parameter for the templates. I was also thinking about adding single lines, and multiple lines in particular for the SAXS tensor tomography template which will ask you about the angle ranges and then create entries accordingly.
|
||||
|
||||
This table should than either be saved as CSV, or submitted to a secondary queue like widget on the bottom..
|
||||
- Queue widget at the bottom. This widget should in addition have some control buttons. The idea is to be able to either submit the whole table, or a subsection to be exported as CSV, or alternatively submitted as a dictionary to a macro. Don't bother with the macro for now. Also, there should be a way to edit single entries in the table, but not by accident. So maybe through an extra action. The table below should also have an extra column which indicates if the entry was already scanned. So a list of scan numbers in red and green, green if the scan finished in success and red if it failed.
|
||||
Reference in New Issue
Block a user