|
@@ -61,9 +61,13 @@ extern bool wait_for_user, wait_for_heatup;
|
|
|
#endif
|
|
|
|
|
|
void EmergencyParser::update(EmergencyParser::State &state, const uint8_t c) {
|
|
|
+ auto uppercase = [](char c) {
|
|
|
+ return TERN0(GCODE_CASE_INSENSITIVE, WITHIN(c, 'a', 'z')) ? c + 'A' - 'a' : c;
|
|
|
+ };
|
|
|
+
|
|
|
switch (state) {
|
|
|
case EP_RESET:
|
|
|
- switch (c) {
|
|
|
+ switch (uppercase(c)) {
|
|
|
case ' ': case '\n': case '\r': break;
|
|
|
case 'N': state = EP_N; break;
|
|
|
case 'M': state = EP_M; break;
|
|
@@ -81,7 +85,7 @@ void EmergencyParser::update(EmergencyParser::State &state, const uint8_t c) {
|
|
|
break;
|
|
|
|
|
|
case EP_N:
|
|
|
- switch (c) {
|
|
|
+ switch (uppercase(c)) {
|
|
|
case '0' ... '9':
|
|
|
case '-': case ' ': break;
|
|
|
case 'M': state = EP_M; break;
|
|
@@ -152,20 +156,8 @@ void EmergencyParser::update(EmergencyParser::State &state, const uint8_t c) {
|
|
|
#endif
|
|
|
|
|
|
#if ENABLED(EP_BABYSTEPPING)
|
|
|
- case EP_M2:
|
|
|
- switch (c) {
|
|
|
- case '9': state = EP_M29; break;
|
|
|
- default: state = EP_IGNORE;
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case EP_M29:
|
|
|
- switch (c) {
|
|
|
- case '3': state = EP_M293; break;
|
|
|
- case '4': state = EP_M294; break;
|
|
|
- default: state = EP_IGNORE;
|
|
|
- }
|
|
|
- break;
|
|
|
+ case EP_M2: state = (c == '9') ? EP_M29 : EP_IGNORE; break;
|
|
|
+ case EP_M29: state = (c == '3') ? EP_M293 : (c == '4') ? EP_M294 : EP_IGNORE; break;
|
|
|
#endif
|
|
|
|
|
|
#if ENABLED(HOST_PROMPT_SUPPORT)
|
|
@@ -174,7 +166,7 @@ void EmergencyParser::update(EmergencyParser::State &state, const uint8_t c) {
|
|
|
case EP_M87: state = (c == '6') ? EP_M876 : EP_IGNORE; break;
|
|
|
|
|
|
case EP_M876:
|
|
|
- switch (c) {
|
|
|
+ switch (uppercase(c)) {
|
|
|
case ' ': break;
|
|
|
case 'S': state = EP_M876S; break;
|
|
|
default: state = EP_IGNORE; break;
|