mirror of
https://github.com/torlando-tech/columba
synced 2026-08-12 18:07:15 -04:00
Add support for connecting to WiFi-enabled RNode devices via TCP as an alternative to Bluetooth. This enables RNodes with WiFi chips to be accessed over the network using the standard Reticulum RNodeInterface. ## Data Model Changes - Add `tcpHost` and `tcpPort` fields to `InterfaceConfig.RNode` - Update `connectionMode` to support "tcp" in addition to "classic"/"ble" - Extend serialization/deserialization in InterfaceRepository with validation ## UI Changes (DeviceDiscoveryStep) - Add connection type selector with "Bluetooth" and "WiFi / TCP" chips - Add TcpConnectionForm composable with: - IP address or hostname input field - Port input field (default: 7633) - "Test Connection" button with validation feedback - Extract BluetoothDeviceDiscovery as separate composable - Only start Bluetooth scanning when in Bluetooth mode ## ViewModel Changes (RNodeWizardViewModel) - Add RNodeConnectionType enum (BLUETOOTH, TCP_WIFI) - Add TCP state fields: tcpHost, tcpPort, validation state - Add methods: setConnectionType(), updateTcpHost(), updateTcpPort(), validateTcpConnection() - Update canProceed() to handle TCP mode - Update saveConfiguration() to create TCP config - Update loadExistingConfig() to restore TCP settings when editing ## Python Config Generation (reticulum_wrapper.py) - For TCP mode: write to config file using standard RNodeInterface format with `port = tcp://host:port` - For Bluetooth mode: continue using ColumbaRNodeInterface (unchanged) ## Technical Notes TCP connections can use Reticulum's standard RNodeInterface since TCP sockets are standard Python (no jnius/Android-specific code needed). The custom ColumbaRNodeInterface remains necessary only for Bluetooth connections due to Android Bluetooth API requirements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| ble_modules | ||
| drivers | ||
| patches | ||
| android_ble_interface.py | ||
| columba_logo.py | ||
| conftest.py | ||
| logging_utils.py | ||
| requirements.txt | ||
| reticulum_wrapper.py | ||
| rnode_interface.py | ||
| test_android_ble_driver.py | ||
| test_announce_handler.py | ||
| test_opportunistic_timeout.py | ||
| test_path_request.py | ||
| test_propagation_fallback.py | ||
| test_rnode_interface.py | ||
| test_wrapper_announce_polling.py | ||
| test_wrapper_ble.py | ||
| test_wrapper_config.py | ||
| test_wrapper_destination.py | ||
| test_wrapper_identity.py | ||
| test_wrapper_initialization.py | ||
| test_wrapper_messaging.py | ||
| test_wrapper_path.py | ||
| test_wrapper_peer_identity.py | ||
| test_wrapper_propagation.py | ||
| test_wrapper_utilities.py | ||