From da8e946efb55fc6924b17df17d986e33edd27f09 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 10 Jun 2017 18:59:23 -0500 Subject: [PATCH] Reduce size of heater state print code --- Marlin/Marlin_main.cpp | 102 ++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 61c2fbefa9..d66a8d7092 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5889,7 +5889,7 @@ inline void gcode_M17() { } static bool pause_print(const float &retract, const float &z_lift, const float &x_pos, const float &y_pos, - const float &unload_length = 0 , int8_t max_beep_count = 0, bool show_lcd = false + const float &unload_length = 0 , const int8_t max_beep_count = 0, const bool show_lcd = false ) { if (move_away_flag) return false; // already paused @@ -5989,7 +5989,7 @@ inline void gcode_M17() { return true; } - static void wait_for_filament_reload(int8_t max_beep_count = 0) { + static void wait_for_filament_reload(const int8_t max_beep_count = 0) { bool nozzle_timed_out = false; // Wait for filament insert by user and press button @@ -6014,7 +6014,7 @@ inline void gcode_M17() { KEEPALIVE_STATE(IN_HANDLER); } - static void resume_print(const float &load_length = 0, const float &initial_extrude_length = 0, int8_t max_beep_count = 0) { + static void resume_print(const float &load_length = 0, const float &initial_extrude_length = 0, const int8_t max_beep_count = 0) { bool nozzle_timed_out = false; if (!move_away_flag) return; @@ -6974,39 +6974,57 @@ inline void gcode_M104() { #if HAS_TEMP_HOTEND || HAS_TEMP_BED + void print_heater_state(const float &c, const float &t, + #if ENABLED(SHOW_TEMP_ADC_VALUES) + const float r, + #endif + const int8_t e=-2 + ) { + SERIAL_PROTOCOLCHAR(' '); + SERIAL_PROTOCOLCHAR( + #if HAS_TEMP_BED && HAS_TEMP_HOTEND + e == -1 ? 'B' : 'T' + #elif HAS_TEMP_HOTEND + 'T' + #else + 'B' + #endif + ); + #if HOTENDS > 1 + if (e >= 0) SERIAL_PROTOCOLCHAR('0' + e); + #endif + SERIAL_PROTOCOLCHAR(':'); + SERIAL_PROTOCOL(c); + SERIAL_PROTOCOLPAIR(" /" , t); + #if ENABLED(SHOW_TEMP_ADC_VALUES) + SERIAL_PROTOCOLPAIR(" (", r / OVERSAMPLENR); + SERIAL_PROTOCOLCHAR(')'); + #endif + } + void print_heaterstates() { #if HAS_TEMP_HOTEND - SERIAL_PROTOCOLPGM(" T:"); - SERIAL_PROTOCOL(thermalManager.degHotend(target_extruder)); - SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL(thermalManager.degTargetHotend(target_extruder)); - #if ENABLED(SHOW_TEMP_ADC_VALUES) - SERIAL_PROTOCOLPAIR(" (", thermalManager.rawHotendTemp(target_extruder) / OVERSAMPLENR); - SERIAL_PROTOCOLCHAR(')'); - #endif + print_heater_state(thermalManager.degHotend(target_extruder), thermalManager.degTargetHotend(target_extruder) + #if ENABLED(SHOW_TEMP_ADC_VALUES) + , thermalManager.rawHotendTemp(target_extruder) + #endif + ); #endif #if HAS_TEMP_BED - SERIAL_PROTOCOLPGM(" B:"); - SERIAL_PROTOCOL(thermalManager.degBed()); - SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL(thermalManager.degTargetBed()); - #if ENABLED(SHOW_TEMP_ADC_VALUES) - SERIAL_PROTOCOLPAIR(" (", thermalManager.rawBedTemp() / OVERSAMPLENR); - SERIAL_PROTOCOLCHAR(')'); - #endif + print_heater_state(thermalManager.degBed(), thermalManager.degTargetBed(), + #if ENABLED(SHOW_TEMP_ADC_VALUES) + thermalManager.rawBedTemp(), + #endif + -1 // BED + ); #endif #if HOTENDS > 1 - HOTEND_LOOP() { - SERIAL_PROTOCOLPAIR(" T", e); - SERIAL_PROTOCOLCHAR(':'); - SERIAL_PROTOCOL(thermalManager.degHotend(e)); - SERIAL_PROTOCOLPGM(" /"); - SERIAL_PROTOCOL(thermalManager.degTargetHotend(e)); + HOTEND_LOOP() print_heater_state(thermalManager.degHotend(e), thermalManager.degTargetHotend(e), #if ENABLED(SHOW_TEMP_ADC_VALUES) - SERIAL_PROTOCOLPAIR(" (", thermalManager.rawHotendTemp(e) / OVERSAMPLENR); - SERIAL_PROTOCOLCHAR(')'); + thermalManager.rawHotendTemp(e), #endif - } + e + ); #endif SERIAL_PROTOCOLPGM(" @:"); SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder)); @@ -7206,16 +7224,12 @@ inline void gcode_M109() { print_heaterstates(); #if TEMP_RESIDENCY_TIME > 0 SERIAL_PROTOCOLPGM(" W:"); - if (residency_start_ms) { - long rem = (((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; - SERIAL_PROTOCOLLN(rem); - } - else { - SERIAL_PROTOCOLLNPGM("?"); - } - #else - SERIAL_EOL(); + if (residency_start_ms) + SERIAL_PROTOCOL(long((((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL)); + else + SERIAL_PROTOCOLCHAR('?'); #endif + SERIAL_EOL(); } idle(); @@ -7339,16 +7353,12 @@ inline void gcode_M109() { print_heaterstates(); #if TEMP_BED_RESIDENCY_TIME > 0 SERIAL_PROTOCOLPGM(" W:"); - if (residency_start_ms) { - long rem = (((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL; - SERIAL_PROTOCOLLN(rem); - } - else { - SERIAL_PROTOCOLLNPGM("?"); - } - #else - SERIAL_EOL(); + if (residency_start_ms) + SERIAL_PROTOCOL(long((((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL)); + else + SERIAL_PROTOCOLCHAR('?'); #endif + SERIAL_EOL(); } idle();