Java UI for linuxcnc
- Reinhard
- Offline
- Platinum Member
- Posts: 508
- Thank you received: 94
I'm pretty happy with the result of some weekend-codings
The UI already works as a slave of axis, as well as standalone started from the linuxcnc config selector.
I found the tool definitions in status structure and the position dro change display according to the joint definitions.
.
What I did not find yet - how are the values from var-file synchronized between linuxcnc-tasks?
The point is, I want to add a page, where the offsets can be edited.
From what I found, the offsets are in the var-file. The status structure contains only the active fixtures - right?
So when I change non active fixtures or coordinate systems, how are they synched?
Do I write the var file from the UI or what is the right way to handle value changes?
I realized that the tool file is read from the linuxcnc-background-process and put into the status structure.
I did not find similar behaviour for the fixtures.
Attachments:
Please Log in or Create an account to join the conversation.
- pl7i92
- Offline
- Platinum Member
- Posts: 1890
- Thank you received: 356
pyqt .....
python ...
so now there will be muliiple patforms to operate on
even android app posible on java to a RT kernal PC like Raspberry
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
- Posts: 23559
- Thank you received: 4858
My understanding of the var file (and it isn't a very deep understanding) is that the file is only the persistent store to retain values through restarts.
Please Log in or Create an account to join the conversation.
- Reinhard
- Offline
- Platinum Member
- Posts: 508
- Thank you received: 94
thank you for your attention and support!
.
Oh yes - its really a puzzle. Guess i spent more time in searching, than in codingMost of the important data in LinuxCNC is passed about through the NML interface. Getting to that with Java might be something of a puzzle.
But after all - the java UI uses NML interface only.
Don't know, whether I got it right - currently the status messages are the only way to retrieve values from hal.
NML-commands works to do anything.
The problem are the plenty informations, that are not part of status messages or fields, that are not updated in status messages ...
.
I could follow that idiom and read the var-file at startup and than send changes by NML-commands.My understanding of the var file (and it isn't a very deep understanding) is that the file is only the persistent store to retain values through restarts.
I guess, I did not find all ways of information gathering yet.
I.e. qtdragon shows changing feed values during simulated homing - and when I read the status fields, I get always zero as feed value.
I would appreciate it a lot, if someone could shine me a light on how to access uptodate motion values.
Please Log in or Create an account to join the conversation.
- tjtr33
- Offline
- Elite Member
- Posts: 165
- Thank you received: 48
Sorry I am late to this thread,
but a very long time ago,
Matt Shaver wrote a java based interface to (then ) emc.
The source may be of use, but is not in current distributions.
It may exist back in the ancient Paul Corner BDI installs.
I was looking for that source,
it in the hope that it could be used without X,
by using the linux framebuffer directly.
This would be useful IF it removed some load from the CPU
and placed that load on the GPU of the Raspberry Pi.
So it is very much a niche benefit.
Some work has been done on using the framebuffer for linuxcnc
( the Xmotion gui ) but I just cant get that code to run ( builds fine ).
Best of luck, I will watch this thread more closely now.
Thx TomP
Please Log in or Create an account to join the conversation.
- Reinhard
- Offline
- Platinum Member
- Posts: 508
- Thank you received: 94
You're welcomeSorry I am late to this thread,
.
I'm almoust done with my intentions.The source may be of use, ...
I wrote a small native lib to access shared memory and UI works fine so far.
I have more troubles with informations I want to show, but which don't come out of linuxcnc at time or at all. That's the hard part, I did not solve yet.
.
Well, I omitted gremlin so far.Some work has been done on using the framebuffer for linuxcnc
( the Xmotion gui ) but I just cant get that code to run ( builds fine ).
It's a nice gimmic, but I don't have the expertise to code GL or GLX ...
After all - no professional controller I know about has somewhat like gremlin - I can live without it.
Other UI elements where more important for me, as well as extended tooltable support ...
Currently the UI works in portrait and landscape mode, whereas portrait is my preferred orientation.
But the final test can not start until my hardware is ready and running - and I always have to wait for new items to arrive ...
Please Log in or Create an account to join the conversation.
- Reinhard
- Offline
- Platinum Member
- Posts: 508
- Thank you received: 94
finally I was able to publish the project at github as JCNCSCreen .
Also available: basic docs .
If someone likes to try, I would be happy about feedback
cheers Reinhard
Please Log in or Create an account to join the conversation.
- Mike_Eitel
- Offline
- Platinum Member
- Posts: 1150
- Thank you received: 184
To be honest, i will use it, BUT i think this is a goog job.
Looks to be efficent when u only want a minimalistic screen.
Probably better suited for low power units..
Congratulations Mike
Please Log in or Create an account to join the conversation.
- Reinhard
- Offline
- Platinum Member
- Posts: 508
- Thank you received: 94
thank you for your interest.
I thought about that "minimalistic" - didn't think, that it goes into that drawer ...
On my last job, I travelled with the spindle in a cabin and I missed a moveable terminal a lot.
Now I'm working on a smaller mill with closed housing and stil without moveable terminal.
But this time, terminal contains a wheel and all known stuff from moveable terminals. So I don't miss it at all.
Current terminal looks like (pretty outdated, but so am I ):
... and I'm going to build my terminal following that logic.
Of cause, I want all wheels and buttons be there as hardware controls.
Therefor the buttons in my app are used in the sense of a LED, not as usable buttons.
I hope to be able to manage control without the use of a mouse.
That might look weird in simulation mode, but I hope, its ok in real world.
So the ui-controll needs halui and my app is "just" a visualizer
I you miss anything, let me know.
cheers Reinhard
Attachments:
Please Log in or Create an account to join the conversation.
- bbsr_5a
- Offline
- Platinum Member
- Posts: 544
- Thank you received: 105
and it is supported
Please Log in or Create an account to join the conversation.