MCPcopy Create free account
hub / github.com/MarlinFirmware/Marlin / M303

Method M303

Marlin/src/gcode/temp/M303.cpp:48–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46 */
47
48void GcodeSuite::M303() {
49
50 #if HAS_PID_DEBUG
51 if (parser.seen_test('D')) {
52 FLIP(thermalManager.pid_debug_flag);
53 SERIAL_ECHO_MSG("PID Debug ", ON_OFF(thermalManager.pid_debug_flag));
54 return;
55 }
56 #endif
57
58 const heater_id_t hid = (heater_id_t)parser.intval('E');
59 celsius_t default_temp;
60 switch (hid) {
61 OPTCODE(PIDTEMP, case 0 ... HOTENDS - 1: default_temp = PREHEAT_1_TEMP_HOTEND; break)
62 OPTCODE(PIDTEMPBED, case H_BED: default_temp = PREHEAT_1_TEMP_BED; break)
63 OPTCODE(PIDTEMPCHAMBER, case H_CHAMBER: default_temp = PREHEAT_1_TEMP_CHAMBER; break)
64 default:
65 SERIAL_ECHOPGM(STR_PID_AUTOTUNE);
66 SERIAL_ECHOLNPGM(STR_PID_BAD_HEATER_ID);
67 TERN_(EXTENSIBLE_UI, ExtUI::onPIDTuning(ExtUI::pidresult_t::PID_BAD_HEATER_ID));
68 return;
69 }
70
71 const bool seenC = parser.seenval('C');
72 const int c = seenC ? parser.value_int() : 5;
73 const bool seenS = parser.seenval('S');
74 const celsius_t temp = seenS ? parser.value_celsius() : default_temp;
75 const bool u = parser.boolval('U');
76
77 TERN_(EXTENSIBLE_UI, ExtUI::onStartM303(c, hid, temp));
78
79 IF_DISABLED(BUSY_WHILE_HEATING, KEEPALIVE_STATE(NOT_BUSY));
80
81 LCD_MESSAGE(MSG_PID_AUTOTUNE);
82 thermalManager.PID_autotune(temp, hid, c, u);
83 ui.reset_status();
84
85 queue.flush_rx();
86}
87
88#endif // HAS_PID_HEATING

Callers

nothing calls this directly

Calls 13

ON_OFFFunction · 0.85
seen_testMethod · 0.80
intvalMethod · 0.80
seenvalMethod · 0.80
value_intMethod · 0.80
value_celsiusMethod · 0.80
boolvalMethod · 0.80
PID_autotuneMethod · 0.80
OPTCODEFunction · 0.50
onPIDTuningFunction · 0.50
onStartM303Function · 0.50
reset_statusMethod · 0.45

Tested by

no test coverage detected