diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8716ea4d9..bb60057e7 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4233,26 +4233,6 @@ switch(oCheckMode) eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODE,(uint8_t)oCheckMode); } -#define SETTINGS_MODE \ -do\ -{\ - switch(oCheckMode)\ - {\ - case ClCheckMode::_None:\ - MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\ - break;\ - case ClCheckMode::_Warn:\ - MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_WARN), lcd_check_mode_set);\ - break;\ - case ClCheckMode::_Strict:\ - MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_STRICT), lcd_check_mode_set);\ - break;\ - default:\ - MENU_ITEM_TOGGLE_P(_T(MSG_NOZZLE), _T(MSG_NONE), lcd_check_mode_set);\ - }\ -}\ -while (0) - static void lcd_nozzle_diameter_cycle(void) { uint16_t nDiameter; switch(oNozzleDiameter){ @@ -4298,127 +4278,83 @@ static void lcd_check_model_set(void) { switch(oCheckModel) { - case ClCheckModel::_None: - oCheckModel=ClCheckModel::_Warn; + case ClCheckMode::_None: + oCheckModel=ClCheckMode::_Warn; break; - case ClCheckModel::_Warn: - oCheckModel=ClCheckModel::_Strict; + case ClCheckMode::_Warn: + oCheckModel=ClCheckMode::_Strict; break; - case ClCheckModel::_Strict: - oCheckModel=ClCheckModel::_None; + case ClCheckMode::_Strict: + oCheckModel=ClCheckMode::_None; break; default: - oCheckModel=ClCheckModel::_None; + oCheckModel=ClCheckMode::_None; } eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_MODEL,(uint8_t)oCheckModel); } -#define SETTINGS_MODEL \ -do\ -{\ - switch(oCheckModel)\ - {\ - case ClCheckModel::_None:\ - MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\ - break;\ - case ClCheckModel::_Warn:\ - MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_WARN), lcd_check_model_set);\ - break;\ - case ClCheckModel::_Strict:\ - MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_STRICT), lcd_check_model_set);\ - break;\ - default:\ - MENU_ITEM_TOGGLE_P(_T(MSG_MODEL), _T(MSG_NONE), lcd_check_model_set);\ - }\ -}\ -while (0) - static void lcd_check_version_set(void) { switch(oCheckVersion) { - case ClCheckVersion::_None: - oCheckVersion=ClCheckVersion::_Warn; + case ClCheckMode::_None: + oCheckVersion=ClCheckMode::_Warn; break; - case ClCheckVersion::_Warn: - oCheckVersion=ClCheckVersion::_Strict; + case ClCheckMode::_Warn: + oCheckVersion=ClCheckMode::_Strict; break; - case ClCheckVersion::_Strict: - oCheckVersion=ClCheckVersion::_None; + case ClCheckMode::_Strict: + oCheckVersion=ClCheckMode::_None; break; default: - oCheckVersion=ClCheckVersion::_None; + oCheckVersion=ClCheckMode::_None; } eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_VERSION,(uint8_t)oCheckVersion); } -#define SETTINGS_VERSION \ -do\ -{\ - switch(oCheckVersion)\ - {\ - case ClCheckVersion::_None:\ - MENU_ITEM_TOGGLE_P(MSG_FIRMWARE, _T(MSG_NONE), lcd_check_version_set);\ - break;\ - case ClCheckVersion::_Warn:\ - MENU_ITEM_TOGGLE_P(MSG_FIRMWARE, _T(MSG_WARN), lcd_check_version_set);\ - break;\ - case ClCheckVersion::_Strict:\ - MENU_ITEM_TOGGLE_P(MSG_FIRMWARE, _T(MSG_STRICT), lcd_check_version_set);\ - break;\ - default:\ - MENU_ITEM_TOGGLE_P(MSG_FIRMWARE, _T(MSG_NONE), lcd_check_version_set);\ - }\ -}\ -while (0) - static void lcd_check_filament_set(void) { switch(oCheckFilament) { - case ClCheckFilament::_None: - oCheckFilament=ClCheckFilament::_Warn; + case ClCheckMode::_None: + oCheckFilament=ClCheckMode::_Warn; break; - case ClCheckFilament::_Warn: - oCheckFilament=ClCheckFilament::_Strict; + case ClCheckMode::_Warn: + oCheckFilament=ClCheckMode::_Strict; break; - case ClCheckFilament::_Strict: - oCheckFilament=ClCheckFilament::_None; + case ClCheckMode::_Strict: + oCheckFilament=ClCheckMode::_None; break; default: - oCheckFilament=ClCheckFilament::_None; + oCheckFilament=ClCheckMode::_None; } eeprom_update_byte_notify((uint8_t*)EEPROM_CHECK_FILAMENT,(uint8_t)oCheckFilament); } -#define SETTINGS_CHECK_FILAMENT \ -do\ -{\ - switch(oCheckFilament)\ - {\ - case ClCheckFilament::_None:\ - MENU_ITEM_TOGGLE_P(MSG_FILAMENT, _T(MSG_NONE), lcd_check_filament_set);\ - break;\ - case ClCheckFilament::_Warn:\ - MENU_ITEM_TOGGLE_P(MSG_FILAMENT, _T(MSG_WARN), lcd_check_filament_set);\ - break;\ - case ClCheckFilament::_Strict:\ - MENU_ITEM_TOGGLE_P(MSG_FILAMENT, _T(MSG_STRICT), lcd_check_filament_set);\ - break;\ - default:\ - MENU_ITEM_TOGGLE_P(MSG_FILAMENT, _T(MSG_NONE), lcd_check_filament_set);\ - }\ -}\ -while (0) +static void settings_check_toggle(ClCheckMode oCheckSetting, const char* msg, void (*func)(void)) { + switch(oCheckSetting) { + case ClCheckMode::_None: + MENU_ITEM_TOGGLE_P(msg, _T(MSG_NONE), func); + break; + case ClCheckMode::_Warn: + MENU_ITEM_TOGGLE_P(msg, _T(MSG_WARN), func); + break; + case ClCheckMode::_Strict: + MENU_ITEM_TOGGLE_P(msg, _T(MSG_STRICT), func); + break; + default: + MENU_ITEM_TOGGLE_P(msg, _T(MSG_NONE), func); + } +} static void lcd_checking_menu(void) { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_HW_SETUP)); - SETTINGS_MODE; - SETTINGS_MODEL; - SETTINGS_VERSION; - SETTINGS_CHECK_FILAMENT; + settings_check_toggle(oCheckMode, _T(MSG_NOZZLE), lcd_check_mode_set); + settings_check_toggle(oCheckModel, _T(MSG_MODEL), lcd_check_model_set); + settings_check_toggle(oCheckVersion, MSG_FIRMWARE, lcd_check_version_set); + settings_check_toggle(oCheckFilament, MSG_FILAMENT, lcd_check_filament_set); MENU_END(); } diff --git a/Firmware/util.cpp b/Firmware/util.cpp index 854ac41a9..ca8a55d24 100644 --- a/Firmware/util.cpp +++ b/Firmware/util.cpp @@ -202,7 +202,7 @@ bool eeprom_fw_version_older_than_p(const uint16_t (&ver_req)[4]) bool show_upgrade_dialog_if_version_newer(const char *version_string) { - if(oCheckVersion == ClCheckVersion::_None) + if(oCheckVersion == ClCheckMode::_None) return false; int8_t upgrade = is_provided_version_newer(version_string); @@ -242,10 +242,10 @@ void update_current_firmware_version_to_eeprom() ClNozzleDiameter oNozzleDiameter; ClCheckMode oCheckMode; -ClCheckModel oCheckModel; -ClCheckVersion oCheckVersion; -ClCheckGcode oCheckGcode; -ClCheckFilament oCheckFilament; +ClCheckMode oCheckModel; +ClCheckMode oCheckVersion; +ClCheckMode oCheckGcode; +ClCheckMode oCheckFilament; void fCheckModeInit() { oCheckMode = (ClCheckMode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_MODE, (uint8_t)ClCheckMode::_Warn); @@ -258,10 +258,10 @@ void fCheckModeInit() { oNozzleDiameter = (ClNozzleDiameter)eeprom_init_default_byte((uint8_t *)EEPROM_NOZZLE_DIAMETER, (uint8_t)ClNozzleDiameter::_Diameter_400); eeprom_init_default_word((uint16_t *)EEPROM_NOZZLE_DIAMETER_uM, EEPROM_NOZZLE_DIAMETER_uM_DEFAULT); - oCheckModel = (ClCheckModel)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_MODEL, (uint8_t)ClCheckModel::_Warn); - oCheckVersion = (ClCheckVersion)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_VERSION, (uint8_t)ClCheckVersion::_Warn); - oCheckGcode = (ClCheckGcode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_GCODE, (uint8_t)ClCheckGcode::_Warn); - oCheckFilament = (ClCheckFilament)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_FILAMENT, (uint8_t)ClCheckFilament::_Warn); + oCheckModel = (ClCheckMode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_MODEL, (uint8_t)ClCheckMode::_Warn); + oCheckVersion = (ClCheckMode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_VERSION, (uint8_t)ClCheckMode::_Warn); + oCheckGcode = (ClCheckMode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_GCODE, (uint8_t)ClCheckMode::_Warn); + oCheckFilament = (ClCheckMode)eeprom_init_default_byte((uint8_t *)EEPROM_CHECK_FILAMENT, (uint8_t)ClCheckMode::_Warn); } static void render_M862_warnings(const char* warning, const char* strict, uint8_t check) @@ -304,7 +304,7 @@ void nozzle_diameter_check(uint16_t nDiameter) { } void printer_model_check(uint16_t nPrinterModel, uint16_t actualPrinterModel) { - if (oCheckModel == ClCheckModel::_None) + if (oCheckModel == ClCheckMode::_None) return; if (nPrinterModel == actualPrinterModel) return; @@ -330,7 +330,7 @@ uint8_t mCompareValue(uint16_t nX, uint16_t nY) { } void fw_version_check(const char *pVersion) { - if (oCheckVersion == ClCheckVersion::_None) + if (oCheckVersion == ClCheckMode::_None) return; uint16_t aVersion[4]; @@ -374,7 +374,7 @@ void fw_version_check(const char *pVersion) { void filament_presence_check() { if (fsensor.isEnabled() && !fsensor.getFilamentPresent()) { - if (oCheckFilament == ClCheckFilament::_None) + if (oCheckFilament == ClCheckMode::_None) return; render_M862_warnings( @@ -387,7 +387,7 @@ void filament_presence_check() { } void gcode_level_check(uint16_t nGcodeLevel) { - if (oCheckGcode == ClCheckGcode::_None) + if (oCheckGcode == ClCheckMode::_None) return; if (nGcodeLevel <= (uint16_t)GCODE_LEVEL) return; diff --git a/Firmware/util.h b/Firmware/util.h index 5287ceb67..3bb3025d1 100644 --- a/Firmware/util.h +++ b/Firmware/util.h @@ -55,38 +55,6 @@ enum class ClCheckMode:uint_least8_t _Undef=EEPROM_EMPTY_VALUE }; -enum class ClCheckModel:uint_least8_t -{ - _None, - _Warn, - _Strict, - _Undef=EEPROM_EMPTY_VALUE -}; - -enum class ClCheckVersion:uint_least8_t -{ - _None, - _Warn, - _Strict, - _Undef=EEPROM_EMPTY_VALUE -}; - -enum class ClCheckGcode:uint_least8_t -{ - _None, - _Warn, - _Strict, - _Undef=EEPROM_EMPTY_VALUE -}; - -enum class ClCheckFilament:uint_least8_t -{ - _None, - _Warn, - _Strict, - _Undef=EEPROM_EMPTY_VALUE -}; - #define COMPARE_VALUE_EQUAL (((uint8_t)ClCompareValue::_Equal<<6)+((uint8_t)ClCompareValue::_Equal<<4)+((uint8_t)ClCompareValue::_Equal<<2)+((uint8_t)ClCompareValue::_Equal)) enum class ClCompareValue:uint_least8_t { @@ -137,10 +105,10 @@ private: extern ClNozzleDiameter oNozzleDiameter; extern ClCheckMode oCheckMode; -extern ClCheckModel oCheckModel; -extern ClCheckVersion oCheckVersion; -extern ClCheckGcode oCheckGcode; -extern ClCheckFilament oCheckFilament; +extern ClCheckMode oCheckModel; +extern ClCheckMode oCheckVersion; +extern ClCheckMode oCheckGcode; +extern ClCheckMode oCheckFilament; void fCheckModeInit(); void nozzle_diameter_check(uint16_t nDiameter);