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
 #include "../gcode.h"
23
 #include "../gcode.h"
24
 #include "../../inc/MarlinConfig.h"
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
  * M115: Capabilities string
35
  * M115: Capabilities string
28
  */
36
  */
32
   #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
40
   #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
33
 
41
 
34
     // SERIAL_XON_XOFF
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
     // EEPROM (M500, M501)
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
     // AUTOREPORT_TEMP (M155)
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
     // PROGRESS (M530 S L, M531 <file>, M532 X L)
70
     // PROGRESS (M530 S L, M531 <file>, M532 X L)
56
-    SERIAL_PROTOCOLLNPGM("Cap:PROGRESS:0");
71
+    cap_line(PSTR("PROGRESS"));
57
 
72
 
58
     // Print Job timer M75, M76, M77
73
     // Print Job timer M75, M76, M77
59
-    SERIAL_PROTOCOLLNPGM("Cap:PRINT_JOB:1");
74
+    cap_line(PSTR("PRINT_JOB"), true);
60
 
75
 
61
     // AUTOLEVEL (G29)
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
     // Z_PROBE (G30)
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
     // MESH_REPORT (M420 V)
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
     // BUILD_PERCENT (M73)
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
     // SOFTWARE_POWER (M80, M81)
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
     // CASE LIGHTS (M355)
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
     // EMERGENCY_PARSER (M108, M112, M410)
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
   #endif // EXTENDED_CAPABILITIES_REPORT
130
   #endif // EXTENDED_CAPABILITIES_REPORT
117
 }
131
 }

Loading…
Cancel
Save