optimisation: deduplicate printer check toggle menus
This saves ~100B of flash
This commit is contained in:
parent
bf72ecc3f9
commit
b7caf36207
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue