Category: General LinuxCNC Questions
Hi Rob,
looks like you have been bussy Grotius
Yeahh...
ill try and find the page in one of my manuals for lathe and share will give you some ideas i think
Perfect.
The super imposed interpreter itself does not track the axis positions as it run's non-realtime.
I see no reason to run it realtime.
Each (sub) interpreter has it's own motion component running on the servo_thread 1ms.
Responsible for scurve motion, probing sequence, homing, etc.
Then the base_tread has it's own components running to execute the position commands from the motion components.
This can be a ethercat servo, a stepgen component, a probe input sensor, etc.
The position feedback is done in the base_thread's, this feedback is stored in the shared memory region(s).
The gui, servo_thread, base_thread, can see the feedback positions by just calling the shared memory name and value.
Will introduce axis group's.
And introducing global variables that can be used by all 3 interpeters. As they now have their variables only local.
Finally i now can start the qt program and start the servo_thread & base_thread from there using a rt_loader class.
Before today this was a problem.
Now also using multiple shared memory region's works fine.
Edit 07 Dec 2024 12:10:
Today did a mayor bug fix. It turn's out that multiple shared memory regions updated by thread's, would not exchange data
properly. Even when mutex etc. was set.
In the end it worked by using a single shared memory region for all thread's.
This is now solved in the source code. Was not the cause.