aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* gain groups: FormattingBrent Stapleton2019-11-262-65/+78
| | | | Applying formatting in anticipation of upcoming changes.
* gain_groups: Add zero-value gain groupsBrent Stapleton2019-11-262-0/+18
| | | | | | | | | | | | | | | Add convenience factory for making a gain group that has a single zero-valued element. This factory requires a name, which should probably be ALL_GAINS, or something similar (these constants are device-specific). Using this new make_zero factory in the X300 radio control when we don't find any gain elements so that our gain groups aren't empty. This simplifies our later setters/getters because we know that we'll always have _something_ cached. Note that we only register this zero value gain group for TX, as our ADC is registered as a gain element, so our RX gain groups are never empty.
* convert: Add chdr converters for sc16 -> fc32 and vice versaMartin Braun2019-11-265-0/+235
| | | | | These differ from the item32 converters in that they don't IQ swap, and also don't have a BE/LE version.
* convert: sse2: Apply clang-formatMartin Braun2019-11-269-679/+742
|
* convert: Add CHDR convertersMartin Braun2019-11-262-32/+174
| | | | | | | | The difference between the _chdr converters and the _item32_ converters is that the former do not require item32 boundaries, they do not require endianness swapping, and they don't use IQ swapping either. This is possible because the FPGA will do byte-swapping.
* uhd: Add thread affinity utility functionsAaron Rossetto2019-11-263-11/+123
|
* uhd: utils: Add compat check for 32-bit compat numbersMartin Braun2019-11-262-0/+31
|
* lib: utils: Add new signature to get_freq_and_freq_word()Martin Braun2019-11-262-1/+15
| | | | | The new signature uses tuple as the return value, instead of passing in output variables as references (C-style).
* utils: cast: Add from_str() typecastMartin Braun2019-11-264-1/+68
| | | | | This is the inverse to std::to_string(), and we can overload it with UHD-internal types.
* soft_register: Replace boost::unordered_map with std versionMartin Braun2019-11-261-2/+2
| | | | This is the only occurrence of boost::unordered_map in UHD.
* utils: soft_register: Remove 16-bit modeMartin Braun2019-11-262-28/+3
| | | | | This mode is never used, and makes it more cumbersome to maintain this code.
* utils: dirty_tracked: Remove custom copy constructorMartin Braun2019-11-261-7/+1
| | | | | | | The custom copy ctor for dirty_tracked was using the = operator, which wouldn't necessarily copy the dirty flag. By removing it (and thus using the default copy ctor), the copied dirty_tracked object now has the same value *and* dirty flag as the original.
* utils: Added set_thread_name for std::threadAshish Chaudhari2019-11-262-0/+20
|
* nirio_fifo: Replace boost::atomic with std::atomicMartin Braun2019-11-261-2/+3
| | | | This is the only occurrence of boost::atomic in UHD.
* uhd: types: Extend stream_cmd_t::num_samps to 64 bitsMartin Braun2019-11-261-1/+1
| | | | Newer devices may be able to provide more then 32 bits worth of samples.
* uhd: Add new exceptions for RFNoC-specific errorsMartin Braun2019-11-262-7/+115
| | | | | | | | | | | | | | | | | | | Add the following exception types: - rfnoc_error - op_failed - op_seqerr - op_timeout - op_timeerr - access_error - It is meant to be used when access violations have taken place, i.e., when a resource is being accessed without appropriate permissions. - resolve_error - This is a derivative of rfnoc_error, and will be used when a property resolution fails unexpectedly. - routing_error - For use when the framework has path setup issues or general routing-related errors
* uhd: Remove deprecated objects and methodsMartin Braun2019-11-2618-272/+1
| | | | | | | | | This removes the following symbols: - otw_type_t - clock_config_t - Any functions that use those symbols - Non-standard args from examples (e.g., --total-time is deprecated in favour of --duration)
* uhd: Remove support for N230Martin Braun2019-11-2632-4663/+4
| | | | Note: N230 is still supported on the 3.15 LTS branch
* Update CODING guidelinesMartin Braun2019-11-261-4/+3
| | | | - Remove reference to Python 2
* cmake: Bump dependency versions for UHD 4.0.0.0Martin Braun2019-11-267-148/+18
| | | | | | | | | | | | - Boost >= 1.58 - CMake >= 3.5.1 - gcc >= 5.4.0 - Clang >= 3.8, AppleClang >= 600 - Python >= 3.5 (Py2k no longer supported) - Numpy >= 1.11 - C++14 for lib, include may now use C++11 constructs. - Because there is no more code requiring C++03 syntax, we remove the include-specific clang-format file
* x3x0: DPDK initialization fixmattprost2019-11-251-1/+1
| | | | | Pass original args into the x300_get_udp_factory() function. This exposes the fact that this is a DPDK connection.
* tools: update FPGA functional verification tests for X3x0 mcr's & dpdkmattprost2019-11-251-82/+132
| | | | | | | -Added test cases for the 184.32MHz clock rate. -Removed some extra test cases for 200MHz clock rate in order to cut down on test time. -Added DPDK test cases (copied from 10gige and 2x_10gige test cases).
* Examples: wrap up ref setting with option checknatetemple2019-11-247-10/+24
|
* Examples: Set refs in RFNoC examplesnatetemple2019-11-242-4/+24
|
* mpm: i2cdev: Use O_LARGEFILE to open i2c devicesMartin Braun2019-11-221-1/+2
|
* mpm: i2cdev: Fix formatting and compiler warningsMartin Braun2019-11-221-11/+12
| | | | | | | | - Remove superfluous includes - Fix return value of _open() (was int, now void) => Fewer compiler warnings - Apply clang-format - Add {} to all ifs
* rfx: Fix calculation of prescaler and band selectMartin Braun2019-11-221-15/+22
| | | | | | | | | | | | | | The code was broken when converting from BOOST_FOREACH to a range-based for loop. Without this fix, the board initialization would crash with an error like this: [ERROR] [DBMGR] The daughterboard manager encountered a recoverable error in init. Loading the "unknown" daughterboard implementations to continue. The daughterboard cannot operate until this error is resolved. LookupError: KeyError: key "0" not found in dict(i, N14adf4360_regs_t17prescaler_value_tE)
* Examples: tx_bursts add subdev, ref, lo-offset, bw optionsnatetemple2019-11-221-8/+41
|
* docs: clarifying which devices support DPDKsteviez2019-11-221-3/+6
|
* docs: fixed links where original URL was not accessible anymoreJoerg Hofrichter2019-11-222-2/+2
| | | | Signed-off-by: Joerg Hofrichter <joerg.hofrichter@ni.com>
* mpm: gpsd_iface: Sanitize return values for get_gps_info()Martin Braun2019-11-211-8/+21
| | | | | get_gps_info() can time out, or fail for other reasons. This adds some checks to see if the return value is as expected.
* utils: query_gpsdo_sensors: Fix ref_lock wait loopMartin Braun2019-11-211-1/+4
| | | | | | The old loop didn't have any output, and had an inaccurate timeout. We now use a timer for a 30 second timeout, and print a . every time we poll the sensor.
* e31x: Remove spurious debug logsMartin Braun2019-11-211-7/+5
| | | | | This demotes INFO logs to TRACE that relate to the switch settings during tuning.
* examples: test_pps_input: Also test for ref_locked on E31xMartin Braun2019-11-211-9/+26
| | | | | | | | | The E31x will always have a valid PPS, because it is generated internally. The external PPS however is used to drive the ppsloop, which means the ref_locked sensor can be a substitute for the PPS, but only on in this case. This commit also removes some superfluous includes from this example.
* python: MultiUSRP: Fix send_waveforms()iprivit2019-11-131-1/+1
| | | | | | | | | | | | | The send_waveform() function takes the waveform_proto array and if it has only 1 channel, explicitly reshapes it to be (1, waveform_proto.size), or uses np.tile to replicate the waveform_proto array over X channels. It then proceeds to loop over the waveform_proto array, but attempts to do so over the channel dimension instead of looping over the actual samples. This results in sending the entire waveform_proto array regardless of the duration specified. The fix is to specify the dimension in which it crops, and not crop in dimension of the channels.
* devtese: Change default Python interpreter to 3Martin Braun2019-11-0812-12/+12
| | | | | | | | | | | Usually, devtest is run via make (or ninja), and will use the correct Python interpreter. When running directly on the command line, it is important to pick the right Python interpreter so it will work with the Python API. Here, we change the default interpreter from Python 2 to 3, because that's the more common version, and will be the only option for upcoming UHD 4.0 anyway.
* docs: added N320/N321 to FPGAmattprost2019-11-071-11/+14
| | | | | Added appropriate references to N321 in the R&D testing doc for the FPGA Functional Verification section.
* docs: Add info on FPGA flavours for E320 and N3xxMartin Braun2019-11-072-1/+50
| | | | This explains what the various FPGA flavours (XG, HG, 1G) are.
* python: Make multi_usrp::get_*_usrp_info() return a Python dictMartin Braun2019-11-041-2/+12
| | | | | | | | | | | By using the conversion ability to std::map<>, we can make the Python versions of get_?x_usrp_info() return a dict in Python. Sample Python session: >>> import uhd >>> U = uhd.usrp.MultiUsrp(args) >>> U.get_usrp_rx_info() {'mboard_id': 'B200', 'rx_subdev_name': 'FE-RX2', ...}
* uhd: dict: Add typecast operator to std::map<>Martin Braun2019-11-043-0/+19
| | | | | | | This will now allow calls like this: uhd::dict<k, v> d = /* ... */; auto m = static_cast<std::map<k, v>>(d);
* python: Included complex.h to allow pybind to convert that data typeerickshepherdNI2019-11-011-0/+1
|
* mpm: rpc_server: Reenable timeouts after components have been updatedMartin Braun2019-10-281-0/+3
| | | | | | | | | | | | When updating a component like the FPGA, the timeouts for reclaiming get disabled, because the update can potentially take a long time, during which the RPC server might not be available. There was a bug that didn't re-enable the timeouts. The most common case where this causes issues was when the Ethernet connection was severed during FPGA reloading, which could lead to UHD losing connection with MPM altogether (for example because SFPs would come up with a different IP address). In that case, MPM would remain unreachable until the next reboot.
* e3xx: corrected frontend name in devtesterickshepherdNI2019-10-281-1/+1
|
* examples: remove thread priority elevationCiro Nishiguchi2019-10-2226-62/+0
| | | | | | | Remove UHD call to elevate thread priority to realtime. Setting all threads to the same realtime priority can cause the threads to not share access to the network interface fairly, which adversely affects operation of the worker threads in UHD.
* libusb: fix global session race conditionMark Meserve2019-10-161-0/+5
| | | | | - It was possible for two threads to generate a global session, which would cause one of them to become invalid.
* Update branch for upcoming 3.15 releaseMartin Braun2019-10-152-2/+4
| | | | | - Update submodule pointer - Update CHANGELOG to incorporate latest changes
* Docs: Adjust FPGA functional verification testsmichael-west2019-10-152-52/+51
| | | | | | | - Reduce long tests from 3600 seconds to 600 seconds. - Remove 2xRX@153.6e6 test for N310 10 GbE (not practical). Signed-off-by: michael-west <michael.west@ettus.com>
* Docs: Fix MPM cmake command for E320michael-west2019-10-151-1/+1
| | | | | | | Add -DMPM_DEVICE=e320 to the command so the E320 version is built and not the N3xx version. Signed-off-by: michael-west <michael.west@ettus.com>
* MPM: Fix version string for loggermichael-west2019-10-151-1/+8
| | | | | | | | Added configuration of version.cpp file so @UHD_VERSION@ would be properly replaced by the version string and @UHD_COMPONENT@ would be properly replaced by the component string. Signed-off-by: michael-west <michael.west@ettus.com>
* cmake: Add UHD_COMPONENT variablemichael-west2019-10-155-1/+11
| | | | | | | | Added cmake variable to set the component (currently UHD or MPM). so the banner printed by the log_resource would reference the correct component. Added accessor function and appropriate calls in log.cpp. Signed-off-by: michael-west <michael.west@ettus.com>