Will try look into it within a few hours. You have not been able to locate any code within Linuxcnc doing this?
On Sun, 16 Feb 2020 14:35:05 -0900 Johannes Fassotte <[email protected]> wrote: > Can anyone give me some information on how to pull out the actual shared > memory location offset for each item as it is written to status by NML > and what is used as its reference point? Any help will be greatly > appreciated. I can deal with values but pointers and converting them are > a real problem for me. > > I have found the offsets required for quite a few status items using my > remote UI development tools but I would like to generate a complete > offset list of all NML status items on the NML side and pass those > offsets to the remote UI for decoding use. > > This is my status peek process from my remote UI. > From my remote Labview based UI I peek into status with my NML status > peek command and I receive back a 20 byte status request verification. > > Almost immediately I get back the actual raw copy of the shared memory > status data which is 9280 bytes long. > > Breaking these raw 9280 hex status bytes down: > The first 20 bytes is status prefix (not used for now). > Next 12 bytes is a sync pattern of (FFFF FFFF FFFF FFFF FFFF FFFF). > The next 9248 bytes is the actual raw status data. > > To decode the raw status data I use an offset value starting right after > the 12 byte sync pattern as a zero reference point. The 12 byte sync > pattern must be decoded properly as part of the logic before any further > decoding is allowed. > > Sample offsets: > As an example hex offset 1068 with a decoded length of 72 bytes contains > the actual position data for all axis. This is then broken down in 8 > bytes increments to get the position value for each axis. > > As another example a hex offset of 95 with a decoded length of 12 bytes > gives the current line number. > > Since I'm dealing with a raw copy of the status shared memory I hope to > be able to find a quick way of pulling out the offsets used my NML > itself to help decode all of the stored vales properly. I have decoded > quite a few values now just by looking into the raw received status data > but the process has been very time consuming. > > I can see some issues with the serial numbers contained in the status > raw data: > The peek command also updates the command serial contained in the shared > status memory and also updates what I believe to be the total command > count accumulator in the shared status memory. This makes it difficult > compare old shared memory values to new shared memory values since these > two are always changing and thus need to be filtered if doing an old to > new compare of actual status data changes and not triggered by the > constant serial number changes. > > > > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers -- N <[email protected]> _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
