| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The existing block combinations of complex-to-ichar/ichar-to-complex
and complex-to-ishort/ishort-to-complex was not exposing a scale
factor to the UI (it was hard-coded at 1.0) which prevented the blocks
from being used with voltage-based inputs and outputs, for example
a -127 to 127 byte input would be mapped directly to the same value
as a float. The same was true in reverse and there were notes in
the code about FIX clipping. Adding the scale factor provides a
mechanism for the user to appropriately fix the clipping and scale
the conversion correctly. Additional documentation was added to
the block yml to provide guidance to users on how to appropriately
select the scale factor for their use case, and the default value
was set to 1.0 for backward compatibility.
|
|
|
|
|
|
|
|
|
|
| |
For testing, it is often useful to check all tags ever received, rather than
solely the tags from the last call to the Tag Debug's work function. This patch
adds this option and a public method for activating it.
This is more appropriate for controlled test environments, where the vector of
tags is known not to grown indefinitely. Hence, the option is not exposed as a
block parameter.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This block incorporates the OOT modules in correctiq that provide
3 different techniques to remove the DC spike inherent in IQ sampling.
The first technique mirrors SDR GUI receivers with an IIR filter
approach, the second provides a time-limited IIR approach where after
a user-configurable number of seconds locks into a basic offset
correction to eliminate the effect of the filter on the signal while
maintaining the correction, and the last is manual I and Q
configurable offsets. The Swap IQ block is a drop-in block to help
correct for inverted spectrums and just swaps I<->Q.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This update is focused on improving the throughput of the Costas
loop, however some changes are more global performance enhancements
as this PR has evolved. Updates include an ENABLE_NATIVE added to
CMake, which is off by default but enables native compiling (including
FMA support) if desired; sincos was inlined in sincos.h and sincos.cc
was removed from the appropriate CMake to improve sincos speed, some
constants were added to math.h, inlined functions in costas loop and
nco.h, used switch instead of function pointer (much faster), and
used fast complex multiply to get around all the range checking in
the standard complex.h complex multiply function on all builds.
|
| |
|
| |
|
|
|
|
|
|
| |
To ensure that the throttle block operates normally even if the system
clock changes, I've switched it to use std::chrono::steady_clock, which
is a monotonic clock.
|
| |
|
|
|
|
| |
Input and output port selection can now be controlled by messages.
|
|
|
|
|
|
| |
Found by coverity. CID:
* 1395913
* 1395940
|
|
|
|
| |
Found by coverity. CID 1043276
|
|
|
|
|
| |
This fixes every leftover file in the GNU Radio source tree to match our
clang-format definition.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use volk_32fc_x2_add_32fc to volk add constants to the input vector of
the block
- use volk::vector in add_const_ff_impl: Rather than using float* for
variable length vector addition in volk, use volk::vector<float> for
easier resizing.
- Use scoped_lock when modifying private data members in
add_const_ff_impl.cc. Remove getter functions for the d_k_copy vector.
Cast with static_cast rather than typical cast. Use vector.data()
rather than &vector[0].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constexpr is like const but (for variables) guarantees evaluation at
compile time (as opposed to runtime).
Likely this change will do nothing on its own (though it could, since
it gives the compiler more information). But it still has benefits.
It allows programmer to know that initialization is not expensive (it
was done at compile time), and reduces risk of a refactoring
regressing the compiletimeness.
Runtime initialization can be nonobvious in larger codebases. E.g.:
struct S {
static int foo();
};
const int bar = S::foo(); // Called and initialized at *runtime*.
int S::foo() { return 10; }
With constexpr:
struct S {
static constexpr int foo();
};
constexpr int bar = S::foo(); // Error: used before definition.
constexpr int S::foo() { return 10; }
Initializing at runtime is not just startup costs, but also can save
memory since it'll end up in a R/O section of a binary and therefore
doesn't need to be swapped out, but can be shared (in the mmap() sense
of the word).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Using memset with gr_complex is not a problem since the underlying
representation of gr_complex is guaranteed to be two floats in
adjacent memory locations without padding or additional memory.
Fixes #2743
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is C++11: you can convert
std::vector<complextype> vec;
vec.push_back(complextype(foo, bar, baz));
by
std::vector<complextype> vec;
vec.emplace_back(foo, bar, baz);
which saves one unnecessary copy.
This mostly happened in rpc code.
The automated clang-tidy check failed miserably, so most of this was
done by hand.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-format: ordering includes in gnuradio-runtime
clang-format: ordering includes in gr-filter
clang-format: ordering includes in gr-fft
clang-format: ordering includes in gr-audio
clang-format: ordering includes in gr-analog
clang-format: ordering includes in gr-fec
clang-format: ordering includes in gr-wavelet
clang-format: ordering includes in gr-zeromq
clang-format: ordering includes in gr-vocoder
clang-format: ordering includes in gr-video-sdl
clang-format: ordering includes in gr-trellis
clang-format: ordering includes in gr-blocks
clang-format: ordering includes in gr-digital
clang-format: ordering includes in gr-uhd
clang-format: ordering includes in gr-dtv
clang-format: ordering includes in gr-channels
clang-format: ordering includes in gr-qtgui
clang_format.py: re-enable include reordering
|
| |
|
|
|
|
|
|
| |
The multiply_matrix_cc block was converting the values from the set
matrix to double when new_A matrix was expecting complex. Convert the
PMT to complex instead
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Found via `codespell -q 3 -L ans,sinc,hist,ist,ith,uint,fo -S ./volk`
Fix typos in gnuradio-runtime/
Fix typos in gr-digital/
Fix typos in gr-qtgui/
Fix typos in gr-channels/
Fix typos in grc/
Fix typos gr-filter/
Fix typos in gr-uhd/
Fix typos in gr-blocks/
Fix typos in gr-fec/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The use of chr() in the grc file for the mask
creates an invalid input to the random_pdu make
function
1) Change the inputs to unsigned char since this is a mask
2) Remove the chr() from the grc yml
I'm not entirely sure what the purpose of the chr(mask) in
the make function was, but it created invalid input
Instead just pass the bitmask directly
fixes #2557
|
|
|
|
|
|
| |
'Wav File Source' block in gnuradio reads PCM 8bit wav files
incorrectly. It adds random huge DC component. Caused by garbage in high
byte of buf_16bit.
|
|
|
|
|
|
|
|
| |
blks2_selector was deprecated and finally removed
This block implements the same functionality but in a way more similar
to the Copy block
fixes #2460
|
| |
|
|
|
|
|
|
| |
NOTE: There have been multiple fixes proposed, such as
https://github.com/gnuradio/gnuradio/pull/2451 .
This one is the simplest and most compatible.
|
|
|
|
|
| |
The block uses fseek and ftell, which don't apply to named pipes
and character/block devices.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes using target based setting of includes
and link libraries. This will transitively add the includes
and linking flags to dependent targets.
This is still a work in progress since only the dynamic
libraries have been touched and not all of include_directories
directives are gone yet.
cmake: remove GR_INCLUDE_SUBDIRECTORY macro
Previously this macro was used to inject subdirectories in the
current CMake namespace. This is generally undesired and pollutes the
current context.
previously GNU Radio CMake had a non-default option ENABLE_STATIC_LIBS
to build both, shared libraries and static libraries.
This seems to be a construction taken over from autotools and serves
no purpuose in CMake and complicates the library building.
cmake: remove GR_LIBTOOL and la generation support
This looks like it was primarily used to support projects using
autotools, but comments state that the generated .la files aren't
compatible with autotools anyway.
cmake: Bump required CMake version to 3.8
UseSWIG cmake uses syntax which requires at least CMake 3.8 and is non-trivial
to change
|
| |
|
|
|
|
|
| |
add_const_ii_impl was using floating point maximum ranges, probably
a leftover part of the removal of gengen. Now, max ranges are ints.
|
| |
|
|
|
|
|
| |
The d_buf member of tcp_server_sink_impl is currently typed as a shared
pointer to a uint8_t but should be a shared pointer to a uint8_t[].
|