From 7f14f69dc3bbcd1054f943da4cc3b3e2ee7ccb8c Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Wed, 1 May 2024 11:38:34 -0700 Subject: [PATCH] Improve block range test packet logic --- Meshtastic/Helpers/MeshPackets.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index c4003f26..f61d1994 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -8,6 +8,7 @@ import Foundation import CoreData import SwiftUI +import RegexBuilder #if canImport(ActivityKit) import ActivityKit #endif @@ -774,7 +775,19 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage func textMessageAppPacket(packet: MeshPacket, wantRangeTestPackets: Bool, connectedNode: Int64, storeForward: Bool = false, context: NSManagedObjectContext) { var messageText = String(bytes: packet.decoded.payload, encoding: .utf8) - if !wantRangeTestPackets && (String(messageText ?? "seq ").starts(with: "seq ")) { + let rangeRef = Reference(Int.self) + let rangeTestRegex = Regex { + "seq " + + TryCapture(as: rangeRef) { + OneOrMore(.digit) + } transform: { match in + Int(match) + } + } + let rangeTest = messageText?.contains(rangeTestRegex) ?? false && messageText?.starts(with: "seq ") ?? false + + if !wantRangeTestPackets && rangeTest { return } var storeForwardBroadcast = false