#linuxcnc-devel | Logs for 2014-11-15

Back
[00:17:21] <seb_kuzminsky> jepler: yeah, that'd be great, thanks
[00:17:57] <seb_kuzminsky> i'm still scratching my head about this dropped mdi bug hiding somewhere
[00:50:28] <KGB-linuxcnc> 03Chris Morley 05pnc-spindle-work fc6f18d 06linuxcnc 10src/emc/usr_intf/pncconf/build_INI.py pncconf -fix calculation of STEPGEN_MAXVEL * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=fc6f18d
[00:50:28] <KGB-linuxcnc> 03Chris Morley 05pnc-spindle-work 82479c4 06linuxcnc 10src/emc/usr_intf/pncconf/dialogs.glade 10src/emc/usr_intf/pncconf/pages.py 10src/emc/usr_intf/pncconf/pncconf.py 10src/emc/usr_intf/pncconf/s_motor.glade pncconf -improve spindle data collection * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=82479c4
[00:50:28] <KGB-linuxcnc> 03Chris Morley 05pnc-spindle-work 5adfe98 06linuxcnc 10src/emc/usr_intf/pncconf/build_HAL.py pncconf -rearrange spindle fb signal conditioning * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=5adfe98
[00:50:31] <KGB-linuxcnc> 03Chris Morley 05pnc-spindle-work 2cfab51 06linuxcnc 10(7 files) pncconf -change how spindle output data is collected * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=2cfab51
[10:20:19] <KGB-linuxcnc> 03Dewey Garrett 052.7 56ba56a 06linuxcnc 10configs/sim/axis/xhc-hb04/xhc-hb04.tcl 10src/hal/components/xhc_hb04_util.comp xhc-hb04.tcl: support fractional scale factors * 14http://git.linuxcnc.org/?p=linuxcnc.git;a=commitdiff;h=56ba56a
[10:31:38] <seb_kuzminsky> wow, wheezy doesn't do multiple displays right
[10:31:42] <seb_kuzminsky> i has a sad
[10:35:31] <cradek> wfm on dozens of machines
[10:36:38] <cradek> low dozens, but still
[10:51:49] <seb_kuzminsky> when i have my secondary display arranged above my primary, i can't drag windows from the primary to the secondary
[10:51:59] <seb_kuzminsky> if i arrange them side-by-side i can
[10:52:21] <seb_kuzminsky> it looks like this bug: https://bugzilla.gnome.org/show_bug.cgi?id=663690
[11:00:27] <seb_kuzminsky> hahaaa! i caught a trace that i'm pretty sure shows task dropping an mdi command
[11:03:48] <seb_kuzminsky> http://paste.scsys.co.uk/441793?ln=on&submit=Format+it%21
[11:04:03] <seb_kuzminsky> the excitement starts on line 113
[11:05:44] <seb_kuzminsky> "running MDI command 0" is from the tests/halui/mdi python ui, it's announcing that it's poking halui's mdi-command-00 pin
[11:06:19] <seb_kuzminsky> l115 is task announcing that it got a SET_MODE command, that's halui switching task to MDI mode
[11:06:28] <seb_kuzminsky> that finishes on line 118
[11:06:53] <seb_kuzminsky> 120 is task getting the mdi command (at t=66.083)
[11:07:30] <seb_kuzminsky> then boom, line 125 is halui letting us know that task reported emcStatus->status == RCS_DONE (at t=66.116)
[11:08:42] <seb_kuzminsky> then halui correctly switches mode back to whatever it was before (oh, Manual, from line 104)
[11:09:04] <seb_kuzminsky> this terminates task's mdi (as cradek and jepler taught me yesterday), and the test fails
[11:09:48] <seb_kuzminsky> so the real problem is: why did Task report that it was Done on line 125?
[11:10:20] <seb_kuzminsky> i think it's the second EMC_TASK_PLAN_SYNC that got enqueued on the interp list on lines 107-108
[11:10:34] <seb_kuzminsky> it usually only enqueues one SYNCH on SET_MODE
[11:10:55] <seb_kuzminsky> see for example lines 44, 55, and 80
[11:31:16] * jepler tries to digest it
[11:34:15] <jepler> 90 Issuing EMC_TASK_PLAN_EXECUTE -- (+509,+280,+249610,g0\032z3,)
[11:34:22] <jepler> 122 NML_INTERP_LIST::append(nml_msg_ptr{size=280,type=EMC_TASK_PLAN_EXECUTE}) : list_size=1, line_number=0
[11:36:48] <seb_kuzminsky> the one on 90 goes with 92
[11:37:27] <seb_kuzminsky> we know that one worked because motion actually moved to Z3, on line 101
[11:38:16] <jepler> what causes EMC_TASK_PLAN_EXECUTE (or anything for that matter) to be queued (NML_INTERP_LIST::append) instead of issued?
[11:38:53] <seb_kuzminsky> i think if the interp list is empty it gets issued right away, if the interp list has stuff on it then the incoming cmd gets queued after them all
[11:39:17] <seb_kuzminsky> so in the line-90 part, interp list is empty so the incoming cmd just gets executed
[11:39:42] <seb_kuzminsky> in the line-115 part there's a synch on the interp list so the execute command gets queued
[11:40:02] <seb_kuzminsky> then on line 123 the synch from the queue gets issued
[11:40:44] <seb_kuzminsky> line 125 the synch finishes, Task says Done even though there's still work to do (the exec we asked for), and halui resets the mode (as it should), aborting the exec on the interp list
[11:42:19] <jepler> /*! \todo FIXME-- duplicate code for abort,
[11:42:20] <jepler> also near end of main, when aborting on subordinate errors,
[11:42:23] <jepler> and in emcTaskExecute() */
[11:42:25] <jepler> // abort motion
[11:42:28] <jepler> emcTaskAbort();
[11:42:30] <jepler> mdi_execute_abort();
[11:43:33] <seb_kuzminsky> that part's right, i think, according to the rule you and cradek said the other day, that a mode-change should abort a running mdi command
[11:45:57] <jepler> case EMC_TASK_SET_MODE_TYPE:
[11:45:58] <jepler> ...
[11:46:01] <jepler> emcTaskAbort();
[11:46:01] <jepler> ...
[11:46:04] <jepler> emcTaskQueueCommand(&taskPlanSynchCmd);
[11:46:13] <jepler> int emcTaskAbort()
[11:46:13] <jepler> {
[11:46:14] <jepler> ...
[11:46:20] <jepler> emcTaskQueueCommand(&taskPlanSynchCmd);
[11:47:51] <seb_kuzminsky> i'm surprised task's main() gets emcStatus->status wrong in this situation
[11:50:05] <jepler> shouldn't the list size increase?
[11:50:07] <jepler> 107 NML_INTERP_LIST::append(nml_msg_ptr{size=24,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
[11:50:10] <jepler> 108 NML_INTERP_LIST::append(nml_msg_ptr{size=24,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
[11:53:14] <seb_kuzminsky> i think task takes one command off the list at... certain times... and puts it elsewhere.
[11:53:32] <seb_kuzminsky> emcTaskCommand maybe?
[11:53:34] <seb_kuzminsky> augh!
[11:53:38] <seb_kuzminsky> time to go sledding!!
[11:53:41] <seb_kuzminsky> bye for now!
[11:53:42] <jepler> have fun
[15:05:49] <memleak> jepler: what is the difference between gnu11 and c11? gnu has their own C standard?
[19:51:24] <jepler> memleak: yes, differences are given in the gcc info manual under "c extensions". asm and attribute are two examples used in linuxcnc.
[21:58:17] <Roguish> hey all. I'm trying to get gmoccapy to run and get the following error. any clues would be helpful, i'm at a loss..
[21:58:28] <Roguish> emc/task/emctask.cc 389: interp_error: Cannot restore context from invalid stack frame - missing M70/M73?
[23:13:03] <seb_kuzm1nsky> the interp list that was appended to is not interp_list, it's mdi_execute_list
[23:14:08] <seb_kuzm1nsky> because of a bug confusing the four(!) ways commands are queued between the UI and Motion (NML Command channel between UI & Task, interp_list, mdi_execute_list, and emcTaskCommand)
[23:19:06] <seb_kuzm1nsky> TIL the Task mdi queueing code uses recursion
[23:21:01] <seb_kuzm1nsky> http://i.imgur.com/3AmMRPk.jpg