collect dial frequencies and send to client
This commit is contained in:
		| @@ -18,7 +18,7 @@ class Band(object): | ||||
|                     if not self.inBand(f): | ||||
|                         logger.warning("Frequency for {mode} on {band} is not within band limits: {frequency}".format(mode = mode, frequency = f, band = self.name)) | ||||
|                     else: | ||||
|                         self.frequencies.append([{"mode": mode, "frequency": f}]) | ||||
|                         self.frequencies.append({"mode": mode, "frequency": f}) | ||||
|  | ||||
|     def inBand(self, freq): | ||||
|         return self.lower_bound <= freq <= self.upper_bound | ||||
| @@ -26,6 +26,10 @@ class Band(object): | ||||
|     def getName(self): | ||||
|         return self.name | ||||
|  | ||||
|     def getDialFrequencies(self, range): | ||||
|         (low, hi) = range | ||||
|         return [e for e in self.frequencies if low <= e["frequency"] <= hi] | ||||
|  | ||||
|  | ||||
| class Bandplan(object): | ||||
|     sharedInstance = None | ||||
| @@ -43,3 +47,6 @@ class Bandplan(object): | ||||
|  | ||||
|     def findBand(self, freq): | ||||
|         return next(band for band in self.bands if band.inBand(freq)) | ||||
|  | ||||
|     def collectDialFrequencis(self, range): | ||||
|         return [e for b in self.bands for e in b.getDialFrequencies(range)] | ||||
|   | ||||
| @@ -2,6 +2,7 @@ from owrx.config import PropertyManager | ||||
| from owrx.source import DspManager, CpuUsageThread, SdrService, ClientRegistry | ||||
| from owrx.feature import FeatureDetector | ||||
| from owrx.version import openwebrx_version | ||||
| from owrx.bands import Bandplan | ||||
| import json | ||||
| from owrx.map import Map | ||||
|  | ||||
| @@ -83,6 +84,12 @@ class OpenWebRxReceiverClient(Client): | ||||
|             config["start_offset_freq"] = configProps["start_freq"] - configProps["center_freq"] | ||||
|             self.write_config(config) | ||||
|  | ||||
|             cf = configProps["center_freq"] | ||||
|             srh = configProps["samp_rate"] / 2 | ||||
|             frequencyRange = (cf - srh, cf + srh) | ||||
|             self.write_dial_frequendies(Bandplan.getSharedInstance().collectDialFrequencis(frequencyRange)) | ||||
|  | ||||
|  | ||||
|         self.configSub = configProps.wire(sendConfig) | ||||
|         sendConfig(None, None) | ||||
|  | ||||
| @@ -162,6 +169,9 @@ class OpenWebRxReceiverClient(Client): | ||||
|     def write_wsjt_message(self, message): | ||||
|         self.protected_send({"type": "wsjt_message", "value": message}) | ||||
|  | ||||
|     def write_dial_frequendies(self, frequencies): | ||||
|         self.protected_send({"type": "dial_frequencies", "value": frequencies}) | ||||
|  | ||||
|  | ||||
| class MapConnection(Client): | ||||
|     def __init__(self, conn): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jakob Ketterl
					Jakob Ketterl