#emc-devel | Logs for 2006-05-17

[06:15:21] <alex_joni> morning
[06:32:44] <cradek> hi alex
[06:33:54] <alex_joni> i sjeff still around?
[06:34:09] <alex_joni> I have one question about the recent rtapi_request_region
[06:34:49] <cradek> we just got back to the motel, he may go right to bed
[06:35:02] <cradek> he and I left "early" tonight
[06:35:11] <alex_joni> ok, then maybe tomorrow morning :)
[06:35:18] <alex_joni> yeah, I can see that 'early'
[06:35:55] <alex_joni> it seems strange that rtapi_request_region returns -1 for platforms that don't have request_region.. that will make it always fail... I think?
[06:36:48] <cradek> hmm, I'm sure he intended it to always succeed
[06:37:18] <alex_joni> that's what I thought too..
[06:37:20] <cradek> well not sure, but I think he said something about that being the intent
[06:37:51] <cradek> maybe it's just a mistake
[06:38:14] <alex_joni> well, otoh it's early here.. I might be reading the commit diffs wrong
[06:40:04] <cradek> tomorrow/later can you help us add a couple gcodes and an nml message? we're doing edm stuff (feed override from a hal pin) and need gcodes to enable/disable the adaptive feed
[06:40:17] <alex_joni> sure
[06:40:25] <jmkasunich> hi alex
[06:40:37] <cradek> I tried a little today but it didn't work out for me
[06:42:16] <alex_joni> can you be a bit more specific?
[06:42:26] <jepler> doesn't the comment say 0 (NULL) is failure and any other value is success? that's the behavior of the kernel 2.6 API.
[06:42:29] <alex_joni> so I can start working
[06:42:32] <jepler> Maybe returning 1 would be better than -1
[06:42:35] <jepler> I don't know
[06:43:20] <cradek> did we decide to use g50 and g51?
[06:43:26] <jmkasunich> I think so
[06:43:37] <jmkasunich> G50 = enable adaptive feedrate control
[06:43:40] <cradek> the message should be something like ENABLE ADAPTIVE_FEED / DISABLE_ACTIVE_FEED
[06:43:44] <jmkasunich> G51 = disable adaptive feedrate control
[06:44:19] <jmkasunich> the motion controller part is under construction now
[06:44:33] <cradek> the canon call should be named something similar
[06:44:41] <jmkasunich> the interface in motion.h is already defined, and I can write the function(s) in taskintf.cc
[06:45:16] <cradek> er calls
[06:45:47] <jmkasunich> good question, should it be functions (one to enable, one to disable)?
[06:46:03] <jmkasunich> or one functions to set either on or off
[06:46:26] <cradek> MIST_ON(), MIST_OFF() seem to be how canon usually works
[06:46:34] <jmkasunich> ok, consistency is good
[06:50:47] <alex_joni> ok, so basicly G50 & G51
[06:50:53] <alex_joni> G50 = on, G51 = off
[06:50:54] <jmkasunich> yeah
[06:51:00] <alex_joni> any other params?
[06:51:05] <jmkasunich> nope
[06:51:19] <alex_joni> any limitations? as in what other g-codes are allowed on the same line?
[06:51:35] <cradek> wow questions I wouldn't even think to ask
[06:51:55] <alex_joni> * alex_joni is thinking about the group to stick them in
[06:51:59] <jmkasunich> don't think so... on or off remains in effect until changed
[06:52:06] <SWPadnos> group shmoup
[06:52:09] <jmkasunich> similar to mist on/off, flood on/off, etc
[06:52:12] <alex_joni> ok, I'll look & see ;)
[06:52:21] <cradek> haha
[06:52:22] <alex_joni> those aren't really g-codes afaik :D
[06:52:27] <cradek> surprise us
[06:52:36] <jmkasunich> are they M codes?
[06:52:48] <SWPadnos> yes
[06:52:52] <jmkasunich> hmmm
[06:52:53] <alex_joni> right
[06:52:55] <cradek> hmm
[06:52:58] <alex_joni> if ever used :)
[06:53:05] <alex_joni> but that shouldn't matter
[06:53:21] <alex_joni> this sounds more like Gxx than Mxx (the adaptive stuff)
[06:53:22] <cradek> but are m codes more appropriate?
[06:53:24] <SWPadnos> mist and flood have no effect on motion, so they're a bit different
[06:53:29] <cradek> that's true
[06:53:37] <alex_joni> I think Mxx is appropiate for I/O
[06:53:39] <cradek> maybe that's the difference
[06:53:42] <alex_joni> and Gxx for motion
[06:53:49] <alex_joni> or any other related stuff
[06:53:58] <SWPadnos> this is essentially g33, with a different pin used for the sync input
[06:54:43] <alex_joni> SWPadnos: don't go there .. or chris will want the G33 to work as on/off ;)
[06:54:55] <SWPadnos> that's what I want, so :P
[06:55:21] <SWPadnos> wait - maybe that isn't what I want
[06:55:36] <alex_joni> SWPadnos: face it.. you don't know what you want
[06:55:41] <SWPadnos> I agree
[06:55:43] <SWPadnos> I think
[06:57:21] <cradek> this is strange, here are all the people I know well; at the workshop are some similar people but they're sort of strangers still
[06:57:44] <jmkasunich> heh
[06:57:49] <cradek> it's probably just one of those strange 2am feelings
[06:58:00] <SWPadnos> 2am - argh!
[06:58:05] <alex_joni> lol
[06:58:09] <jmkasunich> some are stranger than others
[06:58:14] <alex_joni> cradek: does it consolate you if I feel the same?
[06:58:16] <SWPadnos> I resemble that remark
[06:58:27] <alex_joni> although I don't know the fest people at all :))
[06:58:28] <cradek> alex_joni: a little
[06:58:39] <cradek> alex_joni: they seem familiar somehow
[07:01:22] <SWPadnos> familiar: a msall animal, used to hold your magic powers
[07:01:25] <SWPadnos> ;)
[07:01:36] <SWPadnos> small, too
[07:01:53] <SWPadnos> i cnat ytpe at 2am
[07:02:10] <alex_joni> we cna rdea tohugh
[07:02:21] <SWPadnos> tahts' ogod
[07:03:22] <SWPadnos> crap - I have a customer who's going to call at ~10 this morning. I guess it's time to get to sleep
[07:03:31] <alex_joni> sounds like it..
[07:03:36] <SWPadnos> nighty night folks.
[07:03:48] <alex_joni> night swampy
[14:48:41] <alex_joni> jmkasunich: I just did most of the upper parts
[14:48:51] <alex_joni> still needed:
[14:49:00] <alex_joni> 1. task to recognize the new NML message
[14:49:45] <alex_joni> 2. usrmotintf.cc to provide some functions for starting/stopping the adaptive control
[14:49:50] <alex_joni> 3. task calling those
[18:31:47] <alex_joni> jmkasunich: bring specific questions in here
[18:32:54] <jmkasunich> will do that
[18:33:08] <alex_joni> got the big picture?
[18:33:09] <jmkasunich> I see START_ADAPTIVE_FEED() in emccannon.cc
[18:33:10] <jmkasunich> no
[18:33:14] <jmkasunich> thats the problem
[18:33:35] <alex_joni> ok, that sends a NML message
[18:33:39] <jmkasunich> I know I need to write something in taskintf.cc, but I have no idea how it gets from START_ADAPTIVE_FEED() to the funct I will write
[18:33:55] <alex_joni> START_ADAPTIVE_FEED() sends a NML message to task
[18:34:10] <alex_joni> task traps it in one of those big switches
[18:34:21] <alex_joni> and calls the usrmotintf.cc function
[18:35:06] <alex_joni> lets do it like this:
[18:35:07] <jmkasunich> taskintf?
[18:35:19] <alex_joni> you implement the taskintf function
[18:35:32] <alex_joni> and let me worry about task in a couple of hours (1-2)
[18:35:37] <alex_joni> sounds ok?
[18:35:45] <jmkasunich> the big switches are in emctaskmain.cc, right?
[18:36:25] <alex_joni> right
[18:36:37] <alex_joni> try following EMC_MOTION_SET_DOUT
[18:36:52] <jmkasunich> the new one will be similar to EMC_TRAJ_SET_SCALE I think
[18:37:04] <jmkasunich> named EMC_TRAJ_something anyway
[18:39:16] <jmkasunich> the userintf.cc function(s) can be done one of two ways
[18:39:22] <jmkasunich> 1) one for one, one for off
[18:39:31] <jmkasunich> 2) one funct, passed a param for on or off
[18:39:59] <jmkasunich> I kinda want do do "int emcTrajSetAdaptiveFeed(int enable)"
[18:40:04] <jmkasunich> will that work for you?
[18:44:35] <alex_joni> sure
[18:44:37] <alex_joni> that's ok
[18:44:47] <alex_joni> I did only one NML message to keep the count down
[18:44:59] <alex_joni> int status (status=0 disable, =1 enable)
[18:52:03] <alex_joni> but taskintf.cc is more appropiate
[18:54:59] <jmkasunich> sorry, stepped away for a big
[18:55:01] <jmkasunich> bit even
[18:55:13] <alex_joni> more like a byte :)
[18:55:19] <alex_joni> but me too..
[19:20:19] <jmkasunich> taskintf.cc part is done....
[19:24:59] <alex_joni> ok, cool
[19:25:05] <alex_joni> waiting for the mails
[19:37:51] <alex_joni> ok, looks about right ;)
[19:38:03] <alex_joni> I'll do the rest in a short while.. ok?
[19:39:36] <jmkasunich> ok
[19:55:31] <cradek> alex_joni: I'm not sure what part I'm missing, but I think I have it mostly right
[19:55:38] <cradek> unfortunately you can't load any gcode without an error
[19:55:46] <cradek> do you want me to check it in so you can figure out what I did wrong?
[19:55:54] <alex_joni> yup, that sounds ok
[19:56:01] <cradek> ok just a sec
[19:56:04] <alex_joni> it's not TESTING.. so ho ahead
[19:56:21] <alex_joni> what's the actual error?
[19:58:04] <cradek> if I mdi g50 it says 'two g codes used from same modal group'
[19:58:40] <alex_joni> oh, ok
[20:00:21] <cradek> I think I also get various other errors loading programs
[20:31:13] <alex_joni> that's an odd snip of code generating that error message
[20:38:55] <alex_joni> oh, finally got to understand it ;)
[21:14:48] <cradek> alex_joni: are you getting anywhere?
[21:32:21] <alex_joni> cradek: just starting, but I have a hunch
[21:32:26] <alex_joni> give me a couple of minutes
[21:37:20] <alex_joni> ok, I think I spotted it
[21:43:34] <jepler> yay
[21:44:07] <alex_joni> I even tested ;)
[21:45:34] <alex_joni> ok, task is next
[21:52:23] <alex_joni> jepler: could you ask cradek if this fixes it?
[21:53:03] <skunkworks> what is g50/51? scaling and mirroring?
[21:53:12] <alex_joni> skunkworks: no, it's for EDM
[21:53:15] <skunkworks> ok
[21:53:31] <alex_joni> starts/stops automatic adaptive feed based on a feedback (arc voltage or whatever)
[21:53:38] <skunkworks> nice
[21:55:02] <skunkworks> some input controls feed
[21:57:16] <alex_joni> right, but only slowing down
[22:06:06] <jepler> alex_joni: we're looking
[22:06:34] <alex_joni> I still am seeing weird behaviour
[22:06:43] <alex_joni> somehow the wrong NML message seems to get sent
[22:07:14] <jepler> hm I wonder if the numbers got assigned wrong or something
[22:07:41] <jepler> programs that don't use g50/g51 run, though?
[22:07:47] <alex_joni> sure
[22:07:52] <alex_joni> and g51/g50 can be issued
[22:08:06] <alex_joni> hang on 5 more minutes
[22:08:08] <alex_joni> I'm close
[22:08:23] <jepler> we've got 5 minutes
[22:10:27] <alex_joni> can you ask jmk or cradek how I know if the stuff reached motion?
[22:10:33] <alex_joni> only the debug print to syslog?
[22:11:43] <jepler> yes, the debug prints are the way
[22:11:45] <jepler> it might be there already
[22:12:00] <alex_joni> yeah, they are
[22:12:04] <alex_joni> and they show up :) yay
[22:12:14] <alex_joni> G50 -> off ?, G51 -> On?
[22:13:05] <alex_joni> motion has it backwards :D I'll change
[22:13:14] <jepler> ok cradek says that was backwards too
[22:14:18] <jepler> over here we've hard-coded the override on, and cradek and jmk are changing the lathe speed with a joystick
[22:15:13] <alex_joni> oh..cool ;)
[22:15:27] <alex_joni> I'll soon be done, I want to add it to the current active gcodes
[22:15:31] <alex_joni> or whatever it's called
[22:17:26] <jepler> speaking of which, in axis I need to know how many items are in the active gcode array. how can I tell that?
[22:17:34] <jepler> hm, can I use sizeof()?
[22:18:14] <jepler> oh forget it, they're constants already
[22:18:45] <alex_joni> if you say so :P
[22:18:58] <jepler> int gcodes[ACTIVE_G_CODES];
[22:19:00] <jepler> ^^^ in axis code
[22:19:13] <jepler> #define ACTIVE_M_CODES RS274NGC_ACTIVE_M_CODES
[22:19:27] <jepler> make sure you bump RS274NGC_ACTIVE_G_CODES
[22:19:44] <alex_joni> will do
[22:19:51] <alex_joni> make abi bunp
[22:19:53] <alex_joni> bump even
[22:20:47] <jepler> do we have an ABI?
[22:20:50] <alex_joni> ok, now it's the proper way around (hint: don't mix 'int' with 'unsigned char')
[22:20:57] <alex_joni> jepler: hopefully not
[22:21:12] <jepler> I think the ABI is "if it's broken, you should recompile"
[22:24:30] <jepler> now they've discovered some breakage in pause and abort for g33 apparently caused by the feed override changes
[22:24:44] <alex_joni> o_o
[22:39:10] <alex_joni> jepler: can you try the latest fix on AXIS? (active g-codes)
[22:39:26] <alex_joni> I only have an installed axis, along with emc2 (2.0.0)
[22:40:10] <jepler> yes I will change it
[22:40:20] <jepler> but we've got a bigger problem: all blending seems to have been disabled
[22:40:58] <alex_joni> oops.. was that by the adaptive stuff ?
[22:43:29] <jepler> I'm not sure yet
[22:43:34] <jepler> I'm trying to isolate the change
[22:51:10] <alex_joni> I'm looking at http://cvs.linuxcnc.org/cvs/emc2/src/emc/kinematics/tp.c.diff?r1=1.48;r2=1.49 , wonder where the setVscale is now..
[22:58:51] <alex_joni> oh, nm.. I get it now (it's handled in the motion controller, already scaled, not in the TP anymore)
[23:07:52] <alex_joni> so.. what else are you working on now?
[23:21:11] <jepler> I think the bug was introduced between 8:15 and 8:30 UTC
[23:21:15] <jepler> you can find those commits on the list
[23:21:21] <jepler> alex_joni: smithy is taking us all to dinner now
[23:21:35] <jepler> after that I intend to get enough sleep for one night, but I think the rest will come back
[23:21:38] <jepler> but it's likely to be 2 hours
[23:21:42] <jepler> so "see ya tomorrow"
[23:21:44] <jepler> ?
[23:21:52] <jepler> ray is talking about having a board meeting but I don't know the details
[23:22:08] <alex_joni> ok, I guess I won't stay up another 2 hours ;)
[23:22:15] <jepler> OK
[23:22:15] <alex_joni> maybe something like 10-15 minutes
[23:22:22] <alex_joni> ;-)
[23:22:25] <alex_joni> catch you tomorrow
[23:22:32] <jepler> ok someone on the board will let you know about the meeting
[23:23:26] <alex_joni> ok, I'll be online tomorrow throughout the day, except between 2PM and 6PM GMT I think
[23:32:31] <alex_joni> ok, I'm off to sleep
[23:32:47] <alex_joni> catch you guys later (in a couple of hours)