Browse Source

Refactor. Put constants needed in functions inside fuctions to limit its scope.

Marek Bel 4 years ago
parent
commit
7ac098a135
1 changed files with 108 additions and 109 deletions
  1. 108 109
      Firmware/first_lay_cal.cpp

+ 108 - 109
Firmware/first_lay_cal.cpp

@@ -10,30 +10,28 @@
 #include "mmu.h"
 #include <avr/pgmspace.h>
 
-
-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<char*>(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<char*>(pgm_read_ptr(&cmd_meander[i])));