Adding FAX options.

This commit is contained in:
Marat Fayzullin 2023-09-06 16:19:49 -04:00
parent a9c40dfb04
commit a5836f8776
5 changed files with 33 additions and 10 deletions

View File

@ -1,6 +1,7 @@
**1.2.29** **1.2.29**
- Added worldwide OpenWeatherMap support (needs key). - Added worldwide OpenWeatherMap support (needs key).
- Added NFM to SSTV underlying modes (needs testing). - Added NFM to SSTV underlying modes (needs testing).
* Added configurable FAX options (post-processing, etc).
- Added configurable aircraft data expiration times. - Added configurable aircraft data expiration times.
- Improved aircraft data maintenance and merging. - Improved aircraft data maintenance and merging.
- Improved SWL bookmarks generation (via EIBI). - Improved SWL bookmarks generation (via EIBI).

View File

@ -8,6 +8,7 @@ from pycsdr.types import Format
from owrx.aprs.module import DirewolfModule from owrx.aprs.module import DirewolfModule
from owrx.sstv import SstvParser from owrx.sstv import SstvParser
from owrx.fax import FaxParser from owrx.fax import FaxParser
from owrx.config import Config
class AudioChopperDemodulator(ServiceDemodulator, DialFrequencyReceiver): class AudioChopperDemodulator(ServiceDemodulator, DialFrequencyReceiver):
def __init__(self, mode: str, parser: AudioChopperParser): def __init__(self, mode: str, parser: AudioChopperParser):
@ -155,12 +156,23 @@ class SstvDemodulator(ServiceDemodulator, DialFrequencyReceiver):
class FaxDemodulator(ServiceDemodulator, DialFrequencyReceiver): class FaxDemodulator(ServiceDemodulator, DialFrequencyReceiver):
def __init__(self, service: bool = False): def __init__(self, service: bool = False):
self.parser = FaxParser(service=service) pm = Config.get()
self.sampleRate = 12000 self.parser = FaxParser(service=service)
self.lpm = 120 self.sampleRate = 12000
self.dbgTime = 300000 self.lpm = 120
self.dbgTime = 300000
self.postProcess = pm["fax_postprocess"]
self.color = pm["fax_color"]
self.am = pm["fax_am"]
workers = [ workers = [
FaxDecoder(self.sampleRate, self.lpm, self.dbgTime), FaxDecoder(
self.sampleRate,
self.lpm,
self.dbgTime,
postProcess = self.postProcess,
color = self.color,
am = self.am
),
self.parser self.parser
] ]
super().__init__(workers) super().__init__(workers)

1
debian/changelog vendored
View File

@ -2,6 +2,7 @@ openwebrx (1.2.29) bullseye jammy; urgency=low
* Added worldwide OpenWeatherMap support (needs key). * Added worldwide OpenWeatherMap support (needs key).
* Added NFM to SSTV underlying modes (needs testing). * Added NFM to SSTV underlying modes (needs testing).
* Added configurable FAX options (post-processing, etc).
* Added configurable aircraft data expiration times. * Added configurable aircraft data expiration times.
* Improved aircraft data maintenance and merging. * Improved aircraft data maintenance and merging.
* Improved SWL bookmarks generation (via EIBI). * Improved SWL bookmarks generation (via EIBI).

View File

@ -205,4 +205,7 @@ defaultConfig = PropertyLayer(
adsb_ttl=900, adsb_ttl=900,
vdl2_ttl=1800, vdl2_ttl=1800,
hfdl_ttl=1800, hfdl_ttl=1800,
fax_postprocess=True,
fax_color=False,
fax_am=False
).readonly() ).readonly()

View File

@ -59,33 +59,39 @@ class DecodingSettingsController(SettingsFormController):
NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"), NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"),
), ),
Section( Section(
"Pager traffic", "Pager messages",
CheckboxInput( CheckboxInput(
"paging_filter", "paging_filter",
"Filter out empty, numeric, or unreadable pager messages", "Filter out empty, numeric, or unreadable pager messages",
), ),
), ),
Section( Section(
"Aircraft traffic", "Aircraft messages",
NumberInput( NumberInput(
"adsb_ttl", "adsb_ttl",
"ADSB reports expiration time, in seconds", "ADSB reports expiration time",
validator=RangeValidator(30, 3600), validator=RangeValidator(30, 3600),
append="s", append="s",
), ),
NumberInput( NumberInput(
"vdl2_ttl", "vdl2_ttl",
"VDL2 reports expiration time, in seconds", "VDL2 reports expiration time",
validator=RangeValidator(30, 3600), validator=RangeValidator(30, 3600),
append="s", append="s",
), ),
NumberInput( NumberInput(
"hfdl_ttl", "hfdl_ttl",
"HFDL reports expiration time, in seconds", "HFDL reports expiration time",
validator=RangeValidator(30, 3600), validator=RangeValidator(30, 3600),
append="s", append="s",
), ),
), ),
Section(
"Fax transmissions",
CheckboxInput("fax_postprocess", "Post-process received images to reduce noise"),
CheckboxInput("fax_color", "Receive color images"),
CheckboxInput("fax_am", "Use amplitude modulation"),
),
Section( Section(
"Decoding settings", "Decoding settings",
NumberInput("decoding_queue_workers", "Number of decoding workers"), NumberInput("decoding_queue_workers", "Number of decoding workers"),