diff --git a/Dockerfile b/Dockerfile index 7891c90..6d494ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,12 @@ MAINTAINER sa2kng RUN apt-get -y update && apt -y upgrade && apt-get -y install --no-install-recommends \ cmake \ build-essential \ + ca-certificates \ + git \ libusb-1.0-0-dev \ - libatlas-base-dev &&\ + libatlas-base-dev \ + libsoapysdr-dev \ + soapysdr-module-all &&\ rm -rf /var/lib/apt/lists/* # install everything in /target and it will go in to / on destination image. symlink make it easier for builds to find files installed by this. @@ -17,10 +21,12 @@ RUN cd /horusdemodlib &&\ cmake -B build -DCMAKE_INSTALL_PREFIX=/target/usr -DCMAKE_BUILD_TYPE=Release &&\ cmake --build build --target install -COPY docker_single.sh \ - docker_dual_4fsk.sh \ - docker_dual_rtty_4fsk.sh \ - /target/usr/bin/ +RUN git clone --depth 1 https://github.com/rxseger/rx_tools.git &&\ + cd rx_tools &&\ + cmake -B build -DCMAKE_INSTALL_PREFIX=/target/usr -DCMAKE_BUILD_TYPE=Release &&\ + cmake --build build --target install + +COPY scripts/* /target/usr/bin/ # to support arm wheels RUN echo '[global]\nextra-index-url=https://www.piwheels.org/simple' > /target/etc/pip.conf @@ -37,7 +43,8 @@ RUN apt-get -y update && apt -y upgrade && apt-get -y install --no-install-recom sox \ bc \ rtl-sdr \ - libatlas3-base &&\ + libatlas3-base \ + soapysdr-module-all &&\ rm -rf /var/lib/apt/lists/* RUN pip install --system --no-cache-dir --prefer-binary horusdemodlib diff --git a/docker_dual_4fsk.sh b/scripts/docker_dual_4fsk.sh similarity index 100% rename from docker_dual_4fsk.sh rename to scripts/docker_dual_4fsk.sh diff --git a/docker_dual_rtty_4fsk.sh b/scripts/docker_dual_rtty_4fsk.sh similarity index 100% rename from docker_dual_rtty_4fsk.sh rename to scripts/docker_dual_rtty_4fsk.sh diff --git a/docker_single.sh b/scripts/docker_single.sh similarity index 100% rename from docker_single.sh rename to scripts/docker_single.sh diff --git a/scripts/docker_soapy_single.sh b/scripts/docker_soapy_single.sh new file mode 100755 index 0000000..c58b26b --- /dev/null +++ b/scripts/docker_soapy_single.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# +# Horus Binary RTLSDR Helper Script +# +# Uses rtl_fm to receive a chunk of spectrum, and passes it into horus_demod. +# + +# Calculate the SDR tuning frequency +SDR_RX_FREQ=$(echo "$RXFREQ - $RXBANDWIDTH/2 - 1000" | bc) + +# Calculate the frequency estimator limits +FSK_LOWER=1000 +FSK_UPPER=$(echo "$FSK_LOWER + $RXBANDWIDTH" | bc) + +echo "Using SDR Centre Frequency: $SDR_RX_FREQ Hz." +echo "Using FSK estimation range: $FSK_LOWER - $FSK_UPPER Hz" + +BIAS_SETTING="" + +if [ "$BIAS" = "1" ]; then + echo "Enabling Bias Tee." + BIAS_SETTING=" -T" +fi + +GAIN_SETTING="" +if [ "$GAIN" = "0" ]; then + echo "Using AGC." + GAIN_SETTING="" +else + echo "Using Manual Gain" + GAIN_SETTING=" -g $GAIN" +fi + +# Start the receive chain. +# Note that we now pass in the SDR centre frequency ($SDR_RX_FREQ) and 'target' signal frequency ($RXFREQ) +# to enable providing additional metadata to Habitat / Sondehub. +rx_fm $SDR_EXTRA -M raw -F9 -s 48000 -p $PPM $GAIN_SETTING$BIAS_SETTING -f $SDR_RX_FREQ | $DECODER -q --stats=5 -g -m binary --fsk_lower=$FSK_LOWER --fsk_upper=$FSK_UPPER - - | python3 -m horusdemodlib.uploader --freq_hz $SDR_RX_FREQ --freq_target_hz $RXFREQ $@ +