-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove iocontrol, and move its functionality into task. #2497
Conversation
I have not read this PR yet but I am in favor of the overall idea of deleting IO and moving IO's work into Task. |
One possible reason to keep IO as a separate module is if there is a wish to change the way that something is handled. |
Hmm, good point... |
all that isn't handled in IO, and can't be done in IO. if you want to to do that, the best place is a remap(there is a lathe style remap example). |
the lathe style toolchange config is here, and still works fine in this branch. |
Sounds good to be able to run with a process less 👍 |
Yes, but, that's a remap. And those are fussy to get working. (for normal users) I don't actually know if switchable IO modules are any sort of solution to this class of problems. (and at this point you probably do) |
I agree, and I dislike that fact very much. Remaps are such an important feature. I have seen users moving
It is not. Linuxcnc had modular and python extendable! IO for 10+ years, and I'm not aware of even a single example making use of it. |
2fec4a1 is my favorite commit ever. |
For users is irelevant that IO control executes any main task or IOcontrol, IOcontrolv2. If I writing tool change I only need any understandable interface. For example typical user write gcode macro and for complicated tool changer is classic ladder and hal. |
there is one issue Im working on while aborting a tool change. I will fix that, and rebase. |
This is an experimental branch I'm working on, eventually leading to a much better tooltable. The idea of this particular PR is to move everything that IO does directly into task.
The reason for IO is historic, and predates HAL. All iocontrol does is set hal pins, and do some tool logic.
There is no reason I can see to have a separate process, it is all fast and non blocking.
This is a lot cleaner, faster(iocontrol is slow, everything always has to wait for IO), more maintainable,
and removes 3 out of 6 NML channels. There is a lot more NML related cleanup to do, all the structs are still there.
Moving 1150 lines of iocontrol to taskclass code only grows taskclass by 200 lines.
also closes #2467
it passes all the tests, should not change any functionality, and does not require any configuration changes.