✨ G-code 'T' report current tool (#26151)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
@@ -41,13 +41,21 @@
|
|||||||
* S1 Don't move the tool in XY after change
|
* S1 Don't move the tool in XY after change
|
||||||
*
|
*
|
||||||
* For PRUSA_MMU2(S) and EXTENDABLE_EMU_MMU2(S)
|
* For PRUSA_MMU2(S) and EXTENDABLE_EMU_MMU2(S)
|
||||||
* T[n] Gcode to extrude at least 38.10 mm at feedrate 19.02 mm/s must follow immediately to load to extruder wheels.
|
* T[n] G-code to extrude at least 38.10 mm at feedrate 19.02 mm/s must follow immediately to load to extruder wheels.
|
||||||
* T? Gcode to extrude shouldn't have to follow. Load to extruder wheels is done automatically.
|
* T? G-code to extrude shouldn't have to follow. Load to extruder wheels is done automatically.
|
||||||
* Tx Same as T?, but nozzle doesn't have to be preheated. Tc requires a preheated nozzle to finish filament load.
|
* Tx Same as T?, but nozzle doesn't have to be preheated. Tc requires a preheated nozzle to finish filament load.
|
||||||
* Tc Load to nozzle after filament was prepared by Tc and nozzle is already heated.
|
* Tc Load to nozzle after filament was prepared by Tc and nozzle is already heated.
|
||||||
*/
|
*/
|
||||||
void GcodeSuite::T(const int8_t tool_index) {
|
void GcodeSuite::T(const int8_t tool_index) {
|
||||||
|
|
||||||
|
#if HAS_MULTI_EXTRUDER
|
||||||
|
// For 'T' with no parameter report the current tool.
|
||||||
|
if (parser.string_arg && *parser.string_arg == '*') {
|
||||||
|
SERIAL_ECHOLNPGM(STR_ACTIVE_EXTRUDER, active_extruder);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DEBUG_SECTION(log_T, "T", DEBUGGING(LEVELING));
|
DEBUG_SECTION(log_T, "T", DEBUGGING(LEVELING));
|
||||||
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("...(", tool_index, ")");
|
if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("...(", tool_index, ")");
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,13 @@ void GCodeParser::parse(char *p) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Bail if there's no command code number
|
// Bail if there's no command code number
|
||||||
if (!TERN(SIGNED_CODENUM, NUMERIC_SIGNED(*p), NUMERIC(*p))) return;
|
if (!TERN(SIGNED_CODENUM, NUMERIC_SIGNED(*p), NUMERIC(*p))) {
|
||||||
|
if (TERN0(HAS_MULTI_EXTRUDER, letter == 'T')) {
|
||||||
|
p[0] = '*'; p[1] = '\0'; string_arg = p; // Convert 'T' alone into 'T*'
|
||||||
|
command_letter = letter;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Save the command letter at this point
|
// Save the command letter at this point
|
||||||
// A '?' signifies an unknown command
|
// A '?' signifies an unknown command
|
||||||
|
|||||||
Reference in New Issue
Block a user