| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | /// @file mmu2_reporting.h#pragma once#include <stdint.h>namespace MMU2 {enum CommandInProgress : uint8_t {    NoCommand = 0,    CutFilament = 'C',    EjectFilament = 'E',    Homing = 'H',    LoadFilament = 'L',    Reset = 'X',    ToolChange = 'T',    UnloadFilament = 'U',};/// Called at the begin of every MMU operationvoid BeginReport(CommandInProgress cip, uint16_t ec);/// Called at the end of every MMU operationvoid EndReport(CommandInProgress cip, uint16_t ec);/** * @brief Called when the MMU or MK3S sends operation error (even repeatedly). * Render MMU error screen on the LCD. This must be non-blocking * and allow the MMU and printer to communicate with each other. * @param[in] ec error code */void ReportErrorHook(uint16_t ec);/// Called when the MMU sends operation progress updatevoid ReportProgressHook(CommandInProgress cip, uint16_t ec);/// Remders the sensor status line. Also used by the "resume temperature" screen.void ReportErrorHookDynamicRender();/// Renders the static part of the sensor state line. Also used by "resuming temperature screen"void ReportErrorHookSensorLineRender();/// @returns true if the MMU is communicating and available/// can change at runtimebool MMUAvailable();/// Global Enable/Disable use MMU (to be stored in EEPROM)bool UseMMU();/// Increments EEPROM cell - number of failed loads into the nozzle/// Note: technically, this is not an MMU error but an error of the printer.void IncrementLoadFails();/// Increments EEPROM cell - number of MMU errorsvoid IncrementMMUFails();} // namespace
 |