Как программно возобновить приостановленную печать в Marlin

Печать, приостановленная с помощью M0, может быть отменена с помощью M108. Это работает с моим Chiron под управлением Marlin 2.0.7.2. Однако он также имеет дисплей, который использует свой собственный последовательный протокол для связи с Марлином. Я хочу, чтобы этот дисплей мог отключить мой принтер, когда он столкнулся с M0 в G-коде. Я попробовал injectCommands_P(PSTR("M108\n")); в коде, но это не сработало. Возможно, мне не следовало бы иметь в конце новой строки.

Какова правильная команда для этого?

void GcodeSuite::M108() {
  TERN_(HAS_RESUME_CONTINUE, wait_for_user = false);
  wait_for_heatup = false;
}

Выше приведен код Марлина для M108. Было бы здорово, если бы кто-нибудь смог расшифровать, что означает "КРАЧКА".

, 👍1

Обсуждение

TERN-это сокращение от "Троичный макрос". [Прокрутите вниз эту веб-страницу, чтобы найти, для чего она используется](https://marlinfw.org/docs/development/coding_standards.html). По сути, это утверждение "если-то"., @0scar

при паузе следующая строка G-кода не читается, @Trish

Пожалуйста, примите свой собственный ответ в качестве решения, поставив галочку ✔️ рядом с ответом, принятие вашего собственного ответа возможно через 48 часов после публикации., @0scar


1 ответ


Лучший ответ:

2

Правильная команда Marlin-command для отмены паузы, по-видимому, setUserConfirmed(). Я проверил, что это работает.


,