One of the problem that I ran into was the amount of space the tool table was using in the emcStatus buffer which was causing issues with invalid data being received over the TCP link. I posted some information on this separately and it looks like a cure for that is being worked on and effective already. I don't use a tool changer so cant say if that work is totally complete. Here is a link to that post.
forum.linuxcnc.org/38-general-linuxcnc-q...97-tool-table-issues
Now that this is mostly resolved I went back to solving why the continuous jog functions would not stop any axis/joint when a properly formatted NML 136 command was sent.
The command was being excepted but not acted upon due to missing "int nr; members in the jog class definitions in the emc_nml.hh file. I added these as, int nr; // axis or joint number
in the classes listed below.
class EMC_JOG_CONT:public EMC_JOG_CMD_MSG {
class EMC_JOG_INCR:public EMC_JOG_CMD_MSG {
class EMC_JOG_ABS:public EMC_JOG_CMD_MSG {
class EMC_JOG_STOP:public EMC_JOG_CMD_MSG {
I figure that "nr" was a a recent name change and assume it was meant to represent 'number' and that they were not put back in when the old names were removed. I have seen this happen when focusing to much on internals and not considering external use also.
There may also be at least one "int jjogmode; // 1==> joint jog, 0==> axis jog"
missing but I did not add that.
It may need to go into
class EMC_JOG_CMD_MSG:public RCS_CMD_MSG {
This solved my continues Jog not stopping problem.
It should be nated that the NML 136 command worked fine when it was executed by gmoccapy but it also depends on other internal linuxCNC processes in addition to the NML 136 command.
The Jogging functions in linuxCNC could use some cleanup work and is a bit difficult to follow due to name changes here and there and things not always ways being in the same order in the code.