Merge pull request #9549 from thinkyhead/bf2_prevent_comments_resetting

[2.0.x] Prevent watchdog reset due to many comments
This commit is contained in:
Scott Lahteine 2018-02-09 07:13:26 -06:00 committed by GitHub
commit 3168f0e646
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 11 deletions

View file

@ -428,8 +428,10 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) {
#endif #endif
#if ENABLED(EXTRUDER_RUNOUT_PREVENT) #if ENABLED(EXTRUDER_RUNOUT_PREVENT)
if (ELAPSED(ms, gcode.previous_cmd_ms + (EXTRUDER_RUNOUT_SECONDS) * 1000UL) if (thermalManager.degHotend(active_extruder) > EXTRUDER_RUNOUT_MINTEMP
&& thermalManager.degHotend(active_extruder) > EXTRUDER_RUNOUT_MINTEMP) { && ELAPSED(ms, gcode.previous_cmd_ms + (EXTRUDER_RUNOUT_SECONDS) * 1000UL)
&& !planner.blocks_queued()
) {
#if ENABLED(SWITCHING_EXTRUDER) #if ENABLED(SWITCHING_EXTRUDER)
const bool oldstatus = E0_ENABLE_READ; const bool oldstatus = E0_ENABLE_READ;
enable_E0(); enable_E0();

View file

@ -45,7 +45,7 @@ bool Power::is_power_needed() {
HOTEND_LOOP() if (thermalManager.autofan_speed[e] > 0) return true; HOTEND_LOOP() if (thermalManager.autofan_speed[e] > 0) return true;
#endif #endif
#if ENABLED(AUTO_POWER_CONTROLLERFAN) && HAS_CONTROLLERFAN #if ENABLED(AUTO_POWER_CONTROLLERFAN) && HAS_CONTROLLER_FAN
if (controllerFanSpeed > 0) return true; if (controllerFanSpeed > 0) return true;
#endif #endif

View file

@ -89,8 +89,6 @@ void GcodeSuite::M203() {
* P = Printing moves * P = Printing moves
* R = Retract only (no X, Y, Z) moves * R = Retract only (no X, Y, Z) moves
* T = Travel (non printing) moves * T = Travel (non printing) moves
*
* Also sets minimum segment time in ms (B20000) to prevent buffer under-runs and M20 minimum feedrate
*/ */
void GcodeSuite::M204() { void GcodeSuite::M204() {
if (parser.seen('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments. if (parser.seen('S')) { // Kept for legacy compatibility. Should NOT BE USED for new developments.

View file

@ -30,6 +30,7 @@
#include "../lcd/ultralcd.h" #include "../lcd/ultralcd.h"
#include "../sd/cardreader.h" #include "../sd/cardreader.h"
#include "../module/planner.h" #include "../module/planner.h"
#include "../module/temperature.h"
#include "../Marlin.h" #include "../Marlin.h"
#if HAS_COLOR_LEDS #if HAS_COLOR_LEDS
@ -271,7 +272,7 @@ inline void get_serial_commands() {
// If the command buffer is empty for too long, // If the command buffer is empty for too long,
// send "wait" to indicate Marlin is still waiting. // send "wait" to indicate Marlin is still waiting.
#if defined(NO_TIMEOUTS) && NO_TIMEOUTS > 0 #if NO_TIMEOUTS > 0
static millis_t last_command_time = 0; static millis_t last_command_time = 0;
const millis_t ms = millis(); const millis_t ms = millis();
if (commands_in_queue == 0 && !serial_data_available() && ELAPSED(ms, last_command_time + NO_TIMEOUTS)) { if (commands_in_queue == 0 && !serial_data_available() && ELAPSED(ms, last_command_time + NO_TIMEOUTS)) {
@ -297,7 +298,8 @@ inline void get_serial_commands() {
serial_comment_mode[i] = false; // end of line == end of comment serial_comment_mode[i] = false; // end of line == end of comment
if (!serial_count[i]) continue; // Skip empty lines // Skip empty lines and comments
if (!serial_count[i]) { thermalManager.manage_heater(); continue; }
serial_line_buffer[i][serial_count[i]] = 0; // Terminate string serial_line_buffer[i][serial_count[i]] = 0; // Terminate string
serial_count[i] = 0; // Reset buffer serial_count[i] = 0; // Reset buffer
@ -387,7 +389,7 @@ inline void get_serial_commands() {
else if (serial_char == '\\') { // Handle escapes else if (serial_char == '\\') { // Handle escapes
// if we have one more character, copy it over // if we have one more character, copy it over
if ((c = read_serial(i)) >= 0 && !serial_comment_mode[i]) if ((c = read_serial(i)) >= 0 && !serial_comment_mode[i])
serial_line_buffer[i][serial_count[i]++] = serial_char; serial_line_buffer[i][serial_count[i]++] = (char)c;
} }
else { // it's not a newline, carriage return or escape char else { // it's not a newline, carriage return or escape char
if (serial_char == ';') serial_comment_mode[i] = true; if (serial_char == ';') serial_comment_mode[i] = true;
@ -458,7 +460,8 @@ inline void get_serial_commands() {
sd_comment_mode = false; // for new command sd_comment_mode = false; // for new command
if (!sd_count) continue; // skip empty lines (and comment lines) // Skip empty lines and comments
if (!sd_count) { thermalManager.manage_heater(); continue; }
command_queue[cmd_queue_index_w][sd_count] = '\0'; // terminate string command_queue[cmd_queue_index_w][sd_count] = '\0'; // terminate string
sd_count = 0; // clear sd line buffer sd_count = 0; // clear sd line buffer

View file

@ -192,7 +192,7 @@
#define STAT_LED_RED_PIN 22 #define STAT_LED_RED_PIN 22
#define STAT_LED_BLUE_PIN 32 #define STAT_LED_BLUE_PIN 32
#else #else // !VIKI2 && !miniVIKI
#define BEEPER_PIN 79 // AUX-4 #define BEEPER_PIN 79 // AUX-4
@ -203,7 +203,7 @@
#define SD_DETECT_PIN 81 #define SD_DETECT_PIN 81
#endif // VIKI2/miniVIKI #endif // !VIKI2 && !miniVIKI
#else // !NEWPANEL - old style panel with shift register #else // !NEWPANEL - old style panel with shift register