I actually wonder why the controller must have modes at all. The only thing really important is if it is busy it must finish.
ie if it's busy running an MDI command it can't jog If it's running a program it can't MDI etc Traditionally NC machines separated these modes with a switch. I don't see why we need to do that any more. If the controller is idle it should be able to do anything. This would leave it to the UI/user to decide whats allowed when. UIs have been working around this problem for a very long time. Ie touchoff is an MDI command which is quite obviously a manual mode command. Chris M ________________________________ From: Kurt Jacobson <[email protected]> Sent: December 4, 2017 7:27 PM To: EMC developers Subject: Re: [Emc-developers] Mode switching bug Any UI that wants to work well with wheel jogging has to find some way of setting the task_mode back to manual after each MDI command, and as we have seen that is not trivial to do without breaking external programs that issue MDI commands. In fact, I do not think it is an overstatement to say that so far *nobody* has managed to make both wheel jogging and external MDI commands work satisfactorily at the same time. Since all UIs suffer from this problem, it seem like instead of each UI using some kind of work around, this problem might should be solved at a lower level. I have no idea what MDI mode actually does internally, but from a practical user perspective, I can't think of any time were there is a need for LCNC to remain in MDI mode after issuing an MDI. As far as I can tell most UIs that work well with wheel jogging employ something like the following pseudo code: def issue_mdi(cmd): set_mode(MDI) issue_mdi(cmd) set_mode(MANUAL) while(True): if not mode_manual and is_idle: set_mode(MANUAL) So basically the UI ensures that LCNC is not in MDI mode unless it it actively issuing an MDI command, which essentially is the same thing as not having an MDI mode at all (from the users perspective). So what if instead of making each UI have to handle switching back to manual mode this is done elsewhere. For example `command.mdi()` could switch LCNC to mdi mode, issues the command, and then switched back to manual. It seems like something like this would make life simpler for the UIs ... Cheers, Kurt On Mon, Dec 4, 2017 at 11:43 AM, Kurt Jacobson <[email protected]> wrote: > On Mon, Dec 4, 2017 at 10:54 AM, Rene Hopf <[email protected]> wrote: > >> >> > On 4. Dec 2017, at 16:14, Les Newell <[email protected]> wrote: >> > >> > This is master as of a couple of months ago. I'd rather not install the >> patch because I want it to switch back to manual after MDI. >> >> the patch should still allow you to do that. thats why I asked you to >> test. >> > > I am afraid not. Dewey's branch does not switch back to manual after an > MDI, at least in my tests. > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
