Attached is a bit of info on the TCP based StatusMain.vi that handles getting status data from linuxCNC and gets the staus data ready for further processing. Immediately after connecting to linuxCNC it asks for the name of the buffer it connects to for verification. If happy it will then proceed with status requests at a programmable interval, spit the data into its basic types and hand the status data off to be further processed and distributed. In the future it may also contain some code that pulls in the status buffer pointers which is currently in a separate process in my CommandMain.vi which is undergoing some cleanup work.
After running into the difficultly with data arriving via the TCP network connection that was not associated with the true emcStatus data I was able to run without errors again. The picture below shows that 108618 status request were sent and no errors were captured by one of this sub vi's which is not shown. It also shows that it successfully decoded the status buffer name on the first command that was sent to the status buffer. The latest master transfers 9216 status bytes of total status data, 20 bytes in its header, 12 bytes in its sync word, and then 9184 bytes of actual status data. This data is sent via the normal status write statement in emcmaintask and can be displayed as transmissions takes place as soon as the remote connects by using debug on the linuxCNC end of the link.
I run the Labview code on a Windows machine right now but it should work equally when when compiled to run on Linux.
Here is a picture for the StatusMain.vi with its front panel active to allow for monitoring values.
Below is what is the block diagram of the StatusMain.vi. It is event driven and when idle it updates the internal timers that do the status update requests in its command generator. The case structure, which includes System: Idle has 9 actual layers for its different functions. The event structure within it has 4 layers to handle the events that get the ones in the case structure active.
One of the great benefits of doing this type of status decoding is the ability to see issues with linucCNC development work problems that are not readily detectable with present debug or test functions. I really like Labview and I'm willing to share my code as progress is made if anyone is interested in helping to do development work. A labview - Python - linuxCNC interface is a posibility.