Introduce isInBullshitState() to restart the modem stack quicker when it breaks

This commit is contained in:
2025-05-28 15:44:14 +02:00
parent 5187d3f94e
commit bd6bf6df26
4 changed files with 15 additions and 0 deletions
@@ -96,6 +96,8 @@ public:
*/
bool recover();
bool isInBullshitState() { if (m_isInBullshitState) { m_isInBullshitState = false; return true; } return false; }
private:
enum class protocol_mismatch_reason {
@@ -128,6 +130,9 @@ private:
bool on_footer(CMuxFrame &frame);
void recover_protocol(protocol_mismatch_reason reason);
//! When espressif again fucks up the recovering of the MUX
bool m_isInBullshitState{};
std::function<bool(uint8_t *data, size_t len)> read_cb[MAX_TERMINALS_NUM]; /*!< Function pointers to read callbacks */
std::shared_ptr<Terminal> term; /*!< The original terminal */
cmux_state state; /*!< CMux protocol state */
@@ -151,6 +151,8 @@ public:
*/
void set_command_callbacks();
bool isInBullshitState();
protected:
/**
* @brief Allows for locking the DTE