Browse Source

Add VOLUMETRIC capability item

Scott Lahteine 7 years ago
parent
commit
93a6a4e1a8
1 changed files with 72 additions and 58 deletions
  1. 72
    58
      Marlin/src/gcode/host/M115.cpp

+ 72
- 58
Marlin/src/gcode/host/M115.cpp View File

@@ -23,6 +23,14 @@
23 23
 #include "../gcode.h"
24 24
 #include "../../inc/MarlinConfig.h"
25 25
 
26
+#if ENABLED(EXTENDED_CAPABILITIES_REPORT)
27
+  static void cap_line(const char * const name, bool ena=false) {
28
+    SERIAL_PROTOCOLPGM("Cap:");
29
+    serialprintPGM(name);
30
+    SERIAL_PROTOCOLLN(int(ena ? 1 : 0));
31
+  }
32
+#endif
33
+
26 34
 /**
27 35
  * M115: Capabilities string
28 36
  */
@@ -32,86 +40,92 @@ void GcodeSuite::M115() {
32 40
   #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
33 41
 
34 42
     // SERIAL_XON_XOFF
35
-    #if ENABLED(SERIAL_XON_XOFF)
36
-      SERIAL_PROTOCOLLNPGM("Cap:SERIAL_XON_XOFF:1");
37
-    #else
38
-      SERIAL_PROTOCOLLNPGM("Cap:SERIAL_XON_XOFF:0");
39
-    #endif
43
+    cap_line(PSTR("SERIAL_XON_XOFF")
44
+      #if ENABLED(SERIAL_XON_XOFF)
45
+        , true
46
+      #endif
47
+    );
40 48
 
41 49
     // EEPROM (M500, M501)
42
-    #if ENABLED(EEPROM_SETTINGS)
43
-      SERIAL_PROTOCOLLNPGM("Cap:EEPROM:1");
44
-    #else
45
-      SERIAL_PROTOCOLLNPGM("Cap:EEPROM:0");
46
-    #endif
50
+    cap_line(PSTR("EEPROM")
51
+      #if ENABLED(EEPROM_SETTINGS)
52
+        , true
53
+      #endif
54
+    );
55
+
56
+    // Volumetric Extrusion (M200)
57
+    cap_line(PSTR("VOLUMETRIC")
58
+      #if DISABLED(NO_VOLUMETRICS)
59
+        , true
60
+      #endif
61
+    );
47 62
 
48 63
     // AUTOREPORT_TEMP (M155)
49
-    #if ENABLED(AUTO_REPORT_TEMPERATURES)
50
-      SERIAL_PROTOCOLLNPGM("Cap:AUTOREPORT_TEMP:1");
51
-    #else
52
-      SERIAL_PROTOCOLLNPGM("Cap:AUTOREPORT_TEMP:0");
53
-    #endif
64
+    cap_line(PSTR("AUTOREPORT_TEMP")
65
+      #if ENABLED(AUTO_REPORT_TEMPERATURES)
66
+        , true
67
+      #endif
68
+    );
54 69
 
55 70
     // PROGRESS (M530 S L, M531 <file>, M532 X L)
56
-    SERIAL_PROTOCOLLNPGM("Cap:PROGRESS:0");
71
+    cap_line(PSTR("PROGRESS"));
57 72
 
58 73
     // Print Job timer M75, M76, M77
59
-    SERIAL_PROTOCOLLNPGM("Cap:PRINT_JOB:1");
74
+    cap_line(PSTR("PRINT_JOB"), true);
60 75
 
61 76
     // AUTOLEVEL (G29)
62
-    #if HAS_AUTOLEVEL
63
-      SERIAL_PROTOCOLLNPGM("Cap:AUTOLEVEL:1");
64
-    #else
65
-      SERIAL_PROTOCOLLNPGM("Cap:AUTOLEVEL:0");
66
-    #endif
77
+    cap_line(PSTR("AUTOLEVEL")
78
+      #if HAS_AUTOLEVEL
79
+        , true
80
+      #endif
81
+    );
67 82
 
68 83
     // Z_PROBE (G30)
69
-    #if HAS_BED_PROBE
70
-      SERIAL_PROTOCOLLNPGM("Cap:Z_PROBE:1");
71
-    #else
72
-      SERIAL_PROTOCOLLNPGM("Cap:Z_PROBE:0");
73
-    #endif
84
+    cap_line(PSTR("Z_PROBE")
85
+      #if HAS_BED_PROBE
86
+        , true
87
+      #endif
88
+    );
74 89
 
75 90
     // MESH_REPORT (M420 V)
76
-    #if HAS_LEVELING
77
-      SERIAL_PROTOCOLLNPGM("Cap:LEVELING_DATA:1");
78
-    #else
79
-      SERIAL_PROTOCOLLNPGM("Cap:LEVELING_DATA:0");
80
-    #endif
91
+    cap_line(PSTR("LEVELING_DATA")
92
+      #if HAS_LEVELING
93
+        , true
94
+      #endif
95
+    );
81 96
 
82 97
     // BUILD_PERCENT (M73)
83
-    #if ENABLED(LCD_SET_PROGRESS_MANUALLY)
84
-      SERIAL_PROTOCOLLNPGM("Cap:BUILD_PERCENT:1");
85
-    #else
86
-      SERIAL_PROTOCOLLNPGM("Cap:BUILD_PERCENT:0");
87
-    #endif
98
+    cap_line(PSTR("BUILD_PERCENT")
99
+      #if ENABLED(LCD_SET_PROGRESS_MANUALLY)
100
+        , true
101
+      #endif
102
+    );
88 103
 
89 104
     // SOFTWARE_POWER (M80, M81)
90
-    #if HAS_POWER_SWITCH
91
-      SERIAL_PROTOCOLLNPGM("Cap:SOFTWARE_POWER:1");
92
-    #else
93
-      SERIAL_PROTOCOLLNPGM("Cap:SOFTWARE_POWER:0");
94
-    #endif
105
+    cap_line(PSTR("SOFTWARE_POWER")
106
+      #if HAS_POWER_SWITCH
107
+        , true
108
+      #endif
109
+    );
95 110
 
96 111
     // CASE LIGHTS (M355)
97
-    #if HAS_CASE_LIGHT
98
-      SERIAL_PROTOCOLLNPGM("Cap:TOGGLE_LIGHTS:1");
99
-      if (USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)) {
100
-        SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:1");
101
-      }
102
-      else
103
-        SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:0");
104
-    #else
105
-      SERIAL_PROTOCOLLNPGM("Cap:TOGGLE_LIGHTS:0");
106
-      SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:0");
107
-    #endif
112
+    cap_line(PSTR("TOGGLE_LIGHTS")
113
+      #if HAS_CASE_LIGHT
114
+        , true
115
+      #endif
116
+    );
117
+    cap_line(PSTR("CASE_LIGHT_BRIGHTNESS")
118
+      #if HAS_CASE_LIGHT
119
+        , USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)
120
+      #endif
121
+    );
108 122
 
109 123
     // EMERGENCY_PARSER (M108, M112, M410)
110
-    #if ENABLED(EMERGENCY_PARSER)
111
-      SERIAL_PROTOCOLLNPGM("Cap:EMERGENCY_PARSER:1");
112
-    #else
113
-      SERIAL_PROTOCOLLNPGM("Cap:EMERGENCY_PARSER:0");
114
-    #endif
124
+    cap_line(PSTR("EMERGENCY_PARSER")
125
+      #if ENABLED(EMERGENCY_PARSER)
126
+        , true
127
+      #endif
128
+    );
115 129
 
116 130
   #endif // EXTENDED_CAPABILITIES_REPORT
117 131
 }

Loading…
Cancel
Save