UHD v3.14 Set sample rate walkaround for N310 and X310

master
Xavier Arteaga 6 years ago
parent 7780b1aba5
commit e2daeca0b5

@ -37,6 +37,10 @@
#define HAVE_ASYNC_THREAD 1
#if UHD_VERSION < 3130000
#define UHD_SUPPORTS_COMMAND_TIME
#endif /* UHD_VERSION < 3140000 */
typedef struct {
char *devname;
uhd_usrp_handle usrp;
@ -648,15 +652,23 @@ double rf_uhd_set_rx_srate(void *h, double freq)
{
rf_uhd_handler_t *handler = (rf_uhd_handler_t*) h;
if (handler->nof_rx_channels > 1) {
#ifdef UHD_SUPPORTS_COMMAND_TIME
time_t full;
double frac;
uhd_usrp_get_time_now(handler->usrp, 0, &full, &frac);
frac += 0.100;
if (frac >= 1.0) { full++; frac -= 1.0; };
uhd_usrp_set_command_time(handler->usrp, full, frac, 0);
#else /* UHD_SUPPORTS_COMMAND_TIME */
rf_uhd_stop_rx_stream(handler);
#endif /* UHD_SUPPORTS_COMMAND_TIME */
for (int i=0;i<handler->nof_rx_channels;i++)
uhd_usrp_set_rx_rate(handler->usrp, freq, i);
#ifdef UHD_SUPPORTS_COMMAND_TIME
usleep(100000);
#else /* UHD_SUPPORTS_COMMAND_TIME */
rf_uhd_start_rx_stream(handler, true);
#endif /* UHD_SUPPORTS_COMMAND_TIME */
} else {
uhd_usrp_set_rx_rate(handler->usrp, freq, 0);
}

Loading…
Cancel
Save