123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /**
- * Marlin 3D Printer Firmware
- * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- *
- * Based on Sprinter and grbl.
- * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
- #pragma once
-
- #include "config/DGUS_Addr.h"
- #include "config/DGUS_Data.h"
- #include "config/DGUS_Screen.h"
- #include "config/DGUS_Constants.h"
-
- #include "../ui_api.h"
- #include "../../../inc/MarlinConfigPre.h"
-
- class DGUSScreenHandler {
- public:
- DGUSScreenHandler() = default;
-
- static void Init();
- static void Ready();
- static void Loop();
-
- static void PrinterKilled(PGM_P error, PGM_P component);
- static void UserConfirmRequired(const char * const msg);
- static void SettingsReset();
- static void StoreSettings(char *buff);
- static void LoadSettings(const char *buff);
- static void ConfigurationStoreWritten(bool success);
- static void ConfigurationStoreRead(bool success);
-
- static void PlayTone(const uint16_t frequency, const uint16_t duration);
- static void MeshUpdate(const int8_t xpos, const int8_t ypos);
- static void PrintTimerStarted();
- static void PrintTimerPaused();
- static void PrintTimerStopped();
- static void FilamentRunout(const ExtUI::extruder_t extruder);
-
- #if ENABLED(SDSUPPORT)
- /// Marlin informed us that a new SD has been inserted.
- static void SDCardInserted();
- /// Marlin informed us that the SD Card has been removed().
- static void SDCardRemoved();
- /// Marlin informed us about a bad SD Card.
- static void SDCardError();
- #endif
-
- #if ENABLED(POWER_LOSS_RECOVERY)
- static void PowerLossResume();
- #endif
-
- #if HAS_PID_HEATING
- static void PidTuning(const ExtUI::result_t rst);
- #endif
-
- static void SetMessageLine(const char* msg, uint8_t line);
- static void SetMessageLinePGM(PGM_P msg, uint8_t line);
-
- static void SetStatusMessage(const char* msg, const millis_t duration = DGUS_STATUS_EXPIRATION_MS);
- static void SetStatusMessagePGM(PGM_P msg, const millis_t duration = DGUS_STATUS_EXPIRATION_MS);
-
- static void ShowWaitScreen(DGUS_Screen return_screen, bool has_continue = false);
-
- static DGUS_Screen GetCurrentScreen();
- static void TriggerScreenChange(DGUS_Screen screen);
- static void TriggerFullUpdate();
-
- static void TriggerEEPROMSave();
-
- static bool IsPrinterIdle();
-
- static uint8_t debug_count;
-
- #if ENABLED(SDSUPPORT)
- static ExtUI::FileList filelist;
- static uint16_t filelist_offset;
- static int16_t filelist_selected;
- #endif
-
- static DGUS_Data::StepSize offset_steps;
- static DGUS_Data::StepSize move_steps;
-
- static uint16_t probing_icons[2];
-
- static DGUS_Data::Extruder filament_extruder;
- static uint16_t filament_length;
-
- static char gcode[DGUS_GCODE_LEN + 1];
-
- static DGUS_Data::Heater pid_heater;
- static uint16_t pid_temp;
- static uint8_t pid_cycles;
-
- static bool wait_continue;
-
- static bool leveling_active;
-
- private:
- static const DGUS_Addr* FindScreenAddrList(DGUS_Screen screen);
- static bool CallScreenSetup(DGUS_Screen screen);
-
- static void MoveToScreen(DGUS_Screen screen, bool abort_wait = false);
- static bool SendScreenVPData(DGUS_Screen screen, bool complete_update);
-
- static bool settings_ready;
- static bool booted;
-
- static DGUS_Screen current_screen;
- static DGUS_Screen new_screen;
- static bool full_update;
-
- static DGUS_Screen wait_return_screen;
-
- static millis_t status_expire;
- static millis_t eeprom_save;
-
- typedef struct {
- bool initialized;
- uint8_t volume;
- uint8_t brightness;
- bool abl;
- } eeprom_data_t;
- };
-
- extern DGUSScreenHandler dgus_screen_handler;
-
- extern const char DGUS_MSG_HOMING_REQUIRED[],
- DGUS_MSG_BUSY[],
- DGUS_MSG_UNDEF[],
- DGUS_MSG_HOMING[],
- DGUS_MSG_FW_OUTDATED[],
- DGUS_MSG_ABL_REQUIRED[];
-
- extern const char DGUS_CMD_HOME[],
- DGUS_CMD_EEPROM_SAVE[];
|