From 04809fca54d29c59edaa223b73eb1e4daa66db13 Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Fri, 8 Mar 2024 23:10:01 -0500 Subject: [PATCH] Preparing for the next release. --- bands.json | 6 ++++ bookmarks.d/satellite.json | 27 +++++++++++++++++ bookmarks.txt | 9 ++++++ csdr/chain/toolbox.py | 5 ++-- csdr/module/toolbox.py | 2 +- debian/changelog | 10 +++++++ debian/control | 2 +- owrx/dsp.py | 12 ++++++++ owrx/modes.py | 60 +++++++++++++++++++++++++------------- owrx/service/__init__.py | 10 +++++-- owrx/version.py | 2 +- 11 files changed, 118 insertions(+), 27 deletions(-) create mode 100644 bookmarks.d/satellite.json diff --git a/bands.json b/bands.json index b1ff956e..33e9ee44 100644 --- a/bands.json +++ b/bands.json @@ -421,6 +421,12 @@ "vdl2": 136975000 } }, + { + "name": "VHF Satellite", + "lower_bound": 137000000, + "upper_bound": 138000000, + "tags": ["service"] + }, { "name": "VHF Marine", "lower_bound": 156000000, diff --git a/bookmarks.d/satellite.json b/bookmarks.d/satellite.json new file mode 100644 index 00000000..ad2b20ca --- /dev/null +++ b/bookmarks.d/satellite.json @@ -0,0 +1,27 @@ +[ + { + "name" : "NOAA 15", + "frequency" : 137620000, + "modulation" : "noaa-apt-15" + }, + { + "name" : "NOAA 18", + "frequency" : 137912500, + "modulation" : "noaa-apt-18" + }, + { + "name" : "NOAA 19", + "frequency" : 137100000, + "modulation" : "noaa-apt-19" + }, + { + "name" : "Meteor M2-3", + "frequency" : 137900000, + "modulation" : "meteor-lrpt" + }, + { + "name" : "Meteor M2-4", + "frequency" : 137100000, + "modulation" : "meteor-lrpt" + } +] diff --git a/bookmarks.txt b/bookmarks.txt index 1f1266e0..7015af92 100644 --- a/bookmarks.txt +++ b/bookmarks.txt @@ -487,3 +487,12 @@ RHA23|||71550|NFM RHA24|||71575|NFM RHA25|||71600|NFM RHA26|||72325|NFM + +# +# Satellities +# +NOAA 15|||137620|NOAA-APT-15 +NOAA 18|||137912.5|NOAA-APT-18 +NOAA 19|||137100|NOAA-APT-19 +Meteor M2-3|||137900|METEOR-LRPT +Meteor M2-4|||137100|METEOR-LRPT diff --git a/csdr/chain/toolbox.py b/csdr/chain/toolbox.py index f5cf4838..c6627732 100644 --- a/csdr/chain/toolbox.py +++ b/csdr/chain/toolbox.py @@ -5,6 +5,7 @@ from pycsdr.types import Format from owrx.toolbox import TextParser, PageParser, SelCallParser, IsmParser, RdsParser from owrx.aircraft import HfdlParser, Vdl2Parser, AdsbParser, AcarsParser +from datetime import datetime import os class IsmDemodulator(ServiceDemodulator, DialFrequencyReceiver): @@ -231,7 +232,7 @@ class NoaaAptDemodulator(ServiceDemodulator, DialFrequencyReceiver): return False def setDialFrequency(self, frequency: int) -> None: - # TODO: Do something with the frequency or remove method + # TODO: Do something with the frequency or remove DialFrequencyReceiver pass @@ -251,5 +252,5 @@ class MeteorLrptDemodulator(ServiceDemodulator, DialFrequencyReceiver): return False def setDialFrequency(self, frequency: int) -> None: - # TODO: Do something with the frequency or remove method + # TODO: Do something with the frequency or remove DialFrequencyReceiver pass diff --git a/csdr/module/toolbox.py b/csdr/module/toolbox.py index 756e488f..6e1350e6 100644 --- a/csdr/module/toolbox.py +++ b/csdr/module/toolbox.py @@ -177,7 +177,7 @@ class DablinModule(ExecModule): class SatDumpModule(ExecModule): - def __init__(self, mode: str = "noaa_apt", sampleRate: int = 50000, frequency: int = 137000000, options = None): + def __init__(self, mode: str = "noaa_apt", sampleRate: int = 50000, frequency: int = 137100000, options = None): # Make sure we have output folder self.outFolder = "/tmp/satdump" try: diff --git a/debian/changelog b/debian/changelog index 0a50069b..4aa794fb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +openwebrx (1.2.51) bullseye jammy; urgency=low + + * Background DSC decoding now works. + * Added DSC display of timestamps and frequencies. + * Added preliminary SatDump support (experts only!) + * Removed 'apt install' lines from feature instructions. + * Allowed dash in modulation names. + + -- Marat Fayzullin Mon, 11 Mar 2024 16:12:00 +0000 + openwebrx (1.2.50) bullseye jammy; urgency=low * Added DSC decoder and bookmarks. diff --git a/debian/control b/debian/control index 3ec3b2cb..3cce62d3 100644 --- a/debian/control +++ b/debian/control @@ -18,7 +18,7 @@ Depends: adduser, python3 (>= 3.5), python3-pkg-resources, owrx-connector (>= 0.6.5), - python3-csdr (>= 0.18.19), + python3-csdr (>= 0.18.20), ${python3:Depends}, ${misc:Depends} Recommends: python3-digiham (>= 0.6), diff --git a/owrx/dsp.py b/owrx/dsp.py index 227e017c..a4fa9b1a 100644 --- a/owrx/dsp.py +++ b/owrx/dsp.py @@ -728,6 +728,18 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient) elif mod == "adsb": from csdr.chain.toolbox import AdsbDemodulator return AdsbDemodulator() + elif mod == "noaa-apt-15": + from csdr.chain.toolbox import NoaaAptDemodulator + return NoaaAptDemodulator(satellite=15) + elif mod == "noaa-apt-18": + from csdr.chain.toolbox import NoaaAptDemodulator + return NoaaAptDemodulator(satellite=18) + elif mod == "noaa-apt-19": + from csdr.chain.toolbox import NoaaAptDemodulator + return NoaaAptDemodulator(satellite=19) + elif mod == "meteor-lrpt": + from csdr.chain.toolbox import MeteorLrptDemodulator + return MeteorLrptDemodulator() def setSecondaryDemodulator(self, mod): demodulator = self._getSecondaryDemodulator(mod) diff --git a/owrx/modes.py b/owrx/modes.py index 5b86593e..70a332fc 100644 --- a/owrx/modes.py +++ b/owrx/modes.py @@ -270,26 +270,46 @@ class Modes(object): secondaryFft=False ), # Work in progress -# DigitalMode( -# "noaa-apt", -# "NOAA APT", -# underlying=["empty"], -# bandpass=Bandpass(-25000, 25000), -# requirements=["wxsat"], -# service=True, -# squelch=False, -# secondaryFft=False -# ), -# DigitalMode( -# "meteor-lrpt", -# "Meteor-M2 LRPT", -# underlying=["empty"], -# bandpass=Bandpass(-75000, 75000), -# requirements=["wxsat"], -# service=True, -# squelch=False, -# secondaryFft=False -# ), + DigitalMode( + "noaa-apt-15", + "NOAA-15 APT", + underlying=["empty"], + bandpass=Bandpass(-25000, 25000), + requirements=["wxsat"], + service=True, + squelch=False, + secondaryFft=False + ), + DigitalMode( + "noaa-apt-18", + "NOAA-18 APT", + underlying=["empty"], + bandpass=Bandpass(-25000, 25000), + requirements=["wxsat"], + service=True, + squelch=False, + secondaryFft=False + ), + DigitalMode( + "noaa-apt-19", + "NOAA-19 APT", + underlying=["empty"], + bandpass=Bandpass(-25000, 25000), + requirements=["wxsat"], + service=True, + squelch=False, + secondaryFft=False + ), + DigitalMode( + "meteor-lrpt", + "Meteor-M2 LRPT", + underlying=["empty"], + bandpass=Bandpass(-75000, 75000), + requirements=["wxsat"], + service=True, + squelch=False, + secondaryFft=False + ), ] @staticmethod diff --git a/owrx/service/__init__.py b/owrx/service/__init__.py index fa4fe32c..929f51d4 100644 --- a/owrx/service/__init__.py +++ b/owrx/service/__init__.py @@ -347,9 +347,15 @@ class ServiceHandler(SdrSourceEventClient): elif mod == "adsb": from csdr.chain.toolbox import AdsbDemodulator return AdsbDemodulator(service=True) - elif mod == "noaa-apt": + elif mod == "noaa-apt-15": from csdr.chain.toolbox import NoaaAptDemodulator - return NoaaAptDemodulator(service=True) + return NoaaAptDemodulator(satellite=15, service=True) + elif mod == "noaa-apt-18": + from csdr.chain.toolbox import NoaaAptDemodulator + return NoaaAptDemodulator(satellite=18, service=True) + elif mod == "noaa-apt-19": + from csdr.chain.toolbox import NoaaAptDemodulator + return NoaaAptDemodulator(satellite=19, service=True) elif mod == "meteor-lrpt": from csdr.chain.toolbox import MeteorLrptDemodulator return MeteorLrptDemodulator(service=True) diff --git a/owrx/version.py b/owrx/version.py index 4b0ed866..a544a783 100644 --- a/owrx/version.py +++ b/owrx/version.py @@ -1,5 +1,5 @@ from distutils.version import LooseVersion -_versionstring = "1.2.50" +_versionstring = "1.2.51" looseversion = LooseVersion(_versionstring) openwebrx_version = "v{0}".format(looseversion)