aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
Commit message (Collapse)AuthorAgeFilesLines
* lib: Simplify implementation of uhd::get_system_time() to use <chrono>Martin Braun2019-11-262-108/+8
| | | | | | | uhd::get_system_time() is currently only used in USRP1 code, and it turns out that our "optimized", platform-dependent implementation still is a little slower than straight-up chrono. We therefore remove all the special cases, and replace them with a single, standard solution.
* lib: Replace uhd::get_system_time() with steady_clockMartin Braun2019-11-262-9/+14
| | | | | | Benchmarks show that using C++ chrono features beats uhd::get_system_time(), and the latter is simply not appropriate unless a uhd::time_spec_t is required.
* niusrpio: Apply formattingMartin Braun2019-11-261-59/+69
|
* gain groups: FormattingBrent Stapleton2019-11-261-64/+77
| | | | Applying formatting in anticipation of upcoming changes.
* gain_groups: Add zero-value gain groupsBrent Stapleton2019-11-261-0/+11
| | | | | | | | | | | | | | | 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-261-1/+72
| | | | | | | | 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-262-11/+117
|
* 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-262-0/+40
| | | | | This is the inverse to std::to_string(), and we can overload it with UHD-internal types.
* utils: soft_register: Remove 16-bit modeMartin Braun2019-11-261-14/+0
| | | | | This mode is never used, and makes it more cumbersome to maintain this code.
* utils: Added set_thread_name for std::threadAshish Chaudhari2019-11-261-0/+12
|
* uhd: Add new exceptions for RFNoC-specific errorsMartin Braun2019-11-261-7/+33
| | | | | | | | | | | | | | | | | | | 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-267-110/+0
| | | | | | | | | 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-2630-4661/+2
| | | | Note: N230 is still supported on the 3.15 LTS branch
* 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.
* 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)
* e31x: Remove spurious debug logsMartin Braun2019-11-211-7/+5
| | | | | This demotes INFO logs to TRACE that relate to the switch settings during tuning.
* 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', ...}
* 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.
* cmake: Add UHD_COMPONENT variablemichael-west2019-10-152-1/+5
| | | | | | | | 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>
* rpc: improve exception handling for reachability checksMark Meserve2019-10-151-2/+3
| | | | | - Handle exception created during RPC client creation - Corrected a catch block for UHD exceptions
* rpc: add exception when client constructor failsMark Meserve2019-10-151-3/+36
|
* rpc: convert client to sptrMark Meserve2019-10-151-12/+13
|
* rpclib: add patch file for constructor hangMark Meserve2019-10-151-0/+36
|
* rpclib: fix hang on connection error during constructionMark Meserve2019-10-151-1/+4
|
* rh: Add missing includes in rhodium_cpld_ctrl.hppMartin Braun2019-10-111-2/+4
|
* fixup! x300: Introduce conn_managerMartin Braun2019-10-111-1/+1
|
* n320: updated rhodium dboard mcr initializationnitest2019-10-101-1/+2
| | | | | db0 is used as the master for driving the radio path and must be the dboard used to set the master clock rate.
* log: Honour log levels on session initMartin Braun2019-10-101-0/+3
| | | | | | | | | | The first log message of UHD is always something like this: [INFO] [UHD] linux; GNU C++ version [...] However, it was being printed regardless of the requested log level. This will disable all initial log messages if the requested log level is greater than INFO.
* logging: On POSIX, don't use logging colors on non-ttyMarcus Müller2019-10-091-1/+6
|
* lib: utils: Add is_a_tty()Martin Braun2019-10-071-0/+55
| | | | | | | This is a portable version of POSIX's isatty(). Windows has its own version, called _isatty(). UHD thus gains its own, portable version. The underscores aren't beautiful, but they're necessary so we can distinguish the POSIX version from the UHD version.
* x3xx: update maximum bitfile sizeMark Meserve2019-10-041-1/+1
|
* python: fix set_command_time default mboarderickshepherdNI2019-10-041-1/+1
| | | | | Fixup for the Python API's default mboard value in multi_usrp::set_command_time.
* Revert "uhd: Check property type at access; error if mismatch"Martin Braun2019-09-301-24/+1
| | | | | | | This reverts commit 94592641f0647563bc4d2163805d5284a6796273. The commit itself was OK, but it changed the requirements such that UHD could only be compiled with C++11.
* Device3: Restore default buffer sizes for MPMD UDPMichael West2019-09-131-0/+2
| | | | | | | | | The latest change to fix MTU and default frame sizes inadvertantly removed the default send and recv buffer sizes in the MPMD UDP transport, which caused receive timeouts and underruns at higher sample rates. This change restores those values. Signed-off-by: Michael West <michael.west@ettus.com>
* x300: cdecode: Fix fallthrough warningMartin Braun2019-09-101-0/+9
|
* rfnoc: Read cmd FIFO size from blocks & configure ctrl_ifaceMartin Braun2019-09-043-4/+29
| | | | | | | | | | This requires noc_shell compat number 6.0. It will allow sending as many command packets, but no more, than there is space. Updated FPGA images for devices: - X310/X300 - N300/N310/N320 - E310/E320
* uhd: Check property type at access; error if mismatchAaron Rossetto2019-09-041-1/+24
|
* rx_fe_3000: formatting for upcoming changesBrent Stapleton2019-08-252-89/+107
|
* dboard_eeprom: Remove trace logs for EEPROM readoutMartin Braun2019-08-251-8/+0
|
* fixup! uhd: Changed mboard_eeprom_t interface, refactored MB EEPROM codeSugandha Gupta2019-08-251-0/+1
|
* mg: Allow for timeout on retuneMartin Braun2019-08-223-1/+19
| | | | set_freq() calls now have a 15 seconds timeout.
* x300: fix x300 GPIO ATR property tree access typeeklai2019-08-221-6/+49
| | | | | | | | | | | | | | In x300_radio_ctrl_impl.cpp, the GPIO attributes GPIO_SRC, GPIO_CTRL, and GPIO_DDR are initialized as with vector<string> values in the property tree. However, they are accessed in set_gpio_attr() and get_gpio_attr() as vector<uint32_t>, which will crash. This commit changes these access methods to be consistent with the attribute value types. This is not an issue for those who use the multi-usrp interface, since that interface's set_gpio_attr() and get_gpio_attr() methods are implemented with the correct typing for GPIO_SRC, GPIO_CTRL, and GPIO_DDR.
* boost: Replaced units::demangle with core::demangle where appropriateMartin Braun2019-08-221-3/+3
| | | | Boost moved this around in version 1.58.
* multi_usrp: Fix typo in get_user_settings_iface()Brent Stapleton2019-08-191-1/+1
|
* x300: Introduce conn_managerMartin Braun2019-08-165-31/+64
| | | | | | | This is a superclass to eth_manager and pcie_manager, since they usually do the same thing. This saves storing and passing multiple pointers. Also, x300_impl now stores a shared_ptr of the conn_manager, because we'll need to pass it around in the future.
* uhd: Add UHD_FALLTHROUGH attributeMartin Braun2019-08-161-0/+1
| | | | | | | | | | | | | | | | | This provides a platform-independent attribute to allow fallthroughs in switch statements. Example: switch (foo) { case BAR: do_something(); UHD_FALLTHROUGH case BAZ: do_another_thing(); } The usage of UHD_FALLTHROUGH will avoid a compiler warning if indeed the fallthrough was intentional. The associated warning (-Wimplicit-fallthrough) is only available on gcc and Clang.