-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GUI: Convert table of motors perspective to OPI. #4633
Comments
copied to above |
Can we document (in this ticket) exactly what controls, fields, etc. should appear on each tile of the ToM. |
This ticket would just reproduce the current table of motors at the time that it is implemented. The ticket you are thinking about which increases the value is shown on #4035. |
John, Dom and I had a discussion about this ticket following work completed for #5063 which is the Java approach to implementing #4035 (Add more details to the table of motors). In general we would prefer to work towards implementing OPI's and write less (Java) code ourselves. If we continue to develop this Java implementation then we actively make this ticket harder for ourselves. Our conversation was focused around stopping and thinking about what direction we would like to go in before committing too heavily to one option. We spent time to think about the pro's and con's of a given implementation. Previously one of this big blockers for the OPI implementation was the requirement that detailed motor views (from clicking a single motor) should be placed into tabs beside the table of motors. This is the current behaviour in the GUI. But the question is: is that actually a requirement? We can feasibly open individual motors in a linking container trivially, or populate fixed tabs (much like the eurotherm). We want to ensure that given a solution the ability to compare motor details is still easy. Another point was for colour options (colour blind settings) to pass from the GUI to the OPI. We do write to internal PV's so this could be achieved (see: DAE UI for the spectraplot I will create a mock of the table of motors without tabs and inquire with instrument scientists as to if tabs are a hard requirement. I will lay out some of the pro's/con's discussed in this post. Given a suitable response we will either think about how to overcome this limitation (if the general response is tabs are required) or if we should continue to implement the Java version. |
FeedbackPOLARIS:
ALF:
Notes
|
We might be able to provide POLARIS with similar functionality by coming up with a “group home” option – simplest would be a home all, but providing a way to home only selected axes could be a longer term solution.
|
We did write a script for IMAT which calls home on all motors in a list. We could give them a similar script. Although this did expose a problem where sometimes motor homes don't finish. |
Motors perspective
The motors perspective has three main components: Table of motors ( The perspective controls allows for the user to select either a standard motor details, or advance motor details for the currently selected motor or for the minimal motor object in the table of motors. This is achieved by have local macros used as triggers for the objects script that hold the currently selected motor and enabled/disabled state of standard vs advanced. When the table of motors is resized based on if a standard or advanced table of motors OPI the controls and details are shifted by a constant (defined within the objects script). In testing I found that while I wanted to simply calculate and offset + width of the new table size (such that the tables can be altered without changing these constants), the width value returned by Compared to the old table we no longer have the column/row headings (1, 8) which have gained us some space. It's debatable if it's required but after discussion we want to try to release it without the headings. Table of motorsThe standard and advanced table of motors contain a grid layout (that auto-formats the widgets). Each widget is a linking container that has an associated macro (for the motor) and the standard or advanced minimal motor OPI. Table views have:
Minimal motor view
The minimal motor view for both standard and advanced has been redesigned with new status icons. The standard icons have been given descriptive tool tips and highlight. The standard view mimics the existing behaviour. The advanced view provides new functionality; currently the advanced view still requires tweaks to formatting and content. I have placed alternative advanced view layouts in the Status Icons
Status icons have been created and are saved in Currently the status icons are linked to their associated PV. These are linked via macros that are defined in the
|
@DominicOram @John-Holt-Tessella @FreddieAkeroyd @ThomasLohnert and I discussed the comment above, and decided that:
Longer term we may look at implementing the individual motor widgets in CS-Studio (in Java code) to try and regain some of the performance penalty of using OPIs. |
Things left: Accessibility back ground colour and connecting local pv : tickets #4633 this ticket #5320 Performance doing after this is complete |
Performance in the end was too bad to carry on. We think this was caused by the number of PVs which must be connected and rendered on this view. Maybe it will be better to diaply builder but currently not good enough in BOY. |
The table of motors perspective is quite slow and relies of Java development to modify (or extend). We should convert this into an OPI, and dynamically load motors based on which ones are present. This can be done using a similar technique to how the reflectometery server loads parameters. We could gain a performance increase, ease the ability to modify and change to support requests like [#4035].
In the attached image I created a mock OPI table that would load the three galil's and automatically grid their layout using a CSS widget.
Acceptance Criteria
The text was updated successfully, but these errors were encountered: