Удалить экран загрузки Marlin

Я добавил пользовательский загрузочный экран в marlin, добавив _Bootscreen.h в корневую папку проекта, и он отлично работает. Проблема в том, что пользовательский экран отображается быстро и исчезает, а затем экран загрузки marlin отображается дольше. Я хочу удалить загрузочный экран marlin.

Я покопался в исходном коде и нашел пустую функцию lcd_bootscreen в заголовке ultralcd_impl_HD44780.h. Похоже, это функция, которая загружает загрузочный экран marlin из - за комментариев в коде. Я добавил return; в первую строку кода в этой функции, но загрузочный экран marlin все еще загружается.

Как удалить загрузочный экран marlin. Как заставить мой пользовательский загрузочный экран ждать больше времени?

Версия marlin-1.1.8.

, 👍8

Обсуждение

Не работаю с марлином, но мне лучше установить "#undef SHOW_BOOTSCREEN " в Configure.h на [документацию](http://marlinfw.org/docs/configuration/configuration.html#firmware-info) чтобы отключить загрузочный экран marlin, чем возиться с любым другим заголовком., @Tensibai

@Tensibai "SHOW_BOOTSCREEN" также используется для управления пользовательским загрузочным экраном. Если я сделаю это, мой пользовательский загрузочный экран не будет отображаться., @Programmer

Мне пришлось бы покопаться в заголовке больше, чтобы увидеть, какая часть загружает пользовательский экран загрузки, а какая заменяет его на экран marlin. Файл в точке h-это заголовки (объявления), поэтому изменение возврата функции вряд ли поможет, вероятно, есть лучший подход для управления этим, @Tensibai

Я знаю, что это файл заголовка, и упомянул об этом в своем вопросе. Для файла ultralcd_impl_HD44780 .h нет соответствующего файла.cpp. Они поместили код в файл .h. Проверьте [это](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd_impl_HD44780.h) выйдешь, когда у тебя будет время, @Programmer

Ему не нужен соответствующий файл cpp, просто определены различные заголовки, в этом заголовке есть различный код, вызываемый где-то в функции кода "main", чтобы действительно что-то сделать... Я чувствую, что в вашем пользовательском файле что-то неправильно переопределено, но я могу просто догадаться без этого и документации, которой вы следуете, @Tensibai


3 ответа


2

Итак, после некоторого поиска:

  1. Вы не можете (по крайней мере, не должны) удалить загрузочный экран marlin в соответствии с этой проблемой SHOW_CUSTOM_BOOTSCREEN скрывает логотип Marlin, цитата:

    Нам нужен был дополнительный логотип, а не замена логотипа Marlin.

  2. В соответствии с кодом здесь есть постоянная функция CUSTOM_BOOTSCREEN_TIMEOUT, принимающая значение по умолчанию 2500, что составляет 2,5 секунды, но вы можете переопределить ее в файле _Boostrap.h.

    Эта константа доступна только для ЖК-экранов DOGM, которые выбираются кодом здесь в ultralcd.cpp и без дополнительной информации о вашей машине трудно определить из Conditionals_LCD.h, который будет использоваться.


,

4

Вы можете добавить команду return; в файл ultralcd_impl_DOGM.h.

  void lcd_bootscreen() { 
    #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
      lcd_custom_bootscreen();
    #endif
    return;  // Add this line  
,

Это сработало!! Спасибо!!, @vidya


2

Мне удалось удалить загрузочный экран Marlin и сохранить собственный, закомментировав следующую строку в marlinui_DOGM.cpp (Marlin/Marlin/src/lcd/dogm/marlinui_DOGM. cpp):

void MarlinUI::show_bootscreen() {
    TERN_(SHOW_CUSTOM_BOOTSCREEN, show_custom_bootscreen());
    // show_marlin_bootscreen();
  }

Проверено и работает с Marlin 2.0.x.

,