#emc-devel | Logs for 2006-11-14

[01:44:47] <SWPadnos> hi folks
[01:45:18] <rayh> Hi SWPadnos
[01:45:43] <SWPadnos> how are things in the UP?
[01:46:04] <rayh> A bit of snow
[01:46:21] <rayh> Most of it went south of us.
[01:46:21] <SWPadnos> heh - we've just insured a lasting drought by installing gutters :)
[01:46:32] <rayh> Oh that will do it.
[01:47:17] <SWPadnos> last year - snowblower purchase = no snow, so I'm just assuming ...
[01:47:44] <rayh> That is probably pretty accurate.
[01:48:34] <jmkasunich> I raked a huge mountain of leaves last Monday, and there is another small mountain-to-be in the back yard now....
[01:48:40] <jmkasunich> damned oak trees
[01:48:53] <rayh> The wind will blow in circles now.
[01:49:01] <jmkasunich> and of course it rained and drizzeled all weekend
[01:49:23] <rayh> You should be in the path of the snow we had the other day.
[01:49:25] <SWPadnos> here too, until the gutter was installed
[01:49:30] <SWPadnos> cleared right up
[01:49:45] <jmkasunich> we've already had one snow that stuck
[01:50:00] <jmkasunich> only about an inch, lasted a day or two
[01:50:12] <rayh> Okay.
[01:51:10] <rayh> I've just started playing with halui. Interesting stuff. Easy to cause error messages.
[01:51:18] <SWPadnos> heh
[01:51:25] <jmkasunich> what kind of errors?
[01:51:50] <jmkasunich> I've noticed a couple of people having NMLish errors/warnings when messing with halui
[01:52:39] <rayh> I made a run button.
[01:52:52] <rayh> but you get an error if it is pressed while interp is running.
[01:52:56] <rayh> That sort of thing.
[01:53:19] <rayh> A dedicated operator panel will require CL.
[01:53:33] <jmkasunich> and you don't get a similar error if you press a normal GUI's run button while the interp is running?
[01:53:37] <rayh> For example test for auto mode, interp idle, then allow run.
[01:53:57] <SWPadnos> halui should deal with run modes, if it doesn't there's a bug
[01:54:03] <rayh> Yes you do.
[01:54:10] <SWPadnos> oh, in that case ...
[01:54:25] <rayh> I see the pins. I just need to start a CL and do the logic.
[01:54:38] <jmkasunich> rayh: did you just say that halui's behavior when you press run is exactly the same as say tkemc's?
[01:55:00] <rayh> Yes it seems to be.
[01:55:02] <SWPadnos> well, it may make more sense to decide that emc should do something different when it gets a "run" command while already running
[01:55:42] <jmkasunich> well, if tkemc is looking at the current mode, and deciding not to send a "run" NML when the run button is clicked under some conditions, then I think halui should do the same
[01:55:48] <rayh> That would be a possibility. If MDI run the currently active string.
[01:55:54] <rayh> if manual ...
[01:56:03] <rayh> But all of that can be a CL program.
[01:56:19] <SWPadnos> I'm not sure that's the best solution
[01:56:29] <jmkasunich> is there logic in tkemc/mini/axis today that makes those kinds of decisions?
[01:56:44] <rayh> I don't think any of that "mode" level of logic was ever put into the tickle guis.
[01:56:48] <SWPadnos> the GUI should know when it should do things, not have CL decide what's OK
[01:57:22] <SWPadnos> the "automatic" nature of AXIS is slightly outside the normal operation of the tk GUIs
[01:57:38] <SWPadnos> since it doesn't require you to manually change from AUTO to MDI
[01:57:58] <rayh> Right.
[01:58:02] <jmkasunich> when you said " just started playing with halui. Interesting stuff. Easy to cause error messages", I thought you were implying that things that don't cause errors when you do them on a normal GUI were causing errors with halui
[01:58:42] <rayh> No I just never pressed run twice from the mouse.
[01:59:21] <jmkasunich> and you did with a real button? or you ran into switch bounce or something like that?
[02:00:38] <rayh> I just pressed it twice.
[02:01:01] <rayh> The bounce thing seems to be okay although I've not really tried to see a bounce.
[02:01:10] <SWPadnos> I think Ray happened to notice an interesting error using halui - it's not necessarily a halui error
[02:01:15] <SWPadnos> ?
[02:01:15] <jmkasunich> yeah
[02:01:54] <rayh> Exactly.
[02:02:16] <rayh> More like a long standing EMC issue.
[02:06:48] <SWPadnos> I guess there's some question as to whether the "machine modes" make much sense nowadays
[02:07:15] <SWPadnos> also confusion between "machine states" and "GUI states" (compounded when there are multiple GUIs)
[02:08:16] <jmkasunich> the world view concept says the GUIs should track the machine state, not have their own
[02:08:50] <SWPadnos> yep, but there's a race condition if it's considered an error for task to get a "start" command wehen it's already running
[02:09:02] <jmkasunich> agreed
[02:09:03] <SWPadnos> (assuming I've correctly named task as "emc" in this case ;) )
[02:09:27] <jmkasunich> if a component of emc receives a command that is illegal in the current state, you have a dilemma
[02:09:44] <SWPadnos> well, "run" when already running is arguably not an error
[02:09:48] <jmkasunich> do you ignore it silently, or pop an error message
[02:10:06] <SWPadnos> right - or just allow a run command when already running
[02:10:21] <jmkasunich> s/allow/ignore/ I think?
[02:10:30] <SWPadnos> sure
[02:10:51] <SWPadnos> I'm talking about defining it as not an error, vs. having the something ignore what it thinks is an error
[02:10:54] <rayh> Right. The tk guis do track state rather than some internal thing.
[02:11:31] <SWPadnos> right, but if you have 3 GUIs running, there's a race between one person hitting "run", and having that state propagate to the status struct, and have all GUIs recognize that the machine is running
[02:11:44] <SWPadnos> so two people hitting the button at "the same time" can be a problem
[02:11:53] <SWPadnos> (on separate GUIs)
[02:12:32] <jmkasunich> or even with a single gui, if you hit run, then hit it again before the message telling the GUI that the first command was accepted and the state is now "running" gets back to the GUI
[02:12:35] <SWPadnos> sure
[02:14:15] <jepler> task has to make sure only sensible state transitions happen -- and for the most part it does
[02:14:19] <rayh> When FredP and I talked about these issues, his opinion was that there would be one real GUI
[02:14:26] <rayh> others would display state and such.
[02:14:37] <jepler> but sometimes it issues error messages
[02:14:40] <SWPadnos> I guess he turned out to be wrong ;)
[02:14:46] <rayh> Although that one operator panel could be passed around.
[02:14:52] <jepler> for instance, I think you'll get such an error message when you have the "two runs issued" condition
[02:14:57] <jmkasunich> right
[02:15:42] <jmkasunich> I wonder if it should silently ignore any message that says "do something that you are already doing"
[02:16:17] <SWPadnos> at least within some time frame (though that can be complex to code, and may appear random to the user)
[02:16:23] <jmkasunich> I bet some things are already handled like that - if you send a MIST_ON message, and mist is already on, does it throw an error message?
[02:16:37] <jmkasunich> time frame?
[02:16:44] <rayh> Things like multiple presses of "auto" mode does not raise a message.
[02:17:43] <SWPadnos> nevermind the timer thing - it's stupid
[02:17:52] <rayh> Mist does not raise a message.
[02:17:57] <SWPadnos> MIST_ON is defined as not being an error if mist is already on, I Think
[02:18:08] <rayh> I suspect that there are only a few NML messages that do.
[02:18:13] <SWPadnos> SPINDLE_ON is differnt though, I think the RS274 spec says that is an error
[02:18:37] <rayh> So perhaps jmk is right that it should ignore it silently if it's already doing what the second command asks.
[02:19:04] <rayh> No message here with spindle forward multiple times.
[02:20:58] <SWPadnos> hmmm - well, some G-codes are defined as an error of they're already "on" - I thought spindle was one of them
[02:21:34] <jmkasunich> you sending MDI commands, or pushing buttons?
[02:22:08] <rayh> both.
[02:22:23] <rayh> In the interpreter that is probably true.
[02:22:44] <rayh> I was using tkemc buttons and halui buttons.
[02:40:50] <jmkasunich> the discussion going on in #emc makes me wonder
[02:41:01] <jmkasunich> can we make it simpler to run multiple guis?
[02:41:27] <jmkasunich> why shouldn't I be able to open N instances of tkemc on one box, or open tkemc, mini, and axis all at the same time
[02:42:22] <rayh> I've done each of those combinations in order to test the ability of each to track status.
[02:42:33] <jepler> you can load as many as you like with 'loadusr', but you have to take care of stuff like giving the path to emcsh when running tkemc, giving the -ini argument, etc., yourself
[02:42:58] <jmkasunich> the emc script does that for the "primary" GUI I guess...
[02:42:59] <rayh> But recently it has gotten more difficult, hence the hack that jeppler sent me to get the second or third going.
[02:43:06] <rayh> Yes.
[02:43:31] <rayh> But when we moved to the heavy use of environment variables we created some headaches.
[02:43:43] <jepler> that's what emc-environment is intended to cure
[02:43:52] <jmkasunich> s/cure/hide/ ;-)
[02:44:00] <rayh> How do you use that script.
[02:44:13] <jepler> run this in your shell: . path/to/scripts/emc-environment
[02:44:19] <rayh> I get a you are supposed to run this command in a script rather than as a stand alone.
[02:44:35] <jepler> then for the rest of that shell session, you can run most all emc stuff without paths or environment variables
[02:44:56] <jepler> (there's probably stuff that doesn't work, but it just indicates items that should be added to emc-environment.in)
[02:45:15] <rayh> The exact wording is, "This script should be loaded in the context of your shell, ... not executed as a separate command.
[02:45:20] <jepler> if you use one emc2 directory all the time, then you can put the ". .../emc-environment" in your ~/.bashrc and it should work for all shells
[02:45:39] <jepler> Right, that's what the "." or "source" command does
[02:46:02] <jmkasunich> jmkasunich@ke-main-1006:~/emcdev/emc2head$ scripts/emc-environment
[02:46:02] <jmkasunich> This script should be loaded in the context of your shell, by executing
[02:46:02] <jmkasunich> . scripts/emc-environment
[02:46:02] <jmkasunich> not executed as a separate command.
[02:46:02] <jmkasunich> jmkasunich@ke-main-1006:~/emcdev/emc2head$ . scripts/emc-environment
[02:46:10] <jmkasunich> first line was without the .
[02:46:15] <jmkasunich> last line with, and it worked
[02:46:53] <rayh> Ah okay.
[02:46:59] <jepler> if I can improve the wording, please let me know
[02:47:07] <jepler> or just check in the improvement
[02:49:32] <rayh> The command I used from emc2-head is . scripts/scripts/emc-environment
[02:50:01] <SWPadnos> there should only be one scripts/ there, I think ...
[02:50:05] <jmkasunich> two scripts/ ?
[02:50:07] <jepler> it should need only ... what SWPadnos said
[02:50:10] <rayh> then in the same terminal is tried tcl/mini.tcl -ini stepper_inch.ini
[02:50:11] <SWPadnos> and jmk ;)
[02:50:15] <rayh> got nothing.
[02:50:29] <rayh> typo scripts/scripts
[02:50:32] <SWPadnos> ok
[02:50:45] <jmkasunich> jmkasunich@ke-main-1006:~/emcdev/emc2head$ . scripts/emc-environment
[02:50:46] <jmkasunich> jmkasunich@ke-main-1006:~/emcdev/emc2head$ type halcmd
[02:50:46] <jmkasunich> halcmd is /home/jmkasunich/emcdev/emc2head/bin/halcmd
[02:51:12] <jmkasunich> thats how I ran it, and the "type halcmd" shows that it is now finding the halcmd in my run-in-place tree
[02:55:42] <jepler> I just checked in a change to emc-environment.in. with it, I can simply type: mini.tcl -ini axis.ini
[02:55:48] <SWPLinux> the path should include /path/to/emc2/tcl, which it doesn't
[02:55:56] <SWPLinux> ok, it probably does now ;)
[02:56:23] <jepler> the existing .tcl script does something very bad if $EMC2_EMCSH is empty: it invokes itself over and over again
[02:57:08] <rayh> I'll get your revision later. Thanks jepler.
[02:57:11] <rayh> Night guys.
[02:57:26] <jepler> see you ray
[02:57:26] <SWPLinux> see you later
[02:58:29] <SWPLinux> hmmm - it may make sense to have some check for an empty EMC2_EMCSH in the tcl files
[02:58:39] <jepler> way ahead of you
[02:58:45] <SWPLinux> as usual :)
[21:20:01] <Jymmm> Jymmm is now known as Jymmmmm
[22:28:54] <alex_joni> hi all
[22:29:08] <jepler> hi alex
[22:29:09] <jepler> back home yet?
[22:29:13] <alex_joni> finally home ;)
[22:29:24] <jepler> glad to hear it
[22:29:26] <alex_joni> although it was quicker than I expected
[22:29:39] <alex_joni> have another system to commission by the end of the week though :)
[22:30:18] <alex_joni> but I shouldn't complain.. when there's lots of work it's quite good
[22:32:04] <jepler> it might snow here tonight but not much -- 1/4 inch, less than 1cm
[22:36:18] <alex_joni> I had a bit of snow on this trip
[22:36:22] <alex_joni> but back home it's quite warm
[22:36:35] <alex_joni> ~8-9 C right now (0:34am)
[22:36:49] <Jymmmmm> Jymmmmm is now known as Jymmmmmmmm
[22:36:55] <Jymmmmmmmm> Jymmmmmmmm is now known as Jymmmmmm
[22:45:08] <alex_joni> anyways.. nuff for today
[22:45:11] <alex_joni> good night all