Skip to content
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: Display more information on table of motors #4035

Closed
ThomasLohnert opened this issue Feb 22, 2019 · 20 comments
Closed

GUI: Display more information on table of motors #4035

ThomasLohnert opened this issue Feb 22, 2019 · 20 comments
Assignees

Comments

@ThomasLohnert
Copy link
Contributor

ThomasLohnert commented Feb 22, 2019

As a reflectometry scientist, I would like the motor table to display much more information about each motor to provide a kind of glanceable overview of the state of all motors similar to SECI, instead of having to drill down on every individual one to see the details.

Specifically:

  • Display an indicator that shows the motor automatically de-energises
  • Display an indicator that shows the motor is using an encoder
  • Setpoint and read back should be display at the motor precision
  • Display the motor limits
  • Display the offset
  • Display when there is an error between SP & RBV

Consider whether there should be a basic and advanced version of the table of motors (where the advanced version has the above features)

Acceptance Criteria

  1. As above now displayed
  2. All items originally displayed are shown
  3. Colour preferences still change colours to be more easily distinguished
@ThomasLohnert ThomasLohnert changed the title GUI: Energised/Encoder indicators on Motor Details GUI: Display more information on table of motors Apr 29, 2019
@John-Holt-Tessella
Copy link
Contributor

Maybe this should be a real table like this? Might need to do this to save space

image

@ChrisM-S
Copy link

ChrisM-S commented May 3, 2019

This looks pretty informative to me, but I'm curious, does SECI have something like this for reflectometers? Am I right in assuming that the icons can be pressed to home/move to limits? Also would multiple motors moving be updating in real time?

@ThomasLohnert
Copy link
Contributor Author

ThomasLohnert commented May 3, 2019

Yes SECI has all of the above in their table of motors as far as I know, and yes it updates all moving motors in real-time (as does the IBEX table of motors).

We can ask the scientists what they think of the table view but my hunch is they will not be too happy with it as it doesn't provide the same information density (something they have repeatedly said is a major requirement) as the grid view in SECI. I also imagine there would already be some degree of resistance because the format would be quite different to what they are used to.

@kjwoodsISIS
Copy link
Contributor

The table-of-motors in IBEX was one of the early features that we created, so I am not surprised it is not as functional as the SECI ToM. We should sit down and compare the IBEX & SECI tables-of-motors side-by-side, identify the gaps and make plans to fill them.

@John-Holt-Tessella
Copy link
Contributor

Yes we should sit down and discuss.

@John-Holt-Tessella John-Holt-Tessella added this to Backlog in Reflectometry Jun 13, 2019
@ThomasLohnert ThomasLohnert moved this from Backlog to Non-reflectometry Specific Changes in Reflectometry Jul 2, 2019
@kjwoodsISIS
Copy link
Contributor

Ask scientists if having this information on a separate screen would be acceptable.

@aaron-long
Copy link
Member

aaron-long commented Aug 6, 2019

motor_example

I think as part of this ticket we should design a table of motors .opi that can eventually supersede the motor table perspective in the GUI. Here's a working example of a dynamic table I created that will fit (in a grid layout) automatically motors.

We can more easily edit and design the OPI, as well as remove Java code.

I created ticket [#4633] to propose this.

@aaron-long aaron-long self-assigned this Oct 28, 2019
@aaron-long aaron-long moved this from Non-reflectometry Specific Changes to Ready in Reflectometry Oct 28, 2019
@aaron-long
Copy link
Member

Mock layouts for single motor details that preserve (at a minimum) vertical space:
sing_motor_view

@aaron-long
Copy link
Member

table_bar_design

@aaron-long
Copy link
Member

table_dot_design

@aaron-long
Copy link
Member

status_icons

@aaron-long
Copy link
Member

aaron-long commented Oct 31, 2019

Icons/glyph for status information

I had spent some time thinking of how to compactly show the information in the requirements without increasing the vertical (and horizontal space). I created some multi-info glyphs and experimented with the addition of these to the single motor view. Two designs where seem to satisfy our wants are an in-line glyph or a side stripe.

This would function in the same way as the MinimalMotionIndicator class with boolean on/off depending on the property (i.e., is the axis homed). I feel that icons are preferential to letters but examples are given for both. Colours are for illustration only.

Designs for Table of Motors

@ThomasLohnert and I spent time to think about how to add the additional information to a single motor details panel. Some specific requirements we felt were essential:

  • do not increase vertical space; ideally each motor table should be visible without a need for a scroll bar
  • Do not decrease font size
  • There should be a focus on the VAL
  • If a limit is triggered then it should be highlighted and the limit values should be included
    As a result of these we felt that sticking to 4 rows was needed.

SECI had a lot of information but aligned with text wrapping and a tiny font. Ideally we would like to convey similar information density but in a more readable format:

motors

@Tom-Willemsen & @John-Holt-Tessella Have both noted they think a simple and advance view should be available too, as most users (beyond reflectometery) will not use this info and it might be overwhelming.

@KathrynBaker
Copy link
Member

KathrynBaker commented Oct 31, 2019 via email

@aaron-long
Copy link
Member

@KathrynBaker The icons would follow the same binary behaviour of the current ones:
current_example

The information is the content that is listed in the requirements in the initial ticket.

@ChrisM-S
Copy link

Good tool tipping might allow removal of some space taking things like "Axis Name" (i.e. show just the name "MOT" with the tool tip showing the field name). I would still keep sp: and off: though, just a thought.

Tool tips could also document the fields icons better for more context based help.

@KathrynBaker
Copy link
Member

KathrynBaker commented Oct 31, 2019 via email

@aaron-long
Copy link
Member

The request for requirements and feedback on the table of motors design has been sent to instrument scientists. CK has kindly agreed to collect this information and we will have a list in a weeks time.

After testing designs for the existing motor single view, I think we would need to consider reducing the font size by a point or two for new values to maintain horizontal spacing.

@KathrynBaker The orange highlighting on the limits label & value simply represents that a limit is triggered (exactly the same as the orange boarder on existing simple/detailed motor OPI). The highlighting on either Lo, HI or both is just the triggered status on each of these.

The coloured squares would represent the status information for values that have binary values, i.e., is an encoder being used. The position, colour and icon are only examples are will not be defined exactly until we have feedback on requirements. The second round of design will define these better and a more comprehensive illustration (with labels etc.) will be produced.

@aaron-long
Copy link
Member

aaron-long commented Jan 6, 2020

Feedback provided by instrument scientists on a proposal for the new advanced table of motors design:

  1. The main motors for the Engin-X positioning stage are not treated as IBEX motors. They have a view in Synoptic and EPICS PVs, but are not mentioned in the IBEX table of motors. I forget the reason, but it may be related to the use of our hand-held jog box. If the handling of motors is being improved, it may well be worth looking at including the Engin-X positioning system in the IBEX motor table, to benefit from future development here and mitigate the risks of using a non-standard solution. I also find it hard to believe that Engin-X is completely unique in its requirements – things like our jog box may not be essential for other beamlines, but there must be some situations where it’s useful.

  2. I don’t use the Motor view very often at all, thus the clarity of it is actually important. I have to say I quite like this new view having the limits displayed and presumably illuminating if in error… But I’ve no idea what the ‘status lights’ are about!

  3. I’ve discussed this with James and we think this looks basically fine – we would quite like to see several motors at once sometimes. I don’t think we have a preference between the two icons – perhaps because we didn’t fully appreciate the difference – but either would be fine.
    Minor comments we had were:

  • How active would this screen be? Would you always be at risk of adjusting parameters with a single mouse click or scroll. Or is it just a viewing system?
  • Could we click these to get to the OPI’s? That would be very handy.
  • We didn’t have any particular opinions on colour coding as long as it is documented.
  1. I’m happy with the proposed changes to the motor table display. I don’t have a preference for one or the other of the two proposed options.
  • I like the use of colours.
  • It’ll be good to keep the option to switch between simple and advanced view, as suggested by Aaron.
  • Having low and high limits accessible on the top level will make some alignments tasks easier for us the users on IMAT. For this we would need the “advanced view” for a few of the axes, not for most axes. So I wonder whether we will be able to customize the motor table such that we can have some motors in simple view and others in advanced view.
  1. For information, the reason we have not converted the Engin-X system is related to the handheld jog box, and more importantly it’s interaction with safety requirements. Making changes to the system will likely result in a close inspection of the whole system, and will require significant re-testing at the very least. When Engin-X was converted to IBEX there was no appropriate resource available to undertake that testing – which at the very least will require time from Experiment Controls and Electronics Operations. There is very limited support available for motion related safety at this time, and this system was a compromise that we can make an argument to maintain, but not to develop/alter, the additional slits behaviour is another example of our not altering the system, it is being handled separately. Those of us who have the maintenance responsibility for the system are actually keen to see it migrated to Beckhoff with a modern safety system, at which point it will be part of the standard IBEX setup. Until then, the non-standard system may cause confusion, but we know that it behaves and conforms to the previously agreed safety case, any alterations will require a significant amount of work for which there is no resource and a re-agreement of that safety case which will likely be time consuming.
    The jog box is unique to Engin-X, where others have the need to perform those functions so far they either cope without, or we are trying to develop solutions with them, and as yet do not have a solution that we would roll out to others.

@aaron-long
Copy link
Member

aaron-long commented Jan 6, 2020

Split ticket into smaller chunks:

We are also reviewing #4633 as an option.

@John-Holt-Tessella
Copy link
Contributor

Review as part of #5064

@John-Holt-Tessella John-Holt-Tessella moved this from Ready to Done in Reflectometry Apr 21, 2020
@John-Holt-Tessella John-Holt-Tessella moved this from Review to Review Complete in IBEX Project Board Apr 21, 2020
IBEX Project Board automation moved this from Review Complete to Done Apr 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants