fix: correct dual serial interface — routing, UI state, debug logging

- isConnected() returns true always (USB always available, mesh can send)
- isBLEConnected() added to BaseSerialInterface for BLE-specific UI/buzzer state
- MyMesh uses isBLEConnected() to update UITask connection indicator
- Disable BLE_DEBUG_LOGGING in dual build (would corrupt USB stream)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-05-20 18:24:55 +02:00
co-authored by Claude Sonnet 4.6
parent 1787752e82
commit 9427fa1999
4 changed files with 10 additions and 3 deletions
+4
View File
@@ -14,6 +14,10 @@ public:
virtual bool isEnabled() const = 0;
virtual bool isConnected() const = 0;
// Returns true when a BLE companion app is connected. Default delegates to
// isConnected(); override in dual-interface wrappers that always report
// isConnected()=true but still need to distinguish BLE from USB state.
virtual bool isBLEConnected() const { return isConnected(); }
virtual bool isWriteBusy() const = 0;
virtual size_t writeFrame(const uint8_t src[], size_t len) = 0;
+4 -2
View File
@@ -22,8 +22,10 @@ public:
void disable() override { _ble.disable(); _usb.disable(); }
bool isEnabled() const override { return _ble.isEnabled() || _usb.isEnabled(); }
// Reports BLE connection state (used for UI indicator and buzzer Auto mode)
bool isConnected() const override { return _ble.isConnected(); }
// Always true — USB is always available as fallback, so the mesh can send.
bool isConnected() const override { return true; }
// True only when a BLE companion app is paired and connected.
bool isBLEConnected() const override { return _ble.isConnected(); }
bool isWriteBusy() const override {
return _ble.isConnected() ? _ble.isWriteBusy() : _usb.isWriteBusy();