Optimize some G-code strings
This commit is contained in:
		| @@ -38,7 +38,7 @@ | ||||
| #include "../../feature/probe_temp_comp.h" | ||||
|  | ||||
| #include "../../lcd/marlinui.h" | ||||
| #include "../../MarlinCore.h" // for wait_for_heatup and idle() | ||||
| #include "../../MarlinCore.h" // for wait_for_heatup, idle(), G28_STR | ||||
|  | ||||
| #if ENABLED(PRINTJOB_TIMER_AUTOSTART) | ||||
|   #include "../../module/printcounter.h" | ||||
| @@ -168,7 +168,7 @@ void GcodeSuite::G76() { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     process_subcommands_now_P(PSTR("G28")); | ||||
|     process_subcommands_now_P(G28_STR); | ||||
|   } | ||||
|  | ||||
|   remember_feedrate_scaling_off(); | ||||
|   | ||||
| @@ -2332,7 +2332,7 @@ void HMI_Prepare() { | ||||
|       case PREPARE_CASE_HOME: // Homing | ||||
|         checkkey = Last_Prepare; | ||||
|         index_prepare = MROWS; | ||||
|         queue.inject_P(PSTR("G28")); // G28 will set home_flag | ||||
|         queue.inject_P(G28_STR); // G28 will set home_flag | ||||
|         Popup_Window_Home(); | ||||
|         break; | ||||
|       #if HAS_ZOFFSET_ITEM | ||||
|   | ||||
| @@ -620,10 +620,10 @@ namespace Anycubic { | ||||
|       case 21:   // A21 Home Axis  A21 X | ||||
|         if (!isPrinting()) { | ||||
|           switch ((char)panel_command[4]) { | ||||
|             case 'X': injectCommands_P(PSTR("G28 X")); break; | ||||
|             case 'Y': injectCommands_P(PSTR("G28 Y")); break; | ||||
|             case 'Z': injectCommands_P(PSTR("G28 Z")); break; | ||||
|             case 'C': injectCommands_P(PSTR("G28")); break; | ||||
|             case 'X': injectCommands_P(PSTR("G28X")); break; | ||||
|             case 'Y': injectCommands_P(PSTR("G28Y")); break; | ||||
|             case 'Z': injectCommands_P(PSTR("G28Z")); break; | ||||
|             case 'C': injectCommands_P(G28_STR); break; | ||||
|           } | ||||
|         } | ||||
|         break; | ||||
| @@ -718,7 +718,7 @@ namespace Anycubic { | ||||
|           // If the same meshpoint is selected twice in a row, move the head to that ready for adjustment | ||||
|           if ((selectedmeshpoint.x == pos.x) && (selectedmeshpoint.y == pos.y)) { | ||||
|             if (!isPositionKnown()) | ||||
|               injectCommands_P(PSTR("G28")); // home | ||||
|               injectCommands_P(G28_STR); // home | ||||
|  | ||||
|             if (isPositionKnown()) { | ||||
|               #if ACDEBUG(AC_INFO) | ||||
| @@ -746,7 +746,7 @@ namespace Anycubic { | ||||
|           if (isPrinting()) | ||||
|             SendtoTFTLN(AC_msg_probing_not_allowed); // forbid auto leveling | ||||
|           else { | ||||
|             injectCommands_P(isMachineHomed() ? PSTR("G29") : PSTR("G28\nG29")); | ||||
|             injectCommands_P(PSTR("G28O\nG29")); | ||||
|             printer_state = AC_printer_probing; | ||||
|             SendtoTFTLN(AC_msg_start_probing); | ||||
|           } | ||||
|   | ||||
| @@ -105,8 +105,8 @@ | ||||
|  | ||||
| #define AC_cmnd_manual_load_filament   PSTR("M83\nG1 E50 F700\nM82")   // replace the manual panel commands with something a little faster | ||||
| #define AC_cmnd_manual_unload_filament PSTR("M83\nG1 E-50 F1200\nM82") | ||||
| #define AC_cmnd_enable_leveling        PSTR("M420 S1 V1") | ||||
| #define AC_cmnd_power_loss_recovery    PSTR("G28 X Y R5\nG28 Z")       // Lift, home X and Y then home Z when in 'safe' position | ||||
| #define AC_cmnd_enable_leveling        PSTR("M420SV") | ||||
| #define AC_cmnd_power_loss_recovery    PSTR("G28XYR5\nG28Z")           // Lift, home X and Y then home Z when in 'safe' position | ||||
|  | ||||
| namespace Anycubic { | ||||
|   enum heater_state_t : uint8_t { | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
|  | ||||
| #include "../../../../libs/numtostr.h" | ||||
| #include "../../../../module/motion.h"  // for A20 read printing speed feedrate_percentage | ||||
| #include "../../../../MarlinCore.h"     // for quickstop_stepper and disable_steppers | ||||
| #include "../../../../MarlinCore.h"     // for quickstop_stepper, disable_steppers, G28_STR | ||||
| #include "../../../../inc/MarlinConfig.h" | ||||
|  | ||||
| // command sending macro's with debugging capability | ||||
| @@ -274,12 +274,12 @@ void AnycubicTFTClass::HandleSpecialMenu() { | ||||
|  | ||||
|               case '6': // "<06SMeshLvl>" | ||||
|                 SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling"); | ||||
|                 ExtUI::injectCommands_P(PSTR("G29 S1")); | ||||
|                 ExtUI::injectCommands_P(PSTR("G29S1")); | ||||
|                 break; | ||||
|  | ||||
|               case '7': // "<07MeshNPnt>" | ||||
|                 SERIAL_ECHOLNPGM("Special Menu: Next Mesh Point"); | ||||
|                 ExtUI::injectCommands_P(PSTR("G29 S2")); | ||||
|                 ExtUI::injectCommands_P(PSTR("G29S2")); | ||||
|                 break; | ||||
|  | ||||
|               case '8': // "<08HtEndPID>" | ||||
| @@ -758,14 +758,14 @@ void AnycubicTFTClass::GetCommandFromTFT() { | ||||
|             if (!ExtUI::isPrinting() && !ExtUI::isPrintingFromMediaPaused()) { | ||||
|               if (CodeSeen('X') || CodeSeen('Y') || CodeSeen('Z')) { | ||||
|                 if (CodeSeen('X')) | ||||
|                   ExtUI::injectCommands_P(PSTR("G28 X")); | ||||
|                   ExtUI::injectCommands_P(PSTR("G28X")); | ||||
|                 if (CodeSeen('Y')) | ||||
|                   ExtUI::injectCommands_P(PSTR("G28 Y")); | ||||
|                   ExtUI::injectCommands_P(PSTR("G28Y")); | ||||
|                 if (CodeSeen('Z')) | ||||
|                   ExtUI::injectCommands_P(PSTR("G28 Z")); | ||||
|                   ExtUI::injectCommands_P(PSTR("G28Z")); | ||||
|               } | ||||
|               else if (CodeSeen('C')) { | ||||
|                 ExtUI::injectCommands_P(PSTR("G28")); | ||||
|                 ExtUI::injectCommands_P(G28_STR); | ||||
|               } | ||||
|             } | ||||
|             break; | ||||
|   | ||||
| @@ -319,7 +319,7 @@ bool StatusScreen::onTouchEnd(uint8_t tag) { | ||||
|     case  9: GOTO_SCREEN(FilesScreen); break; | ||||
|     case 10: GOTO_SCREEN(MainMenu); break; | ||||
|     case 13: GOTO_SCREEN(BioConfirmHomeE); break; | ||||
|     case 14: SpinnerDialogBox::enqueueAndWait_P(F("G28 Z")); break; | ||||
|     case 14: SpinnerDialogBox::enqueueAndWait_P(F("G28Z")); break; | ||||
|     case 15: GOTO_SCREEN(TemperatureScreen);  break; | ||||
|     case 16: fine_motion = !fine_motion; break; | ||||
|     default: return false; | ||||
|   | ||||
| @@ -94,9 +94,9 @@ bool BaseMoveAxisScreen::onTouchHeld(uint8_t tag) { | ||||
|     case 14: UI_DECREMENT_AXIS(E3); screen_data.MoveAxis.e_rel[3] -= increment; break; | ||||
|     case 15: UI_INCREMENT_AXIS(E3); screen_data.MoveAxis.e_rel[3] += increment; break; | ||||
|     #endif | ||||
|     case 20: SpinnerDialogBox::enqueueAndWait_P(F("G28 X")); break; | ||||
|     case 21: SpinnerDialogBox::enqueueAndWait_P(F("G28 Y")); break; | ||||
|     case 22: SpinnerDialogBox::enqueueAndWait_P(F("G28 Z")); break; | ||||
|     case 20: SpinnerDialogBox::enqueueAndWait_P(F("G28X")); break; | ||||
|     case 21: SpinnerDialogBox::enqueueAndWait_P(F("G28Y")); break; | ||||
|     case 22: SpinnerDialogBox::enqueueAndWait_P(F("G28Z")); break; | ||||
|     case 23: SpinnerDialogBox::enqueueAndWait_P(F("G28"));   break; | ||||
|     default: | ||||
|       return false; | ||||
|   | ||||
| @@ -31,6 +31,8 @@ | ||||
| #include "../../../../gcode/queue.h" | ||||
| #include "../../../../inc/MarlinConfig.h" | ||||
|  | ||||
| extern const char G28_STR[]; | ||||
|  | ||||
| extern lv_group_t *g; | ||||
| static lv_obj_t *scr; | ||||
|  | ||||
| @@ -48,22 +50,22 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) { | ||||
|   if (event != LV_EVENT_RELEASED) return; | ||||
|   switch (obj->mks_obj_id) { | ||||
|     case ID_H_ALL: | ||||
|       queue.inject_P(PSTR("G28")); | ||||
|       queue.inject_P(G28_STR); | ||||
|       break; | ||||
|     case ID_H_X: | ||||
|       queue.inject_P(PSTR("G28 X0")); | ||||
|       queue.inject_P(PSTR("G28X")); | ||||
|       break; | ||||
|     case ID_H_Y: | ||||
|       queue.inject_P(PSTR("G28 Y0")); | ||||
|       queue.inject_P(PSTR("G28Y")); | ||||
|       break; | ||||
|     case ID_H_Z: | ||||
|       queue.inject_P(PSTR("G28 Z0")); | ||||
|       queue.inject_P(PSTR("G28Z")); | ||||
|       break; | ||||
|     case ID_H_OFF_ALL: | ||||
|       queue.inject_P(PSTR("M84")); | ||||
|       break; | ||||
|     case ID_H_OFF_XY: | ||||
|       queue.inject_P(PSTR("M84 X Y")); | ||||
|       queue.inject_P(PSTR("M84XY")); | ||||
|       break; | ||||
|     case ID_H_RETURN: | ||||
|       clear_cur_ui(); | ||||
|   | ||||
| @@ -29,6 +29,8 @@ | ||||
| #include "../../../../gcode/queue.h" | ||||
| #include "../../../../inc/MarlinConfig.h" | ||||
|  | ||||
| extern const char G28_STR[]; | ||||
|  | ||||
| extern lv_group_t *g; | ||||
| static lv_obj_t *scr; | ||||
|  | ||||
| @@ -45,65 +47,15 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) { | ||||
|   if (event != LV_EVENT_RELEASED) return; | ||||
|  | ||||
|   switch (obj->mks_obj_id) { | ||||
|     case ID_M_POINT1: | ||||
|     case ID_M_POINT1 ... ID_M_POINT5: | ||||
|       if (queue.length == 0) { | ||||
|         if (uiCfg.leveling_first_time) { | ||||
|           queue.enqueue_now_P(PSTR("G28")); | ||||
|           uiCfg.leveling_first_time = 0; | ||||
|           uiCfg.leveling_first_time = false; | ||||
|           queue.inject_P(G28_STR); | ||||
|         } | ||||
|         queue.enqueue_now_P(PSTR("G1 Z10")); | ||||
|         sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), (int)gCfgItems.levelingPos[0][0], (int)gCfgItems.levelingPos[0][1]); | ||||
|         queue.enqueue_one_now(public_buf_l); | ||||
|         queue.enqueue_now_P(PSTR("G1 Z0")); | ||||
|       } | ||||
|       break; | ||||
|     case ID_M_POINT2: | ||||
|       if (queue.length == 0) { | ||||
|         if (uiCfg.leveling_first_time) { | ||||
|           queue.enqueue_now_P(PSTR("G28")); | ||||
|           uiCfg.leveling_first_time = 0; | ||||
|         } | ||||
|         queue.enqueue_now_P(PSTR("G1 Z10")); | ||||
|         sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), (int)gCfgItems.levelingPos[1][0], (int)gCfgItems.levelingPos[1][1]); | ||||
|         queue.enqueue_one_now(public_buf_l); | ||||
|         queue.enqueue_now_P(PSTR("G1 Z0")); | ||||
|       } | ||||
|       break; | ||||
|     case ID_M_POINT3: | ||||
|       if (queue.length == 0) { | ||||
|         if (uiCfg.leveling_first_time) { | ||||
|           queue.enqueue_now_P(PSTR("G28")); | ||||
|           uiCfg.leveling_first_time = 0; | ||||
|         } | ||||
|         queue.enqueue_now_P(PSTR("G1 Z10")); | ||||
|         sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), (int)gCfgItems.levelingPos[2][0], (int)gCfgItems.levelingPos[2][1]); | ||||
|         queue.enqueue_one_now(public_buf_l); | ||||
|         queue.enqueue_now_P(PSTR("G1 Z0")); | ||||
|       } | ||||
|  | ||||
|       break; | ||||
|     case ID_M_POINT4: | ||||
|       if (queue.length == 0) { | ||||
|         if (uiCfg.leveling_first_time) { | ||||
|           queue.enqueue_now_P(PSTR("G28")); | ||||
|           uiCfg.leveling_first_time = 0; | ||||
|         } | ||||
|         queue.enqueue_now_P(PSTR("G1 Z10")); | ||||
|         sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), (int)gCfgItems.levelingPos[3][0], (int)gCfgItems.levelingPos[3][1]); | ||||
|         queue.enqueue_one_now(public_buf_l); | ||||
|         queue.enqueue_now_P(PSTR("G1 Z0")); | ||||
|       } | ||||
|       break; | ||||
|     case ID_M_POINT5: | ||||
|       if (queue.length == 0) { | ||||
|         if (uiCfg.leveling_first_time) { | ||||
|           queue.enqueue_now_P(PSTR("G28")); | ||||
|           uiCfg.leveling_first_time = 0; | ||||
|         } | ||||
|         queue.enqueue_now_P(PSTR("G1 Z10")); | ||||
|         sprintf_P(public_buf_l, PSTR("G1 X%d Y%d"), (int)gCfgItems.levelingPos[4][0], (int)gCfgItems.levelingPos[4][1]); | ||||
|         queue.enqueue_one_now(public_buf_l); | ||||
|         queue.enqueue_now_P(PSTR("G1 Z0")); | ||||
|         const int ind = obj->mks_obj_id - ID_M_POINT1; | ||||
|         sprintf_P(public_buf_l, PSTR("G1 Z10\nG1 X%d Y%d\nG1 Z0"), (int)gCfgItems.levelingPos[ind][0], (int)gCfgItems.levelingPos[ind][1]); | ||||
|         queue.inject(public_buf_l); | ||||
|       } | ||||
|       break; | ||||
|     case ID_MANUAL_RETURN: | ||||
|   | ||||
| @@ -103,9 +103,9 @@ | ||||
|         ui.wait_for_move = true; | ||||
|         ui.goto_screen(_lcd_level_bed_done); | ||||
|         #if ENABLED(MESH_BED_LEVELING) | ||||
|           queue.inject_P(PSTR("G29 S2")); | ||||
|           queue.inject_P(PSTR("G29S2")); | ||||
|         #elif ENABLED(PROBE_MANUALLY) | ||||
|           queue.inject_P(PSTR("G29 V1")); | ||||
|           queue.inject_P(PSTR("G29V1")); | ||||
|         #endif | ||||
|       } | ||||
|       else | ||||
| @@ -155,9 +155,9 @@ | ||||
|     // G29 Records Z, moves, and signals when it pauses | ||||
|     ui.wait_for_move = true; | ||||
|     #if ENABLED(MESH_BED_LEVELING) | ||||
|       queue.inject_P(manual_probe_index ? PSTR("G29 S2") : PSTR("G29 S1")); | ||||
|       queue.inject_P(manual_probe_index ? PSTR("G29S2") : PSTR("G29S1")); | ||||
|     #elif ENABLED(PROBE_MANUALLY) | ||||
|       queue.inject_P(PSTR("G29 V1")); | ||||
|       queue.inject_P(PSTR("G29V1")); | ||||
|     #endif | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -402,7 +402,7 @@ void menu_motion() { | ||||
|   #endif | ||||
|  | ||||
|   #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) | ||||
|     GCODES_ITEM(MSG_M48_TEST, PSTR("G28 O\nM48 P10")); | ||||
|     GCODES_ITEM(MSG_M48_TEST, PSTR("G28O\nM48 P10")); | ||||
|   #endif | ||||
|  | ||||
|   // | ||||
|   | ||||
		Reference in New Issue
	
	Block a user