🎨 DGUS/MKS cosmetic fixes, most

This commit is contained in:
Scott Lahteine 2025-04-04 21:58:49 -05:00
parent c6dad4d1aa
commit c080518b12
27 changed files with 941 additions and 1004 deletions

View file

@ -658,11 +658,8 @@
#define IF_ELSE(TF) _IF_ELSE(_BOOL(TF))
#define _IF_ELSE(TF) _CAT(_IF_, TF)
#define _IF_1(V...) V _IF_1_ELSE
#define _IF_0(...) _IF_0_ELSE
#define _IF_1_ELSE(...)
#define _IF_0_ELSE(V...) V
#define _IF_1(V...) V OMIT
#define _IF_0(...) EMIT
#define HAS_ARGS(V...) _BOOL(FIRST(_END_OF_ARGUMENTS_ V)())
#define _END_OF_ARGUMENTS_() 0

View file

@ -115,7 +115,7 @@
else if (!parser.seen('W')) // if no S or W parameter, the DXC mode gets reset to the user's default
dual_x_carriage_mode = DEFAULT_DUAL_X_CARRIAGE_MODE;
#ifdef DEBUG_DXC_MODE
#if ENABLED(DEBUG_DXC_MODE)
if (parser.seen('W')) {
DEBUG_ECHO_START();

View file

@ -46,7 +46,7 @@
DGUSDisplay dgus;
#ifdef DEBUG_DGUS_COMM
#if ENABLED(DEBUG_DGUS_COMM)
#define DEBUGLCDCOMM_ECHOPGM DEBUG_ECHOPGM
#else
#define DEBUGLCDCOMM_ECHOPGM(...) NOOP
@ -76,7 +76,22 @@ void DGUSDisplay::initDisplay() {
requestScreen(TERN(SHOW_BOOTSCREEN, DGUS_SCREEN_BOOT, DGUS_SCREEN_MAIN));
}
void DGUSDisplay::writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr) {
void DGUSDisplay::writeVariable_P(uint16_t adr, const void *values, uint8_t valueslen, bool isstr/*=false*/) {
const char* myvalues = static_cast<const char*>(values);
bool strend = !myvalues;
writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen);
while (valueslen--) {
char x;
if (!strend) x = pgm_read_byte(myvalues++);
if ((isstr && !x) || strend) {
strend = true;
x = ' ';
}
LCD_SERIAL.write(x);
}
}
void DGUSDisplay::writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr/*=false*/) {
const char* myvalues = static_cast<const char*>(values);
bool strend = !myvalues;
writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen);
@ -120,21 +135,6 @@ void DGUSDisplay::writeVariable(uint16_t adr, long value) {
writeVariable(adr, static_cast<const void*>(&tmp), sizeof(long));
}
void DGUSDisplay::writeVariablePGM(uint16_t adr, const void *values, uint8_t valueslen, bool isstr) {
const char* myvalues = static_cast<const char*>(values);
bool strend = !myvalues;
writeHeader(adr, DGUS_CMD_WRITEVAR, valueslen);
while (valueslen--) {
char x;
if (!strend) x = pgm_read_byte(myvalues++);
if ((isstr && !x) || strend) {
strend = true;
x = ' ';
}
LCD_SERIAL.write(x);
}
}
void DGUSDisplay::processRx() {
#if ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS)

View file

@ -60,15 +60,28 @@ public:
static void initDisplay();
// Variable access.
static void writeVariable_P(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false);
static void writeVariable(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false);
static void writeVariablePGM(uint16_t adr, const void *values, uint8_t valueslen, bool isstr=false);
static void writeVariable(uint16_t adr, int16_t value);
static void writeVariable(uint16_t adr, uint16_t value);
static void writeVariable(uint16_t adr, uint8_t value);
static void writeVariable(uint16_t adr, int8_t value);
static void writeVariable(uint16_t adr, long value);
// Utility functions for bridging ui_api and dbus
static void writeStringVar_P(uint16_t adr, PGM_P const pstr, uint8_t vallen=32) {
writeVariable_P(adr, (const void *)pstr, vallen, true);
}
static void writeStringVar(uint16_t adr, const char * const cstr, uint8_t vallen=32) {
writeVariable(adr, (const void *)cstr, vallen, true);
}
static void writeStringVar(uint16_t adr, const uint16_t * const zhstr, uint8_t vallen=16) {
writeVariable(adr, (const void *)zhstr, vallen, true);
}
static void writeVariable(uint16_t adr, FSTR_P const fstr, uint8_t vallen=32) {
writeStringVar_P(adr, FTOP(fstr), vallen);
}
// Utility functions for bridging ui_api and dgus
template<typename T, float(*Getter)(const T), T selector, typename WireType=uint16_t>
static void setVariable(DGUS_VP_Variable &var) {
writeVariable(var.VP, (WireType)Getter(selector));

View file

@ -101,7 +101,7 @@ void DGUSScreenHandler::setStatusMessage(const char *msg) {
}
}
void DGUSScreenHandler::setstatusmessagePGM(PGM_P const msg) {
void DGUSScreenHandler::setStatusMessage_P(PGM_P const msg) {
DGUS_VP_Variable ramcopy;
if (populate_VPVar(VP_M117, &ramcopy)) {
ramcopy.memadr = (void*) msg;
@ -164,10 +164,11 @@ void DGUSScreenHandler::sendStringToDisplay(DGUS_VP_Variable &var) {
// overwrite the remainings with spaces.// var.size has the display buffer size!
void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) {
char *tmp = (char*) var.memadr;
dgus.writeVariablePGM(var.VP, tmp, var.size, true);
dgus.writeVariable_P(var.VP, tmp, var.size, true);
}
#if HAS_PID_HEATING
void DGUSScreenHandler::sendTemperaturePID(DGUS_VP_Variable &var) {
float value = *(float *)var.memadr;
value /= 10;
@ -200,7 +201,8 @@ void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) {
tmp[1] = endian.lb[0];
dgus.writeVariable(var.VP, tmp, 2);
}
#endif
#endif // HAS_PID_HEATING
#if ENABLED(PRINTCOUNTER)
@ -221,7 +223,7 @@ void DGUSScreenHandler::sendStringToDisplayPGM(DGUS_VP_Variable &var) {
dgus.writeVariable(VP_PrintsTotal, buf, var.size, true);
}
#endif
#endif // PRINTCOUNTER
// Send fan status value to the display.
#if HAS_FAN
@ -249,8 +251,7 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) {
void DGUSScreenHandler::sendWaitingStatusToDisplay(DGUS_VP_Variable &var) {
// In FYSETC UI design there are 10 statuses to loop
static uint16_t period = 0;
static uint16_t index = 0;
static uint16_t period = 0, index = 0;
if (period++ > DGUS_UI_WAITING_STATUS_PERIOD) {
dgus.writeVariable(var.VP, index);
if (++index >= DGUS_UI_WAITING_STATUS) index = 0;
@ -270,9 +271,9 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) {
return;
}
// if we are printing, we jump to two screens after the requested one.
// This should host e.g a print pause / print abort / print resume dialog.
// This concept allows to recycle this hook for other file
// If we are printing we jump to two screens after the requested one.
// This should host, e.g., a print pause / print abort / print resume dialog.
// This concept allows to recycle this hook for other files.
if (ExtUI::isPrintingFromMedia() && !card.flag.abort_sd_printing) {
gotoScreen(DGUS_SCREEN_SDPRINTMANIPULATION);
return;
@ -324,7 +325,7 @@ void DGUSScreenHandler::sendHeaterStatusToDisplay(DGUS_VP_Variable &var) {
void DGUSScreenHandler::sdCardError() {
DGUSScreenHandler::sdCardRemoved();
sendInfoScreen(F("NOTICE"), nullptr, F("SD card error"), nullptr, true, true, true, true);
sendInfoScreen(F("NOTICE"), nullptr, F("SD card error"), nullptr);
setupConfirmAction(nullptr);
gotoScreen(DGUS_SCREEN_POPUP);
}
@ -432,9 +433,9 @@ void DGUSScreenHandler::handleManualExtrude(DGUS_VP_Variable &var, void *val_ptr
switch (var.VP) {
#if HAS_HOTEND
case VP_MOVE_E0: target_extruder = ExtUI::extruder_t::E0; break;
#if HAS_MULTI_EXTRUDER
case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break;
#endif
#endif
#if HAS_MULTI_EXTRUDER
case VP_MOVE_E1: target_extruder = ExtUI::extruder_t::E1; break;
#endif
default: return;
}
@ -491,12 +492,12 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) {
ExtUI::extruder_t extruder;
switch (var.VP) {
default: return;
#if HAS_EXTRUDERS
case VP_E0_STEP_PER_MM: extruder = ExtUI::extruder_t::E0; break;
#if HAS_MULTI_EXTRUDER
case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break;
#endif
#endif
#if HAS_EXTRUDERS
case VP_E0_STEP_PER_MM: extruder = ExtUI::extruder_t::E0; break;
#endif
#if HAS_MULTI_EXTRUDER
case VP_E1_STEP_PER_MM: extruder = ExtUI::extruder_t::E1; break;
#endif
}
ExtUI::setAxisSteps_per_mm(value, extruder);
skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
@ -506,21 +507,17 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) {
#if HAS_PID_HEATING
void DGUSScreenHandler::handlePIDAutotune(DGUS_VP_Variable &var, void *val_ptr) {
char buf[32] = {0};
switch (var.VP) {
default: break;
#if ENABLED(PIDTEMP)
#if HAS_HOTEND
case VP_PID_AUTOTUNE_E0: // Autotune Extruder 0
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E0);
queue.enqueue_one_now(buf);
queue.enqueue_one_now(F("M303 E0 C5 S210 U1"));
break;
#endif
#if HAS_MULTI_HOTEND
case VP_PID_AUTOTUNE_E1:
sprintf_P(buf, PSTR("M303 E%d C5 S210 U1"), ExtUI::extruder_t::E1);
queue.enqueue_one_now(buf);
queue.enqueue_one_now(F("M303 E1 C5 S210 U1"));
break;
#endif
#endif
@ -536,6 +533,7 @@ void DGUSScreenHandler::handleSettings(DGUS_VP_Variable &var, void *val_ptr) {
gotoScreen(DGUS_SCREEN_WAITING);
#endif
}
#endif // HAS_PID_HEATING
#if HAS_BED_PROBE
@ -607,7 +605,7 @@ void DGUSScreenHandler::handleHeaterControl(DGUS_VP_Variable &var, void *val_ptr
uint16_t value = BE16_P(val_ptr);
if (value) {
queue.inject(F("M1000"));
dgus.writeVariable(VP_SD_Print_Filename, filelist.filename(), 32, true);
dgus.writeStringVar(VP_SD_Print_Filename, filelist.filename());
gotoScreen(PLR_SCREEN_RECOVER);
}
else {

View file

@ -32,10 +32,10 @@
#if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
typedef struct {
ExtUI::extruder_t extruder; // which extruder to operate
uint8_t action; // load or unload
bool heated; // heating done ?
float purge_length; // the length to extrude before unload, prevent filament jam
uint8_t extruder; // Which extruder index to operate
uint8_t action; // Load or unload
bool heated; // Heating done?
float purge_length; // The length to extrude before unload, prevent filament jam
} filament_data_t;
extern filament_data_t filament_data;

View file

@ -37,21 +37,21 @@ public:
// Send all 4 strings that are displayed on the infoscreen, confirmation screen and kill screen
// The bools specifying whether the strings are in RAM or FLASH.
static void sendInfoScreen_P(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash) {
sendInfoScreen_P(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, liinflash);
static void sendInfoScreen_P(PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash);
static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash) {
sendInfoScreen_P(FTOP(line1), FTOP(line2), line3, line4, l1inflash, l2inflash, l3inflash, l4inflash);
}
static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, FSTR_P const line3, FSTR_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash) {
sendInfoScreen_P(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), l1inflash, l2inflash, l3inflash, liinflash);
static void sendInfoScreen(FSTR_P const line1, FSTR_P const line2, FSTR_P const line3, FSTR_P const line4) {
sendInfoScreen_P(FTOP(line1), FTOP(line2), FTOP(line3), FTOP(line4), true, true, true, true);
}
static void handleUserConfirmationPopUp(uint16_t confirmVP, PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool liinflash);
static void handleUserConfirmationPopUp(uint16_t confirmVP, PGM_P const line1, PGM_P const line2, PGM_P const line3, PGM_P const line4, bool l1inflash, bool l2inflash, bool l3inflash, bool l4inflash);
// "M117" Message -- msg is a RAM ptr.
static void setStatusMessage(const char *msg);
// The same for messages from Flash
static void setstatusmessagePGM(PGM_P const msg);
static void setStatusMessage(FSTR_P const fmsg) { setstatusmessagePGM(FTOP(fmsg)); }
static void setStatusMessage_P(PGM_P const msg);
static void setStatusMessage(FSTR_P const fmsg) { setStatusMessage_P(FTOP(fmsg)); }
// Callback for VP "Display wants to change screen on idle printer"
static void screenChangeHookIfIdle(DGUS_VP_Variable &var, void *val_ptr);
// Callback for VP "Screen has been changed"

View file

@ -43,7 +43,7 @@ namespace ExtUI {
void onIdle() { screen.loop(); }
void onPrinterKilled(FSTR_P const error, FSTR_P const) {
screen.sendInfoScreen(GET_TEXT_F(MSG_HALTED), error, FPSTR(NUL_STR), GET_TEXT_F(MSG_PLEASE_RESET), true, true, true, true);
screen.sendInfoScreen(GET_TEXT_F(MSG_HALTED), error, FPSTR(NUL_STR), GET_TEXT_F(MSG_PLEASE_RESET));
screen.gotoScreen(DGUS_SCREEN_KILL);
while (!screen.loop()); // Wait while anything is left to be sent
}
@ -75,13 +75,11 @@ namespace ExtUI {
}
// For fancy LCDs include an icon ID, message, and translated button title
void onUserConfirmRequired(const int icon, const char * const cstr, FSTR_P const fBtn) {
void onUserConfirmRequired(const int, const char * const cstr, FSTR_P const) {
onUserConfirmRequired(cstr);
UNUSED(icon); UNUSED(fBtn);
}
void onUserConfirmRequired(const int icon, FSTR_P const fstr, FSTR_P const fBtn) {
void onUserConfirmRequired(const int, FSTR_P const fstr, FSTR_P const) {
onUserConfirmRequired(fstr);
UNUSED(icon); UNUSED(fBtn);
}
#if ENABLED(ADVANCED_PAUSE_FEATURE)

View file

@ -340,7 +340,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_MOVE_Z, nullptr, screen.handleManualMove, nullptr),
VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr),
#endif
VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr),
VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr),
#if ENABLED(POWER_LOSS_RECOVERY)
VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr),
#endif
@ -361,7 +361,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>),
VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr),
@ -382,7 +382,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), // ERROR: Flow is per-extruder, not per-hotend
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay), // ERROR: Flow is per-extruder, not per-hotend
VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr),
VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay),

View file

@ -116,7 +116,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112;
//constexpr uint16_t VP_MOVE_E4 = 0x2118;
//constexpr uint16_t VP_MOVE_E5 = 0x211A;
constexpr uint16_t VP_HOME_ALL = 0x2120;
constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130;
constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130;
// Power loss recovery
constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180;

View file

@ -141,7 +141,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) {
updateNewScreen(target);
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target);
#endif
}
@ -288,7 +288,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
#endif
break;
case 1: // Load ABS
TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND);
#ifdef PREHEAT_2_TEMP_HOTEND
e_temp = PREHEAT_2_TEMP_HOTEND;
#endif
break;
case 2: // Load PET
#ifdef PREHEAT_3_TEMP_HOTEND
@ -308,9 +310,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
if (filament_data.action == 0) { // Go back to utility screen
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
thermalManager.setTargetHotend(e_temp, 0);
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
thermalManager.setTargetHotend(e_temp, 1);
#endif
#endif
gotoScreen(DGUS_SCREEN_UTILITY);
@ -320,13 +322,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
default: return;
#if HAS_HOTEND
case VP_E0_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E0;
filament_data.extruder = 0;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
#if HAS_MULTI_HOTEND
case VP_E1_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E1;
filament_data.extruder = 1;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
@ -348,7 +350,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
//gotoScreen(DGUS_SCREEN_FILAMENT_LOADING);
filament_data.heated = true;
}
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
}
else { // unload filament
if (!filament_data.heated) {
@ -357,14 +359,14 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
// Before unloading extrude to prevent jamming
if (filament_data.purge_length >= 0) {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
filament_data.purge_length -= movevalue;
}
else {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue;
}
}
ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder);
ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0);
}
}
#endif // DGUS_FILAMENT_LOADUNLOAD

View file

@ -338,7 +338,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_MOVE_Z, nullptr, screen.handleManualMove, nullptr),
VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr),
#endif
VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr),
VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr),
#if ENABLED(POWER_LOSS_RECOVERY)
VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr),
#endif
@ -358,7 +358,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>),
VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr),
@ -379,7 +379,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, nullptr, screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr),
VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay),

View file

@ -116,7 +116,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112;
//constexpr uint16_t VP_MOVE_E4 = 0x2118;
//constexpr uint16_t VP_MOVE_E5 = 0x211A;
constexpr uint16_t VP_HOME_ALL = 0x2120;
constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130;
constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130;
// Power loss recovery
constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180;

View file

@ -143,7 +143,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) {
updateNewScreen(target);
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target);
#endif
}
@ -290,7 +290,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
#endif
break;
case 1: // Load ABS
TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND);
#ifdef PREHEAT_2_TEMP_HOTEND
e_temp = PREHEAT_2_TEMP_HOTEND;
#endif
break;
case 2: // Load PET
#ifdef PREHEAT_3_TEMP_HOTEND
@ -310,9 +312,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
if (filament_data.action == 0) { // Go back to utility screen
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
thermalManager.setTargetHotend(e_temp, 0);
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
thermalManager.setTargetHotend(e_temp, 1);
#endif
#endif
gotoScreen(DGUS_SCREEN_UTILITY);
@ -322,13 +324,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
default: return;
#if HAS_HOTEND
case VP_E0_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E0;
filament_data.extruder = 0;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
#if HAS_MULTI_HOTEND
case VP_E1_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E1;
filament_data.extruder = 1;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
@ -350,7 +352,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
//gotoScreen(DGUS_SCREEN_FILAMENT_LOADING);
filament_data.heated = true;
}
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
}
else { // unload filament
if (!filament_data.heated) {
@ -359,11 +361,11 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
// Before unloading extrude to prevent jamming
if (filament_data.purge_length >= 0) {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
filament_data.purge_length -= movevalue;
}
else {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue;
}
}
ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder);

View file

@ -180,7 +180,7 @@ const uint16_t MKSList_Tool[] PROGMEM = {
0x0000
};
const uint16_t MKSList_EXTRUE[] PROGMEM = {
const uint16_t MKSList_EXTRUDE[] PROGMEM = {
// E Temp
REPEAT(EXTRUDERS, MKSLIST_E_ITEM)
// HB Temp
@ -265,7 +265,7 @@ const uint16_t MKSList_TempOnly[] PROGMEM = {
0x0000
};
const uint16_t MKSList_Pluse[] PROGMEM = {
const uint16_t MKSList_Pulse[] PROGMEM = {
// E Temp
REPEAT(EXTRUDERS, MKSLIST_E_ITEM)
// HB Temp
@ -273,7 +273,7 @@ const uint16_t MKSList_Pluse[] PROGMEM = {
// FAN
VP_Fan0_Percentage,
// Pluse
// Steps/mm
VP_X_STEP_PER_MM,
VP_Y_STEP_PER_MM,
VP_Z_STEP_PER_MM,
@ -291,7 +291,7 @@ const uint16_t MKSList_MaxSpeed[] PROGMEM = {
// FAN
VP_Fan0_Percentage,
// Pluse
// Max Speed
VP_X_MAX_SPEED,
VP_Y_MAX_SPEED,
VP_Z_MAX_SPEED,
@ -463,16 +463,16 @@ const struct VPMapping VPMap[] PROGMEM = {
{ MKSLCD_SCREEN_HOME, MKSList_Home }, // Home, Page 1
{ MKSLCD_SCREEN_SETTING, MKSList_Setting }, // Setting, Page 2
{ MKSLCD_SCREEM_TOOL, MKSList_Tool }, // Page 3
{ MKSLCD_SCREEN_EXTRUDE_P1, MKSList_EXTRUE }, // Page 4
{ MKSLCD_SCREEN_EXTRUDE_P2, MKSList_EXTRUE }, // Page 11
{ MKSLCD_PAUSE_SETTING_EX, MKSList_EXTRUE }, // Page 57
{ MKSLCD_PAUSE_SETTING_EX2, MKSList_EXTRUE }, // Page 61
{ MKSLCD_SCREEN_EXTRUDE_P1, MKSList_EXTRUDE }, // Page 4
{ MKSLCD_SCREEN_EXTRUDE_P2, MKSList_EXTRUDE }, // Page 11
{ MKSLCD_PAUSE_SETTING_EX, MKSList_EXTRUDE }, // Page 57
{ MKSLCD_PAUSE_SETTING_EX2, MKSList_EXTRUDE }, // Page 61
{ MKSLCD_SCREEN_LEVEL, MKSList_LEVEL }, // Page 5
{ MKSLCD_SCREEN_MOVE, MKSList_MOVE }, // Page 6
{ MKSLCD_SCREEN_PRINT, MKSList_Print }, // Page 7
{ MKSLCD_SCREEN_PAUSE, MKSList_Print }, // Page 26
{ MKSLCD_SCREEN_CHOOSE_FILE, MKSList_SD_File }, // Page 15
{ MKSLCD_SCREEN_MOTOR_PLUSE, MKSList_Pluse }, // Page 51
{ MKSLCD_SCREEN_MOTOR_PULSE, MKSList_Pulse }, // Page 51
{ MKSLCD_SCREEN_MOTOR_SPEED, MKSList_MaxSpeed }, // Page 55
{ MKSLCD_SCREEN_MOTOR_ACC_MAX, MKSList_MaxAcc }, // Page 53
{ MKSLCD_SCREEN_LEVEL_DATA, MKSList_Level_Point }, // Page 48
@ -522,7 +522,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_MOVE_DISTANCE, &manualMoveStep, screen.getManualMovestep, nullptr),
VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleManualMove, nullptr),
VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleManualMove, nullptr),
VPHELPER(VP_LEVEL_POINT, nullptr, screen.manualAssistLeveling, nullptr),
#if ENABLED(POWER_LOSS_RECOVERY)
@ -545,7 +545,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_HOTEND
VPHELPER(VP_T_E0_Is, &thermalManager.temp_hotend[0].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E0_Set, &thermalManager.temp_hotend[0].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[ExtUI::extruder_t::E0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E0, &planner.flow_percentage[0], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_EPos, &destination.e, nullptr, screen.sendFloatAsLongValueToDisplay<2>),
VPHELPER(VP_MOVE_E0, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E0_CONTROL, &thermalManager.temp_hotend[0].target, screen.handleHeaterControl, nullptr),
@ -570,7 +570,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#if HAS_MULTI_HOTEND
VPHELPER(VP_T_E1_Is, &thermalManager.temp_hotend[1].celsius, nullptr, screen.sendFloatAsLongValueToDisplay<0>),
VPHELPER(VP_T_E1_Set, &thermalManager.temp_hotend[1].target, screen.handleTemperatureChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[ExtUI::extruder_t::E1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_Flowrate_E1, &planner.flow_percentage[1], screen.handleFlowRateChanged, screen.sendWordValueToDisplay),
VPHELPER(VP_MOVE_E1, nullptr, screen.handleManualExtrude, nullptr),
VPHELPER(VP_E1_CONTROL, &thermalManager.temp_hotend[1].target, screen.handleHeaterControl, nullptr),
VPHELPER(VP_E1_STATUS, &thermalManager.temp_hotend[1].target, nullptr, screen.sendHeaterStatusToDisplay),

View file

@ -53,25 +53,9 @@ extern xyz_int_t tmc_step;
extern uint16_t lcd_default_light;
#if X_HAS_STEALTHCHOP
extern uint16_t tmc_x_current;
#endif
#if Y_HAS_STEALTHCHOP
extern uint16_t tmc_y_current;
#endif
#if Z_HAS_STEALTHCHOP
extern uint16_t tmc_z_current;
#endif
#if E0_HAS_STEALTHCHOP
extern uint16_t tmc_e0_current;
#endif
#if E1_HAS_STEALTHCHOP
extern uint16_t tmc_e1_current;
#endif
typedef enum {
EX_HEATING,
EX_HEAT_STARUS,
EX_HEAT_STATUS,
EX_CHANGING,
EX_CHANGE_STATUS,
EX_NONE,
@ -80,7 +64,7 @@ typedef enum {
typedef struct {
//uint8_t ex_change_flag:1;
//uint8_t ex_heat_flag:1;
uint8_t ex_load_unload_flag:1; //0:unload 1:load
uint8_t ex_load_unload_flag:1; // 0:unload 1:load
EX_STATUS_DEF ex_status;
uint32_t ex_tick_start;
uint32_t ex_tick_end;
@ -121,118 +105,118 @@ extern NOZZLE_PARK_DEF nozzle_park_mks;
enum DGUS_ScreenID : uint8_t {
#if ENABLED(USE_MKS_GREEN_UI)
DGUS_SCREEN_BOOT = 33,
DGUS_SCREEN_MAIN = 60,
DGUS_SCREEN_STATUS = 60,
DGUS_SCREEN_STATUS2 = 60,
DGUS_SCREEN_PREHEAT = 18,
DGUS_SCREEN_POWER_LOSS = 100,
DGUS_SCREEN_MANUALMOVE = 192,
DGUS_SCREEN_UTILITY = 120,
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
DGUS_SCREEN_SDFILELIST = 15,
DGUS_SCREEN_SDPRINTMANIPULATION = 15,
DGUS_SCREEN_SDPRINTTUNE = 17,
DGUS_SCREEN_BOOT = 33,
DGUS_SCREEN_MAIN = 60,
DGUS_SCREEN_STATUS = 60,
DGUS_SCREEN_STATUS2 = 60,
DGUS_SCREEN_PREHEAT = 18,
DGUS_SCREEN_POWER_LOSS = 100,
DGUS_SCREEN_MANUALMOVE = 192,
DGUS_SCREEN_UTILITY = 120,
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
DGUS_SCREEN_SDFILELIST = 15,
DGUS_SCREEN_SDPRINTMANIPULATION = 15,
DGUS_SCREEN_SDPRINTTUNE = 17,
MKSLCD_SCREEN_BOOT = 33,
MKSLCD_SCREEN_HOME = 60, // MKS main page
MKSLCD_SCREEN_SETTING = 62, // MKS Setting page / no wifi whit
MKSLCD_SCREEM_TOOL = 64, // MKS Tool page
MKSLCD_SCREEN_EXTRUDE_P1 = 75,
MKSLCD_SCREEN_EXTRUDE_P2 = 77,
MKSLCD_SCREEN_LEVEL = 73,
MKSLCD_AUTO_LEVEL = 81,
MKSLCD_SCREEN_MOVE = 66,
MKSLCD_SCREEN_PRINT = 68,
MKSLCD_SCREEN_PAUSE = 70,
MKSLCD_SCREEN_CHOOSE_FILE = 87,
MKSLCD_SCREEN_NO_CHOOSE_FILE = 88,
MKSLCD_SCREEN_Config = 101,
MKSLCD_SCREEN_Config_MOTOR = 103,
MKSLCD_SCREEN_MOTOR_PLUSE = 104,
MKSLCD_SCREEN_MOTOR_SPEED = 102,
MKSLCD_SCREEN_MOTOR_ACC_MAX = 105,
MKSLCD_SCREEN_PRINT_CONFIG = 72,
MKSLCD_SCREEN_LEVEL_DATA = 106,
MKSLCD_PrintPause_SET = 107,
MKSLCD_FILAMENT_DATA = 50,
MKSLCD_ABOUT = 83,
MKSLCD_PID = 108,
MKSLCD_PAUSE_SETTING_MOVE = 98,
MKSLCD_PAUSE_SETTING_EX = 96,
MKSLCD_PAUSE_SETTING_EX2 = 97,
MKSLCD_SCREEN_PRINT_CONFIRM = 94,
MKSLCD_SCREEN_EX_CONFIG = 112,
MKSLCD_SCREEN_EEP_Config = 89,
MKSLCD_SCREEN_PrintDone = 92,
MKSLCD_SCREEN_TMC_Config = 111,
MKSLCD_Screen_Offset_Config = 109,
MKSLCD_Screen_PMove = 98,
MKSLCD_Screen_Baby = 79,
MKSLCD_SCREEN_BOOT = 33,
MKSLCD_SCREEN_HOME = 60, // MKS main page
MKSLCD_SCREEN_SETTING = 62, // MKS Setting page / no wifi whit
MKSLCD_SCREEM_TOOL = 64, // MKS Tool page
MKSLCD_SCREEN_EXTRUDE_P1 = 75,
MKSLCD_SCREEN_EXTRUDE_P2 = 77,
MKSLCD_SCREEN_LEVEL = 73,
MKSLCD_AUTO_LEVEL = 81,
MKSLCD_SCREEN_MOVE = 66,
MKSLCD_SCREEN_PRINT = 68,
MKSLCD_SCREEN_PAUSE = 70,
MKSLCD_SCREEN_CHOOSE_FILE = 87,
MKSLCD_SCREEN_NO_CHOOSE_FILE = 88,
MKSLCD_SCREEN_Config = 101,
MKSLCD_SCREEN_Config_MOTOR = 103,
MKSLCD_SCREEN_MOTOR_PULSE = 104,
MKSLCD_SCREEN_MOTOR_SPEED = 102,
MKSLCD_SCREEN_MOTOR_ACC_MAX = 105,
MKSLCD_SCREEN_PRINT_CONFIG = 72,
MKSLCD_SCREEN_LEVEL_DATA = 106,
MKSLCD_PrintPause_SET = 107,
MKSLCD_FILAMENT_DATA = 50,
MKSLCD_ABOUT = 83,
MKSLCD_PID = 108,
MKSLCD_PAUSE_SETTING_MOVE = 98,
MKSLCD_PAUSE_SETTING_EX = 96,
MKSLCD_PAUSE_SETTING_EX2 = 97,
MKSLCD_SCREEN_PRINT_CONFIRM = 94,
MKSLCD_SCREEN_EX_CONFIG = 112,
MKSLCD_SCREEN_EEP_Config = 89,
MKSLCD_SCREEN_PrintDone = 92,
MKSLCD_SCREEN_TMC_Config = 111,
MKSLCD_Screen_Offset_Config = 109,
MKSLCD_Screen_PMove = 98,
MKSLCD_Screen_Baby = 79,
#else
DGUS_SCREEN_BOOT = 120,
DGUS_SCREEN_MAIN = 1,
DGUS_SCREEN_BOOT = 120,
DGUS_SCREEN_MAIN = 1,
DGUS_SCREEN_STATUS = 1,
DGUS_SCREEN_STATUS2 = 1,
DGUS_SCREEN_PREHEAT = 18,
DGUS_SCREEN_POWER_LOSS = 100,
DGUS_SCREEN_MANUALMOVE = 192,
DGUS_SCREEN_UTILITY = 120,
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
DGUS_SCREEN_SDFILELIST = 15,
DGUS_SCREEN_SDPRINTMANIPULATION = 15,
DGUS_SCREEN_SDPRINTTUNE = 17,
DGUS_SCREEN_STATUS = 1,
DGUS_SCREEN_STATUS2 = 1,
DGUS_SCREEN_PREHEAT = 18,
DGUS_SCREEN_POWER_LOSS = 100,
DGUS_SCREEN_MANUALMOVE = 192,
DGUS_SCREEN_UTILITY = 120,
DGUS_SCREEN_FILAMENT_UNLOADING = 158,
DGUS_SCREEN_SDFILELIST = 15,
DGUS_SCREEN_SDPRINTMANIPULATION = 15,
DGUS_SCREEN_SDPRINTTUNE = 17,
MKSLCD_SCREEN_BOOT = 0,
MKSLCD_SCREEN_HOME = 1, // MKS main page
MKSLCD_SCREEN_SETTING = 2, // MKS Setting page / no wifi whit
MKSLCD_SCREEM_TOOL = 3, // MKS Tool page
MKSLCD_SCREEN_EXTRUDE_P1 = 4,
MKSLCD_SCREEN_EXTRUDE_P2 = 11,
MKSLCD_SCREEN_LEVEL = 5,
MKSLCD_AUTO_LEVEL = 73,
MKSLCD_SCREEN_LEVEL_PRESS = 9,
MKSLCD_SCREEN_MOVE = 6,
MKSLCD_SCREEN_PRINT = 7,
MKSLCD_SCREEN_PRINT_PRESS = 13,
MKSLCD_SCREEN_PAUSE = 26,
MKSLCD_SCREEN_PAUSE_PRESS = 26,
MKSLCD_SCREEN_CHOOSE_FILE = 15,
MKSLCD_SCREEN_NO_CHOOSE_FILE = 17,
MKSLCD_SCREEN_Config = 46,
MKSLCD_SCREEN_Config_MOTOR = 47,
MKSLCD_SCREEN_MOTOR_PLUSE = 51,
MKSLCD_SCREEN_MOTOR_SPEED = 55,
MKSLCD_SCREEN_MOTOR_ACC_MAX = 53,
MKSLCD_SCREEN_PRINT_CONFIG = 60,
MKSLCD_SCREEN_LEVEL_DATA = 48,
MKSLCD_PrintPause_SET = 49,
MKSLCD_FILAMENT_DATA = 50,
MKSLCD_ABOUT = 36,
MKSLCD_PID = 56,
MKSLCD_PAUSE_SETTING_MOVE = 58,
MKSLCD_PAUSE_SETTING_EX = 57,
MKSLCD_PAUSE_SETTING_EX2 = 61,
MKSLCD_SCREEN_NO_FILE = 42,
MKSLCD_SCREEN_PRINT_CONFIRM = 43,
MKSLCD_SCREEN_EX_CONFIG = 65,
MKSLCD_SCREEN_EEP_Config = 20,
MKSLCD_SCREEN_PrintDone = 25,
MKSLCD_SCREEN_TMC_Config = 70,
MKSLCD_Screen_Offset_Config = 30,
MKSLCD_Screen_PMove = 64,
MKSLCD_Screen_Baby = 71,
MKSLCD_SCREEN_BOOT = 0,
MKSLCD_SCREEN_HOME = 1, // MKS main page
MKSLCD_SCREEN_SETTING = 2, // MKS Setting page / no wifi whit
MKSLCD_SCREEM_TOOL = 3, // MKS Tool page
MKSLCD_SCREEN_EXTRUDE_P1 = 4,
MKSLCD_SCREEN_EXTRUDE_P2 = 11,
MKSLCD_SCREEN_LEVEL = 5,
MKSLCD_AUTO_LEVEL = 73,
MKSLCD_SCREEN_LEVEL_PRESS = 9,
MKSLCD_SCREEN_MOVE = 6,
MKSLCD_SCREEN_PRINT = 7,
MKSLCD_SCREEN_PRINT_PRESS = 13,
MKSLCD_SCREEN_PAUSE = 26,
MKSLCD_SCREEN_PAUSE_PRESS = 26,
MKSLCD_SCREEN_CHOOSE_FILE = 15,
MKSLCD_SCREEN_NO_CHOOSE_FILE = 17,
MKSLCD_SCREEN_Config = 46,
MKSLCD_SCREEN_Config_MOTOR = 47,
MKSLCD_SCREEN_MOTOR_PULSE = 51,
MKSLCD_SCREEN_MOTOR_SPEED = 55,
MKSLCD_SCREEN_MOTOR_ACC_MAX = 53,
MKSLCD_SCREEN_PRINT_CONFIG = 60,
MKSLCD_SCREEN_LEVEL_DATA = 48,
MKSLCD_PrintPause_SET = 49,
MKSLCD_FILAMENT_DATA = 50,
MKSLCD_ABOUT = 36,
MKSLCD_PID = 56,
MKSLCD_PAUSE_SETTING_MOVE = 58,
MKSLCD_PAUSE_SETTING_EX = 57,
MKSLCD_PAUSE_SETTING_EX2 = 61,
MKSLCD_SCREEN_NO_FILE = 42,
MKSLCD_SCREEN_PRINT_CONFIRM = 43,
MKSLCD_SCREEN_EX_CONFIG = 65,
MKSLCD_SCREEN_EEP_Config = 20,
MKSLCD_SCREEN_PrintDone = 25,
MKSLCD_SCREEN_TMC_Config = 70,
MKSLCD_Screen_Offset_Config = 30,
MKSLCD_Screen_PMove = 64,
MKSLCD_Screen_Baby = 71,
#endif
DGUS_SCREEN_CONFIRM = 240,
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
DGUS_SCREEN_WAITING = 251,
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
DGUS_SCREEN_UNUSED = 255
DGUS_SCREEN_CONFIRM = 240,
DGUS_SCREEN_KILL = 250, //!< Kill Screen. Must always be 250 (to be able to display "Error wrong LCD Version")
DGUS_SCREEN_WAITING = 251,
DGUS_SCREEN_POPUP = 252, //!< special target, popup screen will also return this code to say "return to previous screen"
DGUS_SCREEN_UNUSED = 255
};
// Place for status messages.
@ -290,7 +274,7 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint8_t VP_MSGSTR4_LEN = 0x20;
constexpr uint16_t VP_MARLIN_VERSION = 0x1A00;
constexpr uint8_t VP_MARLIN_VERSION_LEN = 16; // there is more space on the display, if needed.
constexpr uint8_t VP_MARLIN_VERSION_LEN = 16; // there is more space on the display, if needed.
constexpr uint16_t VP_SCREENCHANGE_ASK = 0x1500;
constexpr uint16_t VP_SCREENCHANGE = 0x1501; // Key-Return button to new menu pressed. Data contains target screen in low byte and info in high byte.
@ -347,8 +331,9 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_MOVE_E5 = 0x231A;
constexpr uint16_t VP_MOVE_E6 = 0x231C;
constexpr uint16_t VP_MOVE_E7 = 0x231E;
constexpr uint16_t VP_HOME_ALL = 0x2320;
constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2330;
constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2330;
constexpr uint16_t VP_MOVE_DISTANCE = 0x2334;
constexpr uint16_t VP_X_HOME = 0x2336;
constexpr uint16_t VP_Y_HOME = 0x2338;
@ -383,7 +368,7 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x2500;
constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x2504;
constexpr uint16_t VP_LOAD_Filament = 0x2508;
// constexpr uint16_t VP_LOAD_UNLOAD_Cancle = 0x250A;
//constexpr uint16_t VP_LOAD_UNLOAD_Cancel = 0x250A;
constexpr uint16_t VP_UNLOAD_Filament = 0x250B;
constexpr uint16_t VP_Filament_distance = 0x2600;
constexpr uint16_t VP_Filament_speed = 0x2604;
@ -467,10 +452,10 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_SD_Print_Filename = 0x32C0;
// X Y Z Point
constexpr uint16_t VP_XPos = 0x3300; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_YPos = 0x3302; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_ZPos = 0x3304; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_EPos = 0x3306; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_XPos = 0x3300; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_YPos = 0x3302; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_ZPos = 0x3304; // 4 Byte Fixed point number; format xxx.yy
constexpr uint16_t VP_EPos = 0x3306; // 4 Byte Fixed point number; format xxx.yy
// Print
constexpr uint16_t VP_PrintProgress_Percentage = 0x3330; // 2 Byte Integer (0..100)
@ -481,16 +466,16 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_PrintsTotal = 0x3380;
constexpr uint16_t VP_PrintsTotal_LEN = 16;
constexpr uint16_t VP_File_Pictutr0 = 0x3400;
constexpr uint16_t VP_File_Pictutr1 = 0x3402;
constexpr uint16_t VP_File_Pictutr2 = 0x3404;
constexpr uint16_t VP_File_Pictutr3 = 0x3406;
constexpr uint16_t VP_File_Pictutr4 = 0x3408;
constexpr uint16_t VP_File_Pictutr5 = 0x340A;
constexpr uint16_t VP_File_Pictutr6 = 0x340C;
constexpr uint16_t VP_File_Pictutr7 = 0x340E;
constexpr uint16_t VP_File_Pictutr8 = 0x3410;
constexpr uint16_t VP_File_Pictutr9 = 0x3412;
constexpr uint16_t VP_File_Picture0 = 0x3400;
constexpr uint16_t VP_File_Picture1 = 0x3402;
constexpr uint16_t VP_File_Picture2 = 0x3404;
constexpr uint16_t VP_File_Picture3 = 0x3406;
constexpr uint16_t VP_File_Picture4 = 0x3408;
constexpr uint16_t VP_File_Picture5 = 0x340A;
constexpr uint16_t VP_File_Picture6 = 0x340C;
constexpr uint16_t VP_File_Picture7 = 0x340E;
constexpr uint16_t VP_File_Picture8 = 0x3410;
constexpr uint16_t VP_File_Picture9 = 0x3412;
constexpr uint16_t VP_BED_STATUS = 0x341C;
@ -512,101 +497,103 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_PrintTime_S = 0x3504;
// PIDs
constexpr uint16_t VP_E0_PID_P = 0x3700; // at the moment , uint16_t , 0~1638.4
constexpr uint16_t VP_E0_PID_I = 0x3702;
constexpr uint16_t VP_E0_PID_D = 0x3704;
constexpr uint16_t VP_E1_PID_P = 0x3706; // at the moment , uint16_t , 0~1638.4
constexpr uint16_t VP_E1_PID_I = 0x3708;
constexpr uint16_t VP_E1_PID_D = 0x370A;
constexpr uint16_t VP_BED_PID_P = 0x3710;
constexpr uint16_t VP_BED_PID_I = 0x3712;
constexpr uint16_t VP_BED_PID_D = 0x3714;
constexpr uint16_t VP_E0_PID_P = 0x3700; // at the moment , uint16_t , 0~1638.4
constexpr uint16_t VP_E0_PID_I = 0x3702;
constexpr uint16_t VP_E0_PID_D = 0x3704;
constexpr uint16_t VP_E1_PID_P = 0x3706; // at the moment , uint16_t , 0~1638.4
constexpr uint16_t VP_E1_PID_I = 0x3708;
constexpr uint16_t VP_E1_PID_D = 0x370A;
constexpr uint16_t VP_BED_PID_P = 0x3710;
constexpr uint16_t VP_BED_PID_I = 0x3712;
constexpr uint16_t VP_BED_PID_D = 0x3714;
constexpr uint16_t VP_EEPROM_CTRL = 0x3720;
constexpr uint16_t VP_EEPROM_CTRL = 0x3720;
constexpr uint16_t VP_OFFSET_X = 0x3724;
constexpr uint16_t VP_OFFSET_Y = 0x3728;
constexpr uint16_t VP_OFFSET_Z = 0x372B;
constexpr uint16_t VP_OFFSET_X = 0x3724;
constexpr uint16_t VP_OFFSET_Y = 0x3728;
constexpr uint16_t VP_OFFSET_Z = 0x372B;
// PID autotune
constexpr uint16_t VP_PID_AUTOTUNE_E0 = 0x3800;
constexpr uint16_t VP_PID_AUTOTUNE_E1 = 0x3802;
constexpr uint16_t VP_PID_AUTOTUNE_E2 = 0x3804;
constexpr uint16_t VP_PID_AUTOTUNE_E3 = 0x3806;
constexpr uint16_t VP_PID_AUTOTUNE_E4 = 0x3808;
constexpr uint16_t VP_PID_AUTOTUNE_E5 = 0x380A;
constexpr uint16_t VP_PID_AUTOTUNE_BED = 0x380C;
constexpr uint16_t VP_PID_AUTOTUNE_E0 = 0x3800;
constexpr uint16_t VP_PID_AUTOTUNE_E1 = 0x3802;
constexpr uint16_t VP_PID_AUTOTUNE_E2 = 0x3804;
constexpr uint16_t VP_PID_AUTOTUNE_E3 = 0x3806;
constexpr uint16_t VP_PID_AUTOTUNE_E4 = 0x3808;
constexpr uint16_t VP_PID_AUTOTUNE_E5 = 0x380A;
constexpr uint16_t VP_PID_AUTOTUNE_BED = 0x380C;
// Calibrate Z
constexpr uint16_t VP_Z_CALIBRATE = 0x3810;
constexpr uint16_t VP_Z_CALIBRATE = 0x3810;
constexpr uint16_t VP_AutoTurnOffSw = 0x3812;
constexpr uint16_t VP_LCD_BLK = 0x3814;
constexpr uint16_t VP_AutoTurnOffSw = 0x3812;
constexpr uint16_t VP_LCD_BLK = 0x3814;
constexpr uint16_t VP_X_PARK_POS = 0x3900;
constexpr uint16_t VP_Y_PARK_POS = 0x3902;
constexpr uint16_t VP_Z_PARK_POS = 0x3904;
constexpr uint16_t VP_X_PARK_POS = 0x3900;
constexpr uint16_t VP_Y_PARK_POS = 0x3902;
constexpr uint16_t VP_Z_PARK_POS = 0x3904;
/* -------------------------------0x4000-0x4FFF------------------------------- */
// Heater Control Buttons , triged between "cool down" and "heat PLA" state
constexpr uint16_t VP_E0_CONTROL = 0x4010;
constexpr uint16_t VP_E1_CONTROL = 0x4012;
constexpr uint16_t VP_E0_CONTROL = 0x4010;
constexpr uint16_t VP_E1_CONTROL = 0x4012;
//constexpr uint16_t VP_E2_CONTROL = 0x2214;
//constexpr uint16_t VP_E3_CONTROL = 0x2216;
//constexpr uint16_t VP_E4_CONTROL = 0x2218;
//constexpr uint16_t VP_E5_CONTROL = 0x221A;
constexpr uint16_t VP_BED_CONTROL = 0x401C;
constexpr uint16_t VP_BED_CONTROL = 0x401C;
// Preheat
constexpr uint16_t VP_E0_BED_PREHEAT = 0x4020;
constexpr uint16_t VP_E1_BED_PREHEAT = 0x4022;
constexpr uint16_t VP_E0_BED_PREHEAT = 0x4020;
constexpr uint16_t VP_E1_BED_PREHEAT = 0x4022;
//constexpr uint16_t VP_E2_BED_PREHEAT = 0x4024;
//constexpr uint16_t VP_E3_BED_PREHEAT = 0x4026;
//constexpr uint16_t VP_E4_BED_PREHEAT = 0x4028;
//constexpr uint16_t VP_E5_BED_PREHEAT = 0x402A;
// Filament load and unload
// constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x4030;
// constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x4032;
//constexpr uint16_t VP_E0_FILAMENT_LOAD_UNLOAD = 0x4030;
//constexpr uint16_t VP_E1_FILAMENT_LOAD_UNLOAD = 0x4032;
// Settings store , reset
// Level data
constexpr uint16_t VP_Level_Point_One_X = 0x4100;
constexpr uint16_t VP_Level_Point_One_Y = 0x4102;
constexpr uint16_t VP_Level_Point_Two_X = 0x4104;
constexpr uint16_t VP_Level_Point_Two_Y = 0x4106;
constexpr uint16_t VP_Level_Point_Three_X = 0x4108;
constexpr uint16_t VP_Level_Point_Three_Y = 0x410A;
constexpr uint16_t VP_Level_Point_Four_X = 0x410C;
constexpr uint16_t VP_Level_Point_Four_Y = 0x410E;
constexpr uint16_t VP_Level_Point_Five_X = 0x4110;
constexpr uint16_t VP_Level_Point_Five_Y = 0x4112;
constexpr uint16_t VP_Level_Point_One_X = 0x4100;
constexpr uint16_t VP_Level_Point_One_Y = 0x4102;
constexpr uint16_t VP_Level_Point_Two_X = 0x4104;
constexpr uint16_t VP_Level_Point_Two_Y = 0x4106;
constexpr uint16_t VP_Level_Point_Three_X = 0x4108;
constexpr uint16_t VP_Level_Point_Three_Y = 0x410A;
constexpr uint16_t VP_Level_Point_Four_X = 0x410C;
constexpr uint16_t VP_Level_Point_Four_Y = 0x410E;
constexpr uint16_t VP_Level_Point_Five_X = 0x4110;
constexpr uint16_t VP_Level_Point_Five_Y = 0x4112;
/* H43 Version */
constexpr uint16_t VP_MKS_H43_VERSION = 0x4A00; // MKS H43 V1.0.0
constexpr uint16_t VP_MKS_H43_VERSION_LEN = 16;
constexpr uint16_t VP_MKS_H43_UpdataVERSION = 0x4A10; // MKS H43 V1.0.0
constexpr uint16_t VP_MKS_H43_UpdataVERSION_LEN = 16;
constexpr uint16_t VP_MKS_H43_VERSION = 0x4A00; // MKS H43 V1.0.0
constexpr uint16_t VP_MKS_H43_VERSION_LEN = 16;
constexpr uint16_t VP_MKS_H43_UpdataVERSION = 0x4A10; // MKS H43 V1.0.0
constexpr uint16_t VP_MKS_H43_UpdataVERSION_LEN = 16;
/* -------------------------------0x5000-0xFFFF------------------------------- */
constexpr uint16_t VP_HOME_Dis = 0x5000;
constexpr uint16_t VP_Setting_Dis = 0x5010;
constexpr uint16_t VP_Tool_Dis = 0x5020;
constexpr uint16_t VP_Printing_Dis = 0x5030;
constexpr uint16_t VP_Print_Dis = 0x5250;
constexpr uint16_t VP_Language_Dis = 0x5080;
constexpr uint16_t VP_LossPoint_Dis = 0x5090;
constexpr uint16_t VP_PrintPauseConfig_Dis = 0x5120;
constexpr uint16_t VP_MotorPluse_Dis = 0x5140;
constexpr uint16_t VP_MotorPulse_Dis = 0x5140;
constexpr uint16_t VP_MotorMaxSpeed_Dis = 0x5150;
constexpr uint16_t VP_MotorMaxAcc_Dis = 0x5160;
constexpr uint16_t VP_X_Pluse_Dis = 0x5170;
constexpr uint16_t VP_Y_Pluse_Dis = 0x5180;
constexpr uint16_t VP_Z_Pluse_Dis = 0x5190;
constexpr uint16_t VP_E0_Pluse_Dis = 0x51A0;
constexpr uint16_t VP_E1_Pluse_Dis = 0x51B0;
constexpr uint16_t VP_X_Pulse_Dis = 0x5170;
constexpr uint16_t VP_Y_Pulse_Dis = 0x5180;
constexpr uint16_t VP_Z_Pulse_Dis = 0x5190;
constexpr uint16_t VP_E0_Pulse_Dis = 0x51A0;
constexpr uint16_t VP_E1_Pulse_Dis = 0x51B0;
constexpr uint16_t VP_X_Max_Speed_Dis = 0x5280;
constexpr uint16_t VP_Y_Max_Speed_Dis = 0x5290;
@ -614,11 +601,11 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_E0_Max_Speed_Dis = 0x52B0;
constexpr uint16_t VP_E1_Max_Speed_Dis = 0x52C0;
constexpr uint16_t VP_X_Max_Acc_Speed_Dis = 0x51E0;
constexpr uint16_t VP_Y_Max_Acc_Speed_Dis = 0x51F0;
constexpr uint16_t VP_Z_Max_Acc_Speed_Dis = 0x5200;
constexpr uint16_t VP_E0_Max_Acc_Speed_Dis = 0x5210;
constexpr uint16_t VP_E1_Max_Acc_Speed_Dis = 0x5220;
constexpr uint16_t VP_X_Max_Acc_Dis = 0x51E0;
constexpr uint16_t VP_Y_Max_Acc_Dis = 0x51F0;
constexpr uint16_t VP_Z_Max_Acc_Dis = 0x5200;
constexpr uint16_t VP_E0_Max_Acc_Dis = 0x5210;
constexpr uint16_t VP_E1_Max_Acc_Dis = 0x5220;
constexpr uint16_t VP_PrintTime_Dis = 0x5470;
constexpr uint16_t VP_E0_Temp_Dis = 0x5310;
@ -672,8 +659,8 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_Length_Dis = 0x5B00;
constexpr uint16_t VP_PrintConfrim_Info_Dis = 0x5B90;
constexpr uint16_t VP_StopPrintConfrim_Info_Dis = 0x5B80;
constexpr uint16_t VP_PrintConfirm_Info_Dis = 0x5B90;
constexpr uint16_t VP_StopPrintConfirm_Info_Dis = 0x5B80;
constexpr uint16_t VP_Point_One_Dis = 0x5BA0;
constexpr uint16_t VP_Point_Two_Dis = 0x5BB0;
@ -681,8 +668,6 @@ constexpr uint16_t SP_T_Bed_Set = 0x5040;
constexpr uint16_t VP_Point_Four_Dis = 0x5BD0;
constexpr uint16_t VP_Point_Five_Dis = 0x5BE0;
constexpr uint16_t VP_Print_Dis = 0x5250;
constexpr uint16_t VP_About_Dis = 0x5A00;
constexpr uint16_t VP_Config_Dis = 0x5A10;
constexpr uint16_t VP_Filament_Dis = 0x5A20;

File diff suppressed because it is too large Load diff

View file

@ -25,6 +25,9 @@
enum DGUS_ScreenID : uint8_t;
enum MKS_Choose : uint8_t { MKS_Language_Choose, MKS_Language_NoChoose };
enum MKS_Language : uint8_t { MKS_SimpleChinese, MKS_English };
class DGUSScreenHandlerMKS : public DGUSScreenHandler {
public:
DGUSScreenHandlerMKS() = default;
@ -53,7 +56,7 @@ public:
#if ENABLED(PREVENT_COLD_EXTRUSION)
static void handleGetExMinTemp(DGUS_VP_Variable &var, void *val_ptr);
#endif
static void languageDisplay(uint8_t var);
static void updateDisplayLanguage();
static void tmcChangeConfig(DGUS_VP_Variable &var, void *val_ptr);
static void getTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr);
static void languagePInit();
@ -105,9 +108,6 @@ public:
static bool loop();
};
enum MKS_Choose : uint8_t { MKS_Language_Choose, MKS_Language_NoChoose };
enum MKS_Language : uint8_t { MKS_SimpleChinese, MKS_English };
extern MKS_Language mks_language_index;
extern bool DGUSAutoTurnOff;

View file

@ -150,7 +150,7 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
VPHELPER(VP_HOME_ALL, nullptr, screen.handleManualMove, nullptr),
#endif
VPHELPER(VP_MOTOR_LOCK_UNLOK, nullptr, screen.handleMotorLockUnlock, nullptr),
VPHELPER(VP_MOTOR_LOCK_UNLOCK, nullptr, screen.handleMotorLockUnlock, nullptr),
#if ENABLED(POWER_LOSS_RECOVERY)
VPHELPER(VP_POWER_LOSS_RECOVERY, nullptr, screen.handlePowerLossRecovery, nullptr),
#endif

View file

@ -111,7 +111,7 @@ constexpr uint16_t VP_MOVE_E1 = 0x2112;
//constexpr uint16_t VP_MOVE_E4 = 0x2118;
//constexpr uint16_t VP_MOVE_E5 = 0x211A;
constexpr uint16_t VP_HOME_ALL = 0x2120;
constexpr uint16_t VP_MOTOR_LOCK_UNLOK = 0x2130;
constexpr uint16_t VP_MOTOR_LOCK_UNLOCK = 0x2130;
// Power loss recovery
constexpr uint16_t VP_POWER_LOSS_RECOVERY = 0x2180;

View file

@ -143,7 +143,7 @@ void DGUSScreenHandler::screenChangeHook(DGUS_VP_Variable &var, void *val_ptr) {
updateNewScreen(target);
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
if (!findScreenVPMapList(target)) DEBUG_ECHOLNPGM("WARNING: No screen Mapping found for ", target);
#endif
}
@ -290,7 +290,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
#endif
break;
case 1: // Load ABS
TERN_(PREHEAT_2_TEMP_HOTEND, e_temp = PREHEAT_2_TEMP_HOTEND);
#ifdef PREHEAT_2_TEMP_HOTEND
e_temp = PREHEAT_2_TEMP_HOTEND;
#endif
break;
case 2: // Load PET
#ifdef PREHEAT_3_TEMP_HOTEND
@ -310,9 +312,9 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
if (filament_data.action == 0) { // Go back to utility screen
#if HAS_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E0);
thermalManager.setTargetHotend(e_temp, 0);
#if HAS_MULTI_HOTEND
thermalManager.setTargetHotend(e_temp, ExtUI::extruder_t::E1);
thermalManager.setTargetHotend(e_temp, 1);
#endif
#endif
gotoScreen(DGUS_SCREEN_UTILITY);
@ -322,13 +324,13 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
default: return;
#if HAS_HOTEND
case VP_E0_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E0;
filament_data.extruder = 0;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
#if HAS_MULTI_HOTEND
case VP_E1_FILAMENT_LOAD_UNLOAD:
filament_data.extruder = ExtUI::extruder_t::E1;
filament_data.extruder = 1;
thermalManager.setTargetHotend(e_temp, filament_data.extruder);
break;
#endif
@ -350,7 +352,7 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
//gotoScreen(DGUS_SCREEN_FILAMENT_LOADING);
filament_data.heated = true;
}
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
}
else { // unload filament
if (!filament_data.heated) {
@ -359,14 +361,14 @@ void DGUSScreenHandler::handleManualMove(DGUS_VP_Variable &var, void *val_ptr) {
}
// Before unloading extrude to prevent jamming
if (filament_data.purge_length >= 0) {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) + movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) + movevalue;
filament_data.purge_length -= movevalue;
}
else {
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder) - movevalue;
movevalue = ExtUI::getAxisPosition_mm(filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0) - movevalue;
}
}
ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder);
ExtUI::setAxisPosition_mm(movevalue, filament_data.extruder ? ExtUI::extruder_t::E1 : ExtUI::extruder_t::E0);
}
}
#endif // DGUS_FILAMENT_LOADUNLOAD

View file

@ -52,7 +52,7 @@ void DGUS_SDCardHandler::Reset() {
currentSeekPos++;
}
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
DEBUG_ECHOPGM("Reset() :", fileCount);
DEBUG_CHAR('/');
DEBUG_ECHOLN(currentSeekPos);
@ -71,7 +71,7 @@ void DGUS_SDCardHandler::onPageLoad(DGUS_SDCardHandler::page_t page) {
uint16_t currentSeekPos = 0;
uint16_t entriesCount = fileList.count();
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
DEBUG_ECHOLNPGM("onPageLoad(): seek page ", pageIndex);
#endif
while (currentFilePos < pageIndex * DGUS_E3S1PRO_BASIC_SDCARD_FILES_PER_PAGE
@ -83,7 +83,7 @@ void DGUS_SDCardHandler::onPageLoad(DGUS_SDCardHandler::page_t page) {
currentFilePos++;
}
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
DEBUG_ECHOPGM("onPageLoad() :", currentFilePos);
DEBUG_CHAR('/');
DEBUG_ECHOLN(currentSeekPos - 1);

View file

@ -208,7 +208,7 @@ void DGUSScreenHandler::userConfirmation() {
if (confirm_return_screen >= DGUS_ScreenID::FILE1 && confirm_return_screen <= DGUS_ScreenID::FILE4)
dgus_sdcard_handler.onPageLoad(DGUS_SCREEN_TO_PAGE(confirm_return_screen));
#ifdef DEBUG_DGUSLCD
#if ENABLED(DEBUG_DGUSLCD)
DEBUG_ECHOLNPGM("trig confirmed, ret:", (uint16_t)confirm_return_screen);
#endif

View file

@ -112,7 +112,7 @@ void menu_advanced_settings();
#else
#define S1_SPACE(I)
#endif
#define STOP_ITEM(A,I,M,L) TERN(HAS_##A##I##_##M##_STATE, _STOP_ITEM, _IF_1_ELSE)(STRINGIFY(A) STRINGIFY(I) S1_SPACE(I) " " L, A##I##_##M)
#define STOP_ITEM(A,I,M,L) TERN(HAS_##A##I##_##M##_STATE, _STOP_ITEM, OMIT)(STRINGIFY(A) STRINGIFY(I) S1_SPACE(I) " " L, A##I##_##M)
#define STOP_MINMAX(A,I) STOP_ITEM(A,I,MIN,"Min") STOP_ITEM(A,I,MAX,"Max")
#define FIL_ITEM(N) PSTRING_ITEM_N_P(N-1, MSG_FILAMENT_EN, FILAMENT_IS_OUT(N) ? PSTR("out") : PSTR("PRESENT"), SS_FULL);

View file

@ -32,7 +32,7 @@
#define ES_ENUM(A,M) _ES_ENUM(A,M)
#define _ES_ITEM(N) , N
#define ES_ITEM(K,N) TERN(K,_ES_ITEM,_IF_1_ELSE)(N)
#define ES_ITEM(K,N) TERN(K,_ES_ITEM,OMIT)(N)
#define _ESN_ITEM(K,A,M) ES_ITEM(K,ES_ENUM(A,M))
#define ES_MINMAX(A) ES_ITEM(HAS_##A##_MIN_STATE, ES_ENUM(A,MIN)) ES_ITEM(HAS_##A##_MAX_STATE, ES_ENUM(A,MAX))

View file

@ -128,7 +128,7 @@
#endif
// Verify that drivers match the hardware
#if (HAS_X_AXIS && !AXIS_DRIVER_TYPE_X(DRV8825)) || (HAS_Y_AXIS && !AXIS_DRIVER_TYPE_Y(DRV8825)) || (HAS_Z_AXIS && !AXIS_DRIVER_TYPE_Z(DRV8825)) || (HAS_EXTRUDER && !AXIS_DRIVER_TYPE_E0(DRV8825))
#if (HAS_X_AXIS && !AXIS_DRIVER_TYPE_X(DRV8825)) || (HAS_Y_AXIS && !AXIS_DRIVER_TYPE_Y(DRV8825)) || (HAS_Z_AXIS && !AXIS_DRIVER_TYPE_Z(DRV8825)) || (HAS_EXTRUDERS && !AXIS_DRIVER_TYPE_E0(DRV8825))
#error "Minitronics v2.0 has hard-wired DRV8825 drivers. Comment out this line to continue."
#endif

View file

@ -13,6 +13,13 @@ restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1 DGUS_LCD_UI FYSETC
exec_test $1 $2 "DGUS (FYSETC)" "$3"
#
# Test DGUS_LCD_UI MKS
#
restore_configs
opt_set MOTHERBOARD BOARD_FYSETC_F6_13 LCD_SERIAL_PORT 1 DGUS_LCD_UI MKS
exec_test $1 $2 "DGUS (MKS)" "$3"
#
# Test DGUS_LCD_UI RELOADED
#