From a940c364c9244ab1bf7ca269ff6001049bd72631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sat, 28 Aug 2021 18:23:44 +0000 Subject: [PATCH] Create enum class for heating_status variable --- Firmware/Marlin.h | 12 +++++++++++- Firmware/Marlin_main.cpp | 14 +++++++------- Firmware/temperature.cpp | 4 ++-- Firmware/ultralcd.cpp | 16 ++++++++-------- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index c62c72fef..6797b954b 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -275,6 +275,17 @@ FORCE_INLINE unsigned long millis_nc() { void setPwmFrequency(uint8_t pin, int val); #endif +enum class HeatingStatus : uint8_t +{ + NO_HEATING = 0, + EXTRUDER_HEATING = 1, + EXTRUDER_HEATING_COMPLETE = 2, + BED_HEATING = 3, + BED_HEATING_COMPLETE = 4, +}; + +extern HeatingStatus heating_status; + extern bool fans_check_enabled; extern float homing_feedrate[]; extern uint8_t axis_relative_modes; @@ -322,7 +333,6 @@ extern bool loading_flag; extern uint8_t usb_printing_counter; extern unsigned long total_filament_used; void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time); -extern uint8_t heating_status; extern unsigned int status_number; extern uint8_t heating_status_counter; extern char snmm_filaments_used; diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 107e2467b..868666d29 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -217,7 +217,7 @@ bool prusa_sd_card_upload = false; unsigned int status_number = 0; unsigned long total_filament_used; -uint8_t heating_status; +HeatingStatus heating_status; uint8_t heating_status_counter; bool loading_flag = false; @@ -6676,7 +6676,7 @@ Sigma_Exit: break; } LCD_MESSAGERPGM(_T(MSG_HEATING)); - heating_status = 1; + heating_status = HeatingStatus::EXTRUDER_HEATING; if (farm_mode) { prusa_statistics(1); }; #ifdef AUTOTEMP @@ -6710,7 +6710,7 @@ Sigma_Exit: LCD_MESSAGERPGM(_T(MSG_HEATING_COMPLETE)); KEEPALIVE_STATE(IN_HANDLER); - heating_status = 2; + heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE; if (farm_mode) { prusa_statistics(2); }; //starttime=_millis(); @@ -6736,7 +6736,7 @@ Sigma_Exit: { bool CooldownNoWait = false; LCD_MESSAGERPGM(_T(MSG_BED_HEATING)); - heating_status = 3; + heating_status = HeatingStatus::BED_HEATING; if (farm_mode) { prusa_statistics(1); }; if (code_seen('S')) { @@ -6776,7 +6776,7 @@ Sigma_Exit: } LCD_MESSAGERPGM(_T(MSG_BED_DONE)); KEEPALIVE_STATE(IN_HANDLER); - heating_status = 4; + heating_status = HeatingStatus::BED_HEATING_COMPLETE; previous_millis_cmd.start(); } @@ -11798,9 +11798,9 @@ void restore_print_from_ram_and_continue(float e_move) if (degTargetHotend(saved_active_extruder) != saved_extruder_temperature) { setTargetHotendSafe(saved_extruder_temperature, saved_active_extruder); - heating_status = 1; + heating_status = HeatingStatus::EXTRUDER_HEATING; wait_for_heater(_millis(), saved_active_extruder); - heating_status = 2; + heating_status = HeatingStatus::EXTRUDER_HEATING_COMPLETE; } axis_relative_modes ^= (-saved_extruder_relative_mode ^ axis_relative_modes) & E_AXIS_MASK; float e = saved_pos[E_AXIS] - e_move; diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 7730be05d..788d42acc 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -615,7 +615,7 @@ void fanSpeedError(unsigned char _fan) { if (get_message_level() != 0 && isPrintPaused) return; //to ensure that target temp. is not set to zero in case that we are resuming print if (card.sdprinting || is_usb_printing) { - if (heating_status != 0) { + if (heating_status != HeatingStatus::NO_HEATING) { lcd_print_stop(); } else { @@ -625,7 +625,7 @@ void fanSpeedError(unsigned char _fan) { else { // SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSED); //Why pause octoprint? is_usb_printing would be true in that case, so there is no need for this. setTargetHotend0(0); - heating_status = 0; + heating_status = HeatingStatus::NO_HEATING; fan_check_error = EFCE_REPORTED; } switch (_fan) { diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 82a46a5d7..e075e778a 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -457,7 +457,7 @@ void lcdui_print_percent_done(void) const char* src = is_usb_printing?_N("USB"):(IS_SD_PRINTING?_N(" SD"):_N(" ")); char per[4]; bool num = IS_SD_PRINTING || (PRINTER_ACTIVE && (print_percent_done_normal != PRINT_PERCENT_DONE_INIT)); - if (!num || heating_status) // either not printing or heating + if (!num || heating_status != HeatingStatus::NO_HEATING) // either not printing or heating { const int8_t sheetNR = eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)); const int8_t nextSheet = eeprom_next_initialized_sheet(sheetNR); @@ -574,7 +574,7 @@ void lcdui_print_time(void) //! @Brief Print status line on status screen void lcdui_print_status_line(void) { - if (heating_status) { // If heating flag, show progress of heating + if (heating_status != HeatingStatus::NO_HEATING) { // If heating flag, show progress of heating heating_status_counter++; if (heating_status_counter > 13) { heating_status_counter = 0; @@ -586,20 +586,20 @@ void lcdui_print_status_line(void) lcd_putc_at(7 + dots, 3, '.'); } switch (heating_status) { - case 1: + case HeatingStatus::EXTRUDER_HEATING: lcd_puts_at_P(0, 3, _T(MSG_HEATING)); break; - case 2: + case HeatingStatus::EXTRUDER_HEATING_COMPLETE: lcd_puts_at_P(0, 3, _T(MSG_HEATING_COMPLETE)); - heating_status = 0; + heating_status = HeatingStatus::NO_HEATING; heating_status_counter = 0; break; - case 3: + case HeatingStatus::BED_HEATING: lcd_puts_at_P(0, 3, _T(MSG_BED_HEATING)); break; - case 4: + case HeatingStatus::BED_HEATING_COMPLETE: lcd_puts_at_P(0, 3, _T(MSG_BED_DONE)); - heating_status = 0; + heating_status = HeatingStatus::NO_HEATING; heating_status_counter = 0; break; default: