My Marlin configs for Fabrikator Mini and CTC i3 Pro B
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

DGUSSetupHandler.cpp 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. /**
  2. * Marlin 3D Printer Firmware
  3. * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  4. *
  5. * Based on Sprinter and grbl.
  6. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
  7. *
  8. * This program is free software: you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation, either version 3 of the License, or
  11. * (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. *
  21. */
  22. #include "../../../inc/MarlinConfigPre.h"
  23. #if ENABLED(DGUS_LCD_UI_RELOADED)
  24. #include "DGUSSetupHandler.h"
  25. #include "DGUSDisplay.h"
  26. #include "DGUSScreenHandler.h"
  27. #include "../../../gcode/queue.h"
  28. #if ENABLED(SDSUPPORT)
  29. bool DGUSSetupHandler::Print() {
  30. dgus_screen_handler.filelist.refresh();
  31. while (!dgus_screen_handler.filelist.isAtRootDir()) {
  32. dgus_screen_handler.filelist.upDir();
  33. }
  34. dgus_screen_handler.filelist_offset = 0;
  35. dgus_screen_handler.filelist_selected = -1;
  36. return true;
  37. }
  38. #endif
  39. bool DGUSSetupHandler::PrintStatus() {
  40. if (printingIsActive() || printingIsPaused()) {
  41. return true;
  42. }
  43. dgus_screen_handler.TriggerScreenChange(DGUS_Screen::PRINT_FINISHED);
  44. return false;
  45. }
  46. bool DGUSSetupHandler::PrintAdjust() {
  47. if (printingIsActive() || printingIsPaused()) {
  48. return true;
  49. }
  50. dgus_screen_handler.TriggerScreenChange(DGUS_Screen::PRINT_FINISHED);
  51. return false;
  52. }
  53. bool DGUSSetupHandler::LevelingMenu() {
  54. ExtUI::setLevelingActive(dgus_screen_handler.leveling_active);
  55. if (!dgus_screen_handler.IsPrinterIdle()) {
  56. dgus_screen_handler.SetStatusMessagePGM(DGUS_MSG_BUSY);
  57. return false;
  58. }
  59. if (ExtUI::isPositionKnown()) {
  60. if (ExtUI::getAxisPosition_mm(ExtUI::Z) < 10.0f) {
  61. queue.enqueue_now_P(PSTR("G0Z10"));
  62. }
  63. return true;
  64. }
  65. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 1);
  66. dgus_screen_handler.SetMessageLinePGM(DGUS_MSG_HOMING, 2);
  67. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 3);
  68. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 4);
  69. dgus_screen_handler.ShowWaitScreen(DGUS_Screen::LEVELING_MENU);
  70. queue.enqueue_now_P(DGUS_CMD_HOME);
  71. return false;
  72. }
  73. bool DGUSSetupHandler::LevelingManual() {
  74. ExtUI::setLevelingActive(false);
  75. if (ExtUI::isPositionKnown()) {
  76. return true;
  77. }
  78. if (!dgus_screen_handler.IsPrinterIdle()) {
  79. dgus_screen_handler.SetStatusMessagePGM(DGUS_MSG_BUSY);
  80. return false;
  81. }
  82. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 1);
  83. dgus_screen_handler.SetMessageLinePGM(DGUS_MSG_HOMING, 2);
  84. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 3);
  85. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 4);
  86. dgus_screen_handler.ShowWaitScreen(DGUS_Screen::LEVELING_MANUAL);
  87. queue.enqueue_now_P(DGUS_CMD_HOME);
  88. return false;
  89. }
  90. bool DGUSSetupHandler::LevelingOffset() {
  91. dgus_screen_handler.offset_steps = DGUS_Data::StepSize::MMP1;
  92. if (!dgus_screen_handler.IsPrinterIdle()) {
  93. dgus_screen_handler.SetStatusMessagePGM(DGUS_MSG_BUSY);
  94. return false;
  95. }
  96. if (ExtUI::isPositionKnown()) {
  97. if (ExtUI::getAxisPosition_mm(ExtUI::Z) < 4.0f) {
  98. queue.enqueue_now_P(PSTR("G0Z4"));
  99. }
  100. char buffer[20];
  101. snprintf_P(buffer, sizeof(buffer), PSTR("G0X%dY%d"), DGUS_LEVEL_CENTER_X, DGUS_LEVEL_CENTER_Y);
  102. queue.enqueue_one_now(buffer);
  103. queue.enqueue_now_P(PSTR("G0Z0"));
  104. return true;
  105. }
  106. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 1);
  107. dgus_screen_handler.SetMessageLinePGM(DGUS_MSG_HOMING, 2);
  108. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 3);
  109. dgus_screen_handler.SetMessageLinePGM(NUL_STR, 4);
  110. dgus_screen_handler.ShowWaitScreen(DGUS_Screen::LEVELING_OFFSET);
  111. queue.enqueue_now_P(DGUS_CMD_HOME);
  112. return false;
  113. }
  114. bool DGUSSetupHandler::LevelingAutomatic() {
  115. if (ExtUI::getMeshValid()) {
  116. dgus_screen_handler.leveling_active = true;
  117. ExtUI::setLevelingActive(true);
  118. }
  119. return true;
  120. }
  121. bool DGUSSetupHandler::LevelingProbing() {
  122. dgus_screen_handler.probing_icons[0] = 0;
  123. dgus_screen_handler.probing_icons[1] = 0;
  124. return true;
  125. }
  126. bool DGUSSetupHandler::Filament() {
  127. dgus_screen_handler.filament_extruder = DGUS_Data::Extruder::CURRENT;
  128. dgus_screen_handler.filament_length = DGUS_DEFAULT_FILAMENT_LEN;
  129. return true;
  130. }
  131. bool DGUSSetupHandler::Move() {
  132. dgus_screen_handler.move_steps = DGUS_Data::StepSize::MM10;
  133. if (!dgus_screen_handler.IsPrinterIdle()) {
  134. dgus_screen_handler.SetStatusMessagePGM(DGUS_MSG_BUSY);
  135. return false;
  136. }
  137. return true;
  138. }
  139. bool DGUSSetupHandler::Gcode() {
  140. ZERO(dgus_screen_handler.gcode);
  141. if (dgus_display.gui_version < 0x30 || dgus_display.os_version < 0x21) {
  142. dgus_screen_handler.SetStatusMessagePGM(DGUS_MSG_FW_OUTDATED);
  143. return false;
  144. }
  145. return true;
  146. }
  147. bool DGUSSetupHandler::PID() {
  148. dgus_screen_handler.pid_heater = DGUS_Data::Heater::H0;
  149. dgus_screen_handler.pid_temp = DGUS_PLA_TEMP_HOTEND;
  150. return true;
  151. }
  152. bool DGUSSetupHandler::Infos() {
  153. dgus_screen_handler.debug_count = 0;
  154. return true;
  155. }
  156. #endif // DGUS_LCD_UI_RELOADED