mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
mpm: ad937x: Add LO lock API
Reviewed-By: Steven Bingler <steven.bingler@ni.com> Reviewed-By: Trung Tran <trung.tran@ettus.com>
This commit is contained in:
parent
6701025706
commit
688247e545
@ -238,6 +238,15 @@ public:
|
||||
*/
|
||||
virtual double get_freq(const std::string &which) = 0;
|
||||
|
||||
/*! \brief Returns the LO lock status
|
||||
*
|
||||
* Note there's only one LO per direction, so the channel doesn't really
|
||||
* matter here.
|
||||
* This does not check the PLL lock status for the main clock, the sniffer,
|
||||
* or the CAL PLL.
|
||||
*/
|
||||
virtual bool get_lo_locked(const std::string &which) = 0;
|
||||
|
||||
//! set the FIR filter for the frontend which
|
||||
virtual void set_fir(const std::string &which, int8_t gain, const std::vector<int16_t> & fir) = 0;
|
||||
|
||||
@ -300,6 +309,7 @@ void export_mykonos(){
|
||||
.def("enable_channel", &ad937x_ctrl::enable_channel)
|
||||
.def("set_freq", &ad937x_ctrl::set_freq)
|
||||
.def("get_freq", &ad937x_ctrl::get_freq)
|
||||
.def("get_lo_locked", &ad937x_ctrl::get_lo_locked)
|
||||
.def("set_fir", &ad937x_ctrl::set_fir)
|
||||
.def("get_fir", &ad937x_ctrl::get_fir)
|
||||
.def("get_temperature", &ad937x_ctrl::get_temperature)
|
||||
|
||||
@ -417,6 +417,17 @@ public:
|
||||
return device.get_freq(dir);
|
||||
}
|
||||
|
||||
virtual bool get_lo_locked(const std::string &which)
|
||||
{
|
||||
const auto dir = _get_direction_from_antenna(which);
|
||||
const uint8_t pll_select = (dir == uhd::RX_DIRECTION) ?
|
||||
ad937x_device::RX_SYNTH :
|
||||
ad937x_device::TX_SYNTH;
|
||||
|
||||
std::lock_guard<std::mutex> lock(*spi_mutex);
|
||||
return device.get_pll_lock_status(pll_select);
|
||||
}
|
||||
|
||||
virtual void set_fir(const std::string &which, int8_t gain, const std::vector<int16_t> & fir)
|
||||
{
|
||||
auto dir = _get_direction_from_antenna(which);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user