From cc98c94b2b272858e316b6e4defe54e861b618fd Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Sat, 28 Sep 2019 00:53:58 +0200 Subject: [PATCH] send bookmarks to client --- bookmarks.json | 21 +++++++++++++++++++++ owrx/bookmarks.py | 43 +++++++++++++++++++++++++++++++++++++++++++ owrx/connection.py | 6 ++++++ 3 files changed, 70 insertions(+) create mode 100644 bookmarks.json create mode 100644 owrx/bookmarks.py diff --git a/bookmarks.json b/bookmarks.json new file mode 100644 index 0000000..b104369 --- /dev/null +++ b/bookmarks.json @@ -0,0 +1,21 @@ +[{ + "name": "DB0ZU", + "frequency": 145725000, + "modulation": "nfm" +},{ + "name": "DB0ZM", + "frequency": 145750000, + "modulation": "nfm" +},{ + "name": "DB0EL", + "frequency": 439275000, + "modulation": "nfm" +},{ + "name": "DB0NJ", + "frequency": 438775000, + "modulation": "nfm" +},{ + "name": "DB0NJ", + "frequency": 439437500, + "modulation": "dmr" +}] \ No newline at end of file diff --git a/owrx/bookmarks.py b/owrx/bookmarks.py new file mode 100644 index 0000000..9074088 --- /dev/null +++ b/owrx/bookmarks.py @@ -0,0 +1,43 @@ +import json + + +class Bookmark(object): + def __init__(self, j): + self.name = j["name"] + self.frequency = j["frequency"] + self.modulation = j["modulation"] + + def getName(self): + return self.name + + def getFrequency(self): + return self.frequency + + def getModulation(self): + return self.modulation + + def __dict__(self): + return { + "name": self.getName(), + "frequency": self.getFrequency(), + "modulation": self.getModulation(), + } + + +class Bookmarks(object): + sharedInstance = None + @staticmethod + def getSharedInstance(): + if Bookmarks.sharedInstance is None: + Bookmarks.sharedInstance = Bookmarks() + return Bookmarks.sharedInstance + + def __init__(self): + f = open("bookmarks.json", "r") + bookmarks_json = json.load(f) + f.close() + self.bookmarks = [Bookmark(d) for d in bookmarks_json] + + def getBookmarks(self, range): + (lo, hi) = range + return [b for b in self.bookmarks if lo <= b.getFrequency() <= hi] diff --git a/owrx/connection.py b/owrx/connection.py index 39eb712..55b10ed 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -3,6 +3,7 @@ from owrx.source import DspManager, CpuUsageThread, SdrService, ClientRegistry from owrx.feature import FeatureDetector from owrx.version import openwebrx_version from owrx.bands import Bandplan +from owrx.bookmarks import Bookmarks from owrx.map import Map from multiprocessing import Queue import json @@ -168,6 +169,8 @@ class OpenWebRxReceiverClient(Client): srh = configProps["samp_rate"] / 2 frequencyRange = (cf - srh, cf + srh) self.write_dial_frequendies(Bandplan.getSharedInstance().collectDialFrequencies(frequencyRange)) + bookmarks = [b.__dict__() for b in Bookmarks.getSharedInstance().getBookmarks(frequencyRange)] + self.write_bookmarks(bookmarks) self.configSub = configProps.wire(sendConfig) sendConfig(None, None) @@ -254,6 +257,9 @@ class OpenWebRxReceiverClient(Client): def write_dial_frequendies(self, frequencies): self.send({"type": "dial_frequencies", "value": frequencies}) + def write_bookmarks(self, bookmarks): + self.send({"type": "bookmarks", "value": bookmarks}) + def write_aprs_data(self, data): self.send({"type": "aprs_data", "value": data})