Keeping popups in sync with other script code

Working with URSim version 3.3.2.266 (Sep 05):

During the course of debugging a script I want to confirm correct interaction with the xmlrpc server. To do this I have interspersed a series of popups between the server calls to indicate what variable values should be present after each call.

The problem is that the popups seem to be out of sync with the server calls. All of the latter are being executed and values returned while the first popup is still being displayed.

Is there any way to keep the popups in sync with the server calls and other code?

@rkm
What kind of popups are you executing?
Do you have a snipped of example code that can elaborate what you are aiming to do?

What timing-frame are we looking for?

@jbm
In the debugging code snippet below the objective is to:

  1. Make sure the vision system has been started.
  2. Pause URSim at each popup in order to observe the state of the vision system, the xmlrpc server log and/or the URSim variables.

As shown in the image below, the first popup is being displayed, but the variables field shows that we are at the “3rd blob should be loaded” state (3.0 in the 2nd to last field). All the calls to the xmlrpc server have already been made and the last target data is now in memory. There was no opportunity to observe the intermediate behavior.

In actual production operation, if the operator had seen that the vision system had not been started, there would have been no opportunity to correct the situation. Instead the robot would have tried to go ahead anyhow -with unpredictable results.

I’m not sure whether this answers your timing-frame question.

You could you try to add blocking=True to the popup calls.
Eg.: popup("Make sure WAY-2C is started", title="Message", warning=False, error=False, blocking=True)
I would imagine that this is your issue.
This parameter defines if the programm execution is suspended until the user clicks OK or not (the unlucky default).

@jbm why is this parameter not documented in the script manual an why does it default to False?

2 Likes

@hch
Thanks, that was indeed the problem.

@hch
I have reported the missing documentation of the blocking=True to R&D.

1 Like