From 7ac098a135463334cbf4d08440ecc30e5d33c1e6 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Wed, 12 Jun 2019 14:20:20 +0200 Subject: [PATCH] Refactor. Put constants needed in functions inside fuctions to limit its scope. --- Firmware/first_lay_cal.cpp | 217 ++++++++++++++++++------------------- 1 file changed, 108 insertions(+), 109 deletions(-) diff --git a/Firmware/first_lay_cal.cpp b/Firmware/first_lay_cal.cpp index 5910873e6..50f08c5e3 100644 --- a/Firmware/first_lay_cal.cpp +++ b/Firmware/first_lay_cal.cpp @@ -10,30 +10,28 @@ #include "mmu.h" #include - -static const char cmd_preheat_0[] PROGMEM = "M107"; -static const char cmd_preheat_1[] PROGMEM = "M104 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP); -static const char cmd_preheat_2[] PROGMEM = "M140 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP); -static const char cmd_preheat_3[] PROGMEM = "M190 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP); -static const char cmd_preheat_4[] PROGMEM = "M109 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP); -static const char cmd_preheat_5[] PROGMEM = "G28"; -static const char cmd_preheat_6[] PROGMEM = "G92 E0.0"; - - -static const char * const preheat_cmd[] PROGMEM = -{ - cmd_preheat_0, - cmd_preheat_1, - cmd_preheat_2, - cmd_preheat_3, - cmd_preheat_4, - cmd_preheat_5, //call MSG_M117_V2_CALIBRATION before - cmd_preheat_6, -}; - //! @brief Preheat void lay1cal_preheat() { + static const char cmd_preheat_0[] PROGMEM = "M107"; + static const char cmd_preheat_1[] PROGMEM = "M104 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP); + static const char cmd_preheat_2[] PROGMEM = "M140 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP); + static const char cmd_preheat_3[] PROGMEM = "M190 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP); + static const char cmd_preheat_4[] PROGMEM = "M109 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP); + static const char cmd_preheat_5[] PROGMEM = "G28"; + static const char cmd_preheat_6[] PROGMEM = "G92 E0.0"; + + static const char * const preheat_cmd[] PROGMEM = + { + cmd_preheat_0, + cmd_preheat_1, + cmd_preheat_2, + cmd_preheat_3, + cmd_preheat_4, + cmd_preheat_5, //call MSG_M117_V2_CALIBRATION before + cmd_preheat_6, + }; + for (uint8_t i = 0; i < (sizeof(preheat_cmd)/sizeof(preheat_cmd[0])); ++i) { if (5 == i) enquecommand_P(_T(MSG_M117_V2_CALIBRATION)); @@ -42,42 +40,42 @@ void lay1cal_preheat() } -static const char cmd_intro_mmu_0[] PROGMEM = "M83"; -static const char cmd_intro_mmu_1[] PROGMEM = "G1 Y-3.0 F1000.0"; -static const char cmd_intro_mmu_2[] PROGMEM = "G1 Z0.4 F1000.0"; -static const char cmd_intro_mmu_3[] PROGMEM = "G1 X55.0 E32.0 F1073.0"; // call T code before -static const char cmd_intro_mmu_4[] PROGMEM = "G1 X5.0 E32.0 F1800.0"; -static const char cmd_intro_mmu_5[] PROGMEM = "G1 X55.0 E8.0 F2000.0"; -static const char cmd_intro_mmu_6[] PROGMEM = "G1 Z0.3 F1000.0"; -static const char cmd_intro_mmu_7[] PROGMEM = "G92 E0.0"; -static const char cmd_intro_mmu_8[] PROGMEM = "G1 X240.0 E25.0 F2200.0"; -static const char cmd_intro_mmu_9[] PROGMEM = "G1 Y-2.0 F1000.0"; -static const char cmd_intro_mmu_10[] PROGMEM = "G1 X55.0 E25 F1400.0"; -static const char cmd_intro_mmu_11[] PROGMEM = "G1 Z0.20 F1000.0"; -static const char cmd_intro_mmu_12[] PROGMEM = "G1 X5.0 E4.0 F1000.0"; - -static const char * const intro_mmu_cmd[] PROGMEM = -{ - cmd_intro_mmu_0, - cmd_intro_mmu_1, - cmd_intro_mmu_2, - cmd_intro_mmu_3, // call T code before - cmd_intro_mmu_4, - cmd_intro_mmu_5, - cmd_intro_mmu_6, - cmd_intro_mmu_7, - cmd_intro_mmu_8, - cmd_intro_mmu_9, - cmd_intro_mmu_10, - cmd_intro_mmu_11, - cmd_intro_mmu_12, -}; - //! @brief Print intro line //! @param cmd_buffer character buffer needed to format gcodes //! @param filament filament to use (applies for MMU only) void lay1cal_intro_line(char *cmd_buffer, uint8_t filament) { + static const char cmd_intro_mmu_0[] PROGMEM = "M83"; + static const char cmd_intro_mmu_1[] PROGMEM = "G1 Y-3.0 F1000.0"; + static const char cmd_intro_mmu_2[] PROGMEM = "G1 Z0.4 F1000.0"; + static const char cmd_intro_mmu_3[] PROGMEM = "G1 X55.0 E32.0 F1073.0"; // call T code before + static const char cmd_intro_mmu_4[] PROGMEM = "G1 X5.0 E32.0 F1800.0"; + static const char cmd_intro_mmu_5[] PROGMEM = "G1 X55.0 E8.0 F2000.0"; + static const char cmd_intro_mmu_6[] PROGMEM = "G1 Z0.3 F1000.0"; + static const char cmd_intro_mmu_7[] PROGMEM = "G92 E0.0"; + static const char cmd_intro_mmu_8[] PROGMEM = "G1 X240.0 E25.0 F2200.0"; + static const char cmd_intro_mmu_9[] PROGMEM = "G1 Y-2.0 F1000.0"; + static const char cmd_intro_mmu_10[] PROGMEM = "G1 X55.0 E25 F1400.0"; + static const char cmd_intro_mmu_11[] PROGMEM = "G1 Z0.20 F1000.0"; + static const char cmd_intro_mmu_12[] PROGMEM = "G1 X5.0 E4.0 F1000.0"; + + static const char * const intro_mmu_cmd[] PROGMEM = + { + cmd_intro_mmu_0, + cmd_intro_mmu_1, + cmd_intro_mmu_2, + cmd_intro_mmu_3, // call T code before + cmd_intro_mmu_4, + cmd_intro_mmu_5, + cmd_intro_mmu_6, + cmd_intro_mmu_7, + cmd_intro_mmu_8, + cmd_intro_mmu_9, + cmd_intro_mmu_10, + cmd_intro_mmu_11, + cmd_intro_mmu_12, + }; + if (mmu_enabled) { for (uint8_t i = 0; i < (sizeof(intro_mmu_cmd)/sizeof(intro_mmu_cmd[0])); ++i) @@ -97,72 +95,36 @@ void lay1cal_intro_line(char *cmd_buffer, uint8_t filament) } } -static const char cmd_pre_meander_0[] PROGMEM = "G92 E0.0"; -static const char cmd_pre_meander_1[] PROGMEM = "G21"; //set units to millimeters TODO unsupported command -static const char cmd_pre_meander_2[] PROGMEM = "G90"; //use absolute coordinates -static const char cmd_pre_meander_3[] PROGMEM = "M83"; //use relative distances for extrusion TODO: duplicate -static const char cmd_pre_meander_4[] PROGMEM = "G1 E-1.50000 F2100.00000"; -static const char cmd_pre_meander_5[] PROGMEM = "G1 Z5 F7200.000"; -static const char cmd_pre_meander_6[] PROGMEM = "M204 S1000"; //set acceleration -static const char cmd_pre_meander_7[] PROGMEM = "G1 F4000"; - -static const char * const cmd_pre_meander[] PROGMEM = -{ - cmd_pre_meander_0, - cmd_pre_meander_1, - cmd_pre_meander_2, - cmd_pre_meander_3, - cmd_pre_meander_4, - cmd_pre_meander_5, - cmd_pre_meander_6, - cmd_pre_meander_7, -}; - //! @brief Setup for printing meander void lay1cal_before_meander() { + static const char cmd_pre_meander_0[] PROGMEM = "G92 E0.0"; + static const char cmd_pre_meander_1[] PROGMEM = "G21"; //set units to millimeters TODO unsupported command + static const char cmd_pre_meander_2[] PROGMEM = "G90"; //use absolute coordinates + static const char cmd_pre_meander_3[] PROGMEM = "M83"; //use relative distances for extrusion TODO: duplicate + static const char cmd_pre_meander_4[] PROGMEM = "G1 E-1.50000 F2100.00000"; + static const char cmd_pre_meander_5[] PROGMEM = "G1 Z5 F7200.000"; + static const char cmd_pre_meander_6[] PROGMEM = "M204 S1000"; //set acceleration + static const char cmd_pre_meander_7[] PROGMEM = "G1 F4000"; + + static const char * const cmd_pre_meander[] PROGMEM = + { + cmd_pre_meander_0, + cmd_pre_meander_1, + cmd_pre_meander_2, + cmd_pre_meander_3, + cmd_pre_meander_4, + cmd_pre_meander_5, + cmd_pre_meander_6, + cmd_pre_meander_7, + }; + for (uint8_t i = 0; i < (sizeof(cmd_pre_meander)/sizeof(cmd_pre_meander[0])); ++i) { enquecommand_P(static_cast(pgm_read_ptr(&cmd_pre_meander[i]))); } } -static const char cmd_meander_0[] PROGMEM = "G1 X50 Y155"; -static const char cmd_meander_1[] PROGMEM = "G1 Z0.150 F7200.000"; -static const char cmd_meander_2[] PROGMEM = "G1 F1080"; -static const char cmd_meander_3[] PROGMEM = "G1 X75 Y155 E2.5"; -static const char cmd_meander_4[] PROGMEM = "G1 X100 Y155 E2"; -static const char cmd_meander_5[] PROGMEM = "G1 X200 Y155 E2.62773"; -static const char cmd_meander_6[] PROGMEM = "G1 X200 Y135 E0.66174"; -static const char cmd_meander_7[] PROGMEM = "G1 X50 Y135 E3.62773"; -static const char cmd_meander_8[] PROGMEM = "G1 X50 Y115 E0.49386"; -static const char cmd_meander_9[] PROGMEM = "G1 X200 Y115 E3.62773"; -static const char cmd_meander_10[] PROGMEM = "G1 X200 Y95 E0.49386"; -static const char cmd_meander_11[] PROGMEM = "G1 X50 Y95 E3.62773"; -static const char cmd_meander_12[] PROGMEM = "G1 X50 Y75 E0.49386"; -static const char cmd_meander_13[] PROGMEM = "G1 X200 Y75 E3.62773"; -static const char cmd_meander_14[] PROGMEM = "G1 X200 Y55 E0.49386"; -static const char cmd_meander_15[] PROGMEM = "G1 X50 Y55 E3.62773"; - -static const char * const cmd_meander[] PROGMEM = -{ - cmd_meander_0, - cmd_meander_1, - cmd_meander_2, - cmd_meander_3, - cmd_meander_4, - cmd_meander_5, - cmd_meander_6, - cmd_meander_7, - cmd_meander_8, - cmd_meander_9, - cmd_meander_10, - cmd_meander_11, - cmd_meander_12, - cmd_meander_13, - cmd_meander_14, - cmd_meander_15, -}; //! @brief Count extrude length //! @@ -184,6 +146,43 @@ static const float extr = count_e(heigth, width, length); //!< E axis movement n //! @param cmd_buffer character buffer needed to format gcodes void lay1cal_meander(char *cmd_buffer) { + static const char cmd_meander_0[] PROGMEM = "G1 X50 Y155"; + static const char cmd_meander_1[] PROGMEM = "G1 Z0.150 F7200.000"; + static const char cmd_meander_2[] PROGMEM = "G1 F1080"; + static const char cmd_meander_3[] PROGMEM = "G1 X75 Y155 E2.5"; + static const char cmd_meander_4[] PROGMEM = "G1 X100 Y155 E2"; + static const char cmd_meander_5[] PROGMEM = "G1 X200 Y155 E2.62773"; + static const char cmd_meander_6[] PROGMEM = "G1 X200 Y135 E0.66174"; + static const char cmd_meander_7[] PROGMEM = "G1 X50 Y135 E3.62773"; + static const char cmd_meander_8[] PROGMEM = "G1 X50 Y115 E0.49386"; + static const char cmd_meander_9[] PROGMEM = "G1 X200 Y115 E3.62773"; + static const char cmd_meander_10[] PROGMEM = "G1 X200 Y95 E0.49386"; + static const char cmd_meander_11[] PROGMEM = "G1 X50 Y95 E3.62773"; + static const char cmd_meander_12[] PROGMEM = "G1 X50 Y75 E0.49386"; + static const char cmd_meander_13[] PROGMEM = "G1 X200 Y75 E3.62773"; + static const char cmd_meander_14[] PROGMEM = "G1 X200 Y55 E0.49386"; + static const char cmd_meander_15[] PROGMEM = "G1 X50 Y55 E3.62773"; + + static const char * const cmd_meander[] PROGMEM = + { + cmd_meander_0, + cmd_meander_1, + cmd_meander_2, + cmd_meander_3, + cmd_meander_4, + cmd_meander_5, + cmd_meander_6, + cmd_meander_7, + cmd_meander_8, + cmd_meander_9, + cmd_meander_10, + cmd_meander_11, + cmd_meander_12, + cmd_meander_13, + cmd_meander_14, + cmd_meander_15, + }; + for (uint8_t i = 0; i < (sizeof(cmd_meander)/sizeof(cmd_meander[0])); ++i) { enquecommand_P(static_cast(pgm_read_ptr(&cmd_meander[i])));