From cc6414ebcfa637cac5a66872c20848c30f2ee987 Mon Sep 17 00:00:00 2001 From: Nicholas Corgan Date: Mon, 28 Jul 2014 09:13:02 -0700 Subject: usrp_burn_mb_eeprom: write all changes to EEPROM at once * Manually applied 1f848914a09795a37156968cc7a5dd11fcb869d3 to master due to merge conflict --- host/utils/usrp_burn_mb_eeprom.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'host/utils') diff --git a/host/utils/usrp_burn_mb_eeprom.cpp b/host/utils/usrp_burn_mb_eeprom.cpp index de74d6807..92df9d7d4 100644 --- a/host/utils/usrp_burn_mb_eeprom.cpp +++ b/host/utils/usrp_burn_mb_eeprom.cpp @@ -93,13 +93,14 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::cout << boost::format(" EEPROM [\"%s\"] is \"%s\"") % keys_vec[i] % mb_eeprom[keys_vec[i]] << std::endl; } std::cout << std::endl; + mb_eeprom = uhd::usrp::mboard_eeprom_t(); for(size_t i = 0; i < vals_vec.size(); i++){ if(vals_vec[i] != ""){ - uhd::usrp::mboard_eeprom_t mb_eeprom; mb_eeprom[keys_vec[i]] = vals_vec[i]; + mb_eeprom[keys_vec[i]] = vals_vec[i]; std::cout << boost::format("Setting EEPROM [\"%s\"] to \"%s\"...") % keys_vec[i] % vals_vec[i] << std::endl; - tree->access("/mboards/0/eeprom").set(mb_eeprom); } } + tree->access("/mboards/0/eeprom").set(mb_eeprom); std::cout << "Power-cycle the USRP device for the changes to take effect." << std::endl; std::cout << std::endl; -- cgit v1.2.3 From fb47c829c2006ff42d5fc5e167060c801c463325 Mon Sep 17 00:00:00 2001 From: Nicholas Corgan Date: Mon, 28 Jul 2014 08:57:18 -0700 Subject: usrp_burn_mb_eeprom: write all changes to the EEPROM at once * Utility was unnecessarily wearing out EEPROMs by calling separate writes for each key --- host/utils/usrp_burn_mb_eeprom.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'host/utils') diff --git a/host/utils/usrp_burn_mb_eeprom.cpp b/host/utils/usrp_burn_mb_eeprom.cpp index ce0879c8e..f3e12c765 100644 --- a/host/utils/usrp_burn_mb_eeprom.cpp +++ b/host/utils/usrp_burn_mb_eeprom.cpp @@ -81,11 +81,12 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ } std::cout << std::endl; if (vm.count("val")){ + mb_eeprom = uhd::usrp::mboard_eeprom_t(); for(size_t i = 0; i < vals_vec.size(); i++){ - uhd::usrp::mboard_eeprom_t mb_eeprom; mb_eeprom[keys_vec[i]] = vals_vec[i]; + mb_eeprom[keys_vec[i]] = vals_vec[i]; std::cout << boost::format("Setting EEPROM [\"%s\"] to \"%s\"...") % keys_vec[i] % vals_vec[i] << std::endl; - tree->access("/mboards/0/eeprom").set(mb_eeprom); } + tree->access("/mboards/0/eeprom").set(mb_eeprom); std::cout << "Power-cycle the USRP device for the changes to take effect." << std::endl; std::cout << std::endl; } -- cgit v1.2.3 From 5fc3a5973f914714a15401f5732ebabbe20cc4d6 Mon Sep 17 00:00:00 2001 From: Nicholas Corgan Date: Thu, 31 Jul 2014 10:10:14 -0700 Subject: Updated documentation * Updated UHD documentation-related URL's after manual overhaul * Updated NI-USRP URL to link to NI-USRP 1.3 --- README.md | 9 ++++----- host/README.md | 9 ++++----- host/docs/uhd_cal_rx_iq_balance.1 | 2 +- host/docs/uhd_cal_tx_dc_offset.1 | 2 +- host/docs/uhd_cal_tx_iq_balance.1 | 2 +- host/docs/uhd_find_devices.1 | 2 +- host/docs/uhd_images_downloader.1 | 2 +- host/docs/uhd_usrp_probe.1 | 2 +- host/docs/usrp2_card_burner.1 | 2 +- host/docs/usrp_n2xx_simple_net_burner.1 | 2 +- host/docs/usrp_x3xx_fpga_burner.1 | 2 +- host/utils/b2xx_fx3_utils.cpp | 4 ++-- host/utils/query_gpsdo_sensors.cpp | 9 +++++---- host/utils/usrp_n2xx_simple_net_burner.cpp | 2 +- host/utils/usrp_x3xx_fpga_burner.cpp | 2 +- 15 files changed, 26 insertions(+), 27 deletions(-) (limited to 'host/utils') diff --git a/README.md b/README.md index 791d0c16b..c4076508a 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,12 @@ information, is the primary source of UHD documentation and "Getting Started"-type guides. For technical documentation related to USRP™ hardware or UHD system -design, check out the [UHD Manual](http://files.ettus.com/uhd_docs/manual/html/). +design, check out the [UHD Manual](http://files.ettus.com/manual/). If you are looking for API documentation, check out the following resources: -* [Doxygen](http://files.ettus.com/uhd_docs/doxygen/html/index.html) -* [Coding to the API](http://files.ettus.com/uhd_docs/manual/html/coding.html) -* [Device Streaming](http://files.ettus.com/uhd_docs/manual/html/stream.html) +* [Coding to the API](http://files.ettus.com/manual/page_coding.html) +* [Device Streaming](http://files.ettus.com/manual/page_stream.html) Additionally, be sure to check out the Ettus Research [FAQ](http://www.ettus.com/kb/detail/frequently-asked-questions), and the @@ -44,7 +43,7 @@ UHD can be used to build stand-alone applications with USRP™ hardware, or with third-party applications. Some common toolkits / frameworks are: * [GNURadio](http://code.ettus.com/redmine/ettus/projects/uhd/wiki/GNU_Radio_UHD) -* [LabVIEW](http://www.ni.com/download/ni-usrp-1.2/3696/en/) +* [LabVIEW](http://www.ni.com/download/ni-usrp-1.3/4711/en/) * [Simulink](http://www.mathworks.com/discovery/sdr/usrp.html) * [OpenBTS](http://wush.net/trac/rangepublic/wiki/BuildInstallRun) * [Iris](http://www.softwareradiosystems.com/redmine/projects/iris/wiki) diff --git a/host/README.md b/host/README.md index e80b10b49..f30fc8807 100644 --- a/host/README.md +++ b/host/README.md @@ -10,14 +10,13 @@ application-level programs. The UHD library runs entirely in user-space. For documentation, please refer to the following resources: -For technical documentation related UHD check out the -[UHD Manual](http://files.ettus.com/uhd_docs/manual/html/). +For technical documentation related to UHD check out the +[UHD Manual](http://files.ettus.com/manual/). If you are looking for API documentation, check out the following resources: -* [Doxygen](http://files.ettus.com/uhd_docs/doxygen/html/index.html) -* [Coding to the API](http://files.ettus.com/uhd_docs/manual/html/coding.html) -* [Device Streaming](http://files.ettus.com/uhd_docs/manual/html/stream.html) +* [Coding to the API](http://files.ettus.com/manual/page_coding.html) +* [Device Streaming](http://files.ettus.com/manual/page_stream.html) Additionally, be sure to check out the Ettus Research [FAQ](http://www.ettus.com/kb/detail/frequently-asked-questions), and the diff --git a/host/docs/uhd_cal_rx_iq_balance.1 b/host/docs/uhd_cal_rx_iq_balance.1 index 8c2c87ece..df77afb2c 100644 --- a/host/docs/uhd_cal_rx_iq_balance.1 +++ b/host/docs/uhd_cal_rx_iq_balance.1 @@ -43,7 +43,7 @@ Samples per data capture .PP .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/uhd_cal_tx_dc_offset.1 b/host/docs/uhd_cal_tx_dc_offset.1 index f0479d7ec..50d3899e8 100644 --- a/host/docs/uhd_cal_tx_dc_offset.1 +++ b/host/docs/uhd_cal_tx_dc_offset.1 @@ -43,7 +43,7 @@ Samples per data capture .PP .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/uhd_cal_tx_iq_balance.1 b/host/docs/uhd_cal_tx_iq_balance.1 index bb8970f4c..859cf9a84 100644 --- a/host/docs/uhd_cal_tx_iq_balance.1 +++ b/host/docs/uhd_cal_tx_iq_balance.1 @@ -43,7 +43,7 @@ Samples per data capture .PP .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/uhd_find_devices.1 b/host/docs/uhd_find_devices.1 index 416f807b9..405111a00 100644 --- a/host/docs/uhd_find_devices.1 +++ b/host/docs/uhd_find_devices.1 @@ -80,7 +80,7 @@ uhd_find_devices \-\-args="serial=12345678" uhd_find_devices .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/uhd_images_downloader.1 b/host/docs/uhd_images_downloader.1 index dd0fe208d..e6cd7d978 100644 --- a/host/docs/uhd_images_downloader.1 +++ b/host/docs/uhd_images_downloader.1 @@ -26,7 +26,7 @@ This program works best without any arguments. Set download buffer size, [default=8192] .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/uhd_usrp_probe.1 b/host/docs/uhd_usrp_probe.1 index ee30b2350..d26408ce6 100644 --- a/host/docs/uhd_usrp_probe.1 +++ b/host/docs/uhd_usrp_probe.1 @@ -89,7 +89,7 @@ uhd_usrp_probe \-\-args="serial=12345678" uhd_usrp_probe .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/usrp2_card_burner.1 b/host/docs/usrp2_card_burner.1 index b6e1954d8..b43484b99 100644 --- a/host/docs/usrp2_card_burner.1 +++ b/host/docs/usrp2_card_burner.1 @@ -27,7 +27,7 @@ usrp2_card_burner --dev=/dev/sdd1 --fw=usrp2_fw.bin --fpga=usrp2_fpga.bin .fi .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/usrp_n2xx_simple_net_burner.1 b/host/docs/usrp_n2xx_simple_net_burner.1 index 8df38b7bd..ca63e5698 100644 --- a/host/docs/usrp_n2xx_simple_net_burner.1 +++ b/host/docs/usrp_n2xx_simple_net_burner.1 @@ -34,7 +34,7 @@ usrp_n2xx_simple_net_burner --addr=192.168.10.3 .fi .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/docs/usrp_x3xx_fpga_burner.1 b/host/docs/usrp_x3xx_fpga_burner.1 index 3a8a27e69..5c1b085b7 100644 --- a/host/docs/usrp_x3xx_fpga_burner.1 +++ b/host/docs/usrp_x3xx_fpga_burner.1 @@ -40,7 +40,7 @@ usrp_x3xx_fpga_burner --addr=192.168.10.2 --fpga=path="custom_image.bit" .fi .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html diff --git a/host/utils/b2xx_fx3_utils.cpp b/host/utils/b2xx_fx3_utils.cpp index 0d0eaa743..0cab6618d 100644 --- a/host/utils/b2xx_fx3_utils.cpp +++ b/host/utils/b2xx_fx3_utils.cpp @@ -176,7 +176,7 @@ uhd::transport::usb_device_handle::sptr open_device(const boost::uint16_t vid, c catch(const std::exception &e) { std::cerr << "Failed to communicate with the device!" << std::endl; #ifdef UHD_PLATFORM_WIN32 - std::cerr << "The necessary drivers are not installed. Read the UHD Transport Application Notes for details:\nhttp://files.ettus.com/uhd_docs/manual/html/transport.html" << std::endl; + std::cerr << "The necessary drivers are not installed. Read the UHD Transport Application Notes for details:\nhttp://files.ettus.com/manual/page_transport.html" << std::endl; #endif /* UHD_PLATFORM_WIN32 */ handle.reset(); } @@ -198,7 +198,7 @@ b200_iface::sptr make_b200_iface(const uhd::transport::usb_device_handle::sptr & catch(const std::exception &e) { std::cerr << "Failed to communicate with the device!" << std::endl; #ifdef UHD_PLATFORM_WIN32 - std::cerr << "The necessary drivers are not installed. Read the UHD Transport Application Notes for details:\nhttp://files.ettus.com/uhd_docs/manual/html/transport.html" << std::endl; + std::cerr << "The necessary drivers are not installed. Read the UHD Transport Application Notes for details:\nhttp://files.ettus.com/manual/page_transport.html" << std::endl; #endif /* UHD_PLATFORM_WIN32 */ b200.reset(); } diff --git a/host/utils/query_gpsdo_sensors.cpp b/host/utils/query_gpsdo_sensors.cpp index 91088112c..9a1556650 100644 --- a/host/utils/query_gpsdo_sensors.cpp +++ b/host/utils/query_gpsdo_sensors.cpp @@ -1,5 +1,5 @@ // -// Copyright 2012 Ettus Research LLC +// Copyright 2012,2014 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -76,8 +76,9 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ if(std::find(sensor_names.begin(), sensor_names.end(), "gps_locked") == sensor_names.end()) { std::cout << boost::format("\ngps_locked sensor not found. This could mean that you have not installed the GPSDO correctly.\n\n"); - std::cout << boost::format("Visit this page if the problem persists:\n"); - std::cout << boost::format("http://files.ettus.com/uhd_docs/manual/html/gpsdo.html\n\n"); + std::cout << boost::format("Visit one of these pages if the problem persists:\n"); + std::cout << boost::format(" * N2X0/E1X0: http://files.ettus.com/manual/page_gpsdo.html"); + std::cout << boost::format(" * X3X0: http://files.ettus.com/manual/page_gpsdo_x3x0.html\n\n"); exit(EXIT_FAILURE); } @@ -94,7 +95,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::sensor_value_t gps_locked = usrp->get_mboard_sensor("ref_locked",0); if(not gps_locked.to_bool()) { std::cout << boost::format("USRP NOT Locked to GPSDO 10 MHz Reference.\n"); - std::cout << boost::format("Double check installation instructions: https://www.ettus.com/content/files/gpsdo-kit_2.pdf\n\n"); + std::cout << boost::format("Double check installation instructions (N2X0/E1X0 only): https://www.ettus.com/content/files/gpsdo-kit_4.pdf\n\n"); } else std::cout << boost::format("USRP Locked to GPSDO 10 MHz Reference.\n"); }else diff --git a/host/utils/usrp_n2xx_simple_net_burner.cpp b/host/utils/usrp_n2xx_simple_net_burner.cpp index 0234ce6fa..2a766a345 100644 --- a/host/utils/usrp_n2xx_simple_net_burner.cpp +++ b/host/utils/usrp_n2xx_simple_net_burner.cpp @@ -136,7 +136,7 @@ void sig_int_handler(int){ } else{ std::cout << std::endl << "Aborting. Your USRP-N Series unit will be bricked." << std::endl - << "Refer to http://files.ettus.com/uhd_docs/manual/html/usrp2.html#device-recovery-and-bricking" << std::endl + << "Refer to http://files.ettus.com/manual/page_usrp2.html#usrp2_loadflash_brick" << std::endl << "for details on restoring your device." << std::endl; exit(EXIT_FAILURE); } diff --git a/host/utils/usrp_x3xx_fpga_burner.cpp b/host/utils/usrp_x3xx_fpga_burner.cpp index 2f0202e84..ea24c4c15 100644 --- a/host/utils/usrp_x3xx_fpga_burner.cpp +++ b/host/utils/usrp_x3xx_fpga_burner.cpp @@ -92,7 +92,7 @@ void sig_int_handler(int){ } else{ std::cout << std::endl << "Aborting. Your USRP X-Series device will be bricked." << std::endl - << "Refer to http://files.ettus.com/uhd_docs/manual/html/usrp_x3x0.html#use-jtag-to-load-fpga-images" << std::endl + << "http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_load_fpga_imgs_jtag" << std::endl << "for details on restoring your device." << std::endl; exit(EXIT_FAILURE); } -- cgit v1.2.3 From 0a0844cf35b90c68949ae4906cb2f7f7579fbaa4 Mon Sep 17 00:00:00 2001 From: Nicholas Corgan Date: Thu, 31 Jul 2014 10:19:51 -0700 Subject: Updated master-specfic documentation * Updated manual URL on OctoClock documentation after manual overhaul * Improved "Coding to the API" page --- host/docs/coding.dox | 12 ++++++++++-- host/docs/octoclock_firmware_burner.1 | 2 +- host/utils/octoclock_firmware_burner.cpp | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'host/utils') diff --git a/host/docs/coding.dox b/host/docs/coding.dox index b50e55e24..32dbe944a 100644 --- a/host/docs/coding.dox +++ b/host/docs/coding.dox @@ -6,15 +6,22 @@ \subsection coding_api_hilevel High-Level: The Multi-USRP -The Multi-USRP class provides a fat interface to a single USRP device +The Multi-USRP class provides a high-level interface to a single USRP device with one or more channels, or multiple USRP devicess in a homogeneous setup. See the documentation for uhd::usrp::multi_usrp. +\subsection coding_api_hilevelclock High-Level: The Multi-USRP-Clock + +The Multi-USRP-Clock class provides a high-level interface to a single clock +device or set of clock devices, from which the time can be queried. See the +documentation for uhd::usrp_clock::multi_usrp_clock. + \subsection coding_api_lowlevel Low-Level: The device API A device is an abstraction for hardware that is connected to the host system. For a USRP device, this means that the motherboard and -everything on it would be considered to be a "device". The device API +everything on it would be considered to be a "device". For a clock device, the +device itself would be considered a "device" in software. The device API provides ways to: - Discover devices that are physically connected to the host system. @@ -23,6 +30,7 @@ provides ways to: - Register a device driver into the discovery and factory sub-system. - Streaming samples with metadata into and out of the device. - Set and get properties on the device object. +- Access various sensors on the device. See the documentation for uhd::device. diff --git a/host/docs/octoclock_firmware_burner.1 b/host/docs/octoclock_firmware_burner.1 index 0494b3b37..44ff47a85 100644 --- a/host/docs/octoclock_firmware_burner.1 +++ b/host/docs/octoclock_firmware_burner.1 @@ -23,7 +23,7 @@ octoclock_firmware_burner --addr=192.168.10.3 --fw-path=~/custom_octoclock_image .fi .SH SEE ALSO UHD documentation: -.B http://files.ettus.com/uhd_docs/manual/html/index.html +.B http://files.ettus.com/manual/ .LP Other UHD programs: .sp diff --git a/host/utils/octoclock_firmware_burner.cpp b/host/utils/octoclock_firmware_burner.cpp index b8b8a3c1d..bc91f22f9 100644 --- a/host/utils/octoclock_firmware_burner.cpp +++ b/host/utils/octoclock_firmware_burner.cpp @@ -64,7 +64,7 @@ void sig_int_handler(int){ } else{ std::cout << std::endl << "Aborting. Your OctoClock device will be bricked." << std::endl - << "Refer to http://files.ettus.com/uhd_docs/doxymanual/html/octoclock.html" << std::endl + << "Refer to http://files.ettus.com/manual/page_octoclock.html#bootloader" << std::endl << "for details on restoring your device." << std::endl; exit(EXIT_FAILURE); } -- cgit v1.2.3