Yuck.  I am sorry that this got worse between 2.5 and 2.7, but it is
likely that there is no simple fix.

I think the root of the problem you're having is that:
 * AXIS has to change modes to AUTO to actually (re)load a part
   program
 * but at the time you make the reload request, you are in MDI mode and
   an MDI command is executing
 * so AXIS can't change to MDI mode right away (this is why it becomes
   unresponsive for a bit)
 * after this, the event-driven nature of GUI programming means that
   some function gets called when it shouldn't, resulting in the actual
   error message displayed.

The comment block above the root_window.update() states why it is there:
to ensure that key presses that occurred while the program was loading
are discarded, rather than processed.  It has also been there for a long
time, well before 2.5.x. (in fact all the way back to before AXIS was
integrated with the program once known as EMC, if my spelunking in the
project history is accurate!)

Unfortunately, the update also handles other events, such as the
periodic checking of HAL pin changes or the reception of requests sent
by axis-remote.  These are inapproriate events to handle.  But there's
not sufficient control over *what kind of events* update() will handle.
:(

Without further analysis, I am loathe to simply remove that line.  But
if you are making local modifications to linuxcnc anyway, then go ahead
and do whatever you need to do to make your system work like you need.

If you do have additional analysis (such as what specific commit broke
it, which may be findable using git bisect since you have a good
procedure to reproduce the problem) or an alternative solution, please
let us know what you are able to learn.

Jeff

------------------------------------------------------------------------------
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to