Skip to content
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

ExtUI Additions #26754

Merged
Merged

Conversation

InsanityAutomation
Copy link
Contributor

Adds Input Shaping control to Extensible UI
Adds missing leveling done call
Fixes typo on function name
Misc conditional and sanity check changes for ExtUI UIs

Generic ExtUI functions should have access to any potential subsets, such as the custom user menus and buffer free, as there is no definitive indication whats implemented.

@thinkyhead
Copy link
Member

Generic ExtUI functions should have access to … custom user menus …

That's just not an ExtUI thing. Each LCD has to implement custom menus its own way using the data supplied in the configuration.

Adds missing leveling done call

Leveling isn't completely done until all the attempts by G29_with_retry are done, and G29_RETURN(..., true) does call ExtUI::onLevelingDone. A failed G29 is actually not considered to be "done" but should be considered "aborted." So perhaps when the final attempt of G29_with_retry comes back with a failure it could call ExtUI::onLevelingDone(false) to indicate that leveling has stopped, but it didn't complete.

@InsanityAutomation
Copy link
Contributor Author

Generic ExtUI functions should have access to … custom user menus …

That's just not an ExtUI thing. Each LCD has to implement custom menus its own way using the data supplied in the configuration.

See above on code comment, there are known implementations doing this is the wild.

Adds missing leveling done call

Leveling isn't completely done until all the attempts by G29_with_retry are done, and G29_RETURN(..., true) does call ExtUI::onLevelingDone. A failed G29 is actually not considered to be "done" but should be considered "aborted." So perhaps when the final attempt of G29_with_retry comes back with a failure it could call ExtUI::onLevelingDone(false) to indicate that leveling has stopped, but it didn't complete.

Some UI's would hang on abort without this getting called. They go to a holding screen to indicate in process (Creality OEM E5Plus / CR10SPro) or disable processing of inputs until anything blocking returns done. Its done, success or not is another question. A flag for success would be fine, but it does need to hand off to the UI that the blocking action is finished.

@thinkyhead
Copy link
Member

thinkyhead commented Mar 10, 2024

AFAIK the changes applied will keep things working and get out of the G29 screen once leveling is actually done, regardless of the retry count. Best way to test would be to enable the G29 retry and see how it behaves. It might look "strange" to see G29 starting over when something fails, but at least it should be remaining on the correct screen and exiting appropriately.

@thinkyhead thinkyhead merged commit ab0173b into MarlinFirmware:bugfix-2.1.x Jun 2, 2024
62 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants