Skip to content

Commit 7da0590

Browse files
committed
Merge branch '2.7.6' into firmware-updates
# Conflicts: # Localizable.xcstrings # Meshtastic.xcodeproj/project.pbxproj # Meshtastic.xcworkspace/xcshareddata/swiftpm/Package.resolved
2 parents b4f6498 + ffcbeee commit 7da0590

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1735
-3786
lines changed

Localizable.xcstrings

Lines changed: 53 additions & 44 deletions
Large diffs are not rendered by default.

Meshtastic.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
B3E905B12B71F7F300654D07 /* TextMessageField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3E905B02B71F7F300654D07 /* TextMessageField.swift */; };
115115
BC10380F2DD4334400B00BFA /* AddContactIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC10380E2DD4333C00B00BFA /* AddContactIntent.swift */; };
116116
BC6B45FF2CB2F98900723CEB /* SaveChannelSettingsIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC6B45FE2CB2F98900723CEB /* SaveChannelSettingsIntent.swift */; };
117+
BCA9A82C2EC802CF00166292 /* CompassView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCA9A82B2EC802CF00166292 /* CompassView.swift */; };
117118
BCB35B4F2E5FC42500B04F60 /* MessageNodeIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCB35B4E2E5FC41E00B04F60 /* MessageNodeIntent.swift */; };
118119
BCB613812C67290800485544 /* SendWaypointIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCB613802C67290800485544 /* SendWaypointIntent.swift */; };
119120
BCB613832C672A2600485544 /* MessageChannelIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCB613822C672A2600485544 /* MessageChannelIntent.swift */; };
@@ -447,6 +448,7 @@
447448
B3E905B02B71F7F300654D07 /* TextMessageField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextMessageField.swift; sourceTree = "<group>"; };
448449
BC10380E2DD4333C00B00BFA /* AddContactIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddContactIntent.swift; sourceTree = "<group>"; };
449450
BC6B45FE2CB2F98900723CEB /* SaveChannelSettingsIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveChannelSettingsIntent.swift; sourceTree = "<group>"; };
451+
BCA9A82B2EC802CF00166292 /* CompassView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompassView.swift; sourceTree = "<group>"; };
450452
BCB35B4E2E5FC41E00B04F60 /* MessageNodeIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageNodeIntent.swift; sourceTree = "<group>"; };
451453
BCB613802C67290800485544 /* SendWaypointIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendWaypointIntent.swift; sourceTree = "<group>"; };
452454
BCB613822C672A2600485544 /* MessageChannelIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageChannelIntent.swift; sourceTree = "<group>"; };
@@ -1457,6 +1459,7 @@
14571459
8D3F8A3E2D44BB02009EAAA4 /* PowerMetrics.swift */,
14581460
237B46952DC8F1C100B22D99 /* RateLimitedButton.swift */,
14591461
23A1AFB62E42BD2500E46C96 /* RXTXIndicatorView.swift */,
1462+
BCA9A82B2EC802CF00166292 /* CompassView.swift */,
14601463
23C2BD2A2EE8993800F6A997 /* DeviceHardwareImage.swift */,
14611464
23C2BE242EE9A8E100F6A997 /* SupportedHardwareBadge.swift */,
14621465
);
@@ -2039,6 +2042,7 @@
20392042
DDD94A502845C8F5004A87A0 /* DateTimeText.swift in Sources */,
20402043
23C2BE312EEB823900F6A997 /* NRFDFUSheet.swift in Sources */,
20412044
DDB6ABE228B13FB500384BA1 /* PositionConfigEnums.swift in Sources */,
2045+
BCA9A82C2EC802CF00166292 /* CompassView.swift in Sources */,
20422046
DD994B69295F88B60013760A /* IntervalEnums.swift in Sources */,
20432047
23D316932E5618D2002FA4FB /* AsyncGate.swift in Sources */,
20442048
23FF00B62E323C75001DF095 /* AccessoryManager+Connect.swift in Sources */,

Meshtastic.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Meshtastic.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Meshtastic/Accessory/Accessory Manager/AccessoryManager+Connect.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ actor SequentialSteps {
267267
var isRunning: Bool = false
268268
var externalError: Error?
269269

270-
init(maxRetries: Int = 1, retryDelay: Duration = .seconds(5), @StepsBuilder _ builder: () -> [Step]) {
270+
init(maxRetries: Int = 3, retryDelay: Duration = .seconds(3), @StepsBuilder _ builder: () -> [Step]) {
271271
self.maxRetries = maxRetries
272272
self.retryDelay = retryDelay
273273
self.steps = builder()
@@ -353,7 +353,7 @@ actor SequentialSteps {
353353
}
354354
isRunning = false
355355
return
356-
//throw AccessoryError.tooManyRetries
356+
throw AccessoryError.tooManyRetries
357357
}
358358

359359
func cancel() {

Meshtastic/Accessory/Accessory Manager/AccessoryManager+ToRadio.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1814,7 +1814,7 @@ extension AccessoryManager {
18141814

18151815
public func sendNodeDBReset(fromUser: UserEntity, toUser: UserEntity) async throws {
18161816
var adminPacket = AdminMessage()
1817-
adminPacket.nodedbReset = 5
1817+
adminPacket.nodedbReset = true
18181818
if fromUser != toUser {
18191819
adminPacket.sessionPasskey = toUser.userNode?.sessionPasskey ?? Data()
18201820
}

Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,8 @@ class AccessoryManager: ObservableObject, MqttClientProxyManagerDelegate {
578578
Logger.mesh.info("🕸️ MESH PACKET received for ATAK Forwarder App UNHANDLED UNHANDLED")
579579
case .simulatorApp:
580580
Logger.mesh.info("🕸️ MESH PACKET received for Simulator App UNHANDLED UNHANDLED")
581+
case .storeForwardPlusplusApp:
582+
Logger.mesh.info("🕸️ MESH PACKET received for SFPP App UNHANDLED UNHANDLED")
581583
case .audioApp:
582584
Logger.mesh.info("🕸️ MESH PACKET received for Audio App UNHANDLED UNHANDLED")
583585
case .tracerouteApp:

Meshtastic/Accessory/Transports/Bluetooth Low Energy/BLETransport.swift

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -164,39 +164,27 @@ class BLETransport: Transport {
164164
}
165165
}
166166

167-
private let peripheralsQueue = DispatchQueue(label: "com.meshtastic.peripheralAccess", qos: .default)
168-
169167
func didDiscover(peripheral: CBPeripheral, rssi: NSNumber) {
170-
171168
guard !restoreInProgress else { return }
172-
173-
// Use the queue to ensure thread-safe access to the dictionary
174-
peripheralsQueue.async {
175-
let id = peripheral.identifier
176-
let isNew = self.discoveredPeripherals[id] == nil
177-
178-
// Update the dictionary
179-
if isNew {
180-
self.discoveredPeripherals[id] = (peripheral, Date())
181-
} else {
182-
self.discoveredPeripherals[id]?.lastSeen = Date()
183-
}
184-
185-
let device = Device(id: id,
186-
name: peripheral.name ?? "Unknown",
187-
transportType: .ble,
188-
identifier: id.uuidString,
189-
rssi: rssi.intValue)
190-
191-
// Safely yield results
192-
if isNew {
193-
Logger.transport.debug("🛜 [BLE] Did Discover new device: \(peripheral.name ?? "Unknown", privacy: .public) (\(peripheral.identifier, privacy: .public))")
194-
self.discoveredDeviceContinuation?.yield(.deviceFound(device))
195-
} else {
196-
let rssiVal = rssi.intValue
197-
let deviceId = id
198-
self.discoveredDeviceContinuation?.yield(.deviceReportedRssi(deviceId, rssiVal))
199-
}
169+
170+
let id = peripheral.identifier
171+
let isNew = discoveredPeripherals[id] == nil
172+
if isNew {
173+
discoveredPeripherals[id] = (peripheral, Date())
174+
}
175+
let device = Device(id: id,
176+
name: peripheral.name ?? "Unknown",
177+
transportType: .ble,
178+
identifier: id.uuidString,
179+
rssi: rssi.intValue)
180+
if isNew {
181+
Logger.transport.debug("🛜 [BLE] Did Discover new device: \(peripheral.name ?? "Unknown", privacy: .public) (\(peripheral.identifier, privacy: .public))")
182+
discoveredDeviceContinuation?.yield(.deviceFound(device))
183+
} else {
184+
let rssiVal = rssi.intValue
185+
let deviceId = id
186+
discoveredPeripherals[id]?.lastSeen = Date()
187+
discoveredDeviceContinuation?.yield(.deviceReportedRssi(deviceId, rssiVal))
200188
}
201189
}
202190

Meshtastic/Enums/LoraConfigEnums.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ enum ModemPresets: Int, CaseIterable, Identifiable {
313313
case longFast = 0
314314
case longSlow = 1
315315
case longModerate = 7
316+
case longTurbo = 9
316317
case medSlow = 3
317318
case medFast = 4
318319
case shortSlow = 5
@@ -328,6 +329,8 @@ enum ModemPresets: Int, CaseIterable, Identifiable {
328329
return "Long Range - Slow".localized
329330
case .longModerate:
330331
return "Long Range - Moderate".localized
332+
case .longTurbo:
333+
return "Long Range - Turbo".localized
331334
case .medSlow:
332335
return "Medium Range - Slow".localized
333336
case .medFast:
@@ -348,6 +351,8 @@ enum ModemPresets: Int, CaseIterable, Identifiable {
348351
return "LongSlow"
349352
case .longModerate:
350353
return "LongModerate"
354+
case .longTurbo:
355+
return "LongTurbo"
351356
case .medSlow:
352357
return "MediumSlow"
353358
case .medFast:
@@ -366,6 +371,8 @@ enum ModemPresets: Int, CaseIterable, Identifiable {
366371
return -17.5
367372
case .longSlow:
368373
return -7.5
374+
case .longTurbo:
375+
return -12.5
369376
case .longModerate:
370377
return -17.5
371378
case .medSlow:
@@ -388,6 +395,8 @@ enum ModemPresets: Int, CaseIterable, Identifiable {
388395
return Config.LoRaConfig.ModemPreset.longSlow
389396
case .longModerate:
390397
return Config.LoRaConfig.ModemPreset.longModerate
398+
case .longTurbo:
399+
return Config.LoRaConfig.ModemPreset.longTurbo
391400
case .medSlow:
392401
return Config.LoRaConfig.ModemPreset.mediumSlow
393402
case .medFast:

Meshtastic/Extensions/CoreData/ChannelEntityExtension.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ extension ChannelEntity {
5555
channel.settings.psk = self.psk ?? Data()
5656
channel.role = Channel.Role(rawValue: Int(self.role)) ?? Channel.Role.secondary
5757
channel.settings.moduleSettings.positionPrecision = UInt32(self.positionPrecision)
58-
channel.settings.moduleSettings.isClientMuted = self.mute
58+
channel.settings.moduleSettings.isMuted = self.mute
5959
return channel
6060
}
6161
}

0 commit comments

Comments
 (0)