Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions adi/ad9081.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,18 +155,26 @@ def __init__(self, uri=""):

def _get_iio_attr_str_single(self, channel_name, attr, output):
# This is overridden by subclasses
if isinstance(channel_name, list):
channel_name = channel_name[0]
return self._get_iio_attr_str(channel_name, attr, output)

def _set_iio_attr_str_single(self, channel_name, attr, output, value):
# This is overridden by subclasses
if isinstance(channel_name, list):
channel_name = channel_name[0]
return self._set_iio_attr(channel_name, attr, output, value)

def _get_iio_attr_single(self, channel_name, attr, output, _ctrl=None):
# This is overridden by subclasses
if isinstance(channel_name, list):
channel_name = channel_name[0]
return self._get_iio_attr(channel_name, attr, output, _ctrl)

def _set_iio_attr_single(self, channel_name, attr, output, value, _ctrl=None):
# This is overridden by subclasses
if isinstance(channel_name, list):
channel_name = channel_name[0]
return self._set_iio_attr(channel_name, attr, output, value, _ctrl)

def _get_iio_dev_attr_single(self, attr):
Expand Down Expand Up @@ -260,13 +268,13 @@ def rx_main_nco_phases(self, value):
def rx_test_mode(self):
"""rx_test_mode: NCO Test Mode"""
return self._get_iio_attr_str_single(
self._rx_coarse_ddc_channel_names[0], "test_mode", False
self._rx_coarse_ddc_channel_names, "test_mode", False
)

@rx_test_mode.setter
def rx_test_mode(self, value):
self._set_iio_attr_single(
self._rx_coarse_ddc_channel_names[0], "test_mode", False, value,
self._rx_coarse_ddc_channel_names, "test_mode", False, value,
)

@property
Expand Down Expand Up @@ -643,31 +651,28 @@ def tx_ddr_offload(self, value):
def rx_sample_rate(self):
"""rx_sampling_frequency: Sample rate after decimation"""
return self._get_iio_attr_single(
self._rx_coarse_ddc_channel_names[0], "sampling_frequency", False
self._rx_coarse_ddc_channel_names, "sampling_frequency", False
)

@property
def adc_frequency(self):
"""adc_frequency: ADC frequency in Hz"""
return self._get_iio_attr_single(
self._rx_coarse_ddc_channel_names[0], "adc_frequency", False
self._rx_coarse_ddc_channel_names, "adc_frequency", False
)

@property
def tx_sample_rate(self):
"""tx_sampling_frequency: Sample rate before interpolation"""
return self._get_iio_attr_single(
self._tx_coarse_duc_channel_names[0],
"sampling_frequency",
True,
self._txdac,
self._tx_coarse_duc_channel_names, "sampling_frequency", True,
)

@property
def dac_frequency(self):
"""dac_frequency: DAC frequency in Hz"""
return self._get_iio_attr_single(
self._tx_coarse_duc_channel_names[0], "dac_frequency", True
self._tx_coarse_duc_channel_names, "dac_frequency", True
)

@property
Expand Down
37 changes: 29 additions & 8 deletions adi/ad9081_mc.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,10 @@ class ad9081_mc(ad9081):
_rx_channel_names: List[str] = []
_tx_channel_names: List[str] = []
_tx_control_channel_names: List[str] = []
_rx_coarse_ddc_channel_names: List[str] = []
_tx_coarse_duc_channel_names: List[str] = []
_rx_fine_ddc_channel_names: List[str] = []
_tx_fine_duc_channel_names: List[str] = []
_rx_coarse_ddc_channel_names: Dict[str, str] = {}
_tx_coarse_duc_channel_names: Dict[str, str] = {}
_rx_fine_ddc_channel_names: Dict[str, str] = {}
_tx_fine_duc_channel_names: [str, str] = {}
_dds_channel_names: List[str] = []
_device_name = ""

Expand All @@ -104,10 +104,10 @@ def __init__(self, uri="", phy_dev_name=""):
self._rx_channel_names: List[str] = []
self._tx_channel_names: List[str] = []
self._tx_control_channel_names: List[str] = []
self._rx_coarse_ddc_channel_names: List[str] = []
self._tx_coarse_duc_channel_names: List[str] = []
self._rx_fine_ddc_channel_names: List[str] = []
self._tx_fine_duc_channel_names: List[str] = []
self._rx_coarse_ddc_channel_names: Dict[str, str] = {}
self._tx_coarse_duc_channel_names: Dict[str, str] = {}
self._rx_fine_ddc_channel_names: Dict[str, str] = {}
self._tx_fine_duc_channel_names: Dict[str, str] = {}
self._dds_channel_names: List[str] = []

context_manager.__init__(self, uri, self._device_name)
Expand Down Expand Up @@ -276,15 +276,33 @@ def _set_iio_attr_str_vec(self, channel_names_dict, attr, output, values):
# Singleton function intercepts
def _get_iio_attr_str_single(self, channel_name, attr, output):
channel_names_dict = self._rx_coarse_ddc_channel_names
if isinstance(channel_name, dict):
_dev = next(iter(self._tx_coarse_duc_channel_names))
channel_name = channel_names_dict[_dev][0]
return {
dev: attribute._get_iio_attr_str(
self, channel_name, attr, output, self._ctx.find_device(dev)
)
for dev in channel_names_dict
}

def _set_iio_attr_str_single(self, channel_name, attr, output, value):
channel_names_dict = self._rx_coarse_ddc_channel_names
if isinstance(channel_name, dict):
_dev = next(iter(self._tx_coarse_duc_channel_names))
channel_name = channel_names_dict[_dev][0]
return {
dev: attribute._set_iio_attr_str(
self, channel_name, attr, output, value, self._ctx.find_device(dev)
)
for dev in channel_names_dict
}

def _get_iio_attr_single(self, channel_name, attr, output):
channel_names_dict = self._rx_coarse_ddc_channel_names
if isinstance(channel_name, dict):
_dev = next(iter(self._tx_coarse_duc_channel_names))
channel_name = channel_names_dict[_dev][0]
return {
dev: attribute._get_iio_attr(
self, channel_name, attr, output, self._ctx.find_device(dev)
Expand All @@ -294,6 +312,9 @@ def _get_iio_attr_single(self, channel_name, attr, output):

def _set_iio_attr_single(self, channel_name, attr, output, values):
channel_names_dict = self._rx_coarse_ddc_channel_names
if isinstance(channel_name, dict):
_dev = next(iter(self._tx_coarse_duc_channel_names))
channel_name = channel_names_dict[_dev][0]
values = self._map_inputs_to_dict_single(channel_names_dict, values)
for dev in channel_names_dict:
self._set_iio_attr(
Expand Down
Loading