From 2e646a26c9db66dd5776667d9c9b73d798f5ffda Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 23 Jan 2015 10:46:26 +0100 Subject: Merge input-zeromq and output-zeromq configure options --- configure.ac | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 615bf6d..739f54a 100644 --- a/configure.ac +++ b/configure.ac @@ -71,12 +71,8 @@ AC_ARG_ENABLE([kiss_fft], [], [enable_kiss=no]) # ZeroMQ message queue input -AC_ARG_ENABLE([input_zeromq], - AS_HELP_STRING([--enable-input-zeromq], [Enable ZeroMQ input])) - -# ZeroMQ message IQ output -AC_ARG_ENABLE([output_zeromq], - AS_HELP_STRING([--enable-output-zeromq], [Enable ZeroMQ output])) +AC_ARG_ENABLE([zeromq], + AS_HELP_STRING([--enable-zeromq], [Enable ZeroMQ input, output and remote control])) # UHD support control AC_ARG_ENABLE([output_uhd], @@ -91,13 +87,10 @@ AS_IF([test "x$enable_fftw" = "xyes"], AC_MSG_NOTICE([Found FFTW3]), AC_MSG_NOTICE([Using Kiss FFT]) ) -echo "Checking input zeromq" +echo "Checking zeromq" -AS_IF([test "x$enable_input_zeromq" = "xyes"], - [AC_DEFINE(HAVE_INPUT_ZEROMQ, [1], [Define if ZeroMQ input is enabled]) , - AC_CHECK_LIB(zmq, zmq_init, ZMQ_LIBS="-lzmq" ,[AC_MSG_ERROR([ZeroMQ libzmq is required])])]) -AS_IF([test "x$enable_output_zeromq" = "xyes"], - [AC_DEFINE(HAVE_OUTPUT_ZEROMQ, [1], [Define if ZeroMQ output is enabled]) , +AS_IF([test "x$enable_zeromq" = "xyes"], + [AC_DEFINE(HAVE_ZEROMQ, [1], [Define if ZeroMQ is enabled]) , AC_CHECK_LIB(zmq, zmq_init, ZMQ_LIBS="-lzmq" ,[AC_MSG_ERROR([ZeroMQ libzmq is required])])]) AS_IF([test "x$enable_debug" = "xno"], [OPTIM="-O2" DEBUG="" EXTRA="$EXTRA -DNDEBUG"], @@ -203,7 +196,7 @@ echo "***********************************************" echo enabled="" disabled="" -for feat in debug prof trace fftw fft_simd output_uhd input_zeromq output_zeromq +for feat in debug prof trace fftw fft_simd output_uhd zeromq do eval var=\$enable_$feat AS_IF([test "x$var" = "xyes"], -- cgit v1.2.3 From 8912158484d7e75f5e8c343ac33ca98f3e6f7f50 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sat, 24 Jan 2015 11:21:16 +0100 Subject: Prepare release v0.5.1 --- ChangeLog | 8 ++++++++ README.md | 5 +++-- configure.ac | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'configure.ac') diff --git a/ChangeLog b/ChangeLog index e005721..d13be34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,14 @@ This file contains information about the changes done to the ODR-DabMod in this repository +2015-01-24: Matthias P. Braendli + (v0.5.1) + * odr-dabmod: + Security: force Telnet RC to listen only on + localhost. + Add raspine's ZeroMQ RC and UHD staticdelay setting + Add I/Q format converter (signed 8-bit) + 2014-12-09: Matthias P. Braendli (v0.5.0) * odr-dabmod: diff --git a/README.md b/README.md index 8ea87c9..292bba5 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ In addition to the features of CRC-DabMod, this fork contains: - A FIR filter (previously done in GNURadio by crc-dwap.py) - Improvements in logging (log to file, to syslog) - ETI sources: file (Raw, Framed and Streamed) and ZeroMQ -- A Telnet remote-control that can be used to change some parameters during - runtime +- A Telnet and ZeroMQ remote-control that can be used to change + some parameters during runtime +- 8-bit signed I/Q output format The src/ directory contains the source code of ODR-DabMod. diff --git a/configure.ac b/configure.ac index 739f54a..3f21f89 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ # along with ODR-DabMod. If not, see . AC_PREREQ(2.59) -AC_INIT([ODR-DabMod], [0.5.0], [matthias.braendli@mpb.li]) +AC_INIT([ODR-DabMod], [0.5.1], [matthias.braendli@mpb.li]) AC_CONFIG_AUX_DIR([build-aux]) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([-Wall foreign]) -- cgit v1.2.3 From bcf924ecc3962381e5bf14107d7cab2144a81c78 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Thu, 5 Feb 2015 17:58:37 +0100 Subject: Change autotools to "subdir-objects" and simplify --- Makefile.am | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- configure.ac | 7 ++- lib/Makefile.am | 19 -------- src/Makefile.am | 127 ------------------------------------------------ 4 files changed, 149 insertions(+), 152 deletions(-) delete mode 100644 lib/Makefile.am delete mode 100644 src/Makefile.am (limited to 'configure.ac') diff --git a/Makefile.am b/Makefile.am index c0b3024..b384024 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,8 +18,152 @@ # You should have received a copy of the GNU General Public License # along with ODR-DabMod. If not, see . -SUBDIRS = src lib - ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = COPYING NEWS README.md AUTHORS ChangeLog TODO doc + +if IS_GIT_REPO +GITVERSION_FLAGS = -DGITVERSION="\"`git describe`\"" +else +GITVERSION_FLAGS = +endif + +if HAVE_SSE +SIMD_CFLAGS = -msse -msse2 +else +SIMD_CFLAGS = +endif + +bin_PROGRAMS = odr-dabmod + +FFT_DIR=lib/kiss_fft129 +FFT_LDADD= + +if USE_KISS_FFT +FFT_INC=-I$(FFT_DIR) -I$(FFT_DIR)/tools +FFT_FLG=-ffast-math + +.PHONY: lib/kiss_fft129 + +BUILT_SOURCES=lib/kiss_fft129 + +lib/kiss_fft129: + if [ ! -e lib/kiss_fft129/kiss_fft.c ]; then \ + tar xzf lib/kiss_fft129.tar.gz -C lib; \ + fi + +nodist_odr_dabmod_SOURCES = lib/kiss_fft129/kiss_fft.c \ + lib/kiss_fft129/kiss_fft.h \ + lib/kiss_fft129/tools/kiss_fftr.c \ + lib/kiss_fft129/tools/kiss_fftr.h \ + src/kiss_fftsimd.c \ + src/kiss_fftsimd.h + +clean-local: + rm -rf $(FFT_DIR) + +else +FFT_INC= +FFT_FLG= +endif + +odr_dabmod_CPPFLAGS = -Wall \ + $(FFT_INC) $(FFT_FLG) $(SIMD_CFLAGS) $(GITVERSION_FLAGS) +odr_dabmod_LDADD = $(FFT_LDADD) +odr_dabmod_SOURCES = src/DabMod.cpp \ + src/PcDebug.h \ + src/porting.c \ + src/porting.h \ + src/DabModulator.cpp \ + src/DabModulator.h \ + src/Buffer.cpp \ + src/Buffer.h \ + src/ModCodec.cpp \ + src/ModCodec.h \ + src/ModPlugin.cpp \ + src/ModPlugin.h \ + src/ModFormat.cpp \ + src/ModFormat.h \ + src/EtiReader.cpp \ + src/EtiReader.h \ + src/Eti.cpp \ + src/Eti.h \ + src/FicSource.cpp \ + src/FicSource.h \ + src/FIRFilter.cpp \ + src/FIRFilter.h \ + src/ModInput.cpp \ + src/ModInput.h \ + src/PuncturingRule.cpp \ + src/PuncturingRule.h \ + src/PuncturingEncoder.cpp \ + src/PuncturingEncoder.h \ + src/SubchannelSource.cpp \ + src/SubchannelSource.h \ + src/Flowgraph.cpp \ + src/Flowgraph.h \ + src/GainControl.cpp \ + src/GainControl.h \ + src/OutputMemory.cpp \ + src/OutputMemory.h \ + src/OutputZeroMQ.cpp \ + src/OutputZeroMQ.h \ + src/TimestampDecoder.h \ + src/TimestampDecoder.cpp \ + src/OutputUHD.cpp \ + src/OutputUHD.h \ + src/ModOutput.cpp \ + src/ModOutput.h \ + src/InputMemory.cpp \ + src/InputMemory.h \ + src/InputFileReader.cpp \ + src/InputZeroMQReader.cpp \ + src/InputReader.h \ + src/OutputFile.cpp \ + src/OutputFile.h \ + src/FrameMultiplexer.cpp \ + src/FrameMultiplexer.h \ + src/ModMux.cpp \ + src/ModMux.h \ + src/PrbsGenerator.cpp \ + src/PrbsGenerator.h \ + src/BlockPartitioner.cpp \ + src/BlockPartitioner.h \ + src/QpskSymbolMapper.cpp \ + src/QpskSymbolMapper.h \ + src/FrequencyInterleaver.cpp \ + src/FrequencyInterleaver.h \ + src/PhaseReference.cpp \ + src/PhaseReference.h \ + src/DifferentialModulator.cpp \ + src/DifferentialModulator.h \ + src/NullSymbol.cpp \ + src/NullSymbol.h \ + src/SignalMultiplexer.cpp \ + src/SignalMultiplexer.h \ + src/CicEqualizer.cpp \ + src/CicEqualizer.h \ + src/OfdmGenerator.cpp \ + src/OfdmGenerator.h \ + src/GuardIntervalInserter.cpp \ + src/GuardIntervalInserter.h \ + src/Resampler.cpp \ + src/Resampler.h \ + src/ConvEncoder.cpp \ + src/ConvEncoder.h \ + src/TimeInterleaver.cpp \ + src/TimeInterleaver.h \ + src/ThreadsafeQueue.h \ + src/Log.cpp \ + src/Log.h \ + src/RemoteControl.cpp \ + src/RemoteControl.h \ + src/FormatConverter.cpp \ + src/FormatConverter.h \ + src/zmq.hpp + +dist_bin_SCRIPTS = src/crc-dwap.py + +EXTRA_DIST += lib/kiss_fft129.tar.gz +EXTRA_DIST += src/kiss_fftsimd.c src/kiss_fftsimd.h + diff --git a/configure.ac b/configure.ac index 3f21f89..a73ee39 100644 --- a/configure.ac +++ b/configure.ac @@ -21,8 +21,9 @@ AC_PREREQ(2.59) AC_INIT([ODR-DabMod], [0.5.1], [matthias.braendli@mpb.li]) AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE([-Wall foreign]) +AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) AC_CONFIG_SRCDIR([src/DabMod.cpp]) AM_CONFIG_HEADER([config.h]) AM_SILENT_RULES([yes]) @@ -186,9 +187,7 @@ AM_CONDITIONAL([HAVE_SSE], [test "x$has_sse" = "xyes"]) AC_TYPE_SIGNAL AC_CHECK_FUNCS([bzero floor ftime gettimeofday memset sqrt strchr strerror strtol]) -AC_CONFIG_FILES([Makefile - lib/Makefile - src/Makefile]) +AC_CONFIG_FILES([Makefile]) AC_OUTPUT echo diff --git a/lib/Makefile.am b/lib/Makefile.am deleted file mode 100644 index c37fb46..0000000 --- a/lib/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2008, 2009 Her Majesty the Queen in Right of Canada -# (Communications Research Center Canada) - -# This file is part of ODR-DabMod. -# -# ODR-DabMod is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# ODR-DabMod is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with ODR-DabMod. If not, see . - -EXTRA_DIST =kiss_fft129.tar.gz diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index f8ba7c2..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Her Majesty the -# Queen in Right of Canada (Communications Research Center Canada) - -# This file is part of ODR-DabMod. -# -# ODR-DabMod is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# ODR-DabMod is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with ODR-DabMod. If not, see . - -if IS_GIT_REPO -GITVERSION_FLAGS = -DGITVERSION="\"`git describe`\"" -else -GITVERSION_FLAGS = -endif - -if HAVE_SSE -SIMD_CFLAGS = -msse -msse2 -else -SIMD_CFLAGS = -endif - -bin_PROGRAMS = odr-dabmod - -if USE_KISS_FFT -FFT_DIR=$(top_builddir)/lib/kiss_fft129 -FFT_INC=-I$(FFT_DIR) -I$(FFT_DIR)/tools -FFT_SRC=$(FFT_DIR)/kiss_fft.c \ - $(FFT_DIR)/kiss_fft.h \ - $(FFT_DIR)/tools/kiss_fftr.c \ - $(FFT_DIR)/tools/kiss_fftr.h \ - kiss_fftsimd.c \ - kiss_fftsimd.h -FFT_FLG=-ffast-math - -.PHONY: kiss_fft129 reed-solomon-4.0 - -DabModulator.cpp: $(FFT_DIR) - -BUILT_SOURCES: $(FFT_DIR) - -FFT_LDADD= - -$(FFT_DIR): - if [ ! -e $(FFT_DIR) ]; then \ - tar xzf $(top_srcdir)/lib/kiss_fft129.tar.gz -C $(top_builddir)/lib; \ - fi - -else -FFT_LDADD= -FFT_DIR= -FFT_INC= -FFT_SRC= -FFT_FLG= -endif - -odr_dabmod_CPPFLAGS = -Wall \ - $(FFT_INC) $(FFT_FLG) $(SIMD_CFLAGS) $(GITVERSION_FLAGS) -odr_dabmod_LDADD = $(FFT_LDADD) -odr_dabmod_SOURCES = DabMod.cpp \ - PcDebug.h \ - porting.c porting.h \ - DabModulator.cpp DabModulator.h \ - Buffer.cpp Buffer.h \ - ModCodec.cpp ModCodec.h \ - ModPlugin.cpp ModPlugin.h \ - ModFormat.cpp ModFormat.h \ - EtiReader.cpp EtiReader.h \ - Eti.cpp Eti.h \ - FicSource.cpp FicSource.h \ - FIRFilter.cpp FIRFilter.h \ - ModInput.cpp ModInput.h \ - PuncturingRule.cpp PuncturingRule.h \ - PuncturingEncoder.cpp PuncturingEncoder.h \ - SubchannelSource.cpp SubchannelSource.h \ - Flowgraph.cpp Flowgraph.h \ - GainControl.cpp GainControl.h \ - OutputMemory.cpp OutputMemory.h \ - OutputZeroMQ.cpp OutputZeroMQ.h \ - TimestampDecoder.h TimestampDecoder.cpp \ - OutputUHD.cpp OutputUHD.h \ - ModOutput.cpp ModOutput.h \ - InputMemory.cpp InputMemory.h \ - InputFileReader.cpp InputZeroMQReader.cpp InputReader.h \ - OutputFile.cpp OutputFile.h \ - FrameMultiplexer.cpp FrameMultiplexer.h \ - ModMux.cpp ModMux.h \ - PrbsGenerator.cpp PrbsGenerator.h \ - BlockPartitioner.cpp BlockPartitioner.h \ - QpskSymbolMapper.cpp QpskSymbolMapper.h \ - FrequencyInterleaver.cpp FrequencyInterleaver.h \ - PhaseReference.cpp PhaseReference.h \ - DifferentialModulator.cpp DifferentialModulator.h \ - NullSymbol.cpp NullSymbol.h \ - SignalMultiplexer.cpp SignalMultiplexer.h \ - CicEqualizer.cpp CicEqualizer.h \ - OfdmGenerator.cpp OfdmGenerator.h \ - GuardIntervalInserter.cpp GuardIntervalInserter.h \ - Resampler.cpp Resampler.h \ - ConvEncoder.cpp ConvEncoder.h \ - TimeInterleaver.cpp TimeInterleaver.h \ - ThreadsafeQueue.h \ - Log.cpp Log.h \ - RemoteControl.cpp RemoteControl.h \ - FormatConverter.cpp FormatConverter.h \ - zmq.hpp - -nodist_odr_dabmod_SOURCES = $(FFT_SRC) - -dist_bin_SCRIPTS = crc-dwap.py - -if USE_KISS_FFT -EXTRA_DIST = kiss_fftsimd.c kiss_fftsimd.h - -clean-local: - rm -rf $(FFT_DIR) - -endif - -- cgit v1.2.3 From accdfad612a368542f2d833d0e3d30dc9541b955 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Tue, 7 Apr 2015 22:45:54 +0200 Subject: Fix configure help entry for UHD --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index a73ee39..9a88fd9 100644 --- a/configure.ac +++ b/configure.ac @@ -77,7 +77,7 @@ AC_ARG_ENABLE([zeromq], # UHD support control AC_ARG_ENABLE([output_uhd], - [AS_HELP_STRING([--enable-output-uhd], [Enable UHD output])], + [AS_HELP_STRING([--disable-output-uhd], [Disable UHD output])], [], [enable_output_uhd=yes]) AS_IF([test "x$enable_kiss" = "xno"], -- cgit v1.2.3 From 81775f47227c5d08a05b43ffb3855bff0a237c1d Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 10 Apr 2015 17:14:08 +0200 Subject: Prepare release v0.5.2 --- AUTHORS | 7 +++++++ ChangeLog | 12 ++++++++++++ README.md | 22 ++++++++++++++-------- configure.ac | 2 +- 4 files changed, 34 insertions(+), 9 deletions(-) (limited to 'configure.ac') diff --git a/AUTHORS b/AUTHORS index dfefa5a..6da1706 100644 --- a/AUTHORS +++ b/AUTHORS @@ -10,3 +10,10 @@ Matthias P. Braendli - Improvements in logging (log to file, to syslog) - ZeroMQ ETI input - Telnet remote-control + - ZeroMQ I/Q output + - I/Q conversion to signed 8-bit + - ARM support + +Jörgen Scott + - ZeroMQ remote control + - Static delay offset diff --git a/ChangeLog b/ChangeLog index d13be34..c119b10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,18 @@ This file contains information about the changes done to the ODR-DabMod in this repository +2015-04-10: Matthias P. Braendli + (v0.5.2) + * odr-dabmod: + Merge static delay parameter and ZeroMQ remote control. + Add max_frames_queued option for ZeroMQ input. + Restart modulator on FCT discontinuity or ZeroMQ input + buffer overrun. + Improve error messages and documentation. + Add ZeroMQ output REP socket type for interconnection with + GNURadio. + Fix license text in usage view. + 2015-01-24: Matthias P. Braendli (v0.5.1) * odr-dabmod: diff --git a/README.md b/README.md index 292bba5..cab4637 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,30 @@ OVERVIEW ======== -ODR-DabMod is a fork of CRC-DabMod, which was developed by the Communications -Research Center Canada. It has been forked by the Opendigitalradio project. - ODR-DabMod is a DAB (Digital Audio Broadcasting) modulator compliant to ETSI EN 300 401. -In addition to the features of CRC-DabMod, this fork contains: +ODR-DabMod is a fork of CRC-DabMod, which was developed by the +Communications Research Center Canada and whose development has ceased. +The Opendigitalradio association now continues this project. + +Short list of features: +- Reads ETI, outputs compliant COFDM I/Q +- Supports native DAB sample rate and can also + resample to other rates +- supports all four DAB transmission modes - Configuration file support, see doc/example.ini - Integrated UHD output for USRP devices - Tested for B200, B100, USRP2, USRP1 - With WBX daughterboard (where appropriate) - Timestamping support required for SFN -- A FIR filter (previously done in GNURadio by crc-dwap.py) +- A FIR filter for improved spectrum mask - Improvements in logging (log to file, to syslog) - ETI sources: file (Raw, Framed and Streamed) and ZeroMQ - A Telnet and ZeroMQ remote-control that can be used to change some parameters during runtime -- 8-bit signed I/Q output format +- 8-bit signed I/Q output format, useful for the HackRF +- ZeroMQ PUB and REP output. The src/ directory contains the source code of ODR-DabMod. @@ -41,6 +47,6 @@ CONTACT Matthias P. Braendli Pascal Charest +With thanks to other contributors listed in AUTHORS + http://opendigitalradio.org/ -http://mmbtools.crc.ca/ -http://mpb.li/ diff --git a/configure.ac b/configure.ac index 9a88fd9..821ba1f 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ # along with ODR-DabMod. If not, see . AC_PREREQ(2.59) -AC_INIT([ODR-DabMod], [0.5.1], [matthias.braendli@mpb.li]) +AC_INIT([ODR-DabMod], [0.5.2], [matthias.braendli@mpb.li]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_SYSTEM -- cgit v1.2.3