-
-
Notifications
You must be signed in to change notification settings - Fork 19.5k
Centralize click-handling in the LCD loop #5089
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
Centralize click-handling in the LCD loop #5089
Conversation
c2f12f2
to
c76f50c
Compare
043e9a3
to
b0d93ac
Compare
After small modification for fixing a compilation error (and optimize), I confirmed that click-button works propriety. It seems that |
b0d93ac
to
bee9f6b
Compare
@esenapaj Yeah, |
c06276e
to
602a368
Compare
I had to make some more tweaks. Is it still holding up? |
602a368
to
0d2d545
Compare
I've tested newest one just now, and I confirmed that click-button of But, I found new problem. |
Try adding the line |
It has solved the problem definitely. |
a21b0af
to
a4762fa
Compare
@esenapaj I have a note from @Kaibob2 that |
a4762fa
to
2872ef7
Compare
@thinkyhead I made two videos this morning on the fly before leaving for work. http://sendvid.com/351x8x4l Further: M112 does nothing when in M1 state. After sending M112 the serial monitor continues to report MSG_BUSY_PAUSED_FOR_USER http://www.filedropper.com/changedfiles |
@Kaibob2 I see. So the click is still unreliable in I'm pretty sure that So otherwise, the menu system works ok for you, however? |
2872ef7
to
09c7305
Compare
I've tested But I found that A branch that used for test: https://github.com/esenapaj/Marlin/tree/testes |
It looks like that it doesn't. |
09c7305
to
396434a
Compare
Um? when But when I order And,
It looks like that |
That's because
My guess is that the text "M112" is still in the serial buffer. Apparently we need to flush the buffer if the emergency parser gets triggered. |
I see no problem regardless of whether |
@Kaibob2 Is @esenapaj isn't able to reproduce, and I can't see any reason why this might be the case. The wait loop calls What model is your LCD controller? |
@thinkyhead Timeshift between continents is really annoying. When i went to bed the first comment came in here. Anyway: BUT: M112 working M112 working M112 not working I guess this is related to This |
Yes, perhaps it's problem of host software rather than Marlin. When I connect between PC and printer by Repetier-Host: When I connect between PC and printer by Pronterface: Maybe this problem can be solved by altering the Marlin code, |
Thanks @Kaibob2 and @esenapaj. I'm glad it holds together. I've been wanting to centralize click-handling for a long while.
@repetier Can you offer insight as to why the host would repeatedly send Fortunately this is rare enough that I don't think we have to hack a workaround into Marlin. |
@thinkyhead Wouldn't it be necessary to implement a
before finally merging this? |
I was wrong about that. The buffer on the board is emptied. It's the host causing that issue.
That's a separate issue, and comes down to the buffer being blocked. If you want such commands to work all the time, enable |
?
and this doesn't
|
In fact i don't need all this emergency parcer stuff. The main reason for me was the skipped buton presses. So, i'm happy with this improvement :) |
To be honest, i was printing different calibration stuff all day and 50% of the time, on the inital GCODE which has a M1 in it, there was no beep when i pressed the button. But the click itself was recognized and led to proceed. |
I've tested with newest RCBugFix just now.
・Pronterface
No problem
No problem
No problem
No problem ・Repetier-Host
endless
endless
In this case, nothing happens after |
・Pronterface
No problem
No problem
In this case, nothing happens after ・Repetier-Host
In this case, nothing happens after
Same as above
Same as above
Same as above |
Interesting, since the |
#endif | ||
#define EN_A (_BV(BLEN_A)) | ||
#define EN_B (_BV(BLEN_B)) | ||
#define EN_C (_BV(BLEN_C)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
About this block, Is
#if BUTTON_EXISTS(ENC)
#define BLEN_C 2
- #define EN_C (_BV(BLEN_C))
#endif
#define EN_A (_BV(BLEN_A))
#define EN_B (_BV(BLEN_B))
#define EN_C (_BV(BLEN_C))
possible?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes!
Follow-up the PR #5089 (Centralize click-handling in the LCD loop)
Addressing #5052
lcd_clicked
flag in a single placeextern
and replacesLCD_CLICKED
(direct button pin test)M0
/M1
is simplified