ble-reticulum/src/RNS
torlando-tech f3cafedb60 fix(ble): Resolve connection role and startup errors
This commit addresses two critical issues that prevented the BLE
interface from functioning correctly after the driver abstraction
refactor.

1.  **Fix `exec()` Startup Error:**
    The interface failed to load via `rnsd` due to a `KeyError: '__name__'`
    caused by using relative imports (`from . import ...`). The `exec()`
    environment used by Reticulum does not preserve package context,
    breaking these imports. This is fixed by reverting to absolute
    imports (`from bluetooth_driver import ...`) which work correctly
    with the existing `sys.path` manipulation logic.

2.  **Fix Connection Role Logic:**
    Connections were failing because the interface would always attempt
    to read the peer's identity, even when acting as the peripheral.
    This caused a `Can only read characteristics in central mode` error.

    The fix introduces role-aware logic into the connection callback:
    - A `get_peer_role()` method was added to the driver interface.
    - `BLEInterface` now checks the role on connection.
    - If central, it reads the identity characteristic.
    - If peripheral, it waits for the identity handshake packet,
      preventing the invalid operation.
2025-11-03 23:43:30 -05:00
..
Interfaces fix(ble): Resolve connection role and startup errors 2025-11-03 23:43:30 -05:00
__init__.py Initial commit: BLE Reticulum interface 2025-10-26 19:14:14 -04:00