From 76e9e6393fe1d5a0ccc9e05deb431694921850ec Mon Sep 17 00:00:00 2001 From: Andrej Rode Date: Mon, 24 Oct 2016 10:25:42 -0700 Subject: gr-usrptest: Initial creation - new OOT-blocks: phase_calc_ccf hier-block, measurement_sink_f - new python submodules: flowgraphs, functions, rts_tests - new apps: usrp_phasealignment.py - cmdline example for manual testing OOT-Blocks: - phase_calc_ccf takes two complex input streams and conjugate multiplys them and extracts the phase from the result and converts it to degree scale - measurement_sink_f: takes a float input stream and calculates average and stddev for a specified number of samples. Start of a measurement is invoked by a call of start_run() on the block. After a couple of runs average and stddev can be extracted. Python modules: - flowgrahps contains reconfigurable flowgraphs for different GNU Radio RF test cases - functions contains functions which are used in different apps/RTS scripts - rts_tests contains test cases which are meant to be executed from the RTS system. Depends on TinyDB, labview_automation Apps: - usrp_phasealignment.py is an example how to use the underlying flowgraph to measure phase differences. Commandline arguments of uhd_app can be used and several additional arguments can/have to be specified. Runs a phase difference measurement --runs number of times and averages phase difference over --duration seconds. Between measurements USRP sinks are retuned to random frequencies in daughterboard range. Results are displayed using motherboard serial and daughterboard serial --- tools/gr-usrptest/include/usrptest/CMakeLists.txt | 2 +- .../include/usrptest/measurement_sink_f.h | 61 ++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tools/gr-usrptest/include/usrptest/measurement_sink_f.h (limited to 'tools/gr-usrptest/include') diff --git a/tools/gr-usrptest/include/usrptest/CMakeLists.txt b/tools/gr-usrptest/include/usrptest/CMakeLists.txt index 2d5ed3975..761a8bee4 100644 --- a/tools/gr-usrptest/include/usrptest/CMakeLists.txt +++ b/tools/gr-usrptest/include/usrptest/CMakeLists.txt @@ -22,5 +22,5 @@ ######################################################################## install(FILES api.h - DESTINATION include/usrptest + measurement_sink_f.h DESTINATION include/usrptest ) diff --git a/tools/gr-usrptest/include/usrptest/measurement_sink_f.h b/tools/gr-usrptest/include/usrptest/measurement_sink_f.h new file mode 100644 index 000000000..aaf1fb9d1 --- /dev/null +++ b/tools/gr-usrptest/include/usrptest/measurement_sink_f.h @@ -0,0 +1,61 @@ +/* -*- c++ -*- */ +/* + * Copyright 2016 Ettus Research LLC. + * + * This 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, or (at your option) + * any later version. + * + * This software 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + + +#ifndef INCLUDED_USRPTEST_MEASUREMENT_SINK_F_H +#define INCLUDED_USRPTEST_MEASUREMENT_SINK_F_H + +#include +#include + +namespace gr { + namespace usrptest { + + /*! + * \brief <+description of block+> + * \ingroup usrptest + * + */ + class USRPTEST_API measurement_sink_f : virtual public gr::sync_block + { + public: + typedef boost::shared_ptr sptr; + + /*! + * \brief Return a shared_ptr to a new instance of usrptest::measurement_sink_f. + * + * To avoid accidental use of raw pointers, usrptest::measurement_sink_f's + * constructor is in a private implementation + * class. usrptest::measurement_sink_f::make is the public interface for + * creating new instances. + */ + static sptr make(int num_samples,int runs); + virtual std::vector get_avg() const = 0; + virtual std::vector get_stddev() const = 0; + virtual int get_run() const = 0; + virtual void start_run() = 0; + + }; + + } // namespace usrptest +} // namespace gr + +#endif /* INCLUDED_USRPTEST_MEASUREMENT_SINK_F_H */ + -- cgit v1.2.3