[Emc-developers] Ran into a intermittent problem with Jog stop.

2023-01-16 Thread Johannes Fassotte
I'm using master that I down loaded about  10 days ago with Gmoccapy 
that came with it. I was controlling my mill just using the jog buttons 
and chose not to send commands using MDI mode. This machining work 
required the jog button to be pushed for minutes at a time and then 
released when the desired axis travel was completed.


On a number of occasions I had to push the machines emergency stop 
button to stop the jog since releasing the jog button did absolutely 
nothing. Most of my movements were slow less that 3 inches per minute in 
the X axis with a travel range of about 11 inches so this took a 
considerable amount of time. Most of the time jog stopped as expected 
but not all the time and came close to breaking to installed cutting tool.


I'm thinking that this may be related to status not seeing that jog 
button was released or that status for that particular button froze in 
some way, perhaps even by some sort of time out. I failed to see if the 
button in Gmoccapy changed color from yellow to white or not when the 
button was released. I think the code used for manual jogging and its 
related status info may need a review to see if there is something being 
overlooked that could be time related.


I do not have any time to look into this further now but this occurred 
perhaps 8 times in the last several days using this particular manual 
jogging machining method.






___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] A vision for working now to LinuxCnc version 10

2022-12-19 Thread Johannes Fassotte
I had made some changes in my note file names to add .txt file 
extension. Its liklye best the use the main link to navigate to my notes 
and other info when posted.


 https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work

After running the 6 tests it completed so far makes me confident enough 
that OpenDDS  is installed and able to function.  I will be working on 
trying to get it linked into my LinuxCnc master clone and Initially to 
the tasks related to the IO control for some of the simple on/off  
commands and their status replies. Not at all sure on how to do that 
yet. Will need to do more research on how to integrate it into a 
application.



On 12/18/2022 5:23 PM, Bari wrote:

On 12/18/22 18:24, Johannes Fassotte wrote:

I had a chance to do some work on OpenDDS while waiting for parts for 
another project. I installed OpenDDS with its depends on my Linux 
Mint 20 development computer and made some notes on how I installed 
it and all the depends. I have not checked out the built in tests yet 
described in the OpenDDS Developers Guide  which need to run under Perl.


I have put my current install  "first.dds.install" note on github.

https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work/install-notes/first.dds.install 



Main folder at:

https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work

I did not note how long configure ran, but  "make" took about 2 
hours,  sudo "make install" about 2 minutes.


Hope the info there will be helpful and will add to these as the 
project continues.




Johannes,

Thank you for kicking this off.

Looks like a typo in your first link. This works for me:

https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work/blob/main/install-notes/first.dds.install 





___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] A vision for working now to LinuxCnc version 10

2022-12-18 Thread Johannes Fassotte
I had a chance to do some work on OpenDDS while waiting for parts for 
another project. I installed OpenDDS with its depends on my Linux Mint 
20 development computer and made some notes on how I installed it and 
all the depends. I have not checked out the built in tests yet described 
in the OpenDDS Developers Guide  which need to run under Perl.


I have put my current install  "first.dds.install" note on github.

https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work/install-notes/first.dds.install

Main folder at:

https://github.com/auto-mation-assist/LinuxCnc-OpenDDS-Work

I did not note how long configure ran, but  "make" took about 2 hours,  
sudo "make install" about 2 minutes.


Hope the info there will be helpful and will add to these as the project 
continues.



On 12/6/2022 10:55 AM, Bari wrote:

On 12/5/22 15:21, Johannes P Fassotte wrote:



On 12/5/2022 6:10 AM, Bari wrote:
A pdf that explains where DDS fits in to industry 
https://www.dds-foundation.org/sites/default/files/RTILunchAddressOMG2014v2.pdf


If we use DDS it might make LCNC compatible with the industry of the 
future. Is everyone jumping onto the DDS bandwagon? Which messaging 
system will gives us the best chance at fitting into factory 
automation, CNC machines and robotics of the near future (next 20 
years)? Will this best solve the issues of separating the controls 
from the GUI over the network as well as connect LCNC to factory 
controls and robot material handlers? Is this mission creep or 
killing two birds with one stone?


Bari,

I tend to agree that this is a good solution. In looking at the 
openDDS project I see that the project has been forked 408 times on 
github including my own fork. It also has a good developers guide 
that contains some 249 pages of information and also has the required 
support package for TOA available which has development guide that 
has some 1262 pages. OpenDDS seems like it has good documentation on 
its own and thus only requires LinuxCnc documentation to be added on 
how to get it to install and get it working  with LinuxCnc.


I think that working on this is much more beneficial to LinuxCnc than 
my previous concept which obviously does not have a lot of support so 
I may as well forget about working on that. But that does not mean 
that the requirement for improved network capability does not exist.


OpenDDS has its own own development team which thus requires less 
support from the LinuxCnc development team. All that needs to be done 
is to get it working within LinuxCnc. So my intention is to work on 
helping to accomplishing that. OpenDDS uses CorBa instead of Redis so 
Redis will most likely not be required.


My starting point for this project is to get openDDS  working inside 
and in parrallel with current LinuxCnc master code, without changing 
LinuxCnc  code and to only add the code required to make openDDS 
functional within LinuxCnc. Once it is functioning and able to run 
simple self tests then  start working on routing individual LinuxCnc 
commands along with the status data of those into openDDS and route 
those to an prior developed Labview based UI running on a Windows10 
computer. That will be helpful with checking the networking functions 
and any debugging work. Labview has some tools that are very handy 
for doing that but others joining the project could decide use any UI 
that has remote ability for there own testing.


This seems like an excellent project to undertake and I'm somewhat 
excited about getting started on this project.  OpenDDS appears to 
have good support and is already being used for such purposes. I have 
downloaded what I believe to be all required items for installation 
and will get my Debian development system set up to start doing work 
on this before the end of the year.



Sounds great. Let us know when you have a public repo so that we can 
follow your deep dive into this.



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] A vision for working now to LinuxCnc version 10

2022-12-05 Thread Johannes Fassotte
DDS looks very interesting and I will plan to look into it more today. Thanks 
for the link to DDS. Future compatibility with other industrial work is very 
important and highly desirable.

Johannes - 
Fairbanks, AK 99712

> On Dec 5, 2022, at 6:13 AM, Bari  wrote:
> 
> A pdf that explains where DDS fits in to industry 
> https://www.dds-foundation.org/sites/default/files/RTILunchAddressOMG2014v2.pdf
> 
> If we use DDS it might make LCNC compatible with the industry of the future. 
> Is everyone jumping onto the DDS bandwagon? Which messaging system will gives 
> us the best chance at fitting into factory automation, CNC machines and 
> robotics of the near future (next 20 years)? Will this best solve the issues 
> of separating the controls from the GUI over the network as well as connect 
> LCNC to factory controls and robot material handlers? Is this mission creep 
> or killing two birds with one stone?
> 
> 
> 
> ___
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers


___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] A vision for working now to LinuxCnc version 10

2022-12-03 Thread Johannes Fassotte
I’m fairly familiar with machine kit and it has nothing to do with that. It has 
strictly to do with modernizing the built in remote interface that Linuxcnc was 
born with..

I think that this will get done individuals like me that get together and see 
the advantages that this offers. I usually get  referred to machinekit liked 
you did which is really like saying go away, we don’t want to hear this because 
it is not compatible with existing plans and therefore rejected.

Using this method can allow any Ui including your efforts to function with 
minimum changes and with mostly the addition of a built in secure TCP 
interface.  It would be nice if you could help with development of the Python 
version of the proposed interface.


Johannes - 
Fairbanks, AK 99712

> On Dec 3, 2022, at 10:58 AM, Chris Morley  wrote:
> 
> Have you looked at machinekit code? Is that similar to what you want?
> 
> Chris
> 
> 
> 
> Sent from my Galaxy
> 
> 
> 
>  Original message 
> From: Johannes P Fassotte 
> Date: 2022-12-03 11:48 a.m. (GMT-08:00)
> To: emc-developers@lists.sourceforge.net
> Subject: [Emc-developers] A vision for working now to LinuxCnc version 10
> 
> In order to help clarify what I would like to see in not only version 10
> of LinuxCnc but also in the current version 9 future work. I will start
> working on this as soon as my new circuits board for my metal detectors
> are populated with all the SMD components. The circuit blank circuit
> boards arrived yesterday. This requires placing 235 SMD componets on
> each of the boards and likely take about seven days.
> 
> My goal for LinuxCnc is to provide a way for any user to interface any
> UI to LinuxCnc with a secure TCP network connection. LinuxCnc has had
> such an interface from its inception via the NML network servers however
> these are absolutely insecure and anyone with a bit of knowledge of
> remote NML commands can take control of LinuxCnc if those network ports
> are left open. Thus LinuxCnc needs modern secure network interfaces to
> replace the ones that were designed in from the very start government
> development and just ignored. Not many use this interface because it
> does not provide complete information due to developers add-ons such as
> Python that seem to just live in their own world within LinuxCnc and do
> not provide  any info into the NML network links. NML is likely the
> hardest thing to deal with and very difficult to replace but in general
> works just fine.
> 
> About 12 years ago I developed code to allow remote control of a lot of
> time sensitive  industrial and electronic equipment that was  over 500
> miles from the actual normal user interface. The equipment being
> remotely controlled was located in a isolated area and without
> communication links and thus those also had to be designed and
> implemented. The overall bandwidth of the communication link was divided
> into remote receive data, multiple command channels,  status and error
> channels. The system was designed for very high reliability and met all
> design goals and is still in operation with some equipment updates
> having been made.
> 
> The goal of me mentioning this is that I know that having a distributed
> data system with equipment to be controlled in one location and the user
> interface in an other more convenient location doe not have to suffer
> from reliability issues when properly executed. What it does provide is
> flexibility. In case of LinuxCnc which runs on Linux user interfaces and
> there support requirements can be offloaded from the Linux system and
> run on Windows based system instead or even on another Linux Based
> computer. Which as I mentioned before reduces the need to load up the
> machine control computer with support code that is not directly related
> to its main function which if of course to control a machine and output
> status info back to the user and process commands from the UI that may
> be located some distance away and not in a noisy environment. There are
> of coarse other ways to snoop into a Machine controller and some have
> implemented one or more o those methods strictly because LinuxCnc does
> not have a proper way of handing remote UI's.
> 
> I thing that even version 9 master has a good deal of the required code
> to fix that problem by just adding some code to do some data routing and
> adding some secure TCP channels. I have drawn a basic block diagram of
> what would be required and attached it.
> 
> 
> 
> ___
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers


___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Question on status for joints (16) ?

2022-10-08 Thread Johannes Fassotte
I'm testing with the axis UI with master to see how I can pull status 
data out in a format that is suitable for use with my Labview UI code,  
and used the below code for one of my tests to see how the data is 
formatted.


    c = linuxcnc.command()
    e = linuxcnc.error_channel()
    s = linuxcnc.stat()
    s.poll() # get current values
    for x in dir(s):
   if not x.startswith("_"):
  print (x, getattr(s,x))

The data I get back looks good except I have a question as to why there 
are 16 joints (jointType) under the 'joint' heading reported.


I aligned the data in the list supplied below to make it easy to read 
and noticed that Y axis is not giving its data correctly. I'm not used 
to using the axis UI so that may be causing that particular problem.



In the below partial listing why are there 16 jointType's reported. does 
that not exceed the number of joints that Linuxcnc can handle?


-

ini_filename /home/cnc/linuxcnc/configs/cnc1/cnc1.ini

inpos True

input_timeout False

interp_state 1

interpreter_errcode 0

joint (
 {'jointType': 1, 'units': 0.03937007874015748, 'backlash': 0.001, 
'min_position_limit': -50.0,
  'max_position_limit': 50.0, 'max_ferror': 5.0, 'min_ferror': 5.0, 
'ferror_current': 0.0,
  'ferror_highmark': 0.15607306025994486, 'output': 
-0.15607306025994486, 'input': -0.15607306025994486,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 0.03937007874015748, 'backlash': 0.001, 
'min_position_limit': -50.0,
  'max_position_limit': 50.0, 'max_ferror': 5.0, 'min_ferror': 5.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': -0.0, 'input': -0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0,'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 0.03937007874015748, 'backlash': 0.0035, 
'min_position_limit': -50.0,
  'max_position_limit': 50.0, 'max_ferror': 5.0, 'min_ferror': 5.0, 
'ferror_current': 0.0,
  'ferror_highmark': 0.642992024419062, 'output': -0.642992024419062, 
'input': -0.642992024419062,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 2, 'units': 1.0, 'backlash': 0.001, 
'min_position_limit': -50.0,
  'max_position_limit': 50.0, 'max_ferror': 5.0, 'min_ferror': 5.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 1.0, 'backlash': 0.0, 'min_position_limit': 
-1.0,
  'max_position_limit': 1.0, 'max_ferror': 1.0, 'min_ferror': 1.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 1.0, 'backlash': 0.0, 'min_position_limit': 
-1.0,
  'max_position_limit': 1.0, 'max_ferror': 1.0, 'min_ferror': 1.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 1.0, 'backlash': 0.0, 'min_position_limit': 
-1.0,
  'max_position_limit': 1.0, 'max_ferror': 1.0, 'min_ferror': 1.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 1.0, 'backlash': 0.0, 'min_position_limit': 
-1.0,
  'max_position_limit': 1.0, 'max_ferror': 1.0, 'min_ferror': 1.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  'max_soft_limit': 0, 'min_hard_limit': 0, 'max_hard_limit': 0, 
'override_limits': 0},


 {'jointType': 1, 'units': 1.0, 'backlash': 0.0, 'min_position_limit': 
-1.0,
  'max_position_limit': 1.0, 'max_ferror': 1.0, 'min_ferror': 1.0, 
'ferror_current': 0.0,

  'ferror_highmark': 0.0, 'output': 0.0, 'input': 0.0,
  'velocity': 0.0, 'inpos': 1, 'homing': 0, 'homed': 0, 'fault': 0, 
'enabled': 0, 'min_soft_limit': 0,
  

[Emc-developers] Using `main` instead of `master` branch

2021-07-29 Thread Johannes Fassotte
I really wish that everyone would concentrate on improving the software 
instead of worrying about the name of the version that most consider as 
being the master. It is master since it is where the code is actually 
shared with everyone.   It is not beneficial to anyone to have a narrow 
view for the word master. There is absolutely no reason to change it to 
anything.


The developers are actually the masters since they hold the various 
development versions that get merged into what is know as the "master" 
used for distribution.








___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] EMC Master NML configuration file buffer size changes

2020-11-05 Thread Johannes Fassotte
Gene , I use my labview based network interfaces for all my remote work 
into linuxcnc. I put most of my info in the regular forum at: 
https://forum.linuxcnc.org/41-guis/36920-labview-ui-project-for-linuxcnc


I'm not familiar with the tool you are using so can't comment on that 
but I'm sure that it cannot encode NML commands to request status data.


To test for this you must send a properly formatted NML peek status 
request to linuxCNC from a remote to the status buffer using the proper 
port.  If you don't do that then you will not see anything since no data 
transfer has been requested. The commands sent must also update its 
serial number with each command or the linuxCNC TCP server will shut 
down due to errors or buffer overflows.  This will also occur if the 
wrong number of bytes are sent since that would cause confusion on the 
linuxCNC end and will cause delays in any response back and sooner or 
later a server shutdown which will require a linuxCNC restart.


There has to be a good sequence of status request commands  sent before 
being able to see the pattern for the bad intermixed data I described.  
Thus you have to send your properly encoded NML status request commands 
and then pull the data out of the linuxCNC buffer rapidly since these 
are send to you in very rapid succession. Using wrong byte values for 
messages sent by linuxcnc to the remote will cause serious trouble 
shooting problems.  Every thing must be correct.


One of the problems with the unknown data is that number of bytes is not 
constant and I suspect that they may be arrays in real time that contain 
nothing but NML encoded zeros. If this data is not displayed in hex 
those zeros will likely not be seen. These zeros likely represent an 
initialized array with no data written into it and only sized.


I'm not sure at all if real time is really needed for anything related 
to tool table data since changing a tool is turtle slow to start with. 
If there is  little bit of data that real time needs from a tool it 
should be able to be routed to real time without affecting the normal 
NML buffers.


Tool table data should be able to be requested by using transfer methods 
like that in place for emcStatus request commands from a remote, which I 
have  described in the past, but not from the normal emcStatus buffer. 
Request for tool status can easily be routed to a different buffer by 
the remote to access a buffer dedicated to tool status data only.


Does real time really need to know everything about a 1000 tools at 
once, or is just one at a time enough to satisfy it?


What values for each tool does real time actually actually use for 
machining and not for moving tools around?



I Hope this helps.


On 11/4/2020 9:31 PM, Gene Heskett wrote:

On Wednesday 04 November 2020 23:33:51 Johannes Fassotte wrote:


I wanted to post a update on this since I have isolated the source of
unknown data being intermixed with my status requests data sent via
the tcp buffer to my remote. This unknown and not requested data
completely disrupts the normal flow of status data at 6 times in a row
and this sequence repeats at itself at regular intervals.

Please describe how you are observing this, Johannes. I perhaps am not
doing it right, but logged into any of my machines with ssh -Y, I am not
observing anything unusual in the status reports I can pull up while
running linuxcnc -l so as to see that machine on my screen here in the
house.


I have back tracked this problem to 7 April 2020 and commit b51ef8c to
"increase max tools from 55 to 1000" and that this has caused a
problem from that point forward up to and including the current
master. It is also the cause of the very large increase and what I
think is an unreasonable increase in NML buffer sizes. I had not done
much development work this summer and thus this issue was not noticed
until a recent update.

It seems to me that a regular file or small database is more than
sufficient for a tool table with a choice depending on if pictures are
wanted or not.  I see absolutely no valid reason for messing around
with NML buffer sizes to handle the tool table. I think that the best
thing to do is to develop a more suitable way to handle the tool table
and backing commit b51ef8c out.

The below commits  are in order from bottom to top and  are part of
those made on 7 April 2020.

Bad: commit/f3e971d426a55cd472910eaf659bef1ef969f5c1
Bad: commit/b51ef8cc3c560b6c44d095814988a3f972bc0763 <<<<<
OK:  commit/1f516f2b0dcdb7d34b6c55e675c41a6cbca3f595

Changes such this one do need to be looked at from the network side
and the internal side of linuxCNC.

I hope that you will find this helpful.

Best regards to all developers.

On 10/24/2020 7:33 PM, Johannes Fassotte wrote:

There are changes to the NML configuration file Master that concerns
me a lot.

 From the NML configuration file at the start of 2.9 pre0
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5

Re: [Emc-developers] EMC Master NML configuration file buffer size changes

2020-11-04 Thread Johannes Fassotte
I wanted to post a update on this since I have isolated the source of 
unknown data being intermixed with my status requests data sent via the 
tcp buffer to my remote. This unknown and not requested data completely 
disrupts the normal flow of status data at 6 times in a row and this 
sequence repeats at itself at regular intervals.


I have back tracked this problem to 7 April 2020 and commit b51ef8c to 
"increase max tools from 55 to 1000" and that this has caused a problem 
from that point forward up to and including the current master. It is 
also the cause of the very large increase and what I think is an  
unreasonable increase in NML buffer sizes. I had not done much 
development work this summer and thus this issue was not noticed until a 
recent update.


It seems to me that a regular file or small database is more than 
sufficient for a tool table with a choice depending on if pictures are 
wanted or not.  I see absolutely no valid reason for messing around with 
NML buffer sizes to handle the tool table. I think that the best thing 
to do is to develop a more suitable way to handle the tool table and 
backing commit b51ef8c out.


The below commits  are in order from bottom to top and  are part of 
those made on 7 April 2020.


Bad: commit/f3e971d426a55cd472910eaf659bef1ef969f5c1
Bad: commit/b51ef8cc3c560b6c44d095814988a3f972bc0763 <<<<<
OK:  commit/1f516f2b0dcdb7d34b6c55e675c41a6cbca3f595

Changes such this one do need to be looked at from the network side and 
the internal side of linuxCNC.


I hope that you will find this helpful.

Best regards to all developers.




On 10/24/2020 7:33 PM, Johannes Fassotte wrote:
There are changes to the NML configuration file Master that concerns 
me a lot.


From the NML configuration file at the start of 2.9 pre0
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost   8192  0  0  5 16 1005 TCP=5005 xdr

Present 2.9 pre0 I use
B emcStatus SHMEM localhost 17  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost 131072  0  0  5 16 1005 TCP=5005 xdr

Such a large change in file size indicates a major change in the 
method of how some data is handled. I assume that it is associated 
with a change to txt based data which would need a great deal of space.


I have no info on why such a large change in buffer sizes is required 
in current master. All I know is that these changes are causing 
problems with use of the remote TCP process that I use to status with 
and have used successfully for almost a year using the early 2.9 pre0 
master.


The remote status requests commands I send now using the ~10-14-2020 
master
gives me the usual 20 byte status request acknowledgement as in the 
past. Then 10380 bytes of actual emcStatus data, and then at perhaps 1 
second intervals a very large block of data is sent by linuxCNC to the 
TCP buffer that was not requested by my remote. It is mostly what I 
think is header or a bit of data followed a very large number of bytes 
of all zero's data.


In using the current master for my development has made it impossible 
to decode the status buffer data remotely when unknown data gets 
transferred into the TCP buffer that the remote process has not 
requested. This kills TCP status server due the confusion it causes 
which build up error until its shuts down. Command serial numbers 
start getting confused with  data being in the wrong place and its all 
downhill from there.


Here again is a size comparision of NML configuration file of the
original 2.9 pre0 which works fine to master on about 10-14-2020
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B emcStatus SHMEM localhost 17  0  0  2 16 1002 TCP=5005 xdr

To me such a tremendous increase in size would seem to indicate an 
intention to store and send a lot of text formatted data. I could be 
wrong but when there is a lack of info there has to be a lot of 
running around in circles and guessing. And based on this leads to the 
below.


Status buffer Msg data  122464 bytes
Tool        Msg size  112888 bytes
I also noticed that the size of the actual emcStatus data has 
increased from 9280 bytes to 10380 bytes
which would seem to indicate added status data. This being the second 
increase that I recall.


Thus far I have been using the xemc process for status data with this 
latest version of master but will set up a separate status process to 
see if that gets rid of the undesired data transfer that occurs at 
about 1 second intervals. xemc is linked into a lot of internal 
processes within linuxCNC and it is likely that one of those
is causing the problem I have attempted to explain.  I recalled today 
that I have seen issues with xemc being used in the past for local 
functions such as polling and not strictly used just for 
communications with a remote over a network connection.


Please supply some info on what these Status buffer and Tool Msg's 
contains so I can p

Re: [Emc-developers] TCP remote UI issue with tag RT data ?

2020-10-28 Thread Johannes Fassotte

Rod,

I'm tending to agree  after searching more for code associated with 
tags. At present looking for code that may be active that does some kind 
of polling or status requests at regular intervals and Includes any that 
may become active if there is a change in the command serial number due 
to status peek requests.  So far this particular problem has been very 
allusive which means that I'm looking in the wrong places and don't 
understand what to look for.


But why would something transfer large blocks of data that appears to 
contain no data (all zeros) and place it in the TCP buffer at the same 
time a status requests data is being sent back to the remote at specific 
intervals and do it say six or seven times in a sequence. I have 
considered that this could possibly be a memcpy routines of some memory 
space being sent in addition to the actual status data the remote requested.


Or perhaps just long strings that have been allocated for use but 
contain no data for something that is not yet complete. That concept 
kind of follows the increase in the NML status buffer size in the NML 
configuration file. Divide that increase by six or seven and it could 
approximate the total of the fathom data transfer bytes for each 
iteration. This is just thinking out loud here and likely thinking to much.


My number 6 could be 7 if also considering the larger number bytes 
transferred for number 7 in my lists in which it appears that data in 
the TCP buffer is piling up, possibly due to being locked out for a bit 
and not able to pull the data out of the TCP buffer.



On 10/28/2020 1:10 PM, Rod Webster wrote:

I don't believe the issue is related to state tags.

I've done a fair bit of work with extending state tags to include some more
useful data as motion pins at run time.
All State tags does is add an additional structure  to emcStatus that
records the interpreter state of a given segment. So the interp primitives
update the tags.
The only annoyance is that interp is written in C++ and motion is in C.
Interp keeps its own C++ status structure which is copied across to
emcStatus ( using discrete read and write functions in interp). But that
well and truly predates state tags.

I recall reading the source notes you refer to and I think what it means is
that as long as you use the enums when referring to status bits, it  does
not matter where the data is stored as the enum applies the correct index
to the data. The other issue is that some of the underlying tag data enums
are #defined private to interp which requires hard coded numerics on the
motion side which is not desirable and could introduce errors. This refers
https://github.com/LinuxCNC/linuxcnc/pull/900


Rod Webster
*1300 896 832*
+61 435 765 611
VMN®
www.vmn.com.au



On Thu, 29 Oct 2020 at 06:09, Johannes Fassotte <
johan...@automationassist.com> wrote:


Did the addition of state tags mess up status replies that are routed to
my TCP connected UI? Data is being sent even though it was not requested
at fixed intervals. This problem appeared after upgrading from a early
version of 2.9 pre0 master to current version of 2.9 pre0. master. No
changes have been made to it.

As far as I know the normal replies to status requests are handled by
the emcmaintask at whatever rate is requested by the remote as long as
it slower than the timing rate set in the .ini file. The below shows
that there are seven data transmissions sent that are causing serious
problems at regular intervals.

The normal transmission of status data to the remote is in response to a
status peek request of buffer 2 and such a request is always constant in
size with the location of data within it also being constant unless the
LinuxCNC configuration is changed. Inserting a bunch of added data
preset  intervals is really bad when thinking about this from a remotes
point of view. In such a case the remote has to be expecting it and as a
minimum need to know the size or length of the data.  Neither of those
two requirements can be met right now. I suspect  that two separate
processes are fighting for control with the remote ending up being the
looser. A real time process and a none real time process.

I have looked at actual length of the data that is causing this issue
which may be 72980 bytes. Other other data is likely being merged into
it from the remote status peek requests. The long one on the end of each
bad data segment is likely the TCP buffer filling up due to the remotes
inability to empty it because of being locked out for a while.

I'm working around this issue temporarily by pulling the problem data
out of the TCP buffer and dumping it. This does cause the loss of some
status updates but allows me to continue to work on other UI work.

Is the bad data is likely being generated separately by a real time task
that sends it out at specific intervals?. The below pattern is repeating
over and over. Additional comment at the end.

Data error 74272 lenght is not 103716, Ba

[Emc-developers] TCP remote UI issue with tag RT data ?

2020-10-28 Thread Johannes Fassotte
Did the addition of state tags mess up status replies that are routed to 
my TCP connected UI? Data is being sent even though it was not requested 
at fixed intervals. This problem appeared after upgrading from a early 
version of 2.9 pre0 master to current version of 2.9 pre0. master. No 
changes have been made to it.


As far as I know the normal replies to status requests are handled by 
the emcmaintask at whatever rate is requested by the remote as long as 
it slower than the timing rate set in the .ini file. The below shows 
that there are seven data transmissions sent that are causing serious 
problems at regular intervals.


The normal transmission of status data to the remote is in response to a 
status peek request of buffer 2 and such a request is always constant in 
size with the location of data within it also being constant unless the 
LinuxCNC configuration is changed. Inserting a bunch of added data 
preset  intervals is really bad when thinking about this from a remotes 
point of view. In such a case the remote has to be expecting it and as a 
minimum need to know the size or length of the data.  Neither of those 
two requirements can be met right now. I suspect  that two separate 
processes are fighting for control with the remote ending up being the 
looser. A real time process and a none real time process.


I have looked at actual length of the data that is causing this issue 
which may be 72980 bytes. Other other data is likely being merged into 
it from the remote status peek requests. The long one on the end of each 
bad data segment is likely the TCP buffer filling up due to the remotes 
inability to empty it because of being locked out for a while.


I'm working around this issue temporarily by pulling the problem data 
out of the TCP buffer and dumping it. This does cause the loss of some 
status updates but allows me to continue to work on other UI work.


Is the bad data is likely being generated separately by a real time task 
that sends it out at specific intervals?. The below pattern is repeating 
over and over. Additional comment at the end.


Data error 74272 lenght is not 103716, Bad data Lenght: 74272 Data Not 
part of emcStatus
Data error 74224 lenght is not 103716, Bad data Lenght: 74224 Data Not 
part of emcStatus
Data error 74276 lenght is not 103716, Bad data Lenght: 74276 Data Not 
part of emcStatus
Data error 74204 lenght is not 103716, Bad data Lenght: 74204 Data Not 
part of emcStatus
Data error 74424 lenght is not 103716, Bad data Lenght: 74424 Data Not 
part of emcStatus
Data error 74436 lenght is not 103716, Bad data Lenght: 74436 Data Not 
part of emcStatus
Data error 280176 lenght is not 103716, Bad data Lenght: 280176 Data Not 
part of emcStatus

103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
103716 < Data bytes matches with what was sent (maintask)
Data error 74272 lenght is not 103716, Bad data Lenght: 74272 Data Not 
part of emcStatus
Data error 74224 lenght is not 103716, Bad data Lenght: 74224 Data Not 
part of emcStatus
Data error 74276 lenght is not 103716, Bad data Lenght: 74276 Data Not 
part of emcStatus
Data error 74204 lenght is not 103716, Bad data Lenght: 74204 

[Emc-developers] EMC Master NML configuration file buffer size changes

2020-10-26 Thread Johannes Fassotte
This is what is happening in relation to the actual traditional 
emcStatus sync word location,      .


This list was automatically generated by looking for the locations of 
the sync word in the data received from LinuxCNC and splitting the
received data into before and after segments at that point. Thus it 
lists the before and after sync word data sizes
in relation to the traditional emcStatus sync word. Normally the before 
sync word location would be 20.


As the list show stability of the location of the sync word has been 
lost by a recent change. For info the status request for this test  were 
made at 50ms intervals. Anything with 20 in the before list will give 
proper status info.


It should be noted that there was no request made by the remote for the 
problematic data,  nor does it show up as having been
sent to the remote in debug. Debug does show proper handling of the data 
that was requested.


My tests seem to show that there is no data in these transfers that do 
not have 20 as a before value, they are just a whole lot of zero's..
Is there any info available how best the disable these data transfer so 
I can continue on other work? I have done all I can do on this for now.


This pattern repeats over and over and over

Before:  29360, After: 45068
Before:  58720, After: 15708
Before:  74440, After: 0
Before:  13620, After: 60808
Before:  42980, After: 31448
Before:  72340, After: 127648
Before:  79960, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 74428
Before:  29360, After: 45068
Before:  58720, After: 15708
Before:  74440, After: 0
Before:  13620, After: 60808
Before:  42980, After: 31448
Before:  72340, After: 127648
Before:  79960, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 103768
Before:  20, After: 74428




___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] EMC Master NML configuration file buffer size changes

2020-10-25 Thread Johannes Fassotte
I wanted to follow up a bit on my last msg regarding this with some 
debug and a bit more additional info.
The below are the typical responses I get from LinuxCNC when status 
requests are made from my remote UI.


I added some ( ) comments to some lines for additional clarity along 
with some spaces between each automatic status request.


(time=1603662496.783341,pid=3200): Socket opened by host with IP address 
10.10.20.1.

Ok we are connected so here we go.


(time=1603662496.842952,pid=3200): read 20 bytes from 4 (status request 
from remote was received)
(time=1603662496.842977,pid=3200): TCPSVR request received: fd = 4, 
serial_number=1, request_type=1, buffer_number=2

(time=1603662496.843004,pid=3200): rcs_sem_post(688129) called.
(time=1603662496.843248,pid=3200): wrote 20 bytes to 4 (status request 
acknowledge back to remote)
(time=1603662496.843304,pid=3200): wrote 103800 bytes to 4 (status data 
sent to remote)


(time=1603662496.907978,pid=3200): read 20 bytes from 4 (status request 
from remote was received)
(time=1603662496.908000,pid=3200): TCPSVR request received: fd = 4, 
serial_number=2, request_type=1, buffer_number=2

(time=1603662496.908027,pid=3200): rcs_sem_post(688129) called.
(time=1603662496.908292,pid=3200): wrote 20 bytes to 4 (status request 
acknowledge back to remote)
(time=1603662496.908348,pid=3200): wrote 103800 bytes to 4 (status data 
sent to remote)


(time=1603662496.972850,pid=3200): read 20 bytes from 4 (status request 
from remote was received)
(time=1603662496.972873,pid=3200): TCPSVR request received: fd = 4, 
serial_number=3, request_type=1, buffer_number=2

(time=1603662496.972902,pid=3200): rcs_sem_post(688129) called.
(time=1603662496.973146,pid=3200): wrote 20 bytes to 4 (status request 
acknowledge back to remote)
(time=1603662496.973192,pid=3200): wrote 103800 bytes to 4 (status data 
sent to remote)


(time=1603662497.017987,pid=3200): read 20 bytes from 4 (status request 
from remote was received)
(time=1603662497.018011,pid=3200): TCPSVR request received: fd = 4, 
serial_number=4, request_type=1, buffer_number=2

(time=1603662497.018038,pid=3200): rcs_sem_post(688129) called.
(time=1603662497.018268,pid=3200): wrote 20 bytes to 4 (status request 
acknowledge back to remote)
(time=1603662497.018305,pid=3200): wrote 103800 bytes to 4 (status data 
sent to remote)


This sequence continues forever with increasing serial numbers unless 
stopped manually or due to an error, and will attempt to reconnect 
forever unless stopped due problems as I have metioned that shuts down 
the LinuxCNC TCP server. That will not come back alive without a manual 
restart.


As can be seen the first thing sent back to the remote is a 
acknowledgment with command serial number,

like this in hex:  0001  0002 0001 9578 0003 ECA0  
 0001 is command serial number, and  0002 is the buffer number

Following the acknowledgement is the 103800 bytes status data transfer 
which also has a header and sync pattern of      
, status data top starts immediately after this pattern.


For a bit more clarity the below shows a small portion of a print out 
and shows the fathom extra data bytes.
Only the 103800 byte ones are valid emcStatus data. The rest is data 
that is causing major system confusion
making it very difficult to even maintain a connection between LinuxCNC 
and the remote to capture this data.


The below also shows that some "byte" values of this strange data are 
piling up in the TCP buffer due to delays in the ability to pull in
whatever data this is due to delays caused by errors. These thus show 
getting closer to a buffer overflow condition which would shut down the 
TCP server within LinuxCNC. I decided not to capture the 20 Byte status 
byte acknowledgement in the below list. Not sure why each start of the 
unknown data is 74460 bytes versus 74440 bytes in the following. It 
could be a 20 byte acknowledgement to one of the status requests that 
was not able to be read due to errors and was thus left in the TCP buffer.


74460, 74440, 74440, 74440, 74440, 74440, 270080, 113660, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
74460, 74440, 74440, 74440, 74440, 74440, 270080, 113660, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
74460, 74440, 74440, 74440, 74440, 74440, 270080, 113660, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 74460, 74440, 74440, 74440, 74440, 74440, 270080, 113660,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
74460, 74440, 74440, 74440, 74440, 74440, 270080, 113660, 103800,
103800, 103800, 103800, 103800, 103800, 103800, 103800, 103800,
103800, 

[Emc-developers] EMC Master NML configuration file buffer size changes

2020-10-24 Thread Johannes Fassotte
There are changes to the NML configuration file Master that concerns me 
a lot.


From the NML configuration file at the start of 2.9 pre0
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost   8192  0  0  5 16 1005 TCP=5005 xdr

Present 2.9 pre0 I use
B emcStatus SHMEM localhost 17  0  0  2 16 1002 TCP=5005 xdr
B toolSts   SHMEM localhost 131072  0  0  5 16 1005 TCP=5005 xdr

Such a large change in file size indicates a major change in the method 
of how some data is handled. I assume that it is associated with a 
change to txt based data which would need a great deal of space.


I have no info on why such a large change in buffer sizes is required in 
current master. All I know is that these changes are causing problems 
with use of the remote TCP process that I use to status with and have 
used successfully for almost a year using the early 2.9 pre0 master.


The remote status requests commands I send now using the ~10-14-2020 master
gives me the usual 20 byte status request acknowledgement as in the 
past. Then 10380 bytes of actual emcStatus data, and then at perhaps 1 
second intervals a very large block of data is sent by linuxCNC to the 
TCP buffer that was not requested by my remote. It is mostly what I 
think is header or a bit of data followed a very large number of bytes 
of all zero's data.


In using the current master for my development has made it impossible to 
decode the status buffer data remotely when unknown data gets 
transferred into the TCP buffer that the remote process has not 
requested. This kills TCP status server due the confusion it causes 
which build up error until its shuts down. Command serial numbers start 
getting confused with  data being in the wrong place and its all 
downhill from there.


Here again is a size comparision of NML configuration file of the
original 2.9 pre0 which works fine to master on about 10-14-2020
B emcStatus SHMEM localhost  16384  0  0  2 16 1002 TCP=5005 xdr
B emcStatus SHMEM localhost 17  0  0  2 16 1002 TCP=5005 xdr

To me such a tremendous increase in size would seem to indicate an 
intention to store and send a lot of text formatted data. I could be 
wrong but when there is a lack of info there has to be a lot of running 
around in circles and guessing. And based on this leads to the below.


Status buffer Msg data  122464 bytes
Tool        Msg size  112888 bytes
I also noticed that the size of the actual emcStatus data has increased 
from 9280 bytes to 10380 bytes
which would seem to indicate added status data. This being the second 
increase that I recall.


Thus far I have been using the xemc process for status data with this 
latest version of master but will set up a separate status process to 
see if that gets rid of the undesired data transfer that occurs at about 
1 second intervals. xemc is linked into a lot of internal processes 
within linuxCNC and it is likely that one of those
is causing the problem I have attempted to explain.  I recalled today 
that I have seen issues with xemc being used in the past for local 
functions such as polling and not strictly used just for communications 
with a remote over a network connection.


Please supply some info on what these Status buffer and Tool Msg's 
contains so I can possibly develop a process
to utilize these if they are really meant to be used across a network 
and if this will be on a separate status buffer.


Rule 1: Never send data to a remote that was not specifically requested, 
authorized or subscribed to.




___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Problem with check_config.tcl file

2020-10-19 Thread Johannes Fassotte
I'm working on doing some update work on my development system for my 
Labview based UI
and yesterday starting work to make the latest version of master 
compatible with

my development system. My present base for this is almost a year old.

I ran into a issue with file: /lib/hallib/check_config.tcl.

I can bypass everything starting at line 170 to 213 and everything loads 
and runs fine.
I do notice that Debug is not displaying NML types and their overloads 
info while running.


I start my "runinplace" with the below as normal and with lines 170 and 213
of /lib/hallib/check_config.tcl not commented out so errors can be seen 
as shown below.


Start command line:

rmcsys /home/cnc/rmc-dev/configs/x1Mill/x1Mill.ini.expanded

The result is:

RMCSYS - 2.9.0~pre0
Machine configuration directory is '/home/cnc/rmc-dev/configs/x1Mill'
Machine configuration file is 'x1Mill.ini.expanded'
cannot find symbol "Rmcsys_Init": /home/cnc/rmc-dev/tcl/rmcsys.so: 
undefined symbol: _Rmcsys_Init

    while executing
"load [file join [file dirname [info script]] rmcsys[info 
sharedlibextension]]"

    (file "/home/cnc/rmc-dev/tcl/rmcsys.tcl" line 61)
    invoked from within
"source /home/cnc/rmc-dev/tcl/rmcsys.tcl"
    ("package ifneeded rmcSys 1.0" script)
    invoked from within
"package require rmcSys "
    (file "/home/cnc/rmc-dev/lib/hallib/check_config.tcl" line 160)
check_config validation failed
RmcSys terminated with an error.  You can find more information in the log:
    /home/cnc/rmcsys_debug.txt
and
    /home/cnc/rmcsys_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
cnc@cnc1:~/rmc-dev$


The only reference that is close to the missing _Rmcsys_Init is in file:
/src/rmc/usr_intf/rmcsh.cc lines 3551 and 3552.

For my rmc system this is: int rmcSys_Init(Tcl_Interp * interp)
For normal system this is: int Linuxcnc_Init(Tcl_Interp * interp)

I'm looking for any ideas on how to make the undefined symbol: 
_Rmcsys_Init happy.


I also noticed that initially it loaded and ran some QT related items 
from hidden
/home/.local by just entering "rmcsys" and would not let me continue 
because it was unhappy. Deleted all the
QT stuff from the .local folder and as a result runinplace routing 
started working as desired.


I will continue to see if I can figure this out but also not sure if some
of these new configuration checks need some additional information in 
the .ini file that was
not needed in the past or if perhaps Rmcsys needs to be changed to 
rmcSys somewhere.




___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] Include folder files not copied during recompile

2020-10-18 Thread Johannes Fassotte
Thanks to every one for checking into this for me. This lead me to the 
conclusion that the problem was on my system. I had never tried to 
remove the include folder to make sure it would rebuild properly during 
a recompile. I found that my issue was that the paths for items related 
to these were not completely correct in the make file. I have corrected 
those and things now compile with no errors and the include folder is 
rebuilt properly.


On 10/17/2020 9:17 AM, Johannes Fassotte wrote:
I was checking to make sure that all the .h files in the include 
folder get updated with a recompile and if the folder is properly 
regenerated automatically if it was deleted.


I found that four of the .h files are not being copied back into the 
folder automatically on my system. I suspect that this may also be the 
case with current master and perhaps also other versions. This 
presents a problem with these files not staying in sync with the 
originals that may have had changes made to them.


make: *** No rule to make target '../include/posemath.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/gotypes.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/gomath.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/sincos.h', needed by 
'headers'.  Stop.



Best regards,

Johannes






___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Include folder files not copied during recompile

2020-10-17 Thread Johannes Fassotte
I was checking to make sure that all the .h files in the include folder 
get updated with a recompile and if the folder is properly regenerated 
automatically if it was deleted.


I found that four of the .h files are not being copied back into the 
folder automatically on my system. I suspect that this may also be the 
case with current master and perhaps also other versions. This presents 
a problem with these files not staying in sync with the originals that 
may have had changes made to them.


make: *** No rule to make target '../include/posemath.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/gotypes.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/gomath.h', needed by 
'headers'.  Stop.
make: *** No rule to make target '../include/sincos.h', needed by 
'headers'.  Stop.



Best regards,

Johannes






___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] Third-Party GUIs

2020-05-03 Thread Johannes Fassotte
The slow update rate is likely a method issue and not an issue with network 
speed itself. Most networks can handle speeds of GB per second rates which is 
much much faster than actually required. Networks are used to stream all sorts 
of data these days.  Lagging behind can indicate a buffer overflow condition 
due to the receiving process running to slow to to keep up with the data being 
sent for display. Old code and speed restrictions are likely not designed to 
overcome that. New methods do require new code to be developed in order to 
provide excellent results.

Johannes P. Fassotte
Automation Assist
217 Sunny Hills Drive
Fairbanks, AK 99712

> On May 3, 2020, at 7:06 AM, Gene Heskett  wrote:
> 
>> On Sunday 03 May 2020 10:17:46 Johannes Fassotte wrote:
>> 
>> The name remote UI should be considered to mean that it is interfaced
>> to LinuxCNC using a network connection. This connection for most
>> individuals would likely be via local host but it can be used remotely
>> if desired from other suitable devices.  Such a interface adds
>> flexibility and would provide universal interface.
>> 
>> There is little difference between controlling a machine with say an
>> Ethernet interfaced Mesa FPGA board or using a Ethernet connected UI.
>> Both of these can be considered to be remote. How a user decides to
>> use it is totally up to the user since such an interface offers
>> tremendous flexibility.
>> 
>> Johannes P. Fassotte
>> Automation Assist
>> 217 Sunny Hills Drive
>> Fairbanks, AK 99712
>> 
> Haveing had some experience trying to run linuxcnc over an ssh -Y connection 
> I can say that it works BUT the backplot display I was looking at was also 
> running very close to a full second behind the machine. This was very 
> disconcerting and IMO a huge safety consideration in that there is no way one 
> could see an impending crash and broken tooling in time to stop it.  Same for 
> someone else walking up to the machine and getting in its way. Build it in if 
> you want to, but its not anything I'd ever try again.
> 
>>> On May 3, 2020, at 4:26 AM, Robert Murphy 
>>> wrote:
>>> 
>>> I agree, I never saw the sense in a remote UI, other than all the
>>> "hipster\makers" want to control the world with their phones.
>>> Machinekit, IMHO, seemed to be focused more towards the hobbyist who
>>> wants bells and whistles rather than an industrial\commercial scene.
>>> Don't take this as having a go, but just an observation.
>>> 
>>> I think Andy (or someone we greater knowledge than myself)may have
>>> mentioned that whilst the GUI buttons can made to reflect the state
>>> of a hardware button, the reverse is not so simple. I'm not
>>> suggesting this is what you have in mind. Whilst a "gui toggle
>>> switch" can reflect the state of a hardware toggle switch, the
>>> reverse is not really possible. Unless of course the hardware
>>> switches in that case were momentary with a light to indicate the
>>> status, but would that not complicate hal & physcial wiring.
>>> 
>>> If the GUI was just info only, well that could be a way to make it
>>> possible.
>>> 
>>>> On 3/5/20 9:09 pm, Reinhard wrote:
>>>> Hi Daniel,
>>>> 
>>>>> It seems some developer at machinekit did some good work there.
>>>>> ...
>>>>> ... are the best features in machinekit that are missing in
>>>>> linuxcnc.
>>>> 
>>>> Hm, I don't think, that a remote ui is something important, that
>>>> linuxcnc is missing. And I don't take the nml-layer for bad so that
>>>> it must be replaced. For me, nml-layer is a good piece of C-code,
>>>> which was easy to adapt for java. The bad thing is the python
>>>> addon, which can't be worse.
>>>> 
>>>> So beside the remote accessibility I don't see any feature (in
>>>> userworld) that machinekit has, which linuxcnc does not have. And
>>>> replacing the middleware without benefit for the enduser is lot of
>>>> time wasted (at least for me).
>>>> 
>>>> For me, a machine is a local system. Some users would like to have
>>>> an UI running on their mobile phone, but I can't take that for
>>>> serious. May be acceptable as info board, but not for machining
>>>> purpuse. And an infochannel is quite easy to workout as addon.
>>>> 
>>>> That remote stuff could be "outsourced" to developers, that really
>>>> want that stuff and like to spend 

Re: [Emc-developers] Third-Party GUIs

2020-05-03 Thread Johannes Fassotte
The name remote UI should be considered to mean that it is interfaced to 
LinuxCNC using a network connection. This connection for most individuals would 
likely be via local host but it can be used remotely if desired from other 
suitable devices.  Such a interface adds flexibility and would provide 
universal interface.

There is little difference between controlling a machine with say an Ethernet 
interfaced Mesa FPGA board or using a Ethernet connected UI. Both of these can 
be considered to be remote. How a user decides to use it is totally up to the 
user since such an interface offers tremendous flexibility.

Johannes P. Fassotte
Automation Assist
217 Sunny Hills Drive
Fairbanks, AK 99712

> On May 3, 2020, at 4:26 AM, Robert Murphy  wrote:
> 
> I agree, I never saw the sense in a remote UI, other than all the
> "hipster\makers" want to control the world with their phones.
> Machinekit, IMHO, seemed to be focused more towards the hobbyist who
> wants bells and whistles rather than an industrial\commercial scene.
> Don't take this as having a go, but just an observation.
> 
> I think Andy (or someone we greater knowledge than myself)may have
> mentioned that whilst the GUI buttons can made to reflect the state of a
> hardware button, the reverse is not so simple. I'm not suggesting this
> is what you have in mind. Whilst a "gui toggle switch" can reflect the
> state of a hardware toggle switch, the reverse is not really possible. 
> Unless of course the hardware switches in that case were momentary with
> a light to indicate the status, but would that not complicate hal &
> physcial wiring.
> 
> If the GUI was just info only, well that could be a way to make it possible.
> 
>> On 3/5/20 9:09 pm, Reinhard wrote:
>> Hi Daniel,
>> 
>>> It seems some developer at machinekit did some good work there.
>>> ...
>>> ... are the best features in machinekit that are missing in linuxcnc.
>> Hm, I don't think, that a remote ui is something important, that linuxcnc is
>> missing. And I don't take the nml-layer for bad so that it must be replaced.
>> For me, nml-layer is a good piece of C-code, which was easy to adapt for 
>> java.
>> The bad thing is the python addon, which can't be worse.
>> 
>> So beside the remote accessibility I don't see any feature (in userworld) 
>> that
>> machinekit has, which linuxcnc does not have. And replacing the middleware
>> without benefit for the enduser is lot of time wasted (at least for me).
>> 
>> For me, a machine is a local system. Some users would like to have an UI
>> running on their mobile phone, but I can't take that for serious. May be
>> acceptable as info board, but not for machining purpuse. And an infochannel 
>> is
>> quite easy to workout as addon.
>> 
>> That remote stuff could be "outsourced" to developers, that really want that
>> stuff and like to spend their time to achive it.
>> 
>> I believe, that the main purpose of linuxcnc is and should be the control of
>> machines. In the sense of realtime responses, it is reasonable, to have all
>> processes local to the machine controller (i.e. the pc that runs linuxcnc).
>> 
>> What I really favor is a close coupling between backend and frontend. But 
>> that
>> coupling must respect the realtime requirements of the backend. Frontend is
>> always ok to be somewhat slow - as the human eyes are slow.
>> So it does make no sense at all, have a UI which has an refreshrate higher
>> than 24Hz. Nobody can see the difference.
>> So coupling should relax the different timings.
>> 
>> cheers Reinhard
>> 
>> 
>> 
>> 
>> 
>> ___
>> Emc-developers mailing list
>> Emc-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/emc-developers
> 
> 
> ___
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] Third-Party GUIs

2020-05-01 Thread Johannes Fassotte
Here are my thoughts on user interfaces.

Frankly I think that just a mention that users can make their own user 
interface would be enough and how to do that using a universal user interface 
method.  In my opinion all user interfaces should be removed from LinuxCnc 
proper which will greatly reduce maintenance and upgrade problems.

As a example we’re still using Python 2.7 even though there has been talk about 
upgrading it for years. Perhaps a totally new version of LinuxCnc should be 
considered instead of adding more and more to the old. It does look to me that 
Qtpyvcp will be the winner in user interfaces.

Johannes P. Fassotte
Automation Assist
217 Sunny Hills Drive
Fairbanks, AK 99712

> On May 1, 2020, at 4:17 AM, andy pugh  wrote:
> 
> I wonder if the docs should mention the GUIs that are made for
> LinuxCNC but are not part of LinuxCNC?
> 
> I am thinking of
> http://www.qtpyvcp.com/showcase/mill_vcps.html
> And
> https://github.com/DjangoReinhard/JCNCScreen
> 
> And maybe also PathPilot.
> 
> -- 
> atp
> "A motorcycle is a bicycle with a pandemonium attachment and is
> designed for the especial use of mechanical geniuses, daredevils and
> lunatics."
> — George Fitch, Atlanta Constitution Newspaper, 1912
> 
> 
> ___
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


Re: [Emc-developers] State-synch G-code.

2020-04-09 Thread Johannes Fassotte
I don’t know. This is not something that I have looked into. My comment is just 
my feeling that if there is a problem that the source of that problem needs to 
be identified and fixed and not worked around by adding more code. I’m thinking 
that a queue can report which item is being executed and send info to user 
space. Motion should be executing that item and it should also be able to 
update user space. 

I’m I thinking wrong?  Convert some to kernel modules like in OpenCN?

Johannes P. Fassotte
Automation Assist
217 Sunny Hills Drive
Fairbanks, AK 99712

> On Apr 9, 2020, at 6:21 PM, andy pugh  wrote:
> 
> On Fri, 10 Apr 2020 at 03:13, Johannes Fassotte
>  wrote:
>> 
>> No, I think that is covering up a problem instead of fixing the problem.
> 
> And what do you think that problem is?
> 
> -- 
> atp
> "A motorcycle is a bicycle with a pandemonium attachment and is
> designed for the especial use of mechanical geniuses, daredevils and
> lunatics."
> — George Fitch, Atlanta Constitution Newspaper, 1912
> 
> 
> ___
> Emc-developers mailing list
> Emc-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-developers



___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Looking to make hex offset list for NML status shared memoryr

2020-02-16 Thread Johannes Fassotte
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 (     ).
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
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] A note on my prior Question for iocontrol v2

2020-02-13 Thread Johannes Fassotte
This was not a iocontrol issue at all but rather I discovered or ran 
into a CMS issue while adding NML types for HAL pins for use with TCP 
connected remote UI (Rpin's). The below refer to file /nml_intf/emc.cc 
(rmc.cc for me).


In my configuration the below are valid for  ::update(cms) messages in 
the emc.cc file.

RMC_CMD_MSG
RMC_SPINDLE_CMD_MSG
RMC_LUBE_CMD_MSG
RMC_COOLANT_CMD_MSG
RMC_IO_CMD_MSG
RMC_JOINT_CMD_MSG
RMC_JOG_CMD_MSG
RMC_TOOL_CMD_MSG
RMC_TASK_CMD_MSG
RMC_TRAJ_CMD_MSG
RMC_AUX_CMD_MSG
RMC_MOTION_CMD_MSG
RMC_RPIN_CMD_MSG

The below example is part of NML type additions for my Rpin's to 
/nml_intf/emc.cc.


/*    NML/CMS Update function for RMC_RPIN_MACHINE_CNC */
void RMC_RPIN_MACHINE_CNC::update(CMS * cms) {
   RMC_RPIN_CMD_MSG::update(cms);
}

If the last line above has an invalid entry such as the below and the 
remote command RMC_RPIN_MACHINE_CNC is executed:


RMC_RPIN_MACHINE_CNC::update(cms);

The system will no longer accept any commands after the RMC_RPIN_MACHINE_CNC
command is given from a remote UI that is using TCP into port 5005.
It does not terminate the connection but a LinuxCnc restart is
required to restore to working condition. Thus it appears that CMS  
becomes none responsive.


I would expect that in the case of such an error that an error message 
would be generated and that the system would recover and not become 
totally none responsive. But there is no debug message generated and it 
appears to be an issue with CMS in that it is not able reject such a 
command or recover from it after attempting to execute it.


The effect of this is: Decreases system reliability

My added HAL Rpin's  are working properly.

The sample shown is part of switching logic that changes the machine 
from CNC mode to legacy Manual mode.








___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Question for iocontrol v2

2020-01-31 Thread Johannes Fassotte

Not sure if this is an issue with a unmodified version of iocontrol v2 or
potentially related to my own version which adds some pins that are
controlled by my remote UI that interfaces directly with NML via xemc
(xrmc for me).  RMC =  abbreviated Remote Machine Controller

I have been running fine until I started using iocontrol. In running
with iocontrol I choose to use v2 from 2.9 pre 0 and modified it only
to add some pins that are remote UI related for HAL. The problem is that
the NML remote process server itself becomes none responsive after
TOOL_ABORT reason=2 is sent right after a machine power on command.  
Don't know

why it would even send this command during a basic machine power up
sequence that does not involve a tool change.

Below is a copy and paste that show the command sequence used to run 
into the problem.
Remote connection watch dog polling in these are types: 
(time=1580516452.319145,pid=2428)


1st remote UI command sent after remote NML connection estabished
Issuing RMC_TASK_SET_STATE --      (  +505,+24,    +1,    +1,)
IO CMD - RMC_AUX_ESTOP_ON
IO CMD - RMC_LUBE_OFF
NML_INTERP_LIST(0x561fbe3a9a00)::clear(): discarding 0 items
NML_INTERP_LIST(0x561fbe3a9a00)::append(nml_msg_ptr{size=24,type=RMC_TASK_PLAN_SYNCH}) 
: list_size=1, line_number=0

rmcTaskPlanSynch() returned 0
NML_INTERP_LIST(0x561fbe3a9a00)::get(): {size=24, 
type=RMC_TASK_PLAN_SYNCH}, list_size=0

rmcTaskPlanLevel() returned 0
task: main loop took 0.047238 seconds
IO CMD - RMC_TOOL_ABORT reason=6
Issuing RMC_TASK_PLAN_SYNCH --      (  +516,+24,    +0,)
rmcTaskPlanSynch() returned 0
(time=1580516452.319145,pid=2428): read 20 bytes from 6
(time=1580516452.319170,pid=2428): TCPSVR request received: fd = 6, 
serial_number=6, request_type=1, buffer_number=1

(time=1580516452.319189,pid=2428): rcs_sem_post(196608) called.
(time=1580516452.319221,pid=2428): wrote 20 bytes to 6


2nd remote UI command sent
Issuing RMC_TASK_SET_STATE --      (  +505,+24,    +2,    +2,)
IO CMD - RMC_AUX_ESTOP_OFF
NML_INTERP_LIST(0x561fbe3a9a00)::clear(): discarding 0 items
NML_INTERP_LIST(0x561fbe3a9a00)::append(nml_msg_ptr{size=24,type=RMC_TASK_PLAN_SYNCH}) 
: list_size=1, line_number=0

IO CMD - RMC_TOOL_ABORT reason=5
rmcTaskPlanSynch() returned 0
NML_INTERP_LIST(0x561fbe3a9a00)::get(): {size=24, 
type=RMC_TASK_PLAN_SYNCH}, list_size=0

rmcTaskPlanLevel() returned 0
task: main loop took 0.024445 seconds
Issuing RMC_TASK_PLAN_SYNCH --      (  +516,+24,    +0,)
rmcTaskPlanSynch() returned 0
(time=1580516511.336288,pid=2428): read 20 bytes from 6
(time=1580516511.336314,pid=2428): TCPSVR request received: fd = 6, 
serial_number=36, request_type=1, buffer_number=1

(time=1580516511.336333,pid=2428): rcs_sem_post(196608) called.
(time=1580516511.336367,pid=2428): wrote 20 bytes to 6

3rd remote UI command sent and also IO PWRSSR on (Spindle 240VAC power 
solid state relay on).

PWRSSR is handled by IO and routed to hal
Issuing RMC_TASK_SET_STATE --      (  +505,+24,    +4,    +4,)
IO CMD - RMC_UI_PWRSSR_ON
NML_INTERP_LIST(0x561fbe3a9a00)::clear(): discarding 0 items
NML_INTERP_LIST(0x561fbe3a9a00)::append(nml_msg_ptr{size=24,type=RMC_TASK_PLAN_SYNCH}) 
: list_size=1, line_number=0

IO CMD - RMC_TOOL_ABORT reason=2
NML_INTERP_LIST(0x561fbe13ee80)::clear(): discarding 0 items
rmcTaskPlanSynch() returned 0
Issuing RMC_TASK_SET_MODE --      (  +504,+24,    +5,    +1,)
NML_INTERP_LIST(0x561fbe3a9a00)::get(): {size=24, 
type=RMC_TASK_PLAN_SYNCH}, list_size=0

rmcTaskPlanLevel() returned 0
Issuing RMC_TASK_PLAN_SYNCH --      (  +516,+24,    +0,)
rmcTaskPlanSynch() returned 0
(time=1580516665.491116,pid=2428): read 20 bytes from 6
(time=1580516665.491142,pid=2428): TCPSVR request received: fd = 6, 
serial_number=115, request_type=1, buffer_number=1

(time=1580516665.491160,pid=2428): rcs_sem_post(196608) called.
(time=1580516665.491195,pid=2428): wrote 20 bytes to 6

After this if one additional command is sent the NML server for the 
remote process becomes
none responsive and polling replies back to the remote also stop. 
Connectivity

itself is still maintained.

Since direct interface into NML from a remote UI is not used by many is 
it possible that problem may be a hidden one? I'm investigating this 
issue further but have no additional info right now. I do need a method 
to insure that the remote NML process server always stays responsive to 
commands. The remote UI is able to automatically reconnect if the 
connection is lost for some reason.






___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers


[Emc-developers] Question for halmodule

2020-01-13 Thread Johannes Fassotte
I have noticed that when compiling halmodule.cc in 2.9 pre 0 that it 
complains that HAL_PORT is not being handled in the switch statements on 
lines 314,  322, 1001, 1023, 1038. Is this something that needs to added 
or can can it just be ignored.?






___
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers