diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | Makefile.am | 9 | ||||
| -rw-r--r-- | configure.ac | 19 | ||||
| -rw-r--r-- | doc/easydabv3.ini | 37 | ||||
| -rw-r--r-- | src/DabModulator.cpp | 47 | ||||
| -rw-r--r-- | src/Utils.cpp | 16 | 
6 files changed, 29 insertions, 102 deletions
| @@ -15,6 +15,9 @@ config.h  config.h.in  config.status  odr-dabmod +*~ + +*.iq  __pycache__/  *.py[cod] diff --git a/Makefile.am b/Makefile.am index 46f2c21..64884e0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -39,7 +39,7 @@ odr_dabmod_CFLAGS   = -Wall -Isrc -Ilib \  					  $(GITVERSION_FLAGS)  odr_dabmod_CXXFLAGS = -Wall -Isrc -Ilib -std=c++11 \  					  $(GITVERSION_FLAGS) $(BOOST_CPPFLAGS) -odr_dabmod_LDADD    =  $(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) +odr_dabmod_LDADD    =  $(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) $(UHD_LIBS) $(LIMESDR_LIBS) $(ADDITIONAL_UHD_LIBS)  odr_dabmod_SOURCES  = src/DabMod.cpp \  					  src/PcDebug.h \  					  src/DabModulator.cpp \ @@ -123,10 +123,7 @@ odr_dabmod_SOURCES  = src/DabMod.cpp \  					  lib/edi/ETIDecoder.hpp \  					  lib/edi/ETIDecoder.cpp \  					  lib/edi/PFT.hpp \ -					  lib/edi/PFT.cpp - -if !COMPILE_FOR_EASYDABV3 -odr_dabmod_SOURCES += \ +					  lib/edi/PFT.cpp \  					  src/FIRFilter.cpp \  					  src/FIRFilter.h \  					  src/MemlessPoly.cpp \ @@ -173,7 +170,5 @@ odr_dabmod_SOURCES += \  					  src/TII.cpp \  					  src/TII.h -odr_dabmod_LDADD   += $(UHD_LIBS) $(LIMESDR_LIBS) $(ADDITIONAL_UHD_LIBS) -endif  man_MANS = man/odr-dabmod.1 diff --git a/configure.ac b/configure.ac index 9b45a89..59ee4e5 100644 --- a/configure.ac +++ b/configure.ac @@ -52,9 +52,6 @@ AC_ARG_ENABLE([zeromq],  AC_ARG_ENABLE([native],          [AS_HELP_STRING([--disable-native], [Do not compile with -march=native])],          [], [enable_native=yes]) -AC_ARG_ENABLE([easydabv3], -        [AS_HELP_STRING([--enable-easydabv3], [Build for EasyDABv3 board])], -        [], [enable_easydabv3=no])  AC_ARG_ENABLE([dexter],          [AS_HELP_STRING([--enable-dexter], [Build for PrecisionWave Dexter board])],          [], [enable_dexter=no]) @@ -80,9 +77,7 @@ AX_CHECK_COMPILE_FLAG([-Wdouble-promotion], [CXXFLAGS="$CXXFLAGS -Wdouble-promot  AX_CHECK_COMPILE_FLAG(["-Wformat=2"], [CXXFLAGS="$CXXFLAGS -Wformat=2"], [], ["-Werror"])  AC_LANG_POP([C++]) - -AS_IF([test "x$enable_easydabv3" = "xno"], -    [PKG_CHECK_MODULES([FFTW], [fftw3f], [], [AC_MSG_ERROR([FFTW is required])])]) +PKG_CHECK_MODULES([FFTW], [fftw3f], [], [AC_MSG_ERROR([FFTW is required])])  echo "Checking zeromq" @@ -104,13 +99,11 @@ AS_IF([test "x$enable_trace" != "xno"],  # Define conditionals for Makefile.am  AM_CONDITIONAL([IS_GIT_REPO], [test -d '.git']) -AM_CONDITIONAL([COMPILE_FOR_EASYDABV3], [test "x$enable_easydabv3" = "xyes"])  # Defines for config.h  AX_PTHREAD([], AC_MSG_ERROR([requires pthread])) -AS_IF([test "x$enable_easydabv3" = "xno"], -    [PKG_CHECK_MODULES([SOAPYSDR], [SoapySDR], enable_soapysdr=yes, enable_soapysdr=no)]) +PKG_CHECK_MODULES([SOAPYSDR], [SoapySDR], enable_soapysdr=yes, enable_soapysdr=no)  AS_IF([test "x$enable_limesdr" = "xyes"],           [AC_CHECK_LIB([LimeSuite], [LMS_Init], [LIMESDR_LIBS="-lLimeSuite"], @@ -128,9 +121,6 @@ AC_SUBST([CFLAGS], ["$CFLAGS $EXTRA $FFTW_CFLAGS $SOAPYSDR_CFLAGS $PTHREAD_CFLAG  AC_SUBST([CXXFLAGS], ["$CXXFLAGS $EXTRA $FFTW_CFLAGS $SOAPYSDR_CFLAGS $PTHREAD_CFLAGS"])  AC_SUBST([LIBS], ["$FFTW_LIBS $SOAPYSDR_LIBS $PTHREAD_LIBS $ZMQ_LIBS $LIMESDR_LIBS $IIO_LIBS $BLADERF_LIBS"]) -AS_IF([test "x$enable_easydabv3" = "xyes" && test "x$enable_output_uhd" == "xyes"], -      AC_MSG_ERROR([Cannot enable both EasyDABv3 and UHD output])) -  # Checks for UHD.  AS_IF([test "x$enable_output_uhd" = "xyes"],        [ PKG_CHECK_MODULES([UHD], [uhd], [], [AC_MSG_ERROR([UHD is required])]) @@ -157,9 +147,6 @@ AS_IF([test "x$enable_dexter" = "xyes"],  AS_IF([test "x$enable_bladerf" = "xyes"],        [AC_DEFINE(HAVE_BLADERF, [1], [Define if BladeRF output is enabled]) ]) -AS_IF([test "x$enable_easydabv3" = "xyes"], -      AC_DEFINE(BUILD_FOR_EASYDABV3, [1], [Define if we are building for EasyDABv3])) -  # Checks for header files.  AC_CHECK_HEADERS([fcntl.h limits.h memory.h netinet/in.h stdint.h stdlib.h string.h sys/time.h sys/timeb.h unistd.h]) @@ -227,7 +214,7 @@ echo "***********************************************"  echo  enabled=""  disabled="" -for feat in prof trace output_uhd zeromq soapysdr easydabv3 limesdr bladerf dexter +for feat in prof trace output_uhd zeromq soapysdr limesdr bladerf dexter  do      eval var=\$enable_$feat      AS_IF([test "x$var" = "xyes"], diff --git a/doc/easydabv3.ini b/doc/easydabv3.ini deleted file mode 100644 index 5f0103f..0000000 --- a/doc/easydabv3.ini +++ /dev/null @@ -1,37 +0,0 @@ -; This sample configuration is useful if ODR-DabMod is compiled -; with --enable-easydabv3 - -[remotecontrol] -zmqctrl=1 -zmqctrlendpoint=tcp://127.0.0.1:9400 -; There is no telnet RC available in this build - - -[log] -syslog=0 -filelog=0 -filename=odr-dabmod.log - -[input] -transport=zeromq -source=tcp://localhost:9100 -max_frames_queued=400 - -; There are no [modulator], [cfr], [firfilter], [poly] nor [tii] sections - -[output] -output=file - -[fileoutput] -; to be confirmed -format=complexf - -filename=/dev/csdiof1 - -show_metadata=0 -; TODO add option for writing out timestamps to csdiof1 - -[delaymanagement] -synchronous=0 -mutenotimestamps=0 -offset=1.002 diff --git a/src/DabModulator.cpp b/src/DabModulator.cpp index aa4f2a8..1f16d1d 100644 --- a/src/DabModulator.cpp +++ b/src/DabModulator.cpp @@ -3,7 +3,7 @@     Her Majesty the Queen in Right of Canada (Communications Research     Center Canada) -   Copyright (C) 2019 +   Copyright (C) 2023     Matthias P. Braendli, matthias.braendli@mpb.li      http://opendigitalradio.org @@ -31,32 +31,29 @@  #include "DabModulator.h"  #include "PcDebug.h" -#if !defined(BUILD_FOR_EASYDABV3) -# include "QpskSymbolMapper.h" -# include "FrequencyInterleaver.h" -# include "PhaseReference.h" -# include "DifferentialModulator.h" -# include "NullSymbol.h" -# include "CicEqualizer.h" -# include "OfdmGenerator.h" -# include "GainControl.h" -# include "GuardIntervalInserter.h" -# include "Resampler.h" -# include "FIRFilter.h" -# include "MemlessPoly.h" -# include "TII.h" -#endif - -#include "FrameMultiplexer.h" -#include "PrbsGenerator.h"  #include "BlockPartitioner.h" -#include "SignalMultiplexer.h" +#include "CicEqualizer.h"  #include "ConvEncoder.h" +#include "DifferentialModulator.h" +#include "FIRFilter.h" +#include "FrameMultiplexer.h" +#include "FrequencyInterleaver.h" +#include "GainControl.h" +#include "GuardIntervalInserter.h" +#include "Log.h" +#include "MemlessPoly.h" +#include "NullSymbol.h" +#include "OfdmGenerator.h" +#include "PhaseReference.h" +#include "PrbsGenerator.h"  #include "PuncturingEncoder.h" +#include "QpskSymbolMapper.h" +#include "RemoteControl.h" +#include "Resampler.h" +#include "SignalMultiplexer.h" +#include "TII.h"  #include "TimeInterleaver.h"  #include "TimestampDecoder.h" -#include "RemoteControl.h" -#include "Log.h"  using namespace std; @@ -140,7 +137,6 @@ int DabModulator::process(Buffer* dataOut)          auto cifMux = make_shared<FrameMultiplexer>(myEtiSource);          auto cifPart = make_shared<BlockPartitioner>(mode); -#if !defined(BUILD_FOR_EASYDABV3)          auto cifMap = make_shared<QpskSymbolMapper>(myNbCarriers);          auto cifRef = make_shared<PhaseReference>(mode);          auto cifFreq = make_shared<FrequencyInterleaver>(mode); @@ -231,7 +227,6 @@ int DabModulator::process(Buffer* dataOut)                      m_settings.outputRate,                      mySpacing);          } -#endif          myOutput = make_shared<OutputMemory>(dataOut); @@ -340,9 +335,6 @@ int DabModulator::process(Buffer* dataOut)          }          myFlowgraph->connect(cifMux, cifPart); -#if defined(BUILD_FOR_EASYDABV3) -        myFlowgraph->connect(cifPart, myOutput); -#else          myFlowgraph->connect(cifPart, cifMap);          myFlowgraph->connect(cifMap, cifFreq);          myFlowgraph->connect(cifRef, cifDiff); @@ -372,7 +364,6 @@ int DabModulator::process(Buffer* dataOut)                  prev_plugin = p;              }          } -#endif      }      //////////////////////////////////////////////////////////////////// diff --git a/src/Utils.cpp b/src/Utils.cpp index f39c4c9..350838e 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -3,7 +3,7 @@     Her Majesty the Queen in Right of Canada (Communications Research     Center Canada) -   Copyright (C) 2018 +   Copyright (C) 2023     Matthias P. Braendli, matthias.braendli@mpb.li      http://opendigitalradio.org @@ -62,10 +62,6 @@ static void printHeader()          "SSE " <<  #endif          "\n"; - -#if defined(BUILD_FOR_EASYDABV3) -    std::cerr << " This is a build for the EasyDABv3 board" << std::endl; -#endif  }  void printUsage(const char* progName) @@ -77,13 +73,8 @@ void printUsage(const char* progName)      fprintf(out, "Usage with command line options:\n");      fprintf(out, "\t%s"              " input" -#if defined(BUILD_FOR_EASYDABV3) -            " -f filename -F format" -#else              " (-f filename -F format | -u uhddevice -F frequency)" -#endif              " [-o offset]" -#if !defined(BUILD_FOR_EASYDABV3)              "\n\t"              " [-G txgain]"              " [-T filter_taps_file]" @@ -93,7 +84,6 @@ void printUsage(const char* progName)              " [-g gainMode]"              " [-m dabMode]"              " [-r samplingRate]" -#endif              " [-l]"              " [-h]"              "\n", progName); @@ -108,7 +98,6 @@ void printUsage(const char* progName)      fprintf(out, "                  Specifying this option has two implications: It enables synchronous transmission,\n"                   "                  requiring an external REFCLK and PPS signal and frames that do not contain a valid timestamp\n"                   "                  get muted.\n\n"); -#if !defined(BUILD_FOR_EASYDABV3)      fprintf(out, "-u device:     Use UHD output with given device string. (use "" for default device)\n");      fprintf(out, "-F frequency:  Set the transmit frequency when using UHD output. (mandatory option when using UHD)\n");      fprintf(out, "-G txgain:     Set the transmit gain for the UHD driver (default: 0)\n"); @@ -119,7 +108,6 @@ void printUsage(const char* progName)      fprintf(out, "-g gainmode:   Set computation gain mode: fix, max or var\n");      fprintf(out, "-m mode:       Set DAB mode: (0: auto, 1-4: force).\n");      fprintf(out, "-r rate:       Set output sampling rate (default: 2048000).\n\n"); -#endif      fprintf(out, "-l:            Loop file when reach end of file.\n");      fprintf(out, "-h:            Print this help.\n");  } @@ -132,7 +120,7 @@ void printVersion(void)              "    ODR-DabMod is copyright (C) Her Majesty the Queen in Right of Canada,\n"              "    2005 -- 2012 Communications Research Centre (CRC),\n"              "     and\n" -            "    Copyright (C) 2018 Matthias P. Braendli, matthias.braendli@mpb.li\n" +            "    Copyright (C) 2023 Matthias P. Braendli, matthias.braendli@mpb.li\n"              "\n"              "    http://opendigitalradio.org\n"              "\n" | 
