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 operation
- void BeginReport(CommandInProgress cip, uint16_t ec);
- /// Called at the end of every MMU operation
- void 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 update
- void 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 runtime
- bool 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 errors
- void IncrementMMUFails();
- } // namespace
|