Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
e20d94e241 | |||
6c01d48493 | |||
94269e211e | |||
811d95c7bc | |||
66d4d88156 |
@ -1,3 +1,7 @@
|
|||||||
|
**1.2.1**
|
||||||
|
- FifiSDR support fixed (pipeline formats now line up correctly)
|
||||||
|
- Added "Device" input for FifiSDR devices for sound card selection
|
||||||
|
|
||||||
**1.2.0**
|
**1.2.0**
|
||||||
- Major rewrite of all demodulation components to make use of the new csdr/pycsdr and digiham/pydigiham demodulator
|
- Major rewrite of all demodulation components to make use of the new csdr/pycsdr and digiham/pydigiham demodulator
|
||||||
modules
|
modules
|
||||||
|
7
debian/changelog
vendored
7
debian/changelog
vendored
@ -1,3 +1,10 @@
|
|||||||
|
openwebrx (1.2.1) bullseye jammy; urgency=low
|
||||||
|
|
||||||
|
* FifiSDR support fixed (pipeline formats now line up correctly)
|
||||||
|
* Added "Device" input for FifiSDR devices for sound card selection
|
||||||
|
|
||||||
|
-- Jakob Ketterl <jakob.ketterl@gmx.de> Tue, 20 Sep 2022 16:01:00 +0000
|
||||||
|
|
||||||
openwebrx (1.2.0) bullseye jammy; urgency=low
|
openwebrx (1.2.0) bullseye jammy; urgency=low
|
||||||
|
|
||||||
* Major rewrite of all demodulation components to make use of the new
|
* Major rewrite of all demodulation components to make use of the new
|
||||||
|
@ -29,7 +29,7 @@ tar xfz $PACKAGE
|
|||||||
|
|
||||||
git clone https://github.com/jancona/hpsdrconnector.git
|
git clone https://github.com/jancona/hpsdrconnector.git
|
||||||
pushd hpsdrconnector
|
pushd hpsdrconnector
|
||||||
git checkout v0.6.0
|
git checkout v0.6.1
|
||||||
/tmp/go/bin/go build
|
/tmp/go/bin/go build
|
||||||
install -m 0755 hpsdrconnector /usr/local/bin
|
install -m 0755 hpsdrconnector /usr/local/bin
|
||||||
|
|
||||||
|
@ -31,11 +31,11 @@ popd
|
|||||||
rm -rf js8py
|
rm -rf js8py
|
||||||
|
|
||||||
git clone https://github.com/jketterl/csdr.git
|
git clone https://github.com/jketterl/csdr.git
|
||||||
cmakebuild csdr 0.18.0
|
cmakebuild csdr 0.18.1
|
||||||
|
|
||||||
git clone https://github.com/jketterl/pycsdr.git
|
git clone https://github.com/jketterl/pycsdr.git
|
||||||
cd pycsdr
|
cd pycsdr
|
||||||
git checkout 0.18.0
|
git checkout 0.18.1
|
||||||
./setup.py install install_headers
|
./setup.py install install_headers
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf pycsdr
|
rm -rf pycsdr
|
||||||
|
@ -249,10 +249,13 @@ class SdrSource(ABC):
|
|||||||
def getPort(self):
|
def getPort(self):
|
||||||
return self.port
|
return self.port
|
||||||
|
|
||||||
|
def _getTcpSourceFormat(self):
|
||||||
|
return Format.COMPLEX_FLOAT
|
||||||
|
|
||||||
def _getTcpSource(self):
|
def _getTcpSource(self):
|
||||||
with self.modificationLock:
|
with self.modificationLock:
|
||||||
if self.tcpSource is None:
|
if self.tcpSource is None:
|
||||||
self.tcpSource = TcpSource(self.port, Format.COMPLEX_FLOAT)
|
self.tcpSource = TcpSource(self.port, self._getTcpSourceFormat())
|
||||||
return self.tcpSource
|
return self.tcpSource
|
||||||
|
|
||||||
def getBuffer(self):
|
def getBuffer(self):
|
||||||
|
@ -11,6 +11,10 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class DirectSource(SdrSource, metaclass=ABCMeta):
|
class DirectSource(SdrSource, metaclass=ABCMeta):
|
||||||
|
def __init__(self, id, props):
|
||||||
|
self._conversion = None
|
||||||
|
super().__init__(id, props)
|
||||||
|
|
||||||
def onPropertyChange(self, changes):
|
def onPropertyChange(self, changes):
|
||||||
logger.debug("restarting sdr source due to property changes: {0}".format(changes))
|
logger.debug("restarting sdr source due to property changes: {0}".format(changes))
|
||||||
self.stop()
|
self.stop()
|
||||||
@ -48,6 +52,10 @@ class DirectSource(SdrSource, metaclass=ABCMeta):
|
|||||||
def getFormatConversion(self) -> Optional[Chain]:
|
def getFormatConversion(self) -> Optional[Chain]:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _getTcpSourceFormat(self):
|
||||||
|
conversion = self.getFormatConversion()
|
||||||
|
return Format.COMPLEX_FLOAT if conversion is None else conversion.getInputFormat()
|
||||||
|
|
||||||
# override this in subclasses, if necessary
|
# override this in subclasses, if necessary
|
||||||
def sleepOnRestart(self):
|
def sleepOnRestart(self):
|
||||||
pass
|
pass
|
||||||
@ -57,12 +65,12 @@ class DirectSource(SdrSource, metaclass=ABCMeta):
|
|||||||
source = self._getTcpSource()
|
source = self._getTcpSource()
|
||||||
buffer = Buffer(source.getOutputFormat())
|
buffer = Buffer(source.getOutputFormat())
|
||||||
source.setWriter(buffer)
|
source.setWriter(buffer)
|
||||||
conversion = self.getFormatConversion()
|
self._conversion = self.getFormatConversion()
|
||||||
if conversion is not None:
|
if self._conversion is not None:
|
||||||
conversion.setReader(buffer.getReader())
|
self._conversion.setReader(buffer.getReader())
|
||||||
# this one must be COMPLEX_FLOAT
|
# this one must be COMPLEX_FLOAT
|
||||||
buffer = Buffer(Format.COMPLEX_FLOAT)
|
buffer = Buffer(Format.COMPLEX_FLOAT)
|
||||||
conversion.setWriter(buffer)
|
self._conversion.setWriter(buffer)
|
||||||
self.buffer = buffer
|
self.buffer = buffer
|
||||||
return self.buffer
|
return self.buffer
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ from subprocess import Popen
|
|||||||
from csdr.chain import Chain
|
from csdr.chain import Chain
|
||||||
from pycsdr.modules import Convert, Gain
|
from pycsdr.modules import Convert, Gain
|
||||||
from pycsdr.types import Format
|
from pycsdr.types import Format
|
||||||
|
from typing import List
|
||||||
|
from owrx.form.input import Input, TextInput
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -49,3 +51,15 @@ class FifiSdrDeviceDescription(DirectSourceDeviceDescription):
|
|||||||
def supportsPpm(self):
|
def supportsPpm(self):
|
||||||
# not currently mapped, and it's unclear how this should be sent to the device
|
# not currently mapped, and it's unclear how this should be sent to the device
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def getInputs(self) -> List[Input]:
|
||||||
|
return super().getInputs() + [
|
||||||
|
TextInput(
|
||||||
|
"device",
|
||||||
|
"Device identifier",
|
||||||
|
infotext="Alsa audio device identifier",
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
||||||
|
def getDeviceOptionalKeys(self):
|
||||||
|
return super().getDeviceOptionalKeys() + ["device"]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from distutils.version import LooseVersion
|
from distutils.version import LooseVersion
|
||||||
|
|
||||||
_versionstring = "1.2.0"
|
_versionstring = "1.2.1"
|
||||||
looseversion = LooseVersion(_versionstring)
|
looseversion = LooseVersion(_versionstring)
|
||||||
openwebrx_version = "v{0}".format(looseversion)
|
openwebrx_version = "v{0}".format(looseversion)
|
||||||
|
Reference in New Issue
Block a user