#emc-devel | Logs for 2008-09-21

[01:29:17] <CIA-40> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/configplc: remove unused sections
[02:10:45] <CIA-40> EMC: 03cmorley 07TRUNK * 10emc2/src/hal/classicladder/module_hal.c: oops milliseconds not microseconds
[02:50:03] <jepler> (and actually there's 17% of chip real estate left for pluto_step .. I guess I could fit a pwm output for spindle control)
[12:42:01] <BigJohnT> in a stepconf generated hal file what do the following two lines do exactly?
[12:42:03] <BigJohnT> net estop-out <= iocontrol.0.user-enable-out
[12:42:05] <BigJohnT> net estop-out => iocontrol.0.emc-enable-in
[12:43:37] <BigJohnT> If you have external e-stop switches should you break this loop?
[12:45:50] <alex_joni> a bit more complicated than that :)
[12:46:00] <alex_joni> external e-stop circuit should break the amp power
[12:46:11] <alex_joni> and notify emc2 that it did so (using emc-enable-in)
[12:46:18] <BigJohnT> yes
[12:46:30] <alex_joni> once emc2 things everything is ok, it needs to power a relay that is in the external e-stop circuit
[12:46:36] <alex_joni> to let outside know emc2 is ok
[12:46:41] <alex_joni> that's user-enable-out
[12:47:07] <BigJohnT> ok
[12:47:13] <alex_joni> so the whole idea is to have emc2 ride along with the e-stop circuit, not be included in it directly
[12:47:24] <alex_joni> that won't work.. cause it's software :)
[12:47:36] <alex_joni> and iocontrol is not RT, cause it's not meant to be
[12:48:37] <alex_joni> there is a wiki page on ladder that explains this a bit
[12:48:46] <alex_joni> and there's a good comment ontop of iocontrol.cc
[12:48:50] <alex_joni> gotta run ;)
[12:48:55] <BigJohnT> ok thanks
[17:24:06] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/docs/src/config/ini_config_fr.lyx: french translation update
[17:24:10] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/docs/src/hal/ (comp_fr.lyx general_ref_fr.lyx): french translation update
[17:24:11] <CIA-40> EMC: 03tissf 07TRUNK * 10emc2/src/po/ (fr.po fr_axis.po fr_rs274_err.po): french translation update
[19:42:24] <jmkasunich> jepler or cradek : how would I figure out what axis does with an M66 during the preview?
[19:42:42] <jmkasunich> M66E0 to be precise - analog input
[19:42:53] <jmkasunich> it seems to stick 1.000 into #5399
[19:43:03] <jmkasunich> I was expecting either 0.0 or maybe nothing at all
[19:43:25] <jmkasunich> wrapping it with (AXIS, hide) and (AXIS, show) doesn't stop it from writing to #5399
[20:19:28] <cradek> double GET_EXTERNAL_ANALOG_INPUT(int index) { return 1.0; }
[20:19:40] <cradek> (gcodemodule.cc)
[20:21:17] <cradek> looks like you cannot make the interpreter not do that
[20:25:49] <cradek> but you could change it to zero of course
[20:57:16] <CIA-40> EMC: 03cmorley 07v2_2_branch * 10emc2/src/hal/classicladder/config_gtk.c: fix crash when closing config window do to calling removed functions
[21:11:07] <CIA-40> EMC: 03cmorley 07v2_2_branch * 10emc2/src/hal/classicladder/module_hal.c: unregister HAL component # and announce classicladder realtime closed
[21:22:57] <CIA-40> EMC: 03bigjohnt 07v2_2_branch * 10emc2/docs/src/ladder/classic_ladder.lyx: -w info and minor things
[21:24:35] <CIA-40> EMC: 03bigjohnt 07TRUNK * 10emc2/docs/src/ladder/classic_ladder.lyx: -w and minor things
[23:47:47] <jmkasunich> cradek: is there any reason why I shouldn't change the prototype of GET_EXTERNAL_ANALOG_INPUT to include an additional argument that is the default return value?
[23:48:20] <jmkasunich> then it would be called (in rs274ngc_pre.cc) as _setup.parameters[5399] = GET_EXTERNAL_ANALOG_INPUT(_setup.input_index, _setup.parameters[5399]);
[23:48:53] <jmkasunich> emccannon.c would ignore the added argument
[23:49:08] <jmkasunich> saicanon.cc and gcodemodule.cc would return it's value
[23:49:09] <cradek> interesting approach
[23:50:01] <jmkasunich> its ;-)
[23:50:19] <jmkasunich> well, if you don't like it say so
[23:50:49] <cradek> it's slightly perverse but also harmless
[23:51:12] <cradek> I can't think of any gotcha
[23:51:24] <jmkasunich> would it be less perverse for the sai and gcode modules to explicitly return the value of #5399?
[23:51:40] <cradek> they don't know it do they?
[23:51:44] <jmkasunich> that may not be possible, since the _setup struct may not be visible to them
[23:51:56] <jmkasunich> but I'm not asking about "possible", I'm asking about "perverse"
[23:52:51] <jmkasunich> does it make more sense for the caller to say "I understand that you might not actually be able to do this, so here is a default value you can use", or should the called function be given the burden of making up some answer when it can;t provide a real one
[23:53:26] <cradek> I guess I don't know the answer to that
[23:53:46] <cradek> probably either is fine
[23:54:01] <cradek> we do scheme 2 currently (and we return "1")
[23:54:13] <jmkasunich> another possibility would be to change the prototype so it is called like thisL
[23:54:18] <cradek> can you change it to 0 and ask for the deviation from nominal?
[23:54:37] <cradek> returning 0 is less crazy than 1
[23:54:55] <jmkasunich> GET_EXTERNAL_ANALOG_INPUT(_setup.input_index, &(_setup.parameters[5399]);
[23:55:52] <cradek> hmmm that's a possibility
[23:56:04] <cradek> do any of the others pass pointers?
[23:56:14] <jmkasunich> dunno, lemme look
[23:56:25] <cradek> might be trouble for an eventual remote canon
[23:56:42] <cradek> but we could always change it.
[23:57:20] <jmkasunich> I'm not seeing any pointers
[23:57:32] <jmkasunich> there's one
[23:57:40] <jmkasunich> extern void COMMENT(char *s);
[23:57:54] <jmkasunich> also MESSAGE, LOG, LOGOPEN, LOGCLOSE
[23:58:12] <cradek> go for it then?
[23:59:43] <jmkasunich> * jmkasunich hesitates
[23:59:49] <jmkasunich> passing strings is one thing
[23:59:56] <jmkasunich> return by pointer is another