| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The documentation for the streamers was misleading as it said that there
can only be one TX streamer and one RX streamer while you can have many
of them as long as they don't try to share their channels. This commit
makes this clearer.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix for the issue where the example rx_samples_to_file fails in the case
when samples from multiple channels are to be taken and a full path is
given for the data files to be stored.
The example source code used to put a channel number in front of the
filename which caused the code to not be able to find the path.
Now the channel number is added at the end of the filename and before the
extension if it exists in the file argument given by the user.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current implementation only support dot representation of
the graph topology. This adds the ability to also query
the current graph layout. The method prints out connected
blocks (including streamers) and their port to port
connections. The graph has to be commited before calling to_dot.
Update host/lib/rfnoc/graph.cpp
Co-authored-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
If we do a find_library on UHD we have to verify that this call
was successful and fail fatal if it wasn't. Otherwise subsequent
steps in the cmake will fail with incomprehensible error messages.
|
| |
|
|
|
|
|
|
| |
- Generate Pybind11 bindings for the C++ code
- Generate a Python module (rfnoc_example) that can be imported and used
- Add an example to show how the gain block affects dBFS readings
|
|
|
|
|
| |
This moves said file into include/, making it available for OOT block
authors.
|
|
|
|
|
|
| |
When calling rx_to_file.py with the --dram option, it will internally
use DramReceiver and buffer the signal into the DRAM before transferring
it to the host.
|
|
|
|
|
| |
This class is a utility to more easily using an available replay block
as a receiver
|
|
|
|
|
|
|
|
|
| |
While 'Python Module (Utils only)' is a subset only of the Python API
'uhd' module for conveniently installing some Python utils only, to the
user it may look like they are missing something if the output of cmake
states that 'Python Module (Utils only)' is not in the enabled
components list by default. This commit changes the default from OFF to
ON.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When catching an exception in UHD_SAFE_CALL(), a log message is emitted.
This patch changes the log level from ERROR to WARNING. The rationale is
that when we are using UHD_SAFE_CALL, we must have already made the
decision that an exception is not fatal.
Note that UHD_SAFE_CALL() is most commonly used in destructors, where
throwing exceptions will cause crashes when the stack is already being
unrolled due to a previous exception, and therefore usage of
UHD_SAFE_CALL() is mandatory. However, even in those cases, logging
a WARNING rather than an ERROR is the better default. If an exception is
throw during a destructor that must truly be handled differently, more
sophisticated measures must be taken than using UHD_SAFE_CALL().
|
|
|
|
|
|
|
| |
This modifies repeat_fpga_build.py such that it can take a YAML file as
input, not just a make target. It will then use the image builder to
prepare the build and generate a valid make command, which in turn is
used to build FPGA images repeatedly.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is, in principle, possible to use an external clock to synchronize
N3x0 devices in frequency, and then use a GPSDO for a coarse time
synchronization. This use case is deliberately not supported, as the
GPSDO PPS signal and the external clock signal are by definition not
matched, which will remove any guarantees on time/phase alignment.
Because there are certain, niche use cases where the lack of phase
alignment is acceptable, but only an external clock is available (no
shared external PPS), usage of GPS for generating a PPS signal may be
fine. This patch does not enable the usage of this combination out of
the box, but adds comments and an update to the manual to explain the
risks of this combination, and how to enable it (by patching MPM).
|
|
|
|
|
|
| |
Some setters in multi_usrp can take ALL_CHANS as channel parameter,
however there were differences between multi_usrp_rfnoc and multi_usrp.
This commit fixes this for set_trx_gain().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This options allows to install Python utils, including a subset of the
Python API 'uhd' module, without having to compile UHD. The main reason
to do this is to allow installing the RFNoC image builder without the
rest of UHD. To achieve this, run cmake as such:
cmake /path/to/uhd -DENABLE_LIBUHD=OFF -DENABLE_PYMOD_UTILS=ON
You might also want to disable building the manual in this case.
The refactoring required to enable this also fixes an issues when
installing UHD from source into a venv. This updates the CMake to use
pip3 to install the module, fixing some warnings and install issues.
|
|
|
|
|
|
| |
- Add section on Pybind11
- Fix a missing hard-coded version number for Python
- Note that Mako is used for runtime, too (image builder)
|
|
|
|
|
|
|
| |
- Use find_package(pybind11) to find a system-wide Pybind11. This will
take preference over the vendored version of Pybind11, unless
requested otherwise.
- Fix a typo.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since 23.03 rte_thread_setname was deprecated and in 23.11 it
is gone. Adapt to the new name `rte_thread_set_name`
See [1] for more.
[1]: https://doc.dpdk.org/guides/rel_notes/release_23_11.html
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
|
| |
|
|
|
|
| |
This change removes several hardcoded values from the code and separates x410 from x4xx as dut type
|
| |
|
|
|
|
|
|
|
| |
New API calls in UHD Python API:
- get_version_string()
- get_abi_string()
- get_component()
|
|
|
|
|
|
| |
In the Python MultiUSRP class, has_time_spec and stream_now were not
being properly set, basically making send_waveform() unable to use
timed streams.
|
|
|
|
|
|
|
|
| |
This adds
-a remark about dual-rate and phase coherence
-a note about the TX transmitting the converter rate as soon as
ADCs/DACs are turned on
to the user manual.
|
|
|
|
|
|
| |
This fixes the documentation format for noc_block_base.hpp where some
sentences were cut off in the HTML output at the line break of the
source file.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed bug that used hardcoded channel variable to configure
device (rate, freq, gain), but channel list from argument during
streaming configuration.
Fixed bug when specifying multiple channels with duration argument
that resulted into python syntax error.
Changed multi channel behavior to use unique streamer per channel,
which now requires specifying dest-port per channel. This approach
ensures receiver implementation can associate data with a usrp
channel.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- tx_waveforms fixes:
- Fixed power bug. Changed loop style to 'for each' in order to avoid this
issue in the future
- tx_samples_from_file:
- Fixed bug where channels 1 and higher could not be configured correctly.
- Added the 'power' argument.
- Added support for multiple channels.
- Re-added 'channel' argument for backwards compatibility.
- Added additional error checking.
- Changed help descriptions to match other example apps.
|
|
|
|
|
|
|
|
|
|
| |
The path-search algorithms of UHD were incorrectly assuming the presence
of either a XDG_CONFIG_HOME or HOME, as well as XDG_CONFIG_DATA
environment variables.
This fixes the issue: If no such variables exist (e.g., because UHD is
being run as part of a system process, where no user is defined) then it
simply ignores them.
|
|
|
|
|
|
|
|
|
|
| |
When using multi_usrp with dual rate, the behavior of
get_master_clock_rate() is not well defined as we cannot pass a radio or
channel index. Before this change we used to return the MCR of radio1
which probably is least intuitive. Since the list of channels was stored
in an unordered map, the behavior could change in other setups. This
change fixes this behavior and multi_usrp will now always return the
master_clock_rate and master_clock_rate_range of radio0.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This adds the documentation for the dual-rate feature.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Added test to verify existence of the module_serial field and value to
multi_usrp_test.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
| |
Added 'module_serial' field to retured value of
multi_usrp::get_usrp_rx_info() and multi_usrp::get_usrp_tx_info() API
calls that provides the module serial number.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
| |
Only the make_x4xx target existed and did not actually run any tests.
Added correct mapping for make_x410 and make_x440 devtest targets.
Removed make_x4xx target.
Signed-off-by: michael-west <michael.west@ettus.com>
|