11-26-2016 02:23 AM
Here is a question that not only applies to Labview
Reviewing a colleague's code I found on a panel what it seemed a ludicrous piece of code: a user numerical control attached directly to an indicator. He explained to me that an operator using the program had once changed the value without pressing enter; this had caused serious problems with the customer. So he placed a numerical indicator that showed the actual value in the system next to the control where the user would enter any new value. The user would then be aware the new value has not been registered until after he pressed enter, which will cause the indicator to display the newly entered value. Fair enough. Still the code looked silly and the user panel awkward.
So I started playing with different alternative schemes, none of which did the trick. I would have the control blink when user put the mouse on it and stop the blinking on enter (using events). Is there any standard (or best practice) way of doing this?
Solved! Go to Solution.
11-26-2016 02:41 AM - edited 11-26-2016 02:45 AM
I often use an Event for a numerical control: when the user clicks into the field, I do not let him/her modify the value there, but I open a pop-up window with modal behaviour. The user must set a new value in this pop up window, and click on "Set/ok", or there is a "Cancel" option too. There is no way the user ignored this pop up window, since it is modal, so until an ok or cancel action is not taken, the main front panel is not operable.
Edit: we also use Siemens pcs7 software to control processes with high safety requirements (radioactive gas handling). That software also uses pop-up windows where the user needs to OK or Cancel a new value input...
11-26-2016 02:59 AM - edited 11-26-2016 03:00 AM
So it is an important trick when you design GUIs, you do not want to inform the user what he is supposed to do. You force the user to do what must be done 🙂 And stop the user to do certain things at certain times, like at certain states of a state machine. The "Disable and grayed out" property is a very handy thing 🙂 A good GUI is designed in a way, that a monkey can operate it! ...hmm almost 😂
11-26-2016 03:14 AM
Great idea!
What event do you use? Mouse down?
Bill
11-26-2016 04:19 AM
I cannot remember which actual event, I guess that one. But you can test it. Also you might not need a control, but a Boolean button and an indicator to show the actual setting. I often use this for flow controllers: two indicators, one for the setpoint, one for the process value. There is also a Boolean button which launches the pop up window to change setpoint...
11-26-2016 03:14 PM
Hi Bill,
> What event do you use? Mouse down?
I use Mouse Up. This gives the operator the option of sliding off of a control without activating it.
Operators are usually familiar with this type of reaction because it's how web links work.
With controls that need verification especially boolean and ring controls, I disable the control. Otherwise the visual indicator immediately changes before you have a chance to check whether the change is allowed. This way, if the operation should not be performed (like a valve change), you don't have to undo the changed state of the control.
(Which would look like the state changed temporarily when it actually didn't change.)
steve