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

Reply via email to