# This is a component of LinuxCNC # Copyright 2011, 2012, 2013 Michael Haberler , # Sebastian Kuzminsky # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # import interpreter EMC_DEBUG_CONFIG = 0x00000002 EMC_DEBUG_VERSIONS = 0x00000008 EMC_DEBUG_TASK_ISSUE = 0x00000010 EMC_DEBUG_NML = 0x00000040 EMC_DEBUG_MOTION_TIME = 0x00000080 EMC_DEBUG_INTERP = 0x00000100 EMC_DEBUG_RCS = 0x00000200 EMC_DEBUG_INTERP_LIST = 0x00000800 EMC_DEBUG_IOCONTROL = 0x00001000 EMC_DEBUG_OWORD = 0x00002000 EMC_DEBUG_REMAP = 0x00004000 EMC_DEBUG_PYTHON = 0x00008000 EMC_DEBUG_NAMEDPARAM = 0x00010000 EMC_DEBUG_GDBONSIGNAL = 0x00020000 def introspect(self,*args): print("debug: ", self.debugmask,"logging:",self.loggingLevel) print("call_level=",self.call_level) print("argc=", len(args)) print("args=(", end=' ') for arg in args: if type(arg) == float: print("%0.5f" % arg, end=' ') else: print(arg, end=' ') print(")") # the low-level access within the block for n in range(len(args)): print("param #",n ,"=", self.blocks[0].params[n]) # this is a low-level interface. for x in self.sub_context[1].named_params: print("name:",x.key(),"value=",x.data().value, "attr=",x.data().attr) #for r in self.remaps: # print r.key(), str(r.data()) print("current oword subname=", self.blocks[0].o_name) print("m_modes[0]=", self.blocks[0].m_modes[0]) print("g_modes[0]=", self.blocks[0].g_modes[0]) # this is the high level named & numbered parameter interface print("current tool=",self.params[5400],self.params["_current_tool"]) print("feed=",self.params['_feed']) print("speed=",self.params['_rpm']) print("global parameter set in test.ngc:",self.params['_a_global_set_in_test_dot_ngc']) print("parameter set via test.ini:",self.params['_ini[example]variable']) assert self.params['_ini[example]variable'] == args[3] self.params["a_new_local"] = 321.0 self.params["_a_new_global"] = 456.0 print("locals: ",self.params.locals()) print("globals: ",self.params.globals()) print("params(): ",self.params()) return 2.71828