Merge pull request #3350 from leptun/MK3_fix_SN_crash2

Add a uart RX timeout
This commit is contained in:
3d-gussner 2022-03-04 08:15:17 +01:00 committed by GitHub
commit e10e196982
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 23 deletions

View File

@ -24,8 +24,7 @@ int serial_count = 0; //index of character read from serial line
bool comment_mode = false; bool comment_mode = false;
char *strchr_pointer; // just a pointer to find chars in the command string like X, Y, Z, E, etc char *strchr_pointer; // just a pointer to find chars in the command string like X, Y, Z, E, etc
unsigned long TimeSent = _millis(); ShortTimer serialTimeoutTimer;
unsigned long TimeNow = _millis();
long gcode_N = 0; long gcode_N = 0;
long gcode_LastN = 0; long gcode_LastN = 0;
@ -400,8 +399,7 @@ void get_command()
MYSERIAL.write(serial_char); // for debuging serial line 2 in farm_mode MYSERIAL.write(serial_char); // for debuging serial line 2 in farm_mode
selectedSerialPort = 1; selectedSerialPort = 1;
} */ //RP - removed } */ //RP - removed
TimeSent = _millis(); serialTimeoutTimer.start();
TimeNow = _millis();
if (serial_char < 0) if (serial_char < 0)
// Ignore extended ASCII characters. These characters have no meaning in the G-code apart from the file names // Ignore extended ASCII characters. These characters have no meaning in the G-code apart from the file names
@ -535,22 +533,11 @@ void get_command()
} }
} // end of serial line processing loop } // end of serial line processing loop
if(farm_mode){ if (serial_count > 0 && serialTimeoutTimer.expired(farm_mode ? 800 : 2000)) {
TimeNow = _millis(); comment_mode = false;
if ( ((TimeNow - TimeSent) > 800) && (serial_count > 0) ) { serial_count = 0;
cmdbuffer[bufindw+serial_count+CMDHDRSIZE] = 0; SERIAL_ECHOLNPGM("RX timeout");
return;
bufindw += strlen(cmdbuffer+bufindw+CMDHDRSIZE) + (1 + CMDHDRSIZE);
if (bufindw == sizeof(cmdbuffer))
bufindw = 0;
++ buflen;
serial_count = 0;
SERIAL_ECHOPGM("TIMEOUT:");
//memset(cmdbuffer, 0 , sizeof(cmdbuffer));
return;
}
} }
#ifdef SDSUPPORT #ifdef SDSUPPORT

View File

@ -52,9 +52,6 @@ extern int serial_count;
extern bool comment_mode; extern bool comment_mode;
extern char *strchr_pointer; extern char *strchr_pointer;
extern unsigned long TimeSent;
extern unsigned long TimeNow;
extern long gcode_N; extern long gcode_N;
extern long gcode_LastN; extern long gcode_LastN;
extern long Stopped_gcode_LastN; extern long Stopped_gcode_LastN;