可以使用企业版或者社区版,按照C++开发的需要安装,在此不做详细介绍。
请选择与你使用的Visual Studio相对应的、UHD二进制安装包内的Boost库相同的版本。本案例使用的二进制安装包下载地址:
https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-32.exe/download(32位)
https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-64.exe/download (64位)
本文选择以32位为例,因此Boost也选择32位的。
按照默认安装,安装路径是C:\local\boost_1_61_0
下载地址 https://www.ettus.com.cn/Download/software/UHD.html
选择对应vs2015的VS2015后缀的版本,如本文选择了32位的对应vs2015的版本。
据称UHD的安装文件有bug,所以在选择是否添加环境变量这一步中,选择“Do not add UHD to the system PATH”。
这里安装路径这里选择默认(你也可以选择其他路径):
其余的步骤默认。
安装好之后的目录是这样的:
在系统环境变量的PATH变量中增加UHD的bin目录,也就是我们安装UHD的目录下的bin目录,比如我们在上面的步骤中把UHD安装到了C:\Program Files (x86)\UHD中,然后选择里面的bin目录,增加到系统的PATH变量内,使得命令行下能方便地识别UHD的命令。
下面是设置环境变量的具体方法:
点击桌面左下角Windows按钮,在“计算机”按钮上点击右键,选择“属性”
在打开的窗口左边点“高级系统设置”
在弹出的“系统属性”窗口点击下方的“环境变量”按钮
在弹出的“环境变量”窗口中,选中下方“系统变量”列表中的“Path”变量,然后点击下方的“编辑”按钮,在”变量值”最后面加入新安装的UHD的bin目录的路径,C:\Program Files (x86)\UHD\bin,注意,在加入这个路径前,需要在原来的路径后面加上英文半角分号“;”,以保证变量值有效。
然后一路点击确定。鉴于有些程序不一定能立刻识别到系统环境变量的变化,建议注销用户重新登录。
连接好USRP设备,打开cmd,执行uhd_find_devices.exe
找到了我们连接到PC的设备,证明UHD安装成功了。
USRP设备接上电源(如果需要),然后用USB线连接USRP和PC,第一次连接很可能会报告未能安装设备驱动
打开PC的设备管理器,会发现有个未知设备,在“其他设备”“WestBridge”这里,
需要下载驱动: https://www.ettus.com.cn/Download/software/usb_driver_download.html
解压到一个新建的目录,并复制此目录的地址到剪贴板。如我的地址是D:\ xx\erllc_uhd_winusb_driver
在设备管理器的未知设备“WestBridge”上点击右键,“更新驱动程序软件”“浏览计算机以查找驱动程序软件”,“在以下位置搜索驱动程序软件”输入框中黏贴刚才复制的驱动程序路径,然后点击“下一步”,将会提示是否安装驱动程序,
点击“安装”。
安装成功后,设备管理器中多了一个USRP的设备信息。
执行uhd_find_devices,可以看到已经能找到设备了。
有时我们需要用到更大的采样率,比如USRP x310下200Ms/s采样率的时候,会发现USRP和系统之间的链接会出问题,主要是USRP报告丢包,溢出等。此时需要保证驱动最新,建议到设备厂商官方网站去找最新驱动,因为之前碰到过用“驱动xx”等第三方驱动管理工具却搜不到最新驱动的问题。建议更新的还包括BIOS、操作系统等IO相关的设备。
通过UHD自带的C:\Program Files (x86)\UHD\lib\uhd\examples\benchmark_rate.exe来验证链路性能是否达到指标。
打开VS2015,创建新工程:
修改为Release配置
右键选中新建的项目,点击properties打开项目属性页面。
在项目属性页,把项目配置修改为Release。(由于我们通过二进制包安装的UHD是release版本的,所以最好用Release的项目配置)
增加额外的头文件目录:
在项目属性页的C/C++ General Additional Include Directories 中,选择右边的小三角,然后选择<Edit…>
在弹出来的Additional Include Directories窗口中,点击右上角的新建按钮,依次选择UHD安装目录下的include目录,和Boost的安装目录。如下图
点击OK确认修改。
增加额外的库文件及目录:
同样是在项目属性页,选择LinkerGeneralAdditional Library Directories,点击右边的小三角,选择<Edit…>
在弹出的Addititonal Library Directories窗口中,添加UHD的库目录和Boost的库目录,按照我们之前安装UHD和Boost的选项,路径是这样的
其实就是uhd.lib所在目录和boost_unit_test_framework-vc140-mt-gd-1_61.lib等boost库文件的所在目录。
然后,还需要在项目属性页面的LinkerInputAdditional Dependencies中,添加uhd.lib的文件名称
添加源文件及代码:
右键点击项目窗口的Source File筛选器,选择AddNew Item
选择Visual C++C++ File(.cpp),然后在窗口下方输入文件名,这里起的文件名是main.cpp
然后在新文件中填入代码,这个代码是最简单的获取已连接的设备信息。
// General Includes #include <cmath> #include <complex> #include <csignal> #include <fstream> #include <iostream> // UHD Includes #include <uhd/exception.hpp> #include <uhd/types/tune_request.hpp> #include <uhd/usrp/multi_usrp.hpp> #include <uhd/utils/safe_main.hpp> #include <uhd/utils/static.hpp> #include <uhd/utils/thread_priority.hpp> // Boost Incudes #include <boost/algorithm/string.hpp> #include <boost/foreach.hpp> #include <boost/format.hpp> #include <boost/lexical_cast.hpp> #include <boost/math/special_functions/round.hpp> #include <boost/program_options.hpp> #include <boost/thread/thread.hpp> int main(void) { // Look for connected USRPs uhd::device_addr_t hint; uhd::device_addrs_t device_addrs = uhd::device::find(hint); // Exit if none were found if (device_addrs.size() == 0) std::cerr << "No UHD Devices Found" << std::endl; // Display the USRPs Found else for (size_t i = 0; i < device_addrs.size(); i++) { std::cout << "--------------------------------------------------" << std::endl; std::cout << "-- UHD Device " << i << std::endl; std::cout << "--------------------------------------------------" << std::endl; std::cout << device_addrs[i].to_pp_string() << std::endl << std::endl; } // Pause for the user system("pause"); // Exit the program return 0; }
添加完代码后保存,按快捷键F7编译项目。
红框内容表示编译链接成功(详情部分在不同环境下可能会有不同的输出)。
连接好设备,按快捷键F5以调试模式运行程序。
成功获取到设备信息
粤ICP备20009059号-1 © Copyright 2019. All rights reserved. ettus.com.cn