Browse Source

Merge pull request #2095 from thinkyhead/cherry_picking2

Add gcode_line_error to reduce code size
pull/1/head
Scott Lahteine 10 years ago
parent
commit
64825a3d1e
  1. 37
      Marlin/Marlin_main.cpp

37
Marlin/Marlin_main.cpp

@ -723,6 +723,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)
@ -768,12 +777,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;
}
@ -784,33 +788,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;
}
}

Loading…
Cancel
Save