Merge branch 'develop' into csdr++

This commit is contained in:
Jakob Ketterl 2021-08-03 22:22:43 +02:00
commit 72aad99d20
14 changed files with 27 additions and 38 deletions

View File

@ -1,4 +1,6 @@
**1.1.x - unreleased** **unreleased**
**1.1.0**
- Reworked most graphical elements as SVGs for faster loadtimes and crispier display on hi-dpi displays - Reworked most graphical elements as SVGs for faster loadtimes and crispier display on hi-dpi displays
- Updated pipelines to match changes in digiham - Updated pipelines to match changes in digiham
- Changed D-Star and NXDN integrations to use new decoders from digiham - Changed D-Star and NXDN integrations to use new decoders from digiham

View File

@ -104,9 +104,6 @@ version = 7
#digimodes_fft_size = 2048 #digimodes_fft_size = 2048
# determines the quality, and thus the cpu usage, for the ambe codec used by digital voice modes
# if you're running on a Raspi (up to 3B+) you'll want to leave this on 1
#digital_voice_unvoiced_quality = 1
# enables lookup of DMR ids using the radioid api # enables lookup of DMR ids using the radioid api
#digital_voice_dmr_id_lookup = True #digital_voice_dmr_id_lookup = True

View File

@ -84,7 +84,6 @@ class Dsp(DirewolfConfigSubscriber):
self.pipes = {} self.pipes = {}
self.secondary_pipe_names = {"secondary_shift_pipe": Pipe.WRITE} self.secondary_pipe_names = {"secondary_shift_pipe": Pipe.WRITE}
self.secondary_offset_freq = 1000 self.secondary_offset_freq = 1000
self.unvoiced_quality = 1
self.codecserver = None self.codecserver = None
self.modification_lock = threading.Lock() self.modification_lock = threading.Lock()
self.output = output self.output = output
@ -640,13 +639,6 @@ class Dsp(DirewolfConfigSubscriber):
if self.running and "squelch_pipe" in self.pipes: if self.running and "squelch_pipe" in self.pipes:
self.pipes["squelch_pipe"].write("%g\n" % (self.convertToLinear(actual_squelch))) self.pipes["squelch_pipe"].write("%g\n" % (self.convertToLinear(actual_squelch)))
def set_unvoiced_quality(self, q):
self.unvoiced_quality = q
self.restart()
def get_unvoiced_quality(self):
return self.unvoiced_quality
def set_codecserver(self, s): def set_codecserver(self, s):
if self.codecserver == s: if self.codecserver == s:
return return
@ -767,7 +759,6 @@ class Dsp(DirewolfConfigSubscriber):
nc_port=self.nc_port, nc_port=self.nc_port,
output_rate=self.get_output_rate(), output_rate=self.get_output_rate(),
smeter_report_every=int(self.if_samp_rate() / 6000), smeter_report_every=int(self.if_samp_rate() / 6000),
unvoiced_quality=self.get_unvoiced_quality(),
codecserver_arg=self.get_codecserver_arg(), codecserver_arg=self.get_codecserver_arg(),
audio_rate=self.get_audio_rate(), audio_rate=self.get_audio_rate(),
wfm_deemphasis_tau=self.wfm_deemphasis_tau, wfm_deemphasis_tau=self.wfm_deemphasis_tau,

8
debian/changelog vendored
View File

@ -1,4 +1,8 @@
openwebrx (1.1.0) UNRELEASED; urgency=low openwebrx (1.2.0) UNRELEASED; urgency=low
-- Jakob Ketterl <jakob.ketterl@gmx.de> Tue, 03 Aug 2021 13:54:00 +0000
openwebrx (1.1.0) buster hirsute; urgency=low
* Reworked most graphical elements as SVGs for faster loadtimes and crispier * Reworked most graphical elements as SVGs for faster loadtimes and crispier
display on hi-dpi displays display on hi-dpi displays
@ -6,7 +10,7 @@ openwebrx (1.1.0) UNRELEASED; urgency=low
* Changed D-Star and NXDN integrations to use new decoder from digiham * Changed D-Star and NXDN integrations to use new decoder from digiham
* Added D-Star and NXDN metadata display * Added D-Star and NXDN metadata display
-- Jakob Ketterl <jakob.ketterl@gmx.de> Sun, 09 May 2021 14:05:00 +0000 -- Jakob Ketterl <jakob.ketterl@gmx.de> Mon, 02 Aug 2021 16:24:00 +0000
openwebrx (1.0.0) buster hirsute; urgency=low openwebrx (1.0.0) buster hirsute; urgency=low
* Introduced `squelch_auto_margin` config option that allows configuring the * Introduced `squelch_auto_margin` config option that allows configuring the

View File

@ -24,8 +24,7 @@ apt-get update
apt-get -y install --no-install-recommends $BUILD_PACKAGES apt-get -y install --no-install-recommends $BUILD_PACKAGES
git clone https://github.com/jketterl/owrx_connector.git git clone https://github.com/jketterl/owrx_connector.git
# latest develop as of 2021-05-18 (individual connector versions) cmakebuild owrx_connector 0.5.0
cmakebuild owrx_connector 167324219813f61b2be8164eb4acb1237ba2c304
apt-get -y purge --autoremove $BUILD_PACKAGES apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean apt-get clean

View File

@ -25,8 +25,7 @@ apt-get update
apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES
git clone https://github.com/jketterl/runds_connector.git git clone https://github.com/jketterl/runds_connector.git
# latest develop as of 2021-05-18 (individual connector versions) cmakebuild runds_connector 0.2.0
cmakebuild runds_connector adfa04bee4ee36852feb07e7b845be2c3d3f97c7
apt-get -y purge --autoremove $BUILD_PACKAGES apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean apt-get clean

View File

@ -19,7 +19,7 @@ function cmakebuild() {
cd /tmp cd /tmp
STATIC_PACKAGES="sox libfftw3-bin python3 python3-setuptools netcat-openbsd libsndfile1 liblapack3 libusb-1.0-0 libqt5core5a libreadline7 libgfortran4 libgomp1 libasound2 libudev1 ca-certificates libqt5gui5 libqt5sql5 libqt5printsupport5 libpulse0 libfaad2 libopus0 libboost-program-options1.67.0 libboost-log1.67.0" STATIC_PACKAGES="sox libfftw3-bin python3 python3-setuptools netcat-openbsd libsndfile1 liblapack3 libusb-1.0-0 libqt5core5a libreadline7 libgfortran4 libgomp1 libasound2 libudev1 ca-certificates libqt5gui5 libqt5sql5 libqt5printsupport5 libpulse0 libfaad2 libopus0 libboost-program-options1.67.0 libboost-log1.67.0"
BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libgtest-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev" BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev"
apt-get update apt-get update
apt-get -y install auto-apt-proxy apt-get -y install auto-apt-proxy
apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES
@ -102,8 +102,7 @@ rm -rf dream
rm dream-2.1.1-svn808.tar.gz rm dream-2.1.1-svn808.tar.gz
git clone https://github.com/mobilinkd/m17-cxx-demod.git git clone https://github.com/mobilinkd/m17-cxx-demod.git
# latest master as of 2021-04-20 cmakebuild m17-cxx-demod v2.2
cmakebuild m17-cxx-demod c1d954fd5e5c53d28a2524e99484f832f9dcb826
git clone https://github.com/hessu/aprs-symbols /usr/share/aprs-symbols git clone https://github.com/hessu/aprs-symbols /usr/share/aprs-symbols
pushd /usr/share/aprs-symbols pushd /usr/share/aprs-symbols

View File

@ -43,12 +43,10 @@ rm -rf csdr
git clone https://github.com/jketterl/codecserver.git git clone https://github.com/jketterl/codecserver.git
mkdir -p /usr/local/etc/codecserver mkdir -p /usr/local/etc/codecserver
cp codecserver/conf/codecserver.conf /usr/local/etc/codecserver cp codecserver/conf/codecserver.conf /usr/local/etc/codecserver
#latest develop as of 2021-07-04 (optional checksum fix) cmakebuild codecserver 0.1.0
cmakebuild codecserver d73c9a56a773355679bc2d4a10f199b62223d7a0
git clone https://github.com/jketterl/digiham.git git clone https://github.com/jketterl/digiham.git
#latest develop as of 2021-06-15 (DMR LCSS overflow fix; D-Star alternate terminator) cmakebuild digiham 0.5.0
cmakebuild digiham 418145d74b528596a39198a537ab56207d932595
apt-get -y purge --autoremove $BUILD_PACKAGES apt-get -y purge --autoremove $BUILD_PACKAGES
apt-get clean apt-get clean

View File

@ -18,7 +18,6 @@ defaultConfig = PropertyLayer(
fft_compression="adpcm", fft_compression="adpcm",
wfm_deemphasis_tau=50e-6, wfm_deemphasis_tau=50e-6,
digimodes_fft_size=2048, digimodes_fft_size=2048,
digital_voice_unvoiced_quality=1,
digital_voice_dmr_id_lookup=True, digital_voice_dmr_id_lookup=True,
digital_voice_nxdn_id_lookup=True, digital_voice_nxdn_id_lookup=True,
sdrs=PropertyLayer( sdrs=PropertyLayer(

View File

@ -31,7 +31,9 @@ class Controller(object):
self.handler.end_headers() self.handler.end_headers()
if type(content) == str: if type(content) == str:
content = content.encode() content = content.encode()
self.handler.wfile.write(content) while len(content):
w = self.handler.wfile.write(content)
content = content[w:]
def send_redirect(self, location, code=303): def send_redirect(self, location, code=303):
self.handler.send_response(code) self.handler.send_response(code)

View File

@ -35,12 +35,6 @@ class DecodingSettingsController(SettingsFormController):
), ),
Section( Section(
"Digital voice", "Digital voice",
NumberInput(
"digital_voice_unvoiced_quality",
"Quality of unvoiced sounds in synthesized voice",
infotext="Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice"
+ " modes.<br />If you're running on a Raspberry Pi (up to 3B+) you should leave this set at 1",
),
TextInput( TextInput(
"digital_voice_codecserver", "digital_voice_codecserver",
"Codecserver address", "Codecserver address",

View File

@ -67,7 +67,6 @@ class DspManager(Output, SdrSourceEventClient):
"fft_compression", "fft_compression",
"digimodes_fft_size", "digimodes_fft_size",
"samp_rate", "samp_rate",
"digital_voice_unvoiced_quality",
"center_freq", "center_freq",
"start_mod", "start_mod",
"start_freq", "start_freq",
@ -128,7 +127,6 @@ class DspManager(Output, SdrSourceEventClient):
self.props.wireProperty("low_cut", set_low_cut), self.props.wireProperty("low_cut", set_low_cut),
self.props.wireProperty("high_cut", set_high_cut), self.props.wireProperty("high_cut", set_high_cut),
self.props.wireProperty("mod", self.dsp.set_demodulator), self.props.wireProperty("mod", self.dsp.set_demodulator),
self.props.wireProperty("digital_voice_unvoiced_quality", self.dsp.set_unvoiced_quality),
self.props.wireProperty("dmr_filter", self.dsp.set_dmr_filter), self.props.wireProperty("dmr_filter", self.dsp.set_dmr_filter),
self.props.wireProperty("wfm_deemphasis_tau", self.dsp.set_wfm_deemphasis_tau), self.props.wireProperty("wfm_deemphasis_tau", self.dsp.set_wfm_deemphasis_tau),
self.props.wireProperty("digital_voice_codecserver", self.dsp.set_codecserver), self.props.wireProperty("digital_voice_codecserver", self.dsp.set_codecserver),

View File

@ -259,6 +259,8 @@ class FeatureDetector(object):
"fsk_demodulator", "fsk_demodulator",
"pocsag_decoder", "pocsag_decoder",
"dstar_decoder", "dstar_decoder",
"nxdn_decoder",
"dc_block",
], ],
), ),
True, True,
@ -279,7 +281,7 @@ class FeatureDetector(object):
return False return False
def _check_owrx_connector(self, command): def _check_owrx_connector(self, command):
return self._check_connector(command, LooseVersion("0.4")) return self._check_connector(command, LooseVersion("0.5"))
def has_rtl_connector(self): def has_rtl_connector(self):
""" """
@ -548,6 +550,11 @@ class FeatureDetector(object):
return self._check_connector("runds_connector", LooseVersion("0.2")) return self._check_connector("runds_connector", LooseVersion("0.2"))
def has_codecserver_ambe(self): def has_codecserver_ambe(self):
"""
Codecserver is used to decode audio data from digital voice modes using the AMBE codec.
You can find more information [here](https://github.com/jketterl/codecserver).
"""
tmp_dir = CoreConfig().get_temporary_directory() tmp_dir = CoreConfig().get_temporary_directory()
cmd = ["mbe_synthesizer", "--test"] cmd = ["mbe_synthesizer", "--test"]
config = Config.get() config = Config.get()

View File

@ -1,5 +1,5 @@
from distutils.version import LooseVersion from distutils.version import LooseVersion
_versionstring = "1.1.0-dev" _versionstring = "1.2.0-dev"
looseversion = LooseVersion(_versionstring) looseversion = LooseVersion(_versionstring)
openwebrx_version = "v{0}".format(looseversion) openwebrx_version = "v{0}".format(looseversion)