Sebastian thanks a lot .... Niklas sorry not understand very well .... with Lcnc I have just run some scara, delta and antrophomorphic 6ax robot ... my first step is ok. Now I plan to make a good non Gui rt-ethernet or some field bus rt interface + a multiple machine control Gui interface ... qt5 gui design, C++11 rt-interface for fielfd bus. So 1 gui interface control & multiple non-screen Lcnc machine.
I see QUIC experiments of Sebastian (some youtube video) .... fantastic ... btk 2017-06-08 23:37 GMT+02:00 theman whosoldtheworld <[email protected]>: > Yes, these is a big help ... thanks > > bkt > > 2017-06-08 20:08 GMT+02:00 Sebastian Kuzminsky <[email protected]>: > >> On 06/08/2017 06:44 AM, theman whosoldtheworld wrote: >> >>> So these is the basic struct for realize a non gui interface ... I think >>> the emcmodule.cc file is the basic basic approach. Is my thinking >>> correct? >>> (these code become from emcmodule.cc) >>> >>> struct CIniFile { >>> IniFile *i; >>> }; >>> >>> struct CStatChannel { >>> RCS_STAT_CHANNEL *c; >>> EMC_STAT status; >>> }; >>> >>> struct CCommandChannel { >>> RCS_CMD_CHANNEL *c; >>> RCS_STAT_CHANNEL *s; >>> int serial; /********************************** where find the >>> serial number table? ... there is one? ***********************/ >>> }; >>> >> >> Yes, emcmodule.cc, and the python module named "linuxcnc" that it >> compiles into are good for writing custom GUIs. >> >> Each message that goes through the NML channels is identified by a unique >> serial number. The serial numbers are managed by the NML infrastructure, >> the GUI developer doesn't need to worry about it. When the GUI sends an >> NML message, the NML infrastructure tells the GUI the serial number of the >> NML message, in case the GUI wants to refer to it later. The most common >> thing a GUI does with the serial number is to wait to hear that the message >> was received by LinuxCNC and/or processed by LinuxCNC. >> >> >> Now, if you *did* want to worry about how the serial number is handled, >> here's the code path: >> >> See how emcmodule.cc:emcSendCommand() takes an NML message (in the form >> of an RCS_CMD_MSG) and passes it to the command channel's >> RCS_CMD_CHANNEL::write() function (line 232): >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/emc/usr >> _intf/axis/extensions/emcmodule.cc#L231 >> >> >> The RCS_CMD_CHANNEL::write() function calls the underlying NML::write(), >> passing in a *pointer* to the message's serial number: >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/libnml/ >> nml/cmd_msg.cc#L81 >> >> >> The NML::write() function calls the CMS::write() function: >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/libnml/ >> nml/nml.cc#L1584 >> >> >> CMS::write() calls a buffer-type-specific main_access() function, in this >> case the shmem one: >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/libnml/ >> buffer/shmem.cc#L454 >> >> >> shmem's main_access() calls, on line 564, the CMS internal_access() >> function: >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/libnml/ >> cms/cms_in.cc#L81 >> >> >> The CMS internal_access() function calls (line 188) the CMS write_raw() >> function: >> >> https://github.com/LinuxCNC/linuxcnc/blob/master/src/libnml/ >> cms/cms_in.cc#L1315 >> >> The CMS write_raw() increments the CMS channel's internal serial number >> counter (line 1355), and *finally* copies it to the serial_number pointer >> that was passed in (line 1368). >> >> The message is sent, the functions return back up the call chain, and the >> command that was passed in to emcSendCommand() has had its serial number >> set to match the serial number of the NML message generated from it. But >> note, crucially how the serial number was generated by the CMS/NML/RCS >> code, and returned to the caller. The caller doesn't generate it. >> >> >> Hope this helps. >> >> >> -- >> Sebastian Kuzminsky >> >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Emc-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/emc-users >> > > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
