John, There are two main functions which a user interface must perform.
1> Issue NML commands. The best reference for these is in the Developers Handbook: http://www.linuxcnc.org/docs/devel/EMC2_Developer_Manual.pdf See chapter II on NML messages. You can also see examples of how these commands are issued in (among other places) emc/usr_intf/shcom.cc. 2> Display operational information Most operational information can be accessed through the global variable (from emc.hh) "emcStatus". It contains a number of classes including "task", "io", and "motion" which in turn have additional classes, methods, etc. to access various information including estop state, machine state, position information, etc. You can look at emc/usr_intf/emcsh.cc or emc/usr_intf/emcrsh.cc to see how emcStatus is used. You can also look at emc/nml_intf/emc.cc/hh and emc/nml_intf/emc_nml.hh for the available classes and methods. The function of the module "emcsh" is to provide an interface to EMC for tk/tcl for use with the "tkemc" user interface found in the tcl folder at the same level as src. I believe emc/usr_intf/axis/extensions/emcmodule.cc does basically the same thing for Python and the Axis user interface. If you are writing your user interface in a language other than C/C++ you will probably need some code of this sort to interface with the intended environment. One alternative, provided it has all of the functionality you require is to use emcrsh. This uses a socket connetion to interface with EMC, so is both language independent and has the ability to run the user interface either locally or remotely without running an X shell or other similar technique on the remote machine. To test it, just edit the configuration file core_sim.hal and add the line: loadusr emcrsh Then run the TkEMC configuration under "sim". You should now be able to connect to EMC as follows from a terminal session: telnet localhost 5007 When it connects, simply type "help" to get a list of available commands. For implementing a user interface, you just need to have your program issue and parse these commands the same way they are issued over the telnet session. Complete doc on emcrsh can be found here: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Emcrsh Regards, Eric Is there any documentation available on user interface development for EMC2? I have looked through the various manuals and the code for axis, Tkemc, mini and keystick all of which give me some idea as to the system calls to EMC2 for the various interfaces. Is there a complete list of the calls used to control EMC2 from the user interface available? I am looking to develop a user interface for use with a touch screen with no or very limited keyboard use and no mouse if possible. ------------------------------------------------------------------------------ Register Now & Save for Velocity, the Web Performance & Operations Conference from O'Reilly Media. Velocity features a full day of expert-led, hands-on workshops and two days of sessions from industry leaders in dedicated Performance & Operations tracks. Use code vel09scf and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users