usrp的recv
时间: 2023-10-23 18:14:16 浏览: 137
USRP N320 N321 母版原理图
在 USRP(Universal Software Radio Peripheral)中,`recv()` 函数是用来从 USRP 接收数据的函数,具体原型如下:
```C++
bool uhd::usrp::multi_usrp::recv(
std::vector<std::complex<float> *> &buffs,
size_t num_samps,
uhd::rx_metadata_t &md,
double timeout=0.1,
bool stream_now=true
);
```
其中,`buffs` 是指向接收缓冲区的指针,`num_samps` 是需要接收的样本数,`md` 是接收元数据,`timeout` 是接收超时时间,`stream_now` 是一个布尔值,表示是否立即开始流。
该函数将从 USRP 中接收指定数量的样本,存储到指定的接收缓冲区中,同时返回接收到的元数据。如果在超时时间内没有收到足够的数据,则函数将返回 false。另外,该函数还会自动启动和停止流,因此不需要另外调用 `start()` 和 `stop()` 函数。
需要注意的是,`recv()` 函数是阻塞的,即程序会一直等待直到接收到足够的数据或者超时。如果需要非阻塞接收数据,可以考虑使用 `recv_async()` 函数。
阅读全文