From 0d9f31f7fbacd2987399383653e7519400058f58 Mon Sep 17 00:00:00 2001 From: Vadim Furman Date: Mon, 22 Mar 2021 21:10:58 -0700 Subject: [PATCH] Pipe rssi to the view --- .../main/java/com/geeksville/mesh/NodeInfo.kt | 3 ++- .../geeksville/mesh/service/MeshService.kt | 1 + .../com/geeksville/mesh/ui/UsersFragment.kt | 15 ++++++++--- .../main/res/layout/adapter_node_layout.xml | 26 ++++++++++--------- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/NodeInfo.kt b/app/src/main/java/com/geeksville/mesh/NodeInfo.kt index 86d32d78a..f4864dd91 100644 --- a/app/src/main/java/com/geeksville/mesh/NodeInfo.kt +++ b/app/src/main/java/com/geeksville/mesh/NodeInfo.kt @@ -83,7 +83,8 @@ data class NodeInfo( val num: Int, // This is immutable, and used as a key var user: MeshUser? = null, var position: Position? = null, - var snr: Float = 1000.0f + var snr: Float = Float.MAX_VALUE, + var rssi: Int = Int.MAX_VALUE ) : Parcelable { /// Return the last time we've seen this node in secs since 1970 diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index e0f38200f..68e9e1652 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -926,6 +926,7 @@ class MeshService : Service(), Logging { // Update our last seen based on any valid timestamps. If the device didn't provide a timestamp make one updateNodeInfoTime(it, rxTime) it.snr = packet.rxSnr + it.rssi = packet.rxRssi } handleReceivedData(packet) diff --git a/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt index 744a87106..0649aa429 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/UsersFragment.kt @@ -21,6 +21,7 @@ import com.geeksville.mesh.databinding.NodelistFragmentBinding import com.geeksville.mesh.model.UIViewModel import com.geeksville.util.formatAgo import java.net.URLEncoder +import kotlin.math.roundToInt class UsersFragment : ScreenFragment("Users"), Logging { @@ -41,7 +42,7 @@ class UsersFragment : ScreenFragment("Users"), Logging { val batteryPctView = itemView.batteryPercentageView val lastTime = itemView.lastConnectionView val powerIcon = itemView.batteryIcon - val snrView = itemView.snrView + val signalView = itemView.signalView } private val nodesAdapter = object : RecyclerView.Adapter() { @@ -143,10 +144,16 @@ class UsersFragment : ScreenFragment("Users"), Logging { holder.lastTime.text = formatAgo(n.lastSeen); if ((n.num == ourNodeInfo?.num) || (n.snr > 100f)) { - holder.snrView.visibility = View.INVISIBLE + holder.signalView.visibility = View.INVISIBLE } else { - holder.snrView.visibility = View.VISIBLE - holder.snrView.text = n.snr.toString() + val text = if (n.rssi < 0) { + "rssi:${n.rssi} snr:${n.snr.roundToInt()}" + } else { + // Older devices do not send rssi. Remove this branch once upgraded past 1.2.1 + "snr:${n.snr.roundToInt()}" + } + holder.signalView.text = text + holder.signalView.visibility = View.VISIBLE } } diff --git a/app/src/main/res/layout/adapter_node_layout.xml b/app/src/main/res/layout/adapter_node_layout.xml index 75905d5e9..b30bc1394 100644 --- a/app/src/main/res/layout/adapter_node_layout.xml +++ b/app/src/main/res/layout/adapter_node_layout.xml @@ -60,7 +60,7 @@ android:layout_marginBottom="8dp" android:text="@string/sample_coords" android:textAppearance="@style/TextAppearance.AppCompat.Small" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@+id/distance_view" app:layout_constraintTop_toBottomOf="@+id/imageView" app:layout_constraintVertical_bias="0.0" /> @@ -85,16 +85,6 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/batteryIcon" /> - - @@ -116,6 +107,17 @@ app:layout_constraintBottom_toBottomOf="@+id/lastCommIcon" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@+id/lastCommIcon" /> + + + \ No newline at end of file