@@ -266,7 +266,7 @@ MenuClass *MaxAccelMenu = nullptr;
266
266
MenuClass *MaxJerkMenu = nullptr ;
267
267
#endif
268
268
MenuClass *StepsMenu = nullptr ;
269
- #if ENABLED(MPCTEMP )
269
+ #if EITHER(MPC_EDIT_MENU, MPC_AUTOTUNE_MENU )
270
270
MenuClass *HotendMPCMenu = nullptr ;
271
271
#endif
272
272
#if ENABLED(PIDTEMP)
@@ -1480,46 +1480,59 @@ void DWIN_LevelingDone() {
1480
1480
DWINUI::ClearMainArea ();
1481
1481
Draw_Popup_Bkgd ();
1482
1482
1483
- # if ENABLED(MPCTEMP)
1484
-
1485
- switch (HMI_value. pidresult ) {
1483
+ switch (HMI_value. pidresult ) {
1484
+ default : return ;
1485
+ # if ENABLED(MPC_AUTOTUNE)
1486
1486
case MPCTEMP_START:
1487
- _maxtemp = thermalManager.hotend_maxtemp [0 ];
1488
- _target = 200 ;
1489
1487
DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 100 , GET_TEXT_F (MSG_MPC_AUTOTUNE));
1490
1488
DWINUI::Draw_String (HMI_data.PopupTxt_Color , gfrm.x , gfrm.y - DWINUI::fontHeight () - 4 , F (" MPC target: Celsius" ));
1491
- DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for Nozzle is running." ));
1492
1489
break ;
1493
- case PIDTEMPBED_START:
1494
- _maxtemp = BED_MAXTEMP;
1495
- _target = HMI_data.BedPidT ;
1490
+ #endif
1491
+ #if EITHER(PIDTEMP, PIDTEMPBED)
1492
+ TERN_ (PIDTEMP, case PIDTEMP_START:)
1493
+ TERN_ (PIDTEMPBED, case PIDTEMPBED_START:)
1496
1494
DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 100 , GET_TEXT_F (MSG_PID_AUTOTUNE));
1497
1495
DWINUI::Draw_String (HMI_data.PopupTxt_Color , gfrm.x , gfrm.y - DWINUI::fontHeight () - 4 , F (" PID target: Celsius" ));
1498
- DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for BED is running." ));
1499
1496
break ;
1500
- default : return ;
1501
- }
1502
-
1503
- #else // PID
1497
+ #endif
1498
+ }
1504
1499
1505
- DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 100 , GET_TEXT_F (MSG_PID_AUTOTUNE));
1506
- DWINUI::Draw_String (HMI_data.PopupTxt_Color , gfrm.x , gfrm.y - DWINUI::fontHeight () - 4 , F (" PID target: Celsius" ));
1500
+ switch (HMI_value.pidresult ) {
1501
+ default : break ;
1502
+ #if EITHER(PIDTEMP, MPC_AUTOTUNE)
1503
+ TERN_ (PIDTEMP, case PIDTEMP_START:)
1504
+ TERN_ (MPC_AUTOTUNE, case MPCTEMP_START:)
1505
+ DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for Nozzle is running." ));
1506
+ break ;
1507
+ #endif
1508
+ #if ENABLED(PIDTEMPBED)
1509
+ case PIDTEMPBED_START:
1510
+ DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for BED is running." ));
1511
+ break ;
1512
+ #endif
1513
+ }
1507
1514
1508
- switch (HMI_value.pidresult ) {
1515
+ switch (HMI_value.pidresult ) {
1516
+ default : break ;
1517
+ #if ENABLED(MPC_AUTOTUNE)
1518
+ case MPCTEMP_START:
1519
+ _maxtemp = thermalManager.hotend_maxtemp [0 ];
1520
+ _target = 200 ;
1521
+ break ;
1522
+ #endif
1523
+ #if ENABLED(PIDTEMP)
1509
1524
case PIDTEMP_START:
1510
1525
_maxtemp = thermalManager.hotend_maxtemp [0 ];
1511
1526
_target = HMI_data.HotendPidT ;
1512
- DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for Nozzle is running." ));
1513
1527
break ;
1528
+ #endif
1529
+ #if ENABLED(PIDTEMPBED)
1514
1530
case PIDTEMPBED_START:
1515
1531
_maxtemp = BED_MAXTEMP;
1516
1532
_target = HMI_data.BedPidT ;
1517
- DWINUI::Draw_CenteredString (HMI_data.PopupTxt_Color , 120 , F (" for BED is running." ));
1518
1533
break ;
1519
- default : return ;
1520
- }
1521
-
1522
- #endif // PID
1534
+ #endif
1535
+ }
1523
1536
1524
1537
plot.Draw (gfrm, _maxtemp, _target);
1525
1538
DWINUI::Draw_Int (HMI_data.PopupTxt_Color , 3 , gfrm.x + 90 , gfrm.y - DWINUI::fontHeight () - 4 , _target);
@@ -1587,7 +1600,7 @@ void DWIN_LevelingDone() {
1587
1600
1588
1601
#endif // DWIN_PID_TUNE
1589
1602
1590
- #if ENABLED(MPCTEMP )
1603
+ #if ENABLED(MPC_AUTOTUNE )
1591
1604
1592
1605
void DWIN_MPCTuning (tempcontrol_t result) {
1593
1606
HMI_value.pidresult = result;
@@ -1607,7 +1620,7 @@ void DWIN_LevelingDone() {
1607
1620
break ;
1608
1621
case MPC_INTERRUPTED:
1609
1622
checkkey = last_checkkey;
1610
- DWIN_Popup_Confirm (ICON_TempTooHigh, GET_TEXT_F (MSG_ERROR), F (STR_MPC_AUTOTUNE STR_MPC_AUTOTUNE_INTERRUPTED));
1623
+ DWIN_Popup_Confirm (ICON_TempTooHigh, GET_TEXT_F (MSG_ERROR), F (STR_MPC_AUTOTUNE_INTERRUPTED));
1611
1624
ui.reset_alert_level ();
1612
1625
break ;
1613
1626
case MPC_DONE:
@@ -1622,7 +1635,7 @@ void DWIN_LevelingDone() {
1622
1635
}
1623
1636
}
1624
1637
1625
- #endif // MPCTEMP
1638
+ #endif // MPC_AUTOTUNE
1626
1639
1627
1640
// Started a Print Job
1628
1641
void DWIN_Print_Started () {
@@ -3090,8 +3103,8 @@ void Draw_AdvancedSettings_Menu() {
3090
3103
#if ENABLED(PIDTEMP)
3091
3104
MENU_ITEM_F (ICON_PIDNozzle, STR_HOTEND_PID " Settings" , onDrawSubMenu, Draw_HotendPID_Menu);
3092
3105
#endif
3093
- #if ENABLED(MPCTEMP )
3094
- MENU_ITEM_F (ICON_MPCNozzle, STR_MPC_AUTOTUNE " Settings" , onDrawSubMenu, Draw_HotendMPC_Menu);
3106
+ #if EITHER(MPC_EDIT_MENU, MPC_AUTOTUNE_MENU )
3107
+ MENU_ITEM_F (ICON_MPCNozzle, " MPC Settings" , onDrawSubMenu, Draw_HotendMPC_Menu);
3095
3108
#endif
3096
3109
#if ENABLED(PIDTEMPBED)
3097
3110
MENU_ITEM_F (ICON_PIDBed, STR_BED_PID " Settings" , onDrawSubMenu, Draw_BedPID_Menu);
@@ -3524,37 +3537,45 @@ void Draw_Steps_Menu() {
3524
3537
3525
3538
#endif
3526
3539
3527
- #if ENABLED(MPCTEMP )
3540
+ #if EITHER(MPC_EDIT_MENU, MPC_AUTOTUNE_MENU )
3528
3541
3529
- void HotendMPC () { thermalManager.MPC_autotune (active_extruder); }
3530
- void SetHeaterPower () { SetPFloatOnClick (1 , 200 , 1 ); }
3531
- void SetBlkHeatCapacity () { SetPFloatOnClick (0 , 40 , 2 ); }
3532
- void SetSensorRespons () { SetPFloatOnClick (0 , 1 , 4 ); }
3533
- void SetAmbientXfer () { SetPFloatOnClick (0 , 1 , 4 ); }
3534
- #if ENABLED(MPC_INCLUDE_FAN)
3535
- void onDrawFanAdj (MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu (menuitem, line, 4 , thermalManager.temp_hotend [0 ].fanCoefficient ()); }
3536
- void ApplyFanAdj () { thermalManager.temp_hotend [0 ].applyFanAdjustment (MenuData.Value / POW (10 , 4 )); }
3537
- void SetFanAdj () { SetFloatOnClick (0 , 1 , 4 , thermalManager.temp_hotend [0 ].fanCoefficient (), ApplyFanAdj); }
3542
+ #if ENABLED(MPC_AUTOTUNE_MENU)
3543
+ void HotendMPC () { thermalManager.MPC_autotune (active_extruder); }
3544
+ #endif
3545
+ #if ENABLED(MPC_EDIT_MENU)
3546
+ void SetHeaterPower () { SetPFloatOnClick (1 , 200 , 1 ); }
3547
+ void SetBlkHeatCapacity () { SetPFloatOnClick (0 , 40 , 2 ); }
3548
+ void SetSensorResponse () { SetPFloatOnClick (0 , 1 , 4 ); }
3549
+ void SetAmbientXfer () { SetPFloatOnClick (0 , 1 , 4 ); }
3550
+ #if ENABLED(MPC_INCLUDE_FAN)
3551
+ void onDrawFanAdj (MenuItemClass* menuitem, int8_t line) { onDrawFloatMenu (menuitem, line, 4 , thermalManager.temp_hotend [0 ].fanCoefficient ()); }
3552
+ void ApplyFanAdj () { thermalManager.temp_hotend [0 ].applyFanAdjustment (MenuData.Value / POW (10 , 4 )); }
3553
+ void SetFanAdj () { SetFloatOnClick (0 , 1 , 4 , thermalManager.temp_hotend [0 ].fanCoefficient (), ApplyFanAdj); }
3554
+ #endif
3538
3555
#endif
3539
3556
3540
3557
void Draw_HotendMPC_Menu () {
3541
3558
checkkey = Menu;
3542
- if (SET_MENU_F (HotendMPCMenu, STR_MPC_AUTOTUNE " Settings" , 7 )) {
3559
+ if (SET_MENU_F (HotendMPCMenu, " MPC Settings" , 7 )) {
3543
3560
MPC_t &mpc = thermalManager.temp_hotend [0 ].mpc ;
3544
3561
BACK_ITEM (Draw_AdvancedSettings_Menu);
3545
- MENU_ITEM (ICON_MPCNozzle, MSG_MPC_AUTOTUNE, onDrawMenuItem, HotendMPC);
3546
- EDIT_ITEM (ICON_MPCHeater, MSG_MPC_POWER, onDrawPFloatMenu, SetHeaterPower, &mpc.heater_power );
3547
- EDIT_ITEM (ICON_MPCHeatCap, MSG_MPC_BLOCK_HEAT_CAPACITY, onDrawPFloat2Menu, SetBlkHeatCapacity, &mpc.block_heat_capacity );
3548
- EDIT_ITEM (ICON_MPCValue, MSG_SENSOR_RESPONSIVENESS, onDrawPFloat4Menu, SetSensorRespons, &mpc.sensor_responsiveness );
3549
- EDIT_ITEM (ICON_MPCValue, MSG_MPC_AMBIENT_XFER_COEFF, onDrawPFloat4Menu, SetAmbientXfer, &mpc.ambient_xfer_coeff_fan0 );
3550
- #if ENABLED(MPC_INCLUDE_FAN)
3551
- EDIT_ITEM (ICON_MPCFan, MSG_MPC_AMBIENT_XFER_COEFF_FAN, onDrawFanAdj, SetFanAdj, &mpc.fan255_adjustment );
3562
+ #if ENABLED(MPC_AUTOTUNE_MENU)
3563
+ MENU_ITEM (ICON_MPCNozzle, MSG_MPC_AUTOTUNE, onDrawMenuItem, HotendMPC);
3564
+ #endif
3565
+ #if ENABLED(MPC_EDIT_MENU)
3566
+ EDIT_ITEM (ICON_MPCHeater, MSG_MPC_POWER, onDrawPFloatMenu, SetHeaterPower, &mpc.heater_power );
3567
+ EDIT_ITEM (ICON_MPCHeatCap, MSG_MPC_BLOCK_HEAT_CAPACITY, onDrawPFloat2Menu, SetBlkHeatCapacity, &mpc.block_heat_capacity );
3568
+ EDIT_ITEM (ICON_MPCValue, MSG_SENSOR_RESPONSIVENESS, onDrawPFloat4Menu, SetSensorResponse, &mpc.sensor_responsiveness );
3569
+ EDIT_ITEM (ICON_MPCValue, MSG_MPC_AMBIENT_XFER_COEFF, onDrawPFloat4Menu, SetAmbientXfer, &mpc.ambient_xfer_coeff_fan0 );
3570
+ #if ENABLED(MPC_INCLUDE_FAN)
3571
+ EDIT_ITEM (ICON_MPCFan, MSG_MPC_AMBIENT_XFER_COEFF_FAN, onDrawFanAdj, SetFanAdj, &mpc.fan255_adjustment );
3572
+ #endif
3552
3573
#endif
3553
3574
}
3554
3575
UpdateMenu (HotendMPCMenu);
3555
3576
}
3556
3577
3557
- #endif // MPCTEMP
3578
+ #endif // MPC_EDIT_MENU || MPC_AUTOTUNE_MENU
3558
3579
3559
3580
#if ENABLED(PIDTEMPBED)
3560
3581
0 commit comments