Serial receive timeout while in farm mode to prevent printer from stuck when some characters appears on serial line. Added status echo while waiting for filament.
This commit is contained in:
parent
3c1349a746
commit
be47a2b7c1
2 changed files with 43 additions and 5 deletions
|
@ -228,6 +228,8 @@
|
||||||
CardReader card;
|
CardReader card;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned long TimeSent = millis();
|
||||||
|
unsigned long TimeNow = millis();
|
||||||
|
|
||||||
union Data
|
union Data
|
||||||
{
|
{
|
||||||
|
@ -1122,6 +1124,9 @@ void get_command()
|
||||||
|
|
||||||
while (MYSERIAL.available() > 0) {
|
while (MYSERIAL.available() > 0) {
|
||||||
char serial_char = MYSERIAL.read();
|
char serial_char = MYSERIAL.read();
|
||||||
|
TimeSent = millis();
|
||||||
|
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
|
||||||
// and Marlin does not support such file names anyway.
|
// and Marlin does not support such file names anyway.
|
||||||
|
@ -1247,6 +1252,23 @@ void get_command()
|
||||||
}
|
}
|
||||||
} // end of serial line processing loop
|
} // end of serial line processing loop
|
||||||
|
|
||||||
|
if(farm_mode){
|
||||||
|
TimeNow = millis();
|
||||||
|
if ( ((TimeNow - TimeSent) > 800) && (serial_count > 0) ) {
|
||||||
|
cmdbuffer[bufindw+serial_count+1] = 0;
|
||||||
|
|
||||||
|
bufindw += strlen(cmdbuffer+bufindw+1) + 2;
|
||||||
|
if (bufindw == sizeof(cmdbuffer))
|
||||||
|
bufindw = 0;
|
||||||
|
++ buflen;
|
||||||
|
|
||||||
|
serial_count = 0;
|
||||||
|
|
||||||
|
SERIAL_ECHOPGM("TIMEOUT:");
|
||||||
|
//memset(cmdbuffer, 0 , sizeof(cmdbuffer));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef SDSUPPORT
|
#ifdef SDSUPPORT
|
||||||
if(!card.sdprinting || serial_count!=0){
|
if(!card.sdprinting || serial_count!=0){
|
||||||
|
@ -4342,6 +4364,14 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||||
{
|
{
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
||||||
|
if (farm_mode)
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
prusa_statistics(22);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
feedmultiplyBckp=feedmultiply;
|
feedmultiplyBckp=feedmultiply;
|
||||||
int8_t TooLowZ = 0;
|
int8_t TooLowZ = 0;
|
||||||
float target[4];
|
float target[4];
|
||||||
|
@ -4922,8 +4952,9 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
|
||||||
const int KILL_DELAY = 10000;
|
const int KILL_DELAY = 10000;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(buflen < (BUFSIZE-1))
|
if(buflen < (BUFSIZE-1)){
|
||||||
get_command();
|
get_command();
|
||||||
|
}
|
||||||
|
|
||||||
if( (millis() - previous_millis_cmd) > max_inactive_time )
|
if( (millis() - previous_millis_cmd) > max_inactive_time )
|
||||||
if(max_inactive_time)
|
if(max_inactive_time)
|
||||||
|
|
|
@ -1811,8 +1811,15 @@ void prusa_statistics(int _message) {
|
||||||
prusa_stat_temperatures();
|
prusa_stat_temperatures();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
break;
|
break;
|
||||||
|
case 22: // waiting for filament change
|
||||||
|
SERIAL_ECHOLN("{[PRN:5]}");
|
||||||
|
break;
|
||||||
|
|
||||||
case 99: // heartbeat
|
case 99: // heartbeat
|
||||||
SERIAL_ECHOLN("{[PRN:99]}");
|
SERIAL_ECHO("{[PRN:99]");
|
||||||
|
prusa_stat_temperatures();
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue