Node list updates

This commit is contained in:
Garth Vander Houwen 2024-03-09 23:37:00 -08:00
parent 7ecba4cabe
commit 08de61ee71
6 changed files with 18 additions and 13 deletions

View file

@ -27,6 +27,7 @@ extension UserDefaults {
case enableDetectionNotifications
case detectionSensorRole
case enableSmartPosition
case modemPreset
}
func reset() {
@ -202,4 +203,12 @@ extension UserDefaults {
UserDefaults.standard.set(newValue, forKey: "enableSmartPosition")
}
}
static var modemPreset: Int {
get {
UserDefaults.standard.integer(forKey: "modemPreset")
}
set {
UserDefaults.standard.set(newValue, forKey: "modemPreset")
}
}
}

View file

@ -107,6 +107,7 @@ struct NodeMapSwiftUI: View {
if radius > 0.0 {
MapCircle(center: position.coordinate, radius: radius)
.foregroundStyle(Color(nodeColor).opacity(0.25))
.stroke(.white, lineWidth: 2)
}
}
Annotation(position.latest ? node.user?.shortName ?? "?": "", coordinate: position.coordinate) {

View file

@ -12,6 +12,7 @@ import MapKit
struct NodeInfoItem: View {
@ObservedObject var node: NodeInfoEntity
var modemPreset: ModemPresets = ModemPresets(rawValue: UserDefaults.modemPreset) ?? ModemPresets.longFast
var body: some View {
@ -37,11 +38,11 @@ struct NodeInfoItem: View {
if node.snr != 0 && !node.viaMqtt {
Divider()
VStack(alignment: .center) {
let signalStrength = getLoRaSignalStrength(snr: node.snr, rssi: node.rssi, preset: ModemPresets.longModerate)
let signalStrength = getLoRaSignalStrength(snr: node.snr, rssi: node.rssi, preset: modemPreset)
LoRaSignalStrengthIndicator(signalStrength: signalStrength)
Text("Signal \(signalStrength.description)").font(.footnote)
Text("SNR \(String(format: "%.2f", node.snr))dB")
.foregroundColor(getSnrColor(snr: node.snr, preset: ModemPresets.longModerate))
.foregroundColor(getSnrColor(snr: node.snr, preset: modemPreset))
.font(.caption2)
Text("RSSI \(node.rssi)dB")
.foregroundColor(getRssiColor(rssi: node.rssi))

View file

@ -13,7 +13,6 @@ struct NodeListItem: View {
@ObservedObject var node: NodeInfoEntity
var connected: Bool
var connectedNode: Int64
var modemPreset: Int
var body: some View {
@ -119,7 +118,7 @@ struct NodeListItem: View {
}
}
HStack {
if node.channel >= 0 {
if node.channel > 0 {
HStack {
Image(systemName: "\(node.channel).circle.fill")
.font(.title2)
@ -198,13 +197,6 @@ struct NodeListItem: View {
}
}
}
if !node.viaMqtt && connectedNode != node.num {
HStack (alignment: .bottom) {
let preset = ModemPresets(rawValue: Int(modemPreset))
LoRaSignalStrengthMeter(snr: node.snr, rssi: node.rssi, preset: preset ?? ModemPresets.longFast, compact: true)
}
.padding(.top)
}
}
.frame(maxWidth: .infinity, alignment: .leading)
}

View file

@ -62,8 +62,7 @@ struct NodeList: View {
NodeListItem(node: node,
connected: bleManager.connectedPeripheral != nil && bleManager.connectedPeripheral?.num ?? -1 == node.num,
connectedNode: (bleManager.connectedPeripheral != nil ? bleManager.connectedPeripheral?.num ?? -1 : -1),
modemPreset: Int(connectedNode?.loRaConfig?.modemPreset ?? 0))
connectedNode: (bleManager.connectedPeripheral != nil ? bleManager.connectedPeripheral?.num ?? -1 : -1))
.contextMenu {
if node.user != nil {
Button {

View file

@ -205,6 +205,9 @@ struct LoRaConfig: View {
lc.sx126XRxBoostedGain = rxBoostedGain
lc.overrideFrequency = overrideFrequency
lc.ignoreMqtt = ignoreMqtt
if connectedNode?.num ?? -1 == node?.user?.num ?? 0 {
UserDefaults.modemPreset = modemPreset
}
let adminMessageId = bleManager.saveLoRaConfig(config: lc, fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)
if adminMessageId > 0 {
// Should show a saved successfully alert once I know that to be true