* M86: Set / Report Hotend Idle Timeout * * Parameters * S : Idle timeout. Set to 0 to disable. * E : Extruder idle temperature to set on timeout * B : Bed idle temperature to set on timeout * T : Minimum extruder temperature to consider for timeout (> idle temperature) */
| 58 | * T<temp> : Minimum extruder temperature to consider for timeout (> idle temperature) |
| 59 | */ |
| 60 | void GcodeSuite::M86() { |
| 61 | if (!parser.seen_any()) return M86_report(); |
| 62 | hotend_idle_settings_t &c = hotend_idle.cfg; |
| 63 | if (parser.seenval('S')) c.timeout = parser.value_ushort(); |
| 64 | if (parser.seenval('T')) c.trigger = parser.value_celsius(); |
| 65 | if (parser.seenval('E')) c.nozzle_target = parser.value_celsius(); |
| 66 | #if HAS_HEATED_BED |
| 67 | if (parser.seenval('B')) c.bed_target = parser.value_celsius(); |
| 68 | #endif |
| 69 | const celsius_t min_trigger = c.nozzle_target + TEMP_HYSTERESIS; |
| 70 | if (c.trigger <= min_trigger) |
| 71 | SERIAL_ECHOLNPGM("?Idle Timeout (T) trigger temperature should be over ", min_trigger, "C."); |
| 72 | } |
| 73 | |
| 74 | /** |
| 75 | * M86: Cancel Hotend Idle Timeout (by setting the timeout period to 0) |
nothing calls this directly
no test coverage detected