Added option to disable paging filter that removes unreadable messages.

This commit is contained in:
Marat Fayzullin 2023-05-28 17:01:14 -04:00
parent 96a8146856
commit 62d0c21b91
5 changed files with 16 additions and 5 deletions

View File

@ -46,10 +46,10 @@ class MultimonDemodulator(ServiceDemodulator, DialFrequencyReceiver):
class PageDemodulator(MultimonDemodulator):
def __init__(self, filtering: bool = False, service: bool = False):
def __init__(self, service: bool = False):
super().__init__(
["FLEX", "POCSAG512", "POCSAG1200", "POCSAG2400"],
PageParser(filtering=filtering, service=service)
PageParser(service=service)
)

View File

@ -197,4 +197,5 @@ defaultConfig = PropertyLayer(
# pskreporter_antenna_information=None,
wsprnet_enabled=False,
wsprnet_callsign="N0CALL",
paging_filter=True,
).readonly()

View File

@ -57,6 +57,13 @@ class DecodingSettingsController(SettingsFormController):
"Digimodes",
NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"),
),
Section(
"Paging",
CheckboxInput(
"paging_filter",
"Filter out empty, numeric, or unreadable pager messages",
),
),
Section(
"Decoding settings",
NumberInput("decoding_queue_workers", "Number of decoding workers"),
@ -87,5 +94,6 @@ class DecodingSettingsController(SettingsFormController):
[Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals],
),
Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"),
),
]

View File

@ -618,7 +618,7 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient)
return PocsagDemodulator()
elif mod == "page":
from csdr.chain.multimon import PageDemodulator
return PageDemodulator(filtering = True)
return PageDemodulator()
elif mod == "selcall":
from csdr.chain.multimon import SelCallDemodulator
return SelCallDemodulator()

View File

@ -1,4 +1,5 @@
from owrx.storage import Storage
from owrx.config import Config
from csdr.module import ThreadModule
from pycsdr.types import Format
from datetime import datetime
@ -145,9 +146,10 @@ class MultimonParser(ThreadModule):
class PageParser(MultimonParser):
def __init__(self, filtering: bool = False, service: bool = False):
def __init__(self, service: bool = False):
# When true, try filtering out unreadable messages
self.filtering = filtering
pm = Config.get()
self.filtering = "paging_filter" in pm and pm["paging_filter"]
# Use these colors to mark messages by address
self.colors = [
"#FFFFFF", "#999999", "#FF9999", "#FFCC99", "#FFFF99", "#CCFF99",