Labview UI project for Linuxcnc

More
4 years 9 months ago #231218 by Reinhard

I would love to see a headless standalone linuxcnc controller and a separate ui system.

Linuxcnc is already, what you expect it should be.
You can start the backend without using any of the existing frontends.
The helperscript linuxcnc is just a helping hand to start a complete (userfriendly) system.

If you develop your own ui - you only need to change ONE variable in your ini-file.
Set display variable of display section to the name of your app - and here you go. linuxcnc starts your app without bothering with any of the 10?!? existing ones. That works for my java app as well as for my qt-project.

Just look at this directory in master,  src/emc/usr_intf

It contains 10 special interest user interfaces that don't need to be included in LinuxCnc since they can all be made available as items that interface to a data management system.

Obviously your research was just a skimming about directory names.
stepconf and pncconf are just "helper scripts" to help you create a machine configuration, gremlin is the 3d-preview and qtvcp is a support lib. So only 6 remaining ui :D

... and if you really did a research you'd know, that all use the same interface.
Well, linuxcnc does not use the interface library of your choice - but it does use a robust and fast interface library that can easily be used by anyone.

linuxcnc has a lot of issues, but being not able to run headless is not an issue.
The following user(s) said Thank You: auto-mation-assist

Please Log in or Create an account to join the conversation.

More
4 years 9 months ago - 4 years 9 months ago #231344 by auto-mation-assist
I'm bouncing around between various projects and getting the LinuxCnc Interface that I would like to see is just one of those. I believe that I can develop it myself to suit myself but the hope was and that LinuxCnc developers would be interested such and interface for the increase in flexibility it could provide. But there appears to be a lot of resistance but then I have also not seen any comments to date that adding a universal interface is would not desirable.

As a point I would like to mention that networking as you likely know can take place inside a computer and does not have to leave it and is typically used to make interfacing a lot easier. I have read the latest posts and aware of all the options available or suggested by my own research in the past over the years. This included keeping silent and just doing my own thing without sharing. But that would be not being involved. Being involved includes making desires and suggestions known.

The most significant issue that I see is that I would like a interface as I have mentioned many times in the past that is not available right now but has the potential of being extremely beneficial. I sure such a interface will be incorporated in some way or other at some point in time.

To work on my project further.

One of the things that will help is to make a diagram of how the important parts of LinuxCnc links things together in a very detailed way. In the past I when I was working of qtpyvcp I made a chart of its hierarchy.  It is likely somewhat out of date but below is a copy of the file.



I think to aid in my work that I will need to breakdown LinuxCnc into its major blocks  and generate maps to get a better understanding of how data is routed between various building blocks. Surely there must be something like that available and I'm wondering if anyone has already generated such maps and willing to share. I have not been been able to find any that provide really good details yet.

This project will need to be on my back burner for a bit since I have to do some electronic design and circuit board work before I can proceed further.
Last edit: 4 years 9 months ago by auto-mation-assist.

Please Log in or Create an account to join the conversation.

More
4 years 9 months ago #231386 by cmorley
Developers in linuxcnc work mostly in two way, as far as I can tell.

Fixing things so linuxcnc still works ie python2 to python3 / required disto changes
Whatever interests them or is needed by them.

There is very little 'planned' work. There is no official plan or even a mission statement.
We have really a very little amount of active (with commit access) devs - something like 5 I'd say.

The only guide we have is the docs (look under developer information):
It will be out of date but still relevant.
There are some good google videos made by machinekit that explain things in better detail.

If you did make a code map that would be a very useful thing for the project!
The following user(s) said Thank You: auto-mation-assist

Please Log in or Create an account to join the conversation.

More
4 years 9 months ago #231387 by Reinhard

I would like to mention that networking as you likely know can take place inside a computer and does not have to leave it and is typically used to make interfacing a lot easier.

That's only true, if you don't care for processing time and don't care for the internals.
LinuxCNC is designed to be fast and have fast interfaces.

Not sure if you know that, but network byteorder is bigendian, whereas pc has littleendian. So using network without leaving workstation boundary is wasting processing time as each number has to converted at entering network and converted back on leaving network.

For me, that's far from being easy.

NML on the other side is fast and easy. Well not as fast as it could be, as you get a copy for each client/request, but there's no conversion. With NML you can use several clients at the same time (beside the error messages - all works well).

So if you "need" multiple network channels, why not implement a nml/network translator?

Please Log in or Create an account to join the conversation.

  • ALittleOffTheRails
  • New Member
  • New Member
More
4 years 9 months ago #231389 by ALittleOffTheRails
Replied by ALittleOffTheRails on topic Labview UI project for Linuxcnc
This is gone a little off topic......

I'm a little naive regarding Labview, so.........

So to use your interface one would need labview ?

Does one need to pay for Labview, all references I have seen point to this being the case. tho if this is not the case.

Making an assumption....(which I would refer to my naivety)
Maybe the resistance could be having to pay for Labview to run your interface.

Now I'm not much of a prgrammer, anything at a higher level than plain old ANSI C makes life hard for this old boy.
Tho it would be nice to have a standard interface, say by something like sockets (with docs ;) ), that would allow one to create an interface in the language of their choosing.
Now would that allow one to run Linuxcnc without X using ncurses....maybe something similar to the Turbocnc interface.A Resurrection Keystick or along those lines.

Although I may have this all wrong.

Would linuxcnc without X be more suitable for lower power ARM boards, perhaps using something Allwincnc or Remora (I know currently targeted at the RPi) . Would this also benefit those in areas where lower specs PC's are available (to run a GUI only) and an ARM board to run motion control.

Maybe the ARM board could be "sold" as a "black box" to windows users in the same way as GRBL is ? A Linuxcnc compatiable GUI runs on a windows box and the meat is done by the "ARM Black Box".

Apologies to all for going off topic.

Please Log in or Create an account to join the conversation.

More
4 years 9 months ago #231391 by Grotius
Hi,

But there appears to be a lot of resistance but then I have also not seen any comments to date that adding a universal interface is would not desirable.

If i look at projects like Reinhard's interface, he is on his own. In my perspection his project is a challenge.
But he did it.
Maybe you could replace restistance into unkwown. Breaking down lcnc is almost impossible trough all the
entanglement. A few weeks ago someone posted a sort of pre-compile overview. This shows the nightmare scenario
we are facing.

The python club is quite large and supported. If there is a question
about python most of the time Mr. Morley and others know how to deal things.

Some time ago i made a universal interface from the c++ side of lcnc to python, it was a request.
The process of making the python interface was more or less automated by script, i found out.
It was for interfacing nml and linuxcnc to python.
The converter step had 2 things, 1. Sip, and 2. Qt5 to PyQt5. archives

I can imagine if you do the same for your project with other language tools, you can have a interface in a short time.

I think to aid in my work that I will need to breakdown LinuxCnc into its major blocks  and generate maps to get a better understanding of how data is routed between various building blocks.

When compiling for lcnc the compile slogan tells a lot about the building blocks, but you already know.
-Isrc/emc/rs274ngc -Llib -lnml -llinuxcnc -llinuxcnchal -llinuxcncini -DULAPI -lposemath

A few years ago, when i started to be working with lcnc, i also made a interface based on glade and python.
And it used a component. After that i merged the adaptive feed and external offsets into my own github lcnc clone.
After that i was getting stuck making progress.

I also decided to break down lcnc. So i did, but i was only interested in a clean hal environement without any entanglement.
When this was done, i could design a new system. The complexity i sometimes face is related to understanding high level
c++, like using templates, or complex code like trajectory planners, etc.

The most significant issue that I see is that I would like a interface as I have mentioned many times in the past that is not available right now but has the potential of being extremely beneficial. I sure such a interface will be incorporated in some way or other at some point in time.

When you have the interface working in your language, then the interface to python or c++ has to be made.
When you are sure, why not code it? If it's good, it will be incorporated, or just provide it as git repository like Reinhard does.

Oke. I wish you good luck and happy times !











 
The following user(s) said Thank You: ALittleOffTheRails

Please Log in or Create an account to join the conversation.

Time to create page: 0.119 seconds
Powered by Kunena Forum