Scott Lahteine 6 лет назад
Родитель
Сommit
946cf8b453
1 измененных файлов: 177 добавлений и 163 удалений
  1. 177
    163
      Marlin/src/module/configuration_store.cpp

+ 177
- 163
Marlin/src/module/configuration_store.cpp Просмотреть файл

@@ -1008,10 +1008,6 @@ void MarlinSettings::postprocess() {
1008 1008
     }
1009 1009
     else {
1010 1010
       float dummy = 0;
1011
-      #if DISABLED(AUTO_BED_LEVELING_UBL) || DISABLED(FWRETRACT) || DISABLED(FWRETRACT_AUTORETRACT) || ENABLED(NO_VOLUMETRICS)
1012
-        bool dummyb;
1013
-      #endif
1014
-
1015 1011
       working_crc = 0;  // Init to 0. Accumulated by EEPROM_READ
1016 1012
 
1017 1013
       _FIELD_TEST(esteppers);
@@ -1023,223 +1019,241 @@ void MarlinSettings::postprocess() {
1023 1019
       //
1024 1020
       // Planner Motion
1025 1021
       //
1022
+      {
1023
+        // Get only the number of E stepper parameters previously stored
1024
+        // Any steppers added later are set to their defaults
1025
+        const uint32_t def1[] = DEFAULT_MAX_ACCELERATION;
1026
+        const float def2[] = DEFAULT_AXIS_STEPS_PER_UNIT, def3[] = DEFAULT_MAX_FEEDRATE;
1027
+
1028
+        uint32_t tmp1[XYZ + esteppers];
1029
+        EEPROM_READ(tmp1);                         // max_acceleration_mm_per_s2
1030
+        EEPROM_READ(planner.settings.min_segment_time_us);
1031
+
1032
+        float tmp2[XYZ + esteppers], tmp3[XYZ + esteppers];
1033
+        EEPROM_READ(tmp2);                         // axis_steps_per_mm
1034
+        EEPROM_READ(tmp3);                         // max_feedrate_mm_s
1035
+        if (!validating) LOOP_XYZE_N(i) {
1036
+          const bool in = (i < esteppers + XYZ);
1037
+          planner.settings.max_acceleration_mm_per_s2[i] = in ? tmp1[i] : def1[ALIM(i, def1)];
1038
+          planner.settings.axis_steps_per_mm[i]          = in ? tmp2[i] : def2[ALIM(i, def2)];
1039
+          planner.settings.max_feedrate_mm_s[i]          = in ? tmp3[i] : def3[ALIM(i, def3)];
1040
+        }
1026 1041
 
1027
-      // Get only the number of E stepper parameters previously stored
1028
-      // Any steppers added later are set to their defaults
1029
-      const uint32_t def1[] = DEFAULT_MAX_ACCELERATION;
1030
-      const float def2[] = DEFAULT_AXIS_STEPS_PER_UNIT, def3[] = DEFAULT_MAX_FEEDRATE;
1031
-
1032
-      uint32_t tmp1[XYZ + esteppers];
1033
-      EEPROM_READ(tmp1);                         // max_acceleration_mm_per_s2
1034
-      EEPROM_READ(planner.settings.min_segment_time_us);
1035
-
1036
-      float tmp2[XYZ + esteppers], tmp3[XYZ + esteppers];
1037
-      EEPROM_READ(tmp2);                         // axis_steps_per_mm
1038
-      EEPROM_READ(tmp3);                         // max_feedrate_mm_s
1039
-      if (!validating) LOOP_XYZE_N(i) {
1040
-        const bool in = (i < esteppers + XYZ);
1041
-        planner.settings.max_acceleration_mm_per_s2[i] = in ? tmp1[i] : def1[ALIM(i, def1)];
1042
-        planner.settings.axis_steps_per_mm[i]          = in ? tmp2[i] : def2[ALIM(i, def2)];
1043
-        planner.settings.max_feedrate_mm_s[i]          = in ? tmp3[i] : def3[ALIM(i, def3)];
1044
-      }
1042
+        EEPROM_READ(planner.settings.acceleration);
1043
+        EEPROM_READ(planner.settings.retract_acceleration);
1044
+        EEPROM_READ(planner.settings.travel_acceleration);
1045
+        EEPROM_READ(planner.settings.min_feedrate_mm_s);
1046
+        EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
1045 1047
 
1046
-      EEPROM_READ(planner.settings.acceleration);
1047
-      EEPROM_READ(planner.settings.retract_acceleration);
1048
-      EEPROM_READ(planner.settings.travel_acceleration);
1049
-      EEPROM_READ(planner.settings.min_feedrate_mm_s);
1050
-      EEPROM_READ(planner.settings.min_travel_feedrate_mm_s);
1048
+        #if HAS_CLASSIC_JERK
1049
+          EEPROM_READ(planner.max_jerk);
1050
+          #if ENABLED(JUNCTION_DEVIATION) && ENABLED(LIN_ADVANCE)
1051
+            EEPROM_READ(dummy);
1052
+          #endif
1053
+        #else
1054
+          for (uint8_t q = 4; q--;) EEPROM_READ(dummy);
1055
+        #endif
1051 1056
 
1052
-      #if HAS_CLASSIC_JERK
1053
-        EEPROM_READ(planner.max_jerk);
1054
-        #if ENABLED(JUNCTION_DEVIATION) && ENABLED(LIN_ADVANCE)
1057
+        #if ENABLED(JUNCTION_DEVIATION)
1058
+          EEPROM_READ(planner.junction_deviation_mm);
1059
+        #else
1055 1060
           EEPROM_READ(dummy);
1056 1061
         #endif
1057
-      #else
1058
-        for (uint8_t q = 4; q--;) EEPROM_READ(dummy);
1059
-      #endif
1060
-
1061
-      #if ENABLED(JUNCTION_DEVIATION)
1062
-        EEPROM_READ(planner.junction_deviation_mm);
1063
-      #else
1064
-        EEPROM_READ(dummy);
1065
-      #endif
1062
+      }
1066 1063
 
1067 1064
       //
1068 1065
       // Home Offset (M206)
1069 1066
       //
1067
+      {
1068
+        _FIELD_TEST(home_offset);
1070 1069
 
1071
-      _FIELD_TEST(home_offset);
1072
-
1073
-      #if !HAS_HOME_OFFSET
1074
-        float home_offset[XYZ];
1075
-      #endif
1076
-      EEPROM_READ(home_offset);
1070
+        #if !HAS_HOME_OFFSET
1071
+          float home_offset[XYZ];
1072
+        #endif
1073
+        EEPROM_READ(home_offset);
1074
+      }
1077 1075
 
1078 1076
       //
1079 1077
       // Hotend Offsets, if any
1080 1078
       //
1081
-
1082
-      #if HAS_HOTEND_OFFSET
1083
-        // Skip hotend 0 which must be 0
1084
-        for (uint8_t e = 1; e < HOTENDS; e++)
1085
-          LOOP_XYZ(i) EEPROM_READ(hotend_offset[i][e]);
1086
-      #endif
1079
+      {
1080
+        #if HAS_HOTEND_OFFSET
1081
+          // Skip hotend 0 which must be 0
1082
+          for (uint8_t e = 1; e < HOTENDS; e++)
1083
+            LOOP_XYZ(i) EEPROM_READ(hotend_offset[i][e]);
1084
+        #endif
1085
+      }
1087 1086
 
1088 1087
       //
1089 1088
       // Global Leveling
1090 1089
       //
1091
-
1092
-      #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1093
-        EEPROM_READ(new_z_fade_height);
1094
-      #else
1095
-        EEPROM_READ(dummy);
1096
-      #endif
1090
+      {
1091
+        #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1092
+          EEPROM_READ(new_z_fade_height);
1093
+        #else
1094
+          EEPROM_READ(dummy);
1095
+        #endif
1096
+      }
1097 1097
 
1098 1098
       //
1099 1099
       // Mesh (Manual) Bed Leveling
1100 1100
       //
1101
-
1102
-      uint8_t mesh_num_x, mesh_num_y;
1103
-      EEPROM_READ(dummy);
1104
-      EEPROM_READ_ALWAYS(mesh_num_x);
1105
-      EEPROM_READ_ALWAYS(mesh_num_y);
1106
-
1107
-      #if ENABLED(MESH_BED_LEVELING)
1108
-        if (!validating) mbl.z_offset = dummy;
1109
-        if (mesh_num_x == GRID_MAX_POINTS_X && mesh_num_y == GRID_MAX_POINTS_Y) {
1110
-          // EEPROM data fits the current mesh
1111
-          EEPROM_READ(mbl.z_values);
1112
-        }
1113
-        else {
1114
-          // EEPROM data is stale
1115
-          if (!validating) mbl.reset();
1101
+      {
1102
+        uint8_t mesh_num_x, mesh_num_y;
1103
+        EEPROM_READ(dummy);
1104
+        EEPROM_READ_ALWAYS(mesh_num_x);
1105
+        EEPROM_READ_ALWAYS(mesh_num_y);
1106
+
1107
+        #if ENABLED(MESH_BED_LEVELING)
1108
+          if (!validating) mbl.z_offset = dummy;
1109
+          if (mesh_num_x == GRID_MAX_POINTS_X && mesh_num_y == GRID_MAX_POINTS_Y) {
1110
+            // EEPROM data fits the current mesh
1111
+            EEPROM_READ(mbl.z_values);
1112
+          }
1113
+          else {
1114
+            // EEPROM data is stale
1115
+            if (!validating) mbl.reset();
1116
+            for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1117
+          }
1118
+        #else
1119
+          // MBL is disabled - skip the stored data
1116 1120
           for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1117
-        }
1118
-      #else
1119
-        // MBL is disabled - skip the stored data
1120
-        for (uint16_t q = mesh_num_x * mesh_num_y; q--;) EEPROM_READ(dummy);
1121
-      #endif // MESH_BED_LEVELING
1121
+        #endif // MESH_BED_LEVELING
1122
+      }
1122 1123
 
1123
-      _FIELD_TEST(zprobe_zoffset);
1124
+      //
1125
+      // Probe Z Offset
1126
+      //
1127
+      {
1128
+        _FIELD_TEST(zprobe_zoffset);
1124 1129
 
1125
-      #if !HAS_BED_PROBE
1126
-        float zprobe_zoffset;
1127
-      #endif
1128
-      EEPROM_READ(zprobe_zoffset);
1130
+        #if !HAS_BED_PROBE
1131
+          float zprobe_zoffset;
1132
+        #endif
1133
+        EEPROM_READ(zprobe_zoffset);
1134
+      }
1129 1135
 
1130 1136
       //
1131 1137
       // Planar Bed Leveling matrix
1132 1138
       //
1133
-
1134
-      #if ABL_PLANAR
1135
-        EEPROM_READ(planner.bed_level_matrix);
1136
-      #else
1137
-        for (uint8_t q = 9; q--;) EEPROM_READ(dummy);
1138
-      #endif
1139
+      {
1140
+        #if ABL_PLANAR
1141
+          EEPROM_READ(planner.bed_level_matrix);
1142
+        #else
1143
+          for (uint8_t q = 9; q--;) EEPROM_READ(dummy);
1144
+        #endif
1145
+      }
1139 1146
 
1140 1147
       //
1141 1148
       // Bilinear Auto Bed Leveling
1142 1149
       //
1143
-
1144
-      uint8_t grid_max_x, grid_max_y;
1145
-      EEPROM_READ_ALWAYS(grid_max_x);                       // 1 byte
1146
-      EEPROM_READ_ALWAYS(grid_max_y);                       // 1 byte
1147
-      #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
1148
-        if (grid_max_x == GRID_MAX_POINTS_X && grid_max_y == GRID_MAX_POINTS_Y) {
1149
-          if (!validating) set_bed_leveling_enabled(false);
1150
-          EEPROM_READ(bilinear_grid_spacing);        // 2 ints
1151
-          EEPROM_READ(bilinear_start);               // 2 ints
1152
-          EEPROM_READ(z_values);                     // 9 to 256 floats
1153
-        }
1154
-        else // EEPROM data is stale
1155
-      #endif // AUTO_BED_LEVELING_BILINEAR
1156
-        {
1157
-          // Skip past disabled (or stale) Bilinear Grid data
1158
-          int bgs[2], bs[2];
1159
-          EEPROM_READ(bgs);
1160
-          EEPROM_READ(bs);
1161
-          for (uint16_t q = grid_max_x * grid_max_y; q--;) EEPROM_READ(dummy);
1162
-        }
1150
+      {
1151
+        uint8_t grid_max_x, grid_max_y;
1152
+        EEPROM_READ_ALWAYS(grid_max_x);                       // 1 byte
1153
+        EEPROM_READ_ALWAYS(grid_max_y);                       // 1 byte
1154
+        #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
1155
+          if (grid_max_x == GRID_MAX_POINTS_X && grid_max_y == GRID_MAX_POINTS_Y) {
1156
+            if (!validating) set_bed_leveling_enabled(false);
1157
+            EEPROM_READ(bilinear_grid_spacing);        // 2 ints
1158
+            EEPROM_READ(bilinear_start);               // 2 ints
1159
+            EEPROM_READ(z_values);                     // 9 to 256 floats
1160
+          }
1161
+          else // EEPROM data is stale
1162
+        #endif // AUTO_BED_LEVELING_BILINEAR
1163
+          {
1164
+            // Skip past disabled (or stale) Bilinear Grid data
1165
+            int bgs[2], bs[2];
1166
+            EEPROM_READ(bgs);
1167
+            EEPROM_READ(bs);
1168
+            for (uint16_t q = grid_max_x * grid_max_y; q--;) EEPROM_READ(dummy);
1169
+          }
1170
+      }
1163 1171
 
1164 1172
       //
1165 1173
       // Unified Bed Leveling active state
1166 1174
       //
1175
+      {
1176
+        _FIELD_TEST(planner_leveling_active);
1167 1177
 
1168
-      _FIELD_TEST(planner_leveling_active);
1169
-
1170
-      #if ENABLED(AUTO_BED_LEVELING_UBL)
1171
-        EEPROM_READ(planner.leveling_active);
1172
-        EEPROM_READ(ubl.storage_slot);
1173
-      #else
1174
-        uint8_t dummyui8;
1175
-        EEPROM_READ(dummyb);
1176
-        EEPROM_READ(dummyui8);
1177
-      #endif // AUTO_BED_LEVELING_UBL
1178
+        #if ENABLED(AUTO_BED_LEVELING_UBL)
1179
+          EEPROM_READ(planner.leveling_active);
1180
+          EEPROM_READ(ubl.storage_slot);
1181
+        #else
1182
+          bool planner_leveling_active;
1183
+          uint8_t ubl_storage_slot;
1184
+          EEPROM_READ(planner_leveling_active);
1185
+          EEPROM_READ(ubl_storage_slot);
1186
+        #endif
1187
+      }
1178 1188
 
1179 1189
       //
1180 1190
       // SERVO_ANGLES
1181 1191
       //
1182
-      #if !HAS_SERVOS || DISABLED(EDITABLE_SERVO_ANGLES)
1183
-        uint16_t servo_angles[NUM_SERVOS][2];
1184
-      #endif
1185
-      EEPROM_READ(servo_angles);
1192
+      {
1193
+        #if !HAS_SERVOS || DISABLED(EDITABLE_SERVO_ANGLES)
1194
+          uint16_t servo_angles[NUM_SERVOS][2];
1195
+        #endif
1196
+        EEPROM_READ(servo_angles);
1197
+      }
1186 1198
 
1187 1199
       //
1188 1200
       // DELTA Geometry or Dual Endstops offsets
1189 1201
       //
1202
+      {
1203
+        #if ENABLED(DELTA)
1190 1204
 
1191
-      #if ENABLED(DELTA)
1205
+          _FIELD_TEST(delta_height);
1192 1206
 
1193
-        _FIELD_TEST(delta_height);
1207
+          EEPROM_READ(delta_height);              // 1 float
1208
+          EEPROM_READ(delta_endstop_adj);         // 3 floats
1209
+          EEPROM_READ(delta_radius);              // 1 float
1210
+          EEPROM_READ(delta_diagonal_rod);        // 1 float
1211
+          EEPROM_READ(delta_segments_per_second); // 1 float
1212
+          EEPROM_READ(delta_calibration_radius);  // 1 float
1213
+          EEPROM_READ(delta_tower_angle_trim);    // 3 floats
1194 1214
 
1195
-        EEPROM_READ(delta_height);              // 1 float
1196
-        EEPROM_READ(delta_endstop_adj);         // 3 floats
1197
-        EEPROM_READ(delta_radius);              // 1 float
1198
-        EEPROM_READ(delta_diagonal_rod);        // 1 float
1199
-        EEPROM_READ(delta_segments_per_second); // 1 float
1200
-        EEPROM_READ(delta_calibration_radius);  // 1 float
1201
-        EEPROM_READ(delta_tower_angle_trim);    // 3 floats
1215
+        #elif ENABLED(X_DUAL_ENDSTOPS) || ENABLED(Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
1202 1216
 
1203
-      #elif ENABLED(X_DUAL_ENDSTOPS) || ENABLED(Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
1217
+          _FIELD_TEST(x2_endstop_adj);
1204 1218
 
1205
-        _FIELD_TEST(x2_endstop_adj);
1219
+          #if ENABLED(X_DUAL_ENDSTOPS)
1220
+            EEPROM_READ(endstops.x2_endstop_adj);  // 1 float
1221
+          #else
1222
+            EEPROM_READ(dummy);
1223
+          #endif
1224
+          #if ENABLED(Y_DUAL_ENDSTOPS)
1225
+            EEPROM_READ(endstops.y2_endstop_adj);  // 1 float
1226
+          #else
1227
+            EEPROM_READ(dummy);
1228
+          #endif
1229
+          #if Z_MULTI_ENDSTOPS
1230
+            EEPROM_READ(endstops.z2_endstop_adj); // 1 float
1231
+          #else
1232
+            EEPROM_READ(dummy);
1233
+          #endif
1234
+          #if ENABLED(Z_TRIPLE_ENDSTOPS)
1235
+            EEPROM_READ(endstops.z3_endstop_adj); // 1 float
1236
+          #else
1237
+            EEPROM_READ(dummy);
1238
+          #endif
1206 1239
 
1207
-        #if ENABLED(X_DUAL_ENDSTOPS)
1208
-          EEPROM_READ(endstops.x2_endstop_adj);  // 1 float
1209
-        #else
1210
-          EEPROM_READ(dummy);
1211
-        #endif
1212
-        #if ENABLED(Y_DUAL_ENDSTOPS)
1213
-          EEPROM_READ(endstops.y2_endstop_adj);  // 1 float
1214
-        #else
1215
-          EEPROM_READ(dummy);
1216
-        #endif
1217
-        #if Z_MULTI_ENDSTOPS
1218
-          EEPROM_READ(endstops.z2_endstop_adj); // 1 float
1219
-        #else
1220
-          EEPROM_READ(dummy);
1221 1240
         #endif
1222
-        #if ENABLED(Z_TRIPLE_ENDSTOPS)
1223
-          EEPROM_READ(endstops.z3_endstop_adj); // 1 float
1224
-        #else
1225
-          EEPROM_READ(dummy);
1226
-        #endif
1227
-
1228
-      #endif
1241
+      }
1229 1242
 
1230 1243
       //
1231 1244
       // LCD Preheat settings
1232 1245
       //
1246
+      {
1247
+        _FIELD_TEST(lcd_preheat_hotend_temp);
1233 1248
 
1234
-      _FIELD_TEST(lcd_preheat_hotend_temp);
1235
-
1236
-      #if DISABLED(ULTIPANEL)
1237
-        int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2];
1238
-        uint8_t lcd_preheat_fan_speed[2];
1239
-      #endif
1240
-      EEPROM_READ(lcd_preheat_hotend_temp); // 2 floats
1241
-      EEPROM_READ(lcd_preheat_bed_temp);    // 2 floats
1242
-      EEPROM_READ(lcd_preheat_fan_speed);   // 2 floats
1249
+        #if DISABLED(ULTIPANEL)
1250
+          int16_t lcd_preheat_hotend_temp[2], lcd_preheat_bed_temp[2];
1251
+          uint8_t lcd_preheat_fan_speed[2];
1252
+        #endif
1253
+        EEPROM_READ(lcd_preheat_hotend_temp); // 2 floats
1254
+        EEPROM_READ(lcd_preheat_bed_temp);    // 2 floats
1255
+        EEPROM_READ(lcd_preheat_fan_speed);   // 2 floats
1256
+      }
1243 1257
 
1244 1258
       //
1245 1259
       // Hotend PID

Загрузка…
Отмена
Сохранить