From a9eadffb3da5458f5073d2ff585168525520450c Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Wed, 13 Sep 2023 22:29:59 -0400 Subject: [PATCH] Fixed tiny issue with bookmarks, added flight/tail ID transforms. --- owrx/aircraft.py | 11 ++++++++++- owrx/connection.py | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/owrx/aircraft.py b/owrx/aircraft.py index f268960a..82bf913a 100644 --- a/owrx/aircraft.py +++ b/owrx/aircraft.py @@ -9,6 +9,7 @@ import threading import json import math import time +import re import logging @@ -221,13 +222,21 @@ class AircraftManager(object): # class AircraftParser(TextParser): def __init__(self, filePrefix: str = None, service: bool = False): + self.reFlight = re.compile("^([0-9A-Z]{2}|[A-Z]{3})0*([0-9]+)[A-Z]*$") + self.reAircraft = re.compile("^\.*([^\.].*)$") super().__init__(filePrefix=filePrefix, service=service) def parse(self, msg: bytes): # Parse incoming message via mode-specific function out = self.parseAircraft(msg) - # Update aircraft database with the new data if out is not None: + # Remove extra zeros from the flight ID + if "flight" in out: + out["flight"] = self.reFlight.sub("\\1\\2", out["flight"]) + # Remove leading dots from the aircraft ID + if "aircraft" in out: + out["aircraft"] = self.reAircraft.sub("\\1", out["aircraft"]) + # Update aircraft database with the new data AircraftManager.getSharedInstance().update(out) # Done return out diff --git a/owrx/connection.py b/owrx/connection.py index 7a672f94..62e40685 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -230,6 +230,7 @@ class OpenWebRxReceiverClient(OpenWebRxClient, SdrSourceEventClient): def updateBookmarkSubscription(*args): if self.bookmarkSub is not None: self.bookmarkSub.cancel() + self.bookmarkSub = None if "center_freq" in configProps and "samp_rate" in configProps: cf = configProps["center_freq"] srh = configProps["samp_rate"] / 2