From cac3b9ec6cb3f1e0947e5efa8fc526953db23bd2 Mon Sep 17 00:00:00 2001 From: callebtc <93376500+callebtc@users.noreply.github.com> Date: Sun, 13 Jul 2025 22:18:31 +0200 Subject: [PATCH] better logging of device id --- .../mesh/BluetoothGattServerManager.kt | 6 ++-- .../android/mesh/BluetoothMeshService.kt | 23 +++++++++++++- .../com/bitchat/android/mesh/PeerManager.kt | 30 +++++++++++++++++-- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothGattServerManager.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothGattServerManager.kt index fbff65b5..c73ea16c 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothGattServerManager.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothGattServerManager.kt @@ -121,7 +121,7 @@ class BluetoothGattServerManager( when (newState) { BluetoothProfile.STATE_CONNECTED -> { - Log.d(TAG, "Server: Device connected ${device.address}") + Log.i(TAG, "Server: Device connected ${device.address}") val deviceConn = BluetoothConnectionTracker.DeviceConnection( device = device, isClient = false @@ -129,7 +129,7 @@ class BluetoothGattServerManager( connectionTracker.addDeviceConnection(device.address, deviceConn) } BluetoothProfile.STATE_DISCONNECTED -> { - Log.d(TAG, "Server: Device disconnected ${device.address}") + Log.i(TAG, "Server: Device disconnected ${device.address}") connectionTracker.cleanupDeviceConnection(device.address) } } @@ -165,7 +165,7 @@ class BluetoothGattServerManager( } if (characteristic.uuid == CHARACTERISTIC_UUID) { - Log.d(TAG, "Server: Received packet from ${device.address}, size: ${value.size} bytes") + Log.i(TAG, "Server: Received packet from ${device.address}, size: ${value.size} bytes") val packet = BitchatPacket.fromBinaryData(value) if (packet != null) { val peerID = String(packet.senderID).replace("\u0000", "") diff --git a/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt b/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt index b9ca180d..775ce2a8 100644 --- a/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt +++ b/app/src/main/java/com/bitchat/android/mesh/BluetoothMeshService.kt @@ -521,6 +521,27 @@ class BluetoothMeshService(private val context: Context) { */ fun getPeerRSSI(): Map = peerManager.getAllPeerRSSI() + /** + * Get device address for a specific peer ID + */ + fun getDeviceAddressForPeer(peerID: String): String? { + return connectionManager.addressPeerMap.entries.find { it.value == peerID }?.key + } + + /** + * Get all device addresses mapped to their peer IDs + */ + fun getDeviceAddressToPeerMapping(): Map { + return connectionManager.addressPeerMap.toMap() + } + + /** + * Print device addresses for all connected peers + */ + fun printDeviceAddressesForPeers(): String { + return peerManager.getDebugInfoWithDeviceAddresses(connectionManager.addressPeerMap) + } + /** * Get debug status information */ @@ -531,7 +552,7 @@ class BluetoothMeshService(private val context: Context) { appendLine() appendLine(connectionManager.getDebugInfo()) appendLine() - appendLine(peerManager.getDebugInfo()) + appendLine(peerManager.getDebugInfo(connectionManager.addressPeerMap)) appendLine() appendLine(fragmentManager.getDebugInfo()) appendLine() diff --git a/app/src/main/java/com/bitchat/android/mesh/PeerManager.kt b/app/src/main/java/com/bitchat/android/mesh/PeerManager.kt index eeeb8ba7..a1234509 100644 --- a/app/src/main/java/com/bitchat/android/mesh/PeerManager.kt +++ b/app/src/main/java/com/bitchat/android/mesh/PeerManager.kt @@ -183,7 +183,7 @@ class PeerManager { /** * Get debug information */ - fun getDebugInfo(): String { + fun getDebugInfo(addressPeerMap: Map? = null): String { return buildString { appendLine("=== Peer Manager Debug Info ===") appendLine("Active Peers: ${activePeers.size}") @@ -191,13 +191,39 @@ class PeerManager { val nickname = peerNicknames[peerID] ?: "Unknown" val timeSince = (System.currentTimeMillis() - lastSeen) / 1000 val rssi = peerRSSI[peerID]?.let { "${it} dBm" } ?: "No RSSI" - appendLine(" - $peerID ($nickname) - last seen ${timeSince}s ago, RSSI: $rssi") + + // Find device address for this peer ID + val deviceAddress = addressPeerMap?.entries?.find { it.value == peerID }?.key + val addressInfo = deviceAddress?.let { " [Device: $it]" } ?: " [Device: Unknown]" + + appendLine(" - $peerID ($nickname)$addressInfo - last seen ${timeSince}s ago, RSSI: $rssi") } appendLine("Announced Peers: ${announcedPeers.size}") appendLine("Announced To Peers: ${announcedToPeers.size}") } } + /** + * Get debug information with device addresses + */ + fun getDebugInfoWithDeviceAddresses(addressPeerMap: Map): String { + return buildString { + appendLine("=== Device Address to Peer Mapping ===") + if (addressPeerMap.isEmpty()) { + appendLine("No device address mappings available") + } else { + addressPeerMap.forEach { (deviceAddress, peerID) -> + val nickname = peerNicknames[peerID] ?: "Unknown" + val isActive = activePeers.containsKey(peerID) + val status = if (isActive) "ACTIVE" else "INACTIVE" + appendLine(" Device: $deviceAddress -> Peer: $peerID ($nickname) [$status]") + } + } + appendLine() + appendLine(getDebugInfo(addressPeerMap)) + } + } + /** * Notify delegate of peer list updates */