1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-09-30 07:50:51 +00:00

fixed disable_ad9361_rx_local

This commit is contained in:
Marc Majoral 2022-05-19 15:33:56 +02:00
parent ab310a367a
commit 923398fa5e

View File

@ -447,7 +447,7 @@ bool config_ad9361_rx_local(uint64_t bandwidth_,
{ {
return false; return false;
} }
if (setup_filter(filter_source_, bandwidth_, sample_rate_, freq1_, rf_port_select_, ad9361_phy_B, rx_chan1, chn, 1, filter_filename_, Fpass_, Fstop_) == -1) if (setup_filter(filter_source_, bandwidth_, sample_rate_, freq1_, rf_port_select_, ad9361_phy_B, rx_chan1, chn, 0, filter_filename_, Fpass_, Fstop_) == -1)
{ {
return false; return false;
} }
@ -1177,22 +1177,56 @@ bool disable_ad9361_rx_local()
return false; return false;
} }
if (!get_ad9361_stream_dev(ctx, RX, &rx)) // check if the second AD9361 is present
struct iio_device *ad9361_phy_B;
bool enable_ad9361_b;
ad9361_phy_B = iio_context_find_device(ctx, RX_DEV_B.c_str());
if (ad9361_phy_B)
{ {
std::cout << "No rx streams found when disabling RX channels\n"; enable_ad9361_b = true; // the RF board has two AD9361 devices
return false; }
else
{
enable_ad9361_b = false; // the RF board has one AD9361 device
} }
std::string rx_stream_dev_a = (enable_ad9361_b ? RX_STREAM_DEV_A : RX_STREAM_DEV);
rx = iio_context_find_device(ctx, rx_stream_dev_a.c_str());
if (!rx)
{
std::cout << "No " << rx_stream_dev_a << " stream dev found when disabling RX channels\n";
throw std::runtime_error("AD9361 IIO No " + rx_stream_dev_a + " stream dev found");
}
// get AD9361-A stream device channel 0 as rx channel 0
if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx_chan0)) if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx_chan0))
{ {
std::cout << "RX channel 1 not found when disabling RX channels\n"; std::cout << rx_stream_dev_a << " channel 0 not found when disabling RX channels\n";
return false; throw std::runtime_error(rx_stream_dev_a + "RX channel 0 not found");
} }
if (!get_ad9361_stream_ch(ctx, RX, rx, 1, &rx_chan1)) if (enable_ad9361_b)
{ {
std::cout << "RX channel 2 not found when disabling RX channels\n"; rx = iio_context_find_device(ctx, RX_STREAM_DEV_B.c_str());
return false; if (!rx)
{
std::cout << "No " << RX_STREAM_DEV_B << " stream dev found when disabling RX channels\n";
throw std::runtime_error("AD9361 IIO No " + RX_STREAM_DEV_B + " stream dev found");
}
if (!get_ad9361_stream_ch(ctx, RX, rx, 0, &rx_chan1))
{
std::cout << RX_STREAM_DEV_B << " channel 0 not found when disabling RX channels\n";
throw std::runtime_error(RX_STREAM_DEV_B + "RX channel 0 not found");
}
}
else
{
if (!get_ad9361_stream_ch(ctx, RX, rx, 1, &rx_chan1))
{
std::cout << rx_stream_dev_a << " channel 1 not found\n";
throw std::runtime_error(rx_stream_dev_a + "RX channel 1 not found");
}
} }
iio_channel_disable(rx_chan0); iio_channel_disable(rx_chan0);
@ -1201,7 +1235,6 @@ bool disable_ad9361_rx_local()
return true; return true;
} }
bool disable_ad9361_rx_remote(const std::string &remote_host) bool disable_ad9361_rx_remote(const std::string &remote_host)
{ {
struct iio_context *ctx; struct iio_context *ctx;