USRP设备创建过程

简介:

要使用USRP,程序中必须包含multi_usrp.hpp头文件,该头文件中的multi_usrp类通过给定的地址返回底层的一个usrp设备对象:

static sptr make(const device_addr_t &dev_addr);

但看程序可以看到,multi_usrp是一个抽象类,很多函数并没有具体的实现除make()函数以外的所有函数都是纯虚函数。由此,USRP设备对象一定是通过make()函数实现的,来看mulyi_usrp::make()函数的实现:

multi_usrp::sptr multi_usrp::make(const device_addr_t &dev_addr){
    UHD_LOG << "multi_usrp::make with args " << dev_addr.to_pp_string() << std::endl;
    return sptr(new multi_usrp_impl(dev_addr));
}
可知实际是调用multi_usrp_impl类的构造函数进行实例化。multi_usrp_impl类的构造函数:

multi_usrp_impl::multi_usrp_impl(const device_addr_t &addr){
        _dev = device::make(addr);
        _tree = _dev->get_tree();
    }

然后就可以调用所创建的usrp对象的get_device()和get_tree()方法,对设备对象的属性树进行操作了。

但是,到这里仍然很难将multi_usrp与usrp2的实现—usrp2_impl类联系起来。看usrp2_impl的继承关系可知其继承自uhd::device。而在multi_usrp_impl的构造函数中,_dev=device::make(addr),这里就通过device::make()返回了一个指向device对象的指针。


目录
相关文章
|
4月前
|
缓存 安全 Linux
访问与总线无关的设备 【ChatGPT】
访问与总线无关的设备 【ChatGPT】
|
6月前
|
监控 物联网
PLC总线分类及在LabVIEW开发中的注意事项
PLC总线分类及在LabVIEW开发中的注意事项
45 0
|
8月前
|
安全 数据安全/隐私保护 智能硬件
智能家电设备连接与验证的流程
智能家电设备连接与验证的流程
244 1
|
8月前
|
Linux
Linux设备驱动之多个同类设备共用一套驱动
Linux设备驱动之多个同类设备共用一套驱动
209 0
计算机维修的工具与设备
计算机维修的工具与设备。
101 1
MicroPython 玩转硬件系列4:串口小实验
MicroPython 玩转硬件系列4:串口小实验
|
Android开发 开发者
Android平台GB28181设备接入模块之球机/云台控制探究
好多开发者在做GB28181设备接入的时候,问云台控制是否可以处理(亦或拉取外部RTSP摄像头,通过命令中转的方式,控制摄像头),实际上云台控制命令相对来说还是比较好处理的。协议规范有明确说明,云台控制命令不需要发送应答命令,实现相对简单,和我们之前做的远程启动命令(TeleBoot)类似。
173 0
|
物联网 开发者
蓝牙模块控制功能数据AT指令|学习笔记
快速学习蓝牙模块控制功能数据AT指令
蓝牙模块控制功能数据AT指令|学习笔记
|
网络协议 C语言 Perl
西门子S7-200 SMART硬件设备如何组态?通信如何组态,通信参数如何设置?
本篇我们来讲一下西门子S7-200 SMART硬件设备如何组态以及通信参数如何设置。
西门子S7-200 SMART硬件设备如何组态?通信如何组态,通信参数如何设置?
|
Web App开发 数据采集 Shell
树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)
树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)
树莓派/PC实现实时摄像头数据共享—最优方法(搭建网络摄像头)