Browse Source

[SMUFF] Use EXTRUDERS for extended commands (#21212)

Giuliano Zaro 4 years ago
parent
commit
4f840c211c
No account linked to committer's email address

+ 8
- 24
Marlin/src/feature/mmu/mmu2.cpp View File

62
 #endif
62
 #endif
63
 
63
 
64
 #define MMU_CMD_NONE 0
64
 #define MMU_CMD_NONE 0
65
-#define MMU_CMD_T0   0x10
66
-#define MMU_CMD_T1   0x11
67
-#define MMU_CMD_T2   0x12
68
-#define MMU_CMD_T3   0x13
69
-#define MMU_CMD_T4   0x14
70
-#define MMU_CMD_L0   0x20
71
-#define MMU_CMD_L1   0x21
72
-#define MMU_CMD_L2   0x22
73
-#define MMU_CMD_L3   0x23
74
-#define MMU_CMD_L4   0x24
65
+#define MMU_CMD_T0   0x10  // up to supported filaments
66
+#define MMU_CMD_L0   0x20  // up to supported filaments
75
 #define MMU_CMD_C0   0x30
67
 #define MMU_CMD_C0   0x30
76
 #define MMU_CMD_U0   0x40
68
 #define MMU_CMD_U0   0x40
77
-#define MMU_CMD_E0   0x50
78
-#define MMU_CMD_E1   0x51
79
-#define MMU_CMD_E2   0x52
80
-#define MMU_CMD_E3   0x53
81
-#define MMU_CMD_E4   0x54
69
+#define MMU_CMD_E0   0x50  // up to supported filaments
82
 #define MMU_CMD_R0   0x60
70
 #define MMU_CMD_R0   0x60
83
-#define MMU_CMD_F0   0x70
84
-#define MMU_CMD_F1   0x71
85
-#define MMU_CMD_F2   0x72
86
-#define MMU_CMD_F3   0x73
87
-#define MMU_CMD_F4   0x74
71
+#define MMU_CMD_F0   0x70  // up to supported filaments
88
 
72
 
89
 #define MMU_REQUIRED_FW_BUILDNR TERN(MMU2_MODE_12V, 132, 126)
73
 #define MMU_REQUIRED_FW_BUILDNR TERN(MMU2_MODE_12V, 132, 126)
90
 
74
 
243
 
227
 
244
     case 1:
228
     case 1:
245
       if (cmd) {
229
       if (cmd) {
246
-        if (WITHIN(cmd, MMU_CMD_T0, MMU_CMD_T4)) {
230
+        if (WITHIN(cmd, MMU_CMD_T0, MMU_CMD_T0 + EXTRUDERS - 1)) {
247
           // tool change
231
           // tool change
248
           int filament = cmd - MMU_CMD_T0;
232
           int filament = cmd - MMU_CMD_T0;
249
           DEBUG_ECHOLNPAIR("MMU <= T", filament);
233
           DEBUG_ECHOLNPAIR("MMU <= T", filament);
251
           TERN_(MMU_EXTRUDER_SENSOR, mmu_idl_sens = 1); // enable idler sensor, if any
235
           TERN_(MMU_EXTRUDER_SENSOR, mmu_idl_sens = 1); // enable idler sensor, if any
252
           state = 3; // wait for response
236
           state = 3; // wait for response
253
         }
237
         }
254
-        else if (WITHIN(cmd, MMU_CMD_L0, MMU_CMD_L4)) {
238
+        else if (WITHIN(cmd, MMU_CMD_L0, MMU_CMD_L0 + EXTRUDERS - 1)) {
255
           // load
239
           // load
256
           int filament = cmd - MMU_CMD_L0;
240
           int filament = cmd - MMU_CMD_L0;
257
           DEBUG_ECHOLNPAIR("MMU <= L", filament);
241
           DEBUG_ECHOLNPAIR("MMU <= L", filament);
271
           MMU2_COMMAND("U0");
255
           MMU2_COMMAND("U0");
272
           state = 3; // wait for response
256
           state = 3; // wait for response
273
         }
257
         }
274
-        else if (WITHIN(cmd, MMU_CMD_E0, MMU_CMD_E4)) {
258
+        else if (WITHIN(cmd, MMU_CMD_E0, MMU_CMD_E0 + EXTRUDERS - 1)) {
275
           // eject filament
259
           // eject filament
276
           int filament = cmd - MMU_CMD_E0;
260
           int filament = cmd - MMU_CMD_E0;
277
           DEBUG_ECHOLNPAIR("MMU <= E", filament);
261
           DEBUG_ECHOLNPAIR("MMU <= E", filament);
284
           MMU2_COMMAND("R0");
268
           MMU2_COMMAND("R0");
285
           state = 3; // wait for response
269
           state = 3; // wait for response
286
         }
270
         }
287
-        else if (WITHIN(cmd, MMU_CMD_F0, MMU_CMD_F4)) {
271
+        else if (WITHIN(cmd, MMU_CMD_F0, MMU_CMD_F0 + EXTRUDERS - 1)) {
288
           // filament type
272
           // filament type
289
           int filament = cmd - MMU_CMD_F0;
273
           int filament = cmd - MMU_CMD_F0;
290
           DEBUG_ECHOLNPAIR("MMU <= F", filament, " ", cmd_arg);
274
           DEBUG_ECHOLNPAIR("MMU <= F", filament, " ", cmd_arg);

+ 1
- 1
Marlin/src/gcode/feature/prusa_MMU2/M403.cpp View File

40
   int8_t index = parser.intval('E', -1),
40
   int8_t index = parser.intval('E', -1),
41
          type = parser.intval('F', -1);
41
          type = parser.intval('F', -1);
42
 
42
 
43
-  if (WITHIN(index, 0, 4) && WITHIN(type, 0, 2))
43
+  if (WITHIN(index, 0, EXTRUDERS - 1) && WITHIN(type, 0, 2))
44
     mmu2.set_filament_type(index, type);
44
     mmu2.set_filament_type(index, type);
45
   else
45
   else
46
     SERIAL_ECHO_MSG("M403 - bad arguments.");
46
     SERIAL_ECHO_MSG("M403 - bad arguments.");

+ 1
- 1
Marlin/src/inc/Conditionals_LCD.h View File

513
     #define HAS_PRUSA_MMU2 1
513
     #define HAS_PRUSA_MMU2 1
514
     #define HAS_PRUSA_MMU2S 1
514
     #define HAS_PRUSA_MMU2S 1
515
   #endif
515
   #endif
516
-  #if MMU_MODEL >= SMUFF_EMU_MMU2
516
+  #if MMU_MODEL == SMUFF_EMU_MMU2 || MMU_MODEL == SMUFF_EMU_MMU2S
517
     #define HAS_SMUFF 1
517
     #define HAS_SMUFF 1
518
   #endif
518
   #endif
519
 #endif
519
 #endif

Loading…
Cancel
Save