Расположение вызова функции прошивки Marlin для команд меню
Я нашел функцию pause_print() в Marlin_main.cpp но когда я просматриваю остальные файлы, я не могу найти файл, который вызывает эту функцию. Я ожидал найти его где-нибудь в файле, который управляет меню ЖК-дисплея, но он существует только в главном.
В каком файле содержатся вызовы функций, которые происходят, когда я выбираю пункт меню на ЖК-дисплее?
И почему функция pause_print() не отображается в другом месте как вызов функции?
@cds333, 👍2
Обсуждение1 ответ
Эта функция вызывается g-кодами M125 и M600
Я мог бы найти ADVANCED_PAUSE_FEATURE
, определенный в configuration_adv.h
и вызванный в Conditionals_post.h
, трижды в Marlin.h
, на который ссылаются по мере необходимости для M600 в Marlin_Main.ccp
и упоминался 2 раза.
В файле Marlin_Main.ccp
он также объявляет функцию pause_print
в строке с 6482 по 6571. Его начало и конец таковы:
static bool pause_print(const float &retract, const point_t &park_point, const float &unload_length = 0,
const int8_t max_beep_count = 0, const bool show_lcd = false
) {
if (move_away_flag) return false; // already paused
#ifdef ACTION_ON_PAUSE
SERIAL_ECHOLNPGM("//action:" ACTION_ON_PAUSE);
#endif
[...]
HOTEND_LOOP()
thermalManager.start_heater_idle_timer(e, nozzle_timeout);
return true;
}
Эта функция определяет состояние паузы и в некоторых случаях полагается на функцию ADVANCED_PAUSE_FEATURE. Но как это называется? Достаточно просто, оба вызова находятся в одном и том же
файле Marlin_Main.ccp
, который его определяет. Вызовы находятся в функциях, которые используются для изменения филамента:
Строка 8534 gcode_M125 (Сохранить текущее положение и перейти в положение изменения филамента)
Строка 9939 gcode_M600 (Пауза для смены нити: "M600 X Y Z E L")
Спасибо! Причина, по которой я спрашиваю, заключается в том, что мой Ender 3 обычно парковал узел сопла, когда я делал паузу, что позволяло мне проверить свой отпечаток. Теперь, после того как я прошил generic marlin, этого не происходит, он просто перестает печатать, но сопло не двигается ......................................................................................................................................................... Я решил, что просто отредактирую один из параметров, переданных при вызове функции, но если я не смогу найти, где он вызывается при доступе из меню, то я не смогу этого сделать. Так как же мне это исправить? Спасибо, @cds333
@cds333 это другой вопрос. Для этого откройте новый вопрос., @Trish
- Указание смещения Z в прошивке Marlin
- Как добавить параметры меню в жидкокристаллическое меню (прошивка Marlin)?
- Есть ли способ изменить направление двигателя с помощью GCode вместо встроенного ПО в Marlin
- Что такое защита теплового побега?
- Обновление прошивки Marlin - Пошаговое руководство
- Как правильно установить смещения дома и ручные определения дома в Marlin?
- Как активировать Восстановление потерь энергии в Marlin?
- Настройка Marlin 2.x с помощью Ender 3 4.2.2 и BLTouch
Это связано с тем, что эта функция не имеет ничего общего с приостановкой работы принтера в меню дисплея. Эта функция используется функцией, которая приостанавливает работу принтера во время смены филамента или остановки головки на паузе. Используется M125 и M600., @0scar
Ааа. Спасибо, это моя ошибка. Я по глупости подумал, что функция, которая приостанавливает работу принтера, будет называться "пауза". Вы случайно не знаете, где находится этот вызов функции? Спасибо, @cds333
Почему вы удалили свой другой вопрос (добавление пунктов меню)? Это был правильный ответ, я уже начал отвечать на этот вопрос!, @0scar