#emc-devel | Logs for 2009-01-26

[01:04:29] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/src/emc/rs274ngc/ (interp_queue.hh interp_queue.cc): oops, add license statements
[03:25:06] <steve_stallings> steve_stallings is now known as steves_logging
[04:35:09] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/tcl/tkemc.tcl: remove debug print that's been there for eons
[12:36:22] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/images/pyvcp_dial.png: add dial
[12:36:29] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/pyvcp.lyx: add dial
[12:44:57] <alex_joni> g'morning
[12:47:14] <micges> good morning
[12:47:47] <micges> can I use fopen in *.comp file ?
[12:50:03] <BigJohnT> morning
[12:53:41] <micges> can
[12:54:03] <micges> can I use files in hal module in any way ?
[12:58:34] <SWPadnos> I don't think so
[12:58:57] <alex_joni> micges: depends on the comp
[12:59:05] <alex_joni> if it's a userspace comp, then there's no issue
[12:59:12] <alex_joni> if it's a realtime component, then the answer is no
[12:59:34] <SWPadnos> and then there's screw comp, which is done in a convoluted way :)
[12:59:46] <SWPadnos> relatively convoluted ayway
[12:59:59] <alex_joni> you probably need to use some other mechanism to get the data to realtime (either sharedmem - like sampler/streamer, or ioctl or sysfs or whatever)
[13:00:22] <alex_joni> SWPadnos: screw compensation data gets sent through SHM
[13:00:36] <SWPadnos> yep. more convoluted than fopen :)
[13:00:38] <alex_joni> userspace loads/reads the file and sends the data through shared memory
[13:00:49] <alex_joni> not more convoluted than necessary, unfortunately :)
[13:02:19] <SWPadnos> right - as convoluted as necessary, but no less so (or is that no more so?) :)
[13:08:33] <micges> thanks
[13:11:32] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/images/pyvcp_meter.png: add file
[13:13:18] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/ (pyvcp.lyx pyvcp_fr.lyx pyvcp_meter.png): moved to images directory
[14:00:48] <BigJohnT> you know it's going to be a good day when CVS is alive and kicking in the morning :)
[14:06:16] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/drivers/GS2.lyx: minor edits and adjust image size
[14:06:17] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/examples/gs2_example.lyx: minor edits and adjust image size
[14:06:17] <CIA-1> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/hal/ (pyvcp.lyx pyvcp_fr.lyx): minor edits and adjust image size
[14:27:30] <alex_joni> BigJohnT: heh
[14:27:52] <BigJohnT> heh you have a "heh" key too!
[14:29:11] <alex_joni> who doesn't?
[14:29:15] <alex_joni> it's right besides F15
[14:34:59] <BigJohnT> mine says check engine light
[14:45:36] <alex_joni> ah, then you need to upgrade .. mine does that automatically
[15:31:02] <BigJohnT> well, if you get a check engine light on a toyota the first thing you do is check the gas cap :/ at least they didn't charge me for that info
[17:38:42] <CIA-1> EMC: 03alex_joni 07v2_2_branch * 10emc2/debian/extras-sim-Ubuntu-8.04/emc2.files: need files for 8.04-sim too
[19:46:35] <cradek> alex_joni: could you look at a run-from-line problem? I think it sometimes starts a line too early ... or something.
[19:47:19] <alex_joni> oh, nice of you to remind me
[19:47:21] <alex_joni> :)
[19:47:33] <cradek> on the AXIS splash screen I'm highlighting a move to safety height (line 99) and RFL there. it starts running at line 97 instead
[19:48:31] <cradek> I understand that it can't do what I want (rapid to Z#1 like line 99 says), since RFL only selects canon calls, which have all axes of position information in each of them
[19:49:10] <alex_joni> it would work if AXIS would feed each line through MDI
[19:49:10] <cradek> but even with that in mind, I still think it's doing something additional wrong
[19:49:40] <cradek> ?
[19:50:00] <alex_joni> oh, n/m .. not actually related
[19:50:34] <alex_joni> it would do rapid to Z#1 though
[19:50:48] <alex_joni> assuming one would MDI all lines starting from RFL
[19:51:06] <alex_joni> (but that would lose other things like variable setup and the like that happens before)
[19:51:10] <cradek> you're joking right?
[19:51:13] <alex_joni> yeah :)
[19:51:17] <cradek> that's not a working solution
[19:51:19] <cradek> ok then :-)
[19:51:21] <alex_joni> I know..
[19:57:16] <alex_joni> another 10 minutes doing cvs up (getting firmwares..)
[20:12:01] <cradek> arrgh
[20:12:14] <cradek> step-step-resume from beginning of a program isn't working again. I thought I fixed that last time.
[20:12:57] <alex_joni> U src/hal/drivers/mesa-hostmot2/firmware/5i22/SV16S.BIT
[20:14:42] <alex_joni> sorry.. I'm really slow today :/
[20:16:02] <cradek> hm, I changed everything to use stat.paused but the problem is that when stepping from the beginning, s.paused is not set
[20:16:37] <alex_joni> ah
[20:16:46] <alex_joni> probably needs some initial value
[20:19:14] <alex_joni> hmm.. doesn't help that I haven't booted this hardy in a long time
[20:21:13] <alex_joni> yay, compiling ;)
[20:27:22] <alex_joni> cradek: run from line seems ok here..
[20:27:25] <alex_joni> :-?
[20:28:23] <alex_joni> err.. no, you're right
[20:28:25] <cradek> on the splash screen program, highlight line 99 (G00 Z #1)
[20:28:34] <alex_joni> if I select the next line 100? then it works as it should
[20:28:39] <alex_joni> but for 99 it does 97 first
[20:29:02] <cradek> I agree - interesting
[20:29:39] <alex_joni> and inconsistent :)
[20:30:42] <alex_joni> ok, I'm looking at the paused issue first
[20:31:45] <cradek> ok, I'm working near there too, but I'm not trying to fix "stat.pause is not set when stepping from the beginning"
[20:32:42] <SWPadnos> line 99 is just before a comment line
[20:32:52] <alex_joni> just after
[20:32:56] <SWPadnos> I tried the same thing around line 57, and got the same behavior
[20:32:59] <SWPadnos> right, just after :)
[20:33:09] <SWPadnos> select a comment, and it starts on the line before
[20:33:21] <SWPadnos> select a line after a comment, and it starts on the line before the comment
[20:33:31] <alex_joni> oh
[20:33:33] <SWPadnos> select a line that has a move before it, and it starts on the selected line
[20:35:08] <alex_joni> cradek: how come the pause button is pressed if s.paused is not set?
[20:37:53] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/src/emc/usr_intf/axis/scripts/axis.py: fix some more interactions between the various line numbers, and pause/resume
[20:38:08] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/src/emc/task/ (emctask.cc emctaskmain.cc): fix some more interactions between the various line numbers, and pause/resume
[20:38:14] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/src/emc/canterp/canterp.cc: fix some more interactions between the various line numbers, and pause/resume
[20:39:57] <cradek> oops, I will fix that
[20:43:01] <cradek> argh
[20:43:05] <cradek> there is also stat.task_paused
[20:43:25] <cradek> and stat.paused
[20:43:32] <cradek> and stat.interp_state = PAUSED
[20:44:03] <alex_joni> interp_state=PAUSED is different
[20:44:30] <alex_joni> that means interpreting is paused, and shouldn't have anything to do with the state of AXIS step/pause
[20:45:07] <alex_joni> for instance when a probing is encountered, interpreting is paused until the probe has finished
[20:45:47] <alex_joni> or an M66
[20:46:28] <alex_joni> stat.paused refers to motion.traj.paused
[20:47:21] <alex_joni> stat.task_paused is task.task_paused
[20:48:01] <cradek> ok, I got the pause icon to reflect stat.paused instead of stat.task_paused
[20:48:05] <cradek> want me to commit that?
[20:48:11] <alex_joni> does that make it better?
[20:48:31] <cradek> (it shows the problem with step from beginning, by not sinking the pause icon)
[20:48:46] <alex_joni> ah, ok.. that's an "improvement" :)
[20:48:48] <cradek> does not change any beahvior, only looks
[20:48:50] <cradek> right
[20:49:07] <alex_joni> go ahead then, we'll be forced to make it right now
[20:49:47] <CIA-1> EMC: 03cradek 07TRUNK * 10emc2/share/axis/tcl/axis.tcl: don't sink the pause icon if motion is not paused
[20:50:51] <alex_joni> hmm.. shouldn't a EMC_TASK_PLAN_STEP be sent when I push step in AXIS?
[20:52:38] <alex_joni> I see an EMC_TASK_PLAN_RUN as the first command
[20:52:43] <cradek> icon or t key?
[20:53:48] <alex_joni> icon
[20:54:10] <cradek> strange - why doesn't that show up in the debug output? it is stepping, right?
[20:54:36] <alex_joni> it's stepping.. right
[20:54:50] <alex_joni> I think the TASK_PLAN_RUN I see is put in the queue by task itself
[20:54:59] <alex_joni> but I don't see the command from AXIS ..
[20:55:21] <cradek> s->c->write(step);
[20:55:24] <alex_joni> line 773
[20:55:25] <cradek> EMC_TASK_PLAN_STEP step;
[20:55:32] <alex_joni> in emctaskmain.cc
[20:55:43] <alex_joni> * alex_joni looks towards debug flags
[20:55:59] <cradek> I turned them all on :-)
[20:56:09] <alex_joni> I use 0x7FFFFFFFFFF
[20:56:14] <alex_joni> or so.. (from the ini)
[20:56:16] <cradek> AXIS is sending EMC_TASK_PLAN_STEP
[20:56:32] <alex_joni> do you see it in the debug output?
[20:56:35] <cradek> no
[20:56:40] <alex_joni> I'm _really_ sure I used to see that
[20:57:56] <jepler> it must depend on how early task rejects it
[20:58:14] <jepler> for instance, I see EMC_TASK_PLAN_RUN printed in debug output if I am in machine on but not homed; I don't see it if i'm in estop
[20:58:23] <alex_joni> jepler: it's not rejected
[20:58:30] <cradek> it steps!
[20:58:42] <alex_joni> it gets accepted, and transformed in task_plan_run (with line 1 as a param)
[20:59:04] <alex_joni> and it's not only with AXIS this happens, tkemc looks the same
[20:59:05] <jepler> def task_step(*event):
[20:59:05] <jepler> if s.task_mode != emc.MODE_AUTO or s.interp_state != emc.INTERP_IDLE:
[20:59:05] <jepler> if run_warn(): return
[20:59:05] <jepler> ensure_mode(emc.MODE_AUTO)
[20:59:05] <jepler> c.auto(emc.AUTO_STEP)
[20:59:13] <jepler> that's what the run_warn() call is about
[20:59:25] <jepler> if it's not running yet, it starts by running
[20:59:37] <alex_joni> jepler: emctaskmain.cc:773
[20:59:43] <jepler> er, no
[20:59:45] <jepler> forget it
[20:59:50] <CIA-1> EMC: 03cmorley 07TRUNK * 10emc2/lib/python/pyvcp_widgets.py: Changes to Dial widget: add outside circle, major ticks, options to change color of dial,edge and dot. added outside circle to jogwheel widget as well
[21:00:02] <cradek> run_warn is the extents check
[21:00:14] <jepler> cradek: yeah, I just tried reading the source code a little more
[21:00:24] <cradek> ha
[21:00:28] <cradek> I know the feeling
[21:00:35] <alex_joni> it's probably not related to what we're actually debugging
[21:00:41] <alex_joni> but it's annoying that it does that
[21:01:35] <jepler> 1.29 (paul_c 12-Jun-05): /*! \todo FIXME-- can have GUI set this; send a run instead of a
[21:01:39] <jepler> 1.34 (yabosukz 08-Jul-05): step */
[21:01:41] <jepler> 1.28 (paul_c 23-May-05): retval = emcTaskIssueCommand(&taskPlanRunCmd);
[21:01:48] <jepler> man it's really those contributions from yabosukz that refined the program into what it is today
[21:02:24] <alex_joni> ha
[21:02:42] <cradek> paul and yabo (ahem) were both indent-runners, so they 'touched it last' on all the oldest crap
[21:04:32] <alex_joni> cradek: I think we need to use a combination of s.paused and s.task_paused
[21:04:54] <alex_joni> if you start running a program and then hit pause then task would have had enough time to interpret ahead
[21:04:59] <alex_joni> and send commands to motion
[21:05:09] <alex_joni> the pause actually reaches motion, which pauses TP
[21:05:24] <alex_joni> but if we start with step, then only one command gets to motion
[21:05:33] <alex_joni> which executes it, and doesn't enter the paused state
[21:06:21] <alex_joni> * alex_joni wonders if he's making sense
[21:15:42] <cradek> I don't know, I'm just waiting for you to commit something, or say what I should change :-)
[21:20:10] <alex_joni> well.. I managed to make it worse
[21:20:19] <alex_joni> so I don't think you want me to commit :)
[21:23:15] <CIA-1> EMC: 03cmorley 07TRUNK * 10emc2/lib/python/pyvcp_widgets.py: Chanmake pad size bigger for dial widget
[21:25:31] <alex_joni> now I managed to get it to do what I wanted, and it's way worse
[21:30:51] <cradek> alex_joni: oh nooo
[21:32:42] <alex_joni> getting there.. I hope :/
[21:33:49] <alex_joni> can't do that (EMC_TRAJ_SET_TELEOP_ENABLE) in auto mode with the interpreter idle
[21:39:48] <alex_joni> I wonder where AXIS picks that one from
[21:46:13] <jepler> this is kinda neat: http://www.sparkfun.com/commerce/product_info.php?products_id=8998
[21:47:01] <jepler> of course, it'll be as terrible as all those buttons always are..
[21:48:28] <cradek> http://www.sparkfun.com/commerce/product_info.php?products_id=8493
[21:48:49] <jepler> that seems neat too, but it's so very expensive
[21:48:55] <SWPadnos> wow. that's amazingly expensive for that kind of keypad
[21:49:09] <cradek> now you can implement the "label changes so you don't know what the button will do" gui blooper in hardware
[21:49:11] <SWPadnos> that's about right for the LCD one though
[21:57:29] <alex_joni> cradek: sorry.. can't figure it out :(
[21:57:51] <cradek> oh no
[21:57:57] <cradek> which thing?
[21:58:09] <alex_joni> the step first/resume thing
[21:59:08] <alex_joni> I got something that works along the lines, but it spews all kinds of weird errors
[21:59:23] <alex_joni> lest time I got: emc/task/emctask.cc 321: interp_error: File ended with no percent sign or program end
[21:59:32] <alex_joni> s/lest/last/
[21:59:48] <alex_joni> and that was the splash gcode.. so I'd say it's bogus :D
[22:00:04] <cradek> hm.
[22:01:26] <alex_joni> hang on, I'll paste a diff (only 3-4 lines)
[22:02:21] <alex_joni> http://www.pastebin.ca/1318933
[22:02:53] <alex_joni> oh, without that line commented (that worse..)
[22:03:42] <cradek> thanks, I'll try it later tonight
[22:03:45] <cradek> going home now...
[22:04:41] <alex_joni> try it reversed
[22:04:48] <alex_joni> I'll put a new patch up
[22:04:55] <alex_joni> that kinda works as it should
[22:05:02] <alex_joni> but gives the bogues end-of file error
[22:09:16] <alex_joni> ha.. think that nails it
[22:10:46] <CIA-1> EMC: 03alex_joni 07TRUNK * 10emc2/src/emc/motion/command.c: clear paused flag on abort
[22:16:28] <CIA-1> EMC: 03alex_joni 07TRUNK * 10emc2/src/emc/task/emctaskmain.cc: a brand new attempt to fix load/step/resume issue.. won't even bother to say for good :(
[22:23:41] <CIA-1> EMC: 03cmorley 07TRUNK * 10emc2/lib/python/pyvcp_widgets.py: figured out how to make an arrow for dial and jogwheel