Updated MMU serial status message

- Shown during bootup
- Shown on LCD menue MMU [ON|OFF]
- Shown using `M709`
- Shown when `Disable`d with MMU ERROR FW UPDATE NEEDED
This commit is contained in:
3d-gussner 2023-11-09 09:53:37 +01:00
parent e3392a763a
commit 0016b77827
5 changed files with 21 additions and 1 deletions

View File

@ -1125,6 +1125,7 @@ void setup()
if (eeprom_init_default_byte((uint8_t *)EEPROM_MMU_ENABLED, 0)) {
MMU2::mmu2.Start();
}
MMU2::mmu2.Status();
SpoolJoin::spooljoin.initSpoolJoinStatus();
//SERIAL_ECHOPAIR("Active sheet before:", static_cast<unsigned long int>(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet))));
@ -8640,7 +8641,7 @@ Sigma_Exit:
break;
}
}
printf_P(_n("MMU state:%d\n"), MMU2::mmu2.Enabled());
MMU2::mmu2.Status();
}
break;

View File

@ -12,6 +12,9 @@
#include "strlen_cx.h"
#include "SpoolJoin.h"
#include "messages.h"
#include "language.h"
#ifdef __AVR__
// As of FW 3.12 we only support building the FW with only one extruder, all the multi-extruder infrastructure will be removed.
// Saves at least 800B of code size
@ -52,6 +55,17 @@ MMU2::MMU2()
, tmcFailures(0) {
}
void MMU2::Status() {
// Useful information to see during bootup and change state
SERIAL_ECHOPGM("MMU is ");
uint8_t status = eeprom_init_default_byte((uint8_t*)EEPROM_MMU_ENABLED, 0);
if (status == 1) {
SERIAL_ECHOLNRPGM(_O(MSG_ON));
} else {
SERIAL_ECHOLNRPGM(_O(MSG_OFF));
}
}
void MMU2::Start() {
mmu2Serial.begin(MMU_BAUD);

View File

@ -39,6 +39,9 @@ public:
/// Stops the protocol logic, closes the UART, powers OFF the MMU
void Stop();
/// Serial output of MMU state
void Status();
inline xState State() const { return state; }
inline bool Enabled() const { return State() == xState::Active; }

View File

@ -347,6 +347,7 @@ void TryLoadUnloadReporter::DumpToSerial(){
/// Disables MMU in EEPROM
void DisableMMUInSettings() {
eeprom_update_byte((uint8_t *)EEPROM_MMU_ENABLED, false);
mmu2.Status();
}
void IncrementLoadFails(){

View File

@ -4093,6 +4093,7 @@ static void mmu_enable_switch()
}
eeprom_toggle((uint8_t *)EEPROM_MMU_ENABLED);
MMU2::mmu2.Status();
}
static void SETTINGS_SILENT_MODE()