From ce218cafdbfaa6beddfbfa013dce5c9e44793d06 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 16 May 2015 20:54:58 -0700 Subject: [PATCH] Add gcode_line_error to reduce code size --- Marlin/Marlin_main.cpp | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 003abb7a47..e0d3c429b7 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -721,6 +721,15 @@ void loop() { lcd_update(); } +void gcode_line_error(const char *err, bool doFlush=true) { + SERIAL_ERROR_START; + serialprintPGM(err); + SERIAL_ERRORLN(gcode_LastN); + //Serial.println(gcode_N); + if (doFlush) FlushSerialRequestResend(); + serial_count = 0; +} + /** * Add to the circular command queue the next command from: * - The command-injection queue (queued_commands_P) @@ -766,12 +775,7 @@ void get_command() { strchr_pointer = strchr(command, 'N'); gcode_N = (strtol(strchr_pointer + 1, NULL, 10)); if (gcode_N != gcode_LastN + 1 && strstr_P(command, PSTR("M110")) == NULL) { - SERIAL_ERROR_START; - SERIAL_ERRORPGM(MSG_ERR_LINE_NO); - SERIAL_ERRORLN(gcode_LastN); - //Serial.println(gcode_N); - FlushSerialRequestResend(); - serial_count = 0; + gcode_line_error(PSTR(MSG_ERR_LINE_NO)); return; } @@ -782,33 +786,22 @@ void get_command() { strchr_pointer = strchr(command, '*'); if (strtol(strchr_pointer + 1, NULL, 10) != checksum) { - SERIAL_ERROR_START; - SERIAL_ERRORPGM(MSG_ERR_CHECKSUM_MISMATCH); - SERIAL_ERRORLN(gcode_LastN); - FlushSerialRequestResend(); - serial_count = 0; + gcode_line_error(PSTR(MSG_ERR_CHECKSUM_MISMATCH)); return; } - //if no errors, continue parsing + // if no errors, continue parsing } else { - SERIAL_ERROR_START; - SERIAL_ERRORPGM(MSG_ERR_NO_CHECKSUM); - SERIAL_ERRORLN(gcode_LastN); - FlushSerialRequestResend(); - serial_count = 0; + gcode_line_error(PSTR(MSG_ERR_NO_CHECKSUM)); return; } gcode_LastN = gcode_N; - //if no errors, continue parsing + // if no errors, continue parsing } else { // if we don't receive 'N' but still see '*' if ((strchr(command, '*') != NULL)) { - SERIAL_ERROR_START; - SERIAL_ERRORPGM(MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM); - SERIAL_ERRORLN(gcode_LastN); - serial_count = 0; + gcode_line_error(PSTR(MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM), false); return; } }