Copy disabled (too large)
Download .txt
Showing preview only (36,248K chars total). Download the full file to get everything.
Repository: analogdevicesinc/pyadi-iio
Branch: main
Commit: 562abf043d2f
Files: 831
Total size: 34.4 MB
Directory structure:
gitextract_brguha3x/
├── .codacy.yml
├── .codespell-whitelist
├── .github/
│ ├── license_header.txt
│ ├── pull_request_template.md
│ ├── scripts/
│ │ ├── detect_new_classes.py
│ │ ├── format_coverage_report.py
│ │ ├── install_iioemu.sh
│ │ ├── install_libiio.sh
│ │ ├── install_part_libs.sh
│ │ └── install_pydeps.sh
│ └── workflows/
│ ├── cleanup.yml
│ ├── doc.yml
│ ├── iio-context-coverage.yml
│ ├── test-pypi.yml
│ ├── test.yml
│ └── win-test.yml
├── .gitignore
├── .isort.cfg
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── JenkinsfileHW
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.md
├── adi/
│ ├── QuadMxFE_multi.py
│ ├── __init__.py
│ ├── ad2s1210.py
│ ├── ad353xr.py
│ ├── ad3552r.py
│ ├── ad3552r_hs.py
│ ├── ad4020.py
│ ├── ad405x.py
│ ├── ad4080.py
│ ├── ad4110.py
│ ├── ad4130.py
│ ├── ad4170.py
│ ├── ad4630.py
│ ├── ad469x.py
│ ├── ad4858.py
│ ├── ad514x.py
│ ├── ad5592r.py
│ ├── ad5627.py
│ ├── ad5686.py
│ ├── ad5706r.py
│ ├── ad5710r.py
│ ├── ad5754r.py
│ ├── ad579x.py
│ ├── ad5940.py
│ ├── ad6676.py
│ ├── ad7091rx.py
│ ├── ad7124.py
│ ├── ad7134.py
│ ├── ad717x.py
│ ├── ad719x.py
│ ├── ad7291.py
│ ├── ad738x.py
│ ├── ad7405.py
│ ├── ad7490.py
│ ├── ad7606.py
│ ├── ad7689.py
│ ├── ad7746.py
│ ├── ad7768.py
│ ├── ad777x.py
│ ├── ad7799.py
│ ├── ad9081.py
│ ├── ad9081_mc.py
│ ├── ad9083.py
│ ├── ad9084.py
│ ├── ad9084_mc.py
│ ├── ad9094.py
│ ├── ad9136.py
│ ├── ad9144.py
│ ├── ad9152.py
│ ├── ad9162.py
│ ├── ad9166.py
│ ├── ad9172.py
│ ├── ad9213.py
│ ├── ad9250.py
│ ├── ad9265.py
│ ├── ad936x.py
│ ├── ad937x.py
│ ├── ad9434.py
│ ├── ad9467.py
│ ├── ad9625.py
│ ├── ad9680.py
│ ├── ad9739a.py
│ ├── ada4355.py
│ ├── ada4356_lidar.py
│ ├── ada4961.py
│ ├── adaq8092.py
│ ├── adar1000.py
│ ├── adf4030.py
│ ├── adf4159.py
│ ├── adf4355.py
│ ├── adf4371.py
│ ├── adf4377.py
│ ├── adf4382.py
│ ├── adf5610.py
│ ├── adf5611.py
│ ├── adg2128.py
│ ├── adis16460.py
│ ├── adis16475.py
│ ├── adis16480.py
│ ├── adis16507.py
│ ├── adis16550.py
│ ├── adl5240.py
│ ├── adl5960.py
│ ├── adl8113.py
│ ├── admv8818.py
│ ├── adpd1080.py
│ ├── adpd188.py
│ ├── adpd410x.py
│ ├── adrf5720.py
│ ├── adrv9002.py
│ ├── adrv9009.py
│ ├── adrv9009_zu11eg.py
│ ├── adrv9009_zu11eg_fmcomms8.py
│ ├── adrv9009_zu11eg_multi.py
│ ├── adt7420.py
│ ├── adxl313.py
│ ├── adxl345.py
│ ├── adxl355.py
│ ├── adxl380.py
│ ├── adxrs290.py
│ ├── attribute.py
│ ├── axi_aion_trig.py
│ ├── cn0511.py
│ ├── cn0532.py
│ ├── cn0540.py
│ ├── cn0554.py
│ ├── cn0556.py
│ ├── cn0565.py
│ ├── cn0566.py
│ ├── cn0575.py
│ ├── cn0579.py
│ ├── compat.py
│ ├── context_manager.py
│ ├── daq2.py
│ ├── daq3.py
│ ├── dds.py
│ ├── device_base.py
│ ├── dsp.py
│ ├── fmc_vna.py
│ ├── fmcadc3.py
│ ├── fmcjesdadc1.py
│ ├── fmclidar1.py
│ ├── fmcomms11.py
│ ├── fmcomms5.py
│ ├── gen_mux.py
│ ├── hmc7044.py
│ ├── jesd.py
│ ├── jesd_internal.py
│ ├── lm75.py
│ ├── ltc2314_14.py
│ ├── ltc2378.py
│ ├── ltc2387.py
│ ├── ltc2499.py
│ ├── ltc2664.py
│ ├── ltc2672.py
│ ├── ltc2688.py
│ ├── ltc2983.py
│ ├── max11205.py
│ ├── max14001.py
│ ├── max31855.py
│ ├── max31865.py
│ ├── max9611.py
│ ├── mcp_server.py
│ ├── obs.py
│ ├── one_bit_adc_dac.py
│ ├── rx_tx.py
│ ├── sshfs.py
│ ├── sync_start.py
│ ├── tdd.py
│ └── tddn.py
├── doc/
│ ├── Makefile
│ ├── check_for_missing.py
│ ├── make.bat
│ ├── source/
│ │ ├── _static/
│ │ │ └── css/
│ │ │ └── style.css
│ │ ├── attr/
│ │ │ ├── index.rst
│ │ │ └── pluto_help.cli
│ │ ├── buffers/
│ │ │ └── index.rst
│ │ ├── conf.py
│ │ ├── dev/
│ │ │ ├── device_base.rst
│ │ │ ├── index.rst
│ │ │ ├── test_attr.rst
│ │ │ ├── test_dma.rst
│ │ │ ├── test_generics.rst
│ │ │ └── test_jesd.rst
│ │ ├── devices/
│ │ │ ├── adi.QuadMxFE_multi.rst
│ │ │ ├── adi.ad2s1210.rst
│ │ │ ├── adi.ad353xr.rst
│ │ │ ├── adi.ad3552r.rst
│ │ │ ├── adi.ad3552r_hs.rst
│ │ │ ├── adi.ad4020.rst
│ │ │ ├── adi.ad405x.rst
│ │ │ ├── adi.ad4080.rst
│ │ │ ├── adi.ad4110.rst
│ │ │ ├── adi.ad4130.rst
│ │ │ ├── adi.ad4170.rst
│ │ │ ├── adi.ad4630.rst
│ │ │ ├── adi.ad469x.rst
│ │ │ ├── adi.ad4858.rst
│ │ │ ├── adi.ad514x.rst
│ │ │ ├── adi.ad5592r.rst
│ │ │ ├── adi.ad5627.rst
│ │ │ ├── adi.ad5686.rst
│ │ │ ├── adi.ad5706r.rst
│ │ │ ├── adi.ad5710r.rst
│ │ │ ├── adi.ad5754r.rst
│ │ │ ├── adi.ad579x.rst
│ │ │ ├── adi.ad5940.rst
│ │ │ ├── adi.ad6676.rst
│ │ │ ├── adi.ad7091rx.rst
│ │ │ ├── adi.ad7124.rst
│ │ │ ├── adi.ad7134.rst
│ │ │ ├── adi.ad717x.rst
│ │ │ ├── adi.ad719x.rst
│ │ │ ├── adi.ad7291.rst
│ │ │ ├── adi.ad738x.rst
│ │ │ ├── adi.ad7405.rst
│ │ │ ├── adi.ad7490.rst
│ │ │ ├── adi.ad7606.rst
│ │ │ ├── adi.ad7689.rst
│ │ │ ├── adi.ad7746.rst
│ │ │ ├── adi.ad7768.rst
│ │ │ ├── adi.ad777x.rst
│ │ │ ├── adi.ad7799.rst
│ │ │ ├── adi.ad9081.rst
│ │ │ ├── adi.ad9081_mc.rst
│ │ │ ├── adi.ad9083.rst
│ │ │ ├── adi.ad9084.rst
│ │ │ ├── adi.ad9084_mc.rst
│ │ │ ├── adi.ad9094.rst
│ │ │ ├── adi.ad9136.rst
│ │ │ ├── adi.ad9144.rst
│ │ │ ├── adi.ad9152.rst
│ │ │ ├── adi.ad9162.rst
│ │ │ ├── adi.ad9166.rst
│ │ │ ├── adi.ad9172.rst
│ │ │ ├── adi.ad9213.rst
│ │ │ ├── adi.ad9250.rst
│ │ │ ├── adi.ad9265.rst
│ │ │ ├── adi.ad936x.rst
│ │ │ ├── adi.ad937x.rst
│ │ │ ├── adi.ad9434.rst
│ │ │ ├── adi.ad9467.rst
│ │ │ ├── adi.ad9625.rst
│ │ │ ├── adi.ad9680.rst
│ │ │ ├── adi.ad9739a.rst
│ │ │ ├── adi.ada4355.rst
│ │ │ ├── adi.ada4356_lidar.rst
│ │ │ ├── adi.ada4961.rst
│ │ │ ├── adi.adaq8092.rst
│ │ │ ├── adi.adar1000.rst
│ │ │ ├── adi.adf4030.rst
│ │ │ ├── adi.adf4159.rst
│ │ │ ├── adi.adf4355.rst
│ │ │ ├── adi.adf4371.rst
│ │ │ ├── adi.adf4377.rst
│ │ │ ├── adi.adf4382.rst
│ │ │ ├── adi.adf5610.rst
│ │ │ ├── adi.adf5611.rst
│ │ │ ├── adi.adg2128.rst
│ │ │ ├── adi.adis16375.rst
│ │ │ ├── adi.adis16460.rst
│ │ │ ├── adi.adis16475.rst
│ │ │ ├── adi.adis16480.rst
│ │ │ ├── adi.adis16485.rst
│ │ │ ├── adi.adis16488.rst
│ │ │ ├── adi.adis16490.rst
│ │ │ ├── adi.adis16495.rst
│ │ │ ├── adi.adis16497.rst
│ │ │ ├── adi.adis16507.rst
│ │ │ ├── adi.adis16545.rst
│ │ │ ├── adi.adis16547.rst
│ │ │ ├── adi.adis16550.rst
│ │ │ ├── adi.adl5240.rst
│ │ │ ├── adi.adl5960.rst
│ │ │ ├── adi.adl8113.rst
│ │ │ ├── adi.admv8818.rst
│ │ │ ├── adi.adpd1080.rst
│ │ │ ├── adi.adpd188.rst
│ │ │ ├── adi.adpd410x.rst
│ │ │ ├── adi.adrf5720.rst
│ │ │ ├── adi.adrv9002.rst
│ │ │ ├── adi.adrv9009.rst
│ │ │ ├── adi.adrv9009_zu11eg.rst
│ │ │ ├── adi.adrv9009_zu11eg_fmcomms8.rst
│ │ │ ├── adi.adrv9009_zu11eg_multi.rst
│ │ │ ├── adi.adt7420.rst
│ │ │ ├── adi.adxl313.rst
│ │ │ ├── adi.adxl345.rst
│ │ │ ├── adi.adxl355.rst
│ │ │ ├── adi.adxl380.rst
│ │ │ ├── adi.adxrs290.rst
│ │ │ ├── adi.axi_aion_trig.rst
│ │ │ ├── adi.cn0511.rst
│ │ │ ├── adi.cn0532.rst
│ │ │ ├── adi.cn0540.rst
│ │ │ ├── adi.cn0554.rst
│ │ │ ├── adi.cn0556.rst
│ │ │ ├── adi.cn0565.rst
│ │ │ ├── adi.cn0566.rst
│ │ │ ├── adi.cn0575.rst
│ │ │ ├── adi.cn0579.rst
│ │ │ ├── adi.daq2.rst
│ │ │ ├── adi.daq3.rst
│ │ │ ├── adi.fmc_vna.rst
│ │ │ ├── adi.fmcadc3.rst
│ │ │ ├── adi.fmcjesdadc1.rst
│ │ │ ├── adi.fmclidar1.rst
│ │ │ ├── adi.fmcomms11.rst
│ │ │ ├── adi.fmcomms5.rst
│ │ │ ├── adi.gen_mux.rst
│ │ │ ├── adi.hmc7044.rst
│ │ │ ├── adi.jesd.rst
│ │ │ ├── adi.lm75.rst
│ │ │ ├── adi.ltc2314_14.rst
│ │ │ ├── adi.ltc2378.rst
│ │ │ ├── adi.ltc2387.rst
│ │ │ ├── adi.ltc2499.rst
│ │ │ ├── adi.ltc2664.rst
│ │ │ ├── adi.ltc2672.rst
│ │ │ ├── adi.ltc2688.rst
│ │ │ ├── adi.ltc2983.rst
│ │ │ ├── adi.max11205.rst
│ │ │ ├── adi.max14001.rst
│ │ │ ├── adi.max31855.rst
│ │ │ ├── adi.max31865.rst
│ │ │ ├── adi.max9611.rst
│ │ │ ├── adi.one_bit_adc_dac.rst
│ │ │ ├── adi.tdd.rst
│ │ │ ├── adi.tddn.rst
│ │ │ └── index.rst
│ │ ├── ext/
│ │ │ └── ext_pyadi_iio.py
│ │ ├── fpga/
│ │ │ ├── dma_sync.mmd
│ │ │ └── index.rst
│ │ ├── guides/
│ │ │ ├── connectivity.rst
│ │ │ ├── examples.rst
│ │ │ └── quick.rst
│ │ ├── index.rst
│ │ ├── libiio.md
│ │ ├── mcp/
│ │ │ └── index.rst
│ │ └── support.rst
│ ├── update_devs.py
│ └── update_devs.sh
├── examples/
│ ├── QuadMxFE_dual_example.py
│ ├── QuadMxFE_example.py
│ ├── QuadMxFE_ffh_example.py
│ ├── Triton_example.py
│ ├── ad353xr_example.py
│ ├── ad3552r_example.py
│ ├── ad3552r_hs_example.py
│ ├── ad4020_example.py
│ ├── ad4052_example.py
│ ├── ad4080_example.py
│ ├── ad4110_example.py
│ ├── ad4130_example.py
│ ├── ad4170_example.py
│ ├── ad4630/
│ │ ├── ad4630_example_all_mode.py
│ │ ├── ad4630_example_simple_plot.py
│ │ └── sin_params.py
│ ├── ad469x_example.py
│ ├── ad4858_example.py
│ ├── ad514x_example.py
│ ├── ad5592r_example.py
│ ├── ad5706r_example.py
│ ├── ad5710r_example.py
│ ├── ad5754r_example.py
│ ├── ad579x_example.py
│ ├── ad5940.py
│ ├── ad6676.py
│ ├── ad7091rx_example.py
│ ├── ad7124.py
│ ├── ad7134_example.py
│ ├── ad717x_example.py
│ ├── ad719x_example.py
│ ├── ad7291_example_.py
│ ├── ad738x_example.py
│ ├── ad7405_example.py
│ ├── ad7490_example.py
│ ├── ad7606.py
│ ├── ad7689.py
│ ├── ad7746-ebz.py
│ ├── ad7746.py
│ ├── ad7768_4_example.py
│ ├── ad7768_example.py
│ ├── ad777x_example.py
│ ├── ad9081_dma_example.py
│ ├── ad9081_example.py
│ ├── ad9081_ffh_example.py
│ ├── ad9081_register_dump.py
│ ├── ad9081_sync_start_example.py
│ ├── ad9081_tdd_example.py
│ ├── ad9083_vna.py
│ ├── ad9084_ad9082_sync_start_example.py
│ ├── ad9084_example.py
│ ├── ad9084_sync_start_example.py
│ ├── ad9172.py
│ ├── ad9265.py
│ ├── ad9361_advanced_ensm.py
│ ├── ad9361_example.py
│ ├── ad9371.py
│ ├── ad9371_dec8.py
│ ├── ad9375.py
│ ├── ad9434.py
│ ├── ad9467.py
│ ├── ad9739a.py
│ ├── ada4355_example.py
│ ├── ada4356_lidar_example.py
│ ├── adalm-lsmspg/
│ │ ├── ad5592r_curve_tracer.py
│ │ ├── ad5592r_gpio_example.py
│ │ ├── ad5593r_curve_tracer.py
│ │ └── adalm-lsmspg_prod_tst.py
│ ├── adalm-mmsc/
│ │ └── adalm-mmsc-prod-tst-prog.py
│ ├── adaq4224_example.py
│ ├── adaq8092_example.py
│ ├── adar1000_array_example.py
│ ├── adar1000_single_example.py
│ ├── adf4159_example.py
│ ├── adf4377_example.py
│ ├── adf4382_example.py
│ ├── adf5611_example.py
│ ├── adg2128.py
│ ├── adiplot.py
│ ├── adis16460.py
│ ├── adis16475.py
│ ├── adis16480_example.py
│ ├── adis16507_example.py
│ ├── adis16550_example.py
│ ├── adl8113_example.py
│ ├── adpd1080.py
│ ├── adpd188.py
│ ├── adrv9002_example.py
│ ├── adrv9002_profile_example.py
│ ├── adrv9002_profiles/
│ │ ├── custom_profile.json
│ │ ├── custom_profile.stream
│ │ ├── lte_10_lvds_nco_api_68_0_6.json
│ │ ├── lte_10_lvds_nco_api_68_0_6.stream
│ │ ├── lte_10_lvds_nco_api_68_10_1.json
│ │ ├── lte_10_lvds_nco_api_68_10_1.stream
│ │ ├── lte_10_lvds_nco_api_68_13_7.json
│ │ ├── lte_10_lvds_nco_api_68_13_7.stream
│ │ ├── lte_10_lvds_nco_api_68_8_1.json
│ │ ├── lte_10_lvds_nco_api_68_8_1.stream
│ │ ├── lte_20_lvds_api_68_0_6.json
│ │ ├── lte_20_lvds_api_68_0_6.stream
│ │ ├── lte_20_lvds_api_68_10_1.json
│ │ ├── lte_20_lvds_api_68_10_1.stream
│ │ ├── lte_20_lvds_api_68_13_7.json
│ │ ├── lte_20_lvds_api_68_13_7.stream
│ │ ├── lte_20_lvds_api_68_8_1.json
│ │ ├── lte_20_lvds_api_68_8_1.stream
│ │ ├── lte_40_lvds_api_68_0_6.json
│ │ ├── lte_40_lvds_api_68_0_6.stream
│ │ ├── lte_40_lvds_api_68_10_1.json
│ │ ├── lte_40_lvds_api_68_10_1.stream
│ │ ├── lte_40_lvds_api_68_13_7.json
│ │ ├── lte_40_lvds_api_68_13_7.stream
│ │ ├── lte_40_lvds_api_68_8_1.json
│ │ ├── lte_40_lvds_api_68_8_1.stream
│ │ ├── lte_5_cmos_api_68_0_6.json
│ │ ├── lte_5_cmos_api_68_0_6.stream
│ │ ├── lte_5_cmos_api_68_10_1.json
│ │ ├── lte_5_cmos_api_68_10_1.stream
│ │ ├── lte_5_cmos_api_68_13_7.json
│ │ ├── lte_5_cmos_api_68_13_7.stream
│ │ ├── lte_5_cmos_api_68_8_1.json
│ │ └── lte_5_cmos_api_68_8_1.stream
│ ├── adrv9008_1.py
│ ├── adrv9008_2.py
│ ├── adrv9009.py
│ ├── adrv9009_som.py
│ ├── adrv9009_som_fhm_phase.py
│ ├── adrv9009_som_multi.py
│ ├── adrv9009_som_single_sync.py
│ ├── adrv9009_som_sync.py
│ ├── adt7420_example.py
│ ├── adxl313_example.py
│ ├── adxl345_example.py
│ ├── adxl355_example.py
│ ├── adxl380_example.py
│ ├── adxrs290.py
│ ├── cn0511_example.py
│ ├── cn0532_cn0540_basic.py
│ ├── cn0548/
│ │ ├── CN0548_simple_plot.py
│ │ └── requirements_cn0548.txt
│ ├── cn0548_py.py
│ ├── cn0549/
│ │ ├── collect_data.py
│ │ ├── inference.py
│ │ ├── ml_cn0532.py
│ │ ├── ml_fan_example.ipynb
│ │ ├── mode2.csv
│ │ ├── mode3.csv
│ │ ├── mode4.csv
│ │ ├── model.tflite
│ │ └── requirements.txt
│ ├── cn0554_example.py
│ ├── cn0556/
│ │ ├── README.md
│ │ ├── cn0556_example_boost.py
│ │ ├── cn0556_example_buck.py
│ │ ├── cn0556_prod_tst_boost.py
│ │ └── cn0556_prod_tst_buck.py
│ ├── cn0565/
│ │ ├── README.md
│ │ ├── cn0565_back_projection.py
│ │ ├── cn0565_example.py
│ │ ├── cn0565_example_single.py
│ │ ├── cn0565_greit.py
│ │ ├── cn0565_jacobian.py
│ │ ├── cn0565_prod_tst.py
│ │ ├── cn0565_sample_plot.py
│ │ ├── cn0565_test_iio.py
│ │ ├── cn0565_worker.py
│ │ ├── main.py
│ │ ├── realtimeEITUI.py
│ │ ├── realtimeEITUI.ui
│ │ └── requirements.txt
│ ├── cn0569/
│ │ ├── adpd2140_gesture_sensor.py
│ │ └── cn0569_theremin_module.py
│ ├── cn0575_example.py
│ ├── cn0579/
│ │ ├── cn0579_example.py
│ │ └── save_for_scope.py
│ ├── daq2.py
│ ├── dual_triton_sync_start.py
│ ├── fmcadc3.py
│ ├── fmcjesdadc1.py
│ ├── fmcomms11.py
│ ├── fmcomms5.py
│ ├── lidar.py
│ ├── lm75_example.py
│ ├── ltc2378_example.py
│ ├── ltc2387_example.py
│ ├── ltc2499_example.py
│ ├── ltc2664_example.py
│ ├── ltc2672_example.py
│ ├── ltc2688_example.py
│ ├── ltc2983.py
│ ├── max11205_example.py
│ ├── max14001_examples.py
│ ├── max31855.py
│ ├── max31865.py
│ ├── max9611_example.py
│ ├── phaser/
│ │ ├── ADAR_pyadi_functions.py
│ │ ├── LTE10_MHz.ftr
│ │ ├── LTE20_MHz.ftr
│ │ ├── LTE5_MHz.ftr
│ │ ├── RADAR_FFT_Waterfall.py
│ │ ├── SDR_functions.py
│ │ ├── config.py
│ │ ├── phaser_examples.py
│ │ ├── phaser_find_hb100.py
│ │ ├── phaser_functions.py
│ │ ├── phaser_gui.py
│ │ ├── phaser_minimal_example.py
│ │ ├── phaser_prod_tst.py
│ │ ├── requirements_phaser.txt
│ │ └── results/
│ │ └── CN0566_1234_Sun Jan 22 09-02-39 2023.txt
│ ├── pluto.py
│ ├── pluto_tddn.py
│ ├── requirements_adiplot.txt
│ ├── triton_mcs_qual.py
│ ├── triton_sync_start.py
│ ├── waterfall.md
│ └── waterfall.py
├── pyproject.toml
├── requirements.txt
├── requirements_dev.txt
├── requirements_doc.txt
├── requirements_prod_test.txt
├── setup.cfg
├── supported_parts.md
├── tasks.py
└── test/
├── __init__.py
├── ad9371_5_profiles/
│ ├── profile_TxBW100_ORxBW100_RxBW100.txt
│ ├── profile_TxBW100_ORxBW100_RxBW20.txt
│ ├── profile_TxBW100_ORxBW100_RxBW50.txt
│ ├── profile_TxBW200_ORxBW200_RxBW100.txt
│ ├── profile_TxBW50_ORxBW50_RxBW25.txt
│ └── profile_TxBW50_ORxBW50_RxBW50.txt
├── adrv9002_profiles/
│ ├── lte_10_lvds_nco_api_68_13_7.json
│ ├── lte_10_lvds_nco_api_68_13_7.stream
│ ├── lte_10_lvds_nco_api_68_14_10.json
│ ├── lte_10_lvds_nco_api_68_14_10.stream
│ ├── lte_20_lvds_api_68_13_7.json
│ ├── lte_20_lvds_api_68_13_7.stream
│ ├── lte_20_lvds_api_68_14_10.json
│ ├── lte_20_lvds_api_68_14_10.stream
│ ├── lte_40_lvds_api_68_13_7.json
│ ├── lte_40_lvds_api_68_13_7.stream
│ ├── lte_40_lvds_api_68_14_10.json
│ ├── lte_40_lvds_api_68_14_10.stream
│ ├── lte_5_cmos_api_68_13_7.json
│ ├── lte_5_cmos_api_68_13_7.stream
│ ├── lte_5_cmos_api_68_14_10.json
│ └── lte_5_cmos_api_68_14_10.stream
├── adrv9009_profiles/
│ ├── Tx_BW100_IR122p88_Rx_BW100_OR122p88_ORx_BW100_OR122p88_DC245p76.txt
│ ├── Tx_BW200_IR245p76_Rx_BW100_OR122p88_ORx_BW200_OR245p76_DC245p76.txt
│ ├── Tx_BW200_IR245p76_Rx_BW200_OR245p76_ORx_BW200_OR245p76_DC245p76.txt
│ ├── Tx_BW400_IR491p52_Rx_BW100_OR122p88_ORx_BW400_OR491p52_DC245p76.txt
│ └── Tx_BW400_IR491p52_Rx_BW200_OR245p76_ORx_BW400_OR491p52_DC245p76.txt
├── attr_tests.py
├── common.py
├── conftest.py
├── dma_tests.py
├── eeprom.py
├── emu/
│ ├── devices/
│ │ ├── ad2s1210.xml
│ │ ├── ad3532r.xml
│ │ ├── ad353xr.xml
│ │ ├── ad3552r.xml
│ │ ├── ad3552r_hs.xml
│ │ ├── ad4000.xml
│ │ ├── ad4001.xml
│ │ ├── ad4002.xml
│ │ ├── ad4003.xml
│ │ ├── ad4020.xml
│ │ ├── ad405x.xml
│ │ ├── ad4080.xml
│ │ ├── ad4170.xml
│ │ ├── ad4692.xml
│ │ ├── ad4858.xml
│ │ ├── ad514x.xml
│ │ ├── ad5592r.xml
│ │ ├── ad5686.xml
│ │ ├── ad5706r.xml
│ │ ├── ad5710r.xml
│ │ ├── ad5754r.xml
│ │ ├── ad579x.xml
│ │ ├── ad6676.xml
│ │ ├── ad7091rx.xml
│ │ ├── ad7124-8.xml
│ │ ├── ad7134.xml
│ │ ├── ad7291.xml
│ │ ├── ad7381.xml
│ │ ├── ad7405.xml
│ │ ├── ad7490.xml
│ │ ├── ad7746.xml
│ │ ├── ad7768-4.xml
│ │ ├── ad7768.xml
│ │ ├── ad9081.xml
│ │ ├── ad9081_full_bw_mock.xml
│ │ ├── ad9081_tdd.xml
│ │ ├── ad9084-fmca-ebz.xml
│ │ ├── ad9084.xml
│ │ ├── ad9172.xml
│ │ ├── ad9265.xml
│ │ ├── ad9371.xml
│ │ ├── ad9375.xml
│ │ ├── ad9434.xml
│ │ ├── ada4355.xml
│ │ ├── ada4356_lidar.xml
│ │ ├── adaq4224.xml
│ │ ├── adf4377.xml
│ │ ├── adf5611.xml
│ │ ├── adis16475.xml
│ │ ├── adis16480.xml
│ │ ├── adis16550.xml
│ │ ├── adl8113.xml
│ │ ├── adrv9002.xml
│ │ ├── adrv9002_singledma.xml
│ │ ├── adrv9002_splitdma.xml
│ │ ├── adrv9008-1.xml
│ │ ├── adrv9008-2.xml
│ │ ├── adrv9361-z7035.xml
│ │ ├── adrv9364-z7020.xml
│ │ ├── adsy1100.xml
│ │ ├── adxl345.xml
│ │ ├── adxl355.xml
│ │ ├── adxl382.xml
│ │ ├── adxrs290.xml
│ │ ├── cn0511.xml
│ │ ├── cn0540.xml
│ │ ├── cn0554.xml
│ │ ├── cn0556.xml
│ │ ├── cn0565.xml
│ │ ├── cn0566.xml
│ │ ├── cn0579.xml
│ │ ├── daq2.xml
│ │ ├── daq3.xml
│ │ ├── fmcomms11.xml
│ │ ├── fmcomms2-3.xml
│ │ ├── fmcomms4.xml
│ │ ├── fmcomms5.xml
│ │ ├── lm75.xml
│ │ ├── ltc2314-14.xml
│ │ ├── ltc2378.xml
│ │ ├── ltc2387.xml
│ │ ├── ltc2664.xml
│ │ ├── ltc2672.xml
│ │ ├── ltc2688.xml
│ │ ├── max14001.xml
│ │ ├── max31865.xml
│ │ ├── max9611.xml
│ │ └── pluto.xml
│ └── hardware_map.yml
├── generics.py
├── globals.py
├── html.py
├── jesd_tests.py
├── plot_logger.py
├── rf/
│ ├── __init__.py
│ ├── matlab/
│ │ └── spec_est.m
│ ├── phase.py
│ ├── spec.py
│ ├── test_phase.py
│ └── test_spec_est.py
├── scpi.py
├── test_ad2s1210.py
├── test_ad353xr.py
├── test_ad3552r.py
├── test_ad3552r_hs.py
├── test_ad4000.py
├── test_ad4001.py
├── test_ad4002.py
├── test_ad4003.py
├── test_ad4020.py
├── test_ad405x.py
├── test_ad4080.py
├── test_ad4110.py
├── test_ad4130.py
├── test_ad4170.py
├── test_ad4630.py
├── test_ad469x.py
├── test_ad4858.py
├── test_ad514x.py
├── test_ad5592r.py
├── test_ad5706r.py
├── test_ad5710r.py
├── test_ad5754r.py
├── test_ad579x.py
├── test_ad5940.py
├── test_ad7091rx.py
├── test_ad7124_8.py
├── test_ad7134.py
├── test_ad717x.py
├── test_ad719x.py
├── test_ad738x.py
├── test_ad7405.py
├── test_ad7490.py
├── test_ad7606.py
├── test_ad7689.py
├── test_ad7746.py
├── test_ad7768.py
├── test_ad7768_4.py
├── test_ad777x.py
├── test_ad7799.py
├── test_ad9081.py
├── test_ad9083_p.py
├── test_ad9084.py
├── test_ad9136_p.py
├── test_ad9144_p.py
├── test_ad9152_p.py
├── test_ad9162.py
├── test_ad9172_p.py
├── test_ad9213_p.py
├── test_ad9265.py
├── test_ad9361_p.py
├── test_ad9364_p.py
├── test_ad9371.py
├── test_ad9375.py
├── test_ad9434.py
├── test_ad9467.py
├── test_ad9625.py
├── test_ad9680_p.py
├── test_ad9739a_p.py
├── test_ada4355.py
├── test_ada4356_lidar.py
├── test_adaq8092.py
├── test_adf4355.py
├── test_adf4377.py
├── test_adf4382.py
├── test_adf5611.py
├── test_adg2128.py
├── test_adis16460_p.py
├── test_adis16475_p.py
├── test_adis16480.py
├── test_adis16495_p.py
├── test_adis16507_p.py
├── test_adis16550.py
├── test_adl5240.py
├── test_adl8113.py
├── test_adpd410x.py
├── test_adrv9002_generic_p.py
├── test_adrv9002_p.py
├── test_adrv9008_1.py
├── test_adrv9008_2.py
├── test_adrv9009_p.py
├── test_adrv9009_zu11eg.py
├── test_adrv9009_zu11eg_fmcomms8.py
├── test_adt7420.py
├── test_adxl313.py
├── test_adxl345.py
├── test_adxl355.py
├── test_adxl380.py
├── test_adxrs290.py
├── test_all_inits.py
├── test_cn0511_p.py
├── test_cn0540.py
├── test_cn0554.py
├── test_cn0556.py
├── test_cn0565.py
├── test_cn0575.py
├── test_cn0579.py
├── test_daq2_p.py
├── test_daq3_p.py
├── test_fmcadc3.py
├── test_fmcjesdadc1.py
├── test_fmcomms11_p.py
├── test_fmcomms2-3_prod.py
├── test_fmcomms5_p.py
├── test_generic.py
├── test_generic_rxtx.py
├── test_lm75.py
├── test_ltc2378.py
├── test_ltc2387.py
├── test_ltc2499.py
├── test_ltc2664.py
├── test_ltc2672.py
├── test_ltc2688.py
├── test_map.py
├── test_max11205.py
├── test_max14001.py
├── test_max31855.py
├── test_max31865.py
├── test_max9611.py
├── test_mcp_server.py
├── test_pluto_p.py
├── test_refactored_devices_unit.py
├── test_sshfs.py
└── test_stress.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .codacy.yml
================================================
exclude_paths:
- 'examples/**'
- 'test/**'
- 'doc/**'
- '**.md'
- '**.yml'
- '**.yaml'
================================================
FILE: .codespell-whitelist
================================================
AFE
afe
SOM
som
sinc
byteorder
inout
================================================
FILE: .github/license_header.txt
================================================
Copyright (C) 2023 Analog Devices, Inc.
SPDX short identifier: ADIBSD
================================================
FILE: .github/pull_request_template.md
================================================
# Description
Summarize the change and the motivation. Link the issue this fixes.
Fixes # (issue)
## Type of change
- [ ] Bug fix
- [ ] New device class interface
- [ ] New feature on an existing class
- [ ] Breaking change
- [ ] Documentation only
- [ ] Test or CI only
# How has this been tested?
State explicitly whether this was tested against **real hardware**, an **emulated context** (iio-emu), or **not run**. Name the part(s) and the context URI or board used.
- Hardware / emulation:
- Commands run (e.g. `python3 -m pytest -k ad4080 --adi-hw-map`):
- Result:
**Test configuration**
* Kernel / libiio version:
* OS:
* FPGA carrier (if applicable):
# Documentation
- [ ] No documentation change needed
- [ ] Updated existing docs under `doc/source/`
- [ ] Added a new device page and linked it from the relevant toctree
# New device class interfaces
Skip this section if the PR does not add a new device class.
- [ ] Class extends one of the common base classes in `adi.device_base` (`rx_chan_comp`, `tx_chan_comp`, or a `_no_buff` variant). If not, explain why in the description. See the [Device Base Classes](https://analogdevicesinc.github.io/pyadi-iio/dev/device_base.html) developer doc page.
- [ ] `compatible_parts` lists every part number this class supports
- [ ] Part numbers added to `supported_parts.md` (verify with `invoke checkparts`)
- [ ] Emulation context (xml_gen, not iio_genxml) added under `test/emu/` and referenced from a test
- [ ] Tests added that run against the emulation context in CI
# Checklist
- [ ] `invoke precommit` passes locally
- [ ] All commits are signed off (`Signed-off-by: Name <email>`)
- [ ] No new warnings from the build or doc generation
- [ ] Dependent changes in libiio, kernel, or HDL are merged and referenced
================================================
FILE: .github/scripts/detect_new_classes.py
================================================
#!/usr/bin/env python3
# Copyright (C) 2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
"""Detect new device classes added in a PR by diffing adi/__init__.py against the base branch.
Maps new classes to hardware entries in the emulation hardware map and outputs
results as GitHub Actions outputs.
"""
import json
import os
import re
import subprocess
import yaml
def parse_imports(text):
"""Extract all class names imported from adi submodules.
Handles lines like:
from adi.ad936x import Pluto, ad9361, ad9363, ad9364
from adi.ad9081 import ad9081
"""
classes = set()
for match in re.finditer(r"from adi\.\w+ import (.+)", text):
names = match.group(1).split(",")
for name in names:
name = name.strip()
if name:
classes.add(name)
return classes
def get_base_init(base_ref):
"""Get adi/__init__.py content from the base branch."""
try:
result = subprocess.run(
["git", "show", f"origin/{base_ref}:adi/__init__.py"],
capture_output=True,
text=True,
check=True,
)
return result.stdout
except subprocess.CalledProcessError:
print(f"Warning: Could not read adi/__init__.py from origin/{base_ref}")
return ""
def find_hardware_for_classes(new_classes, hw_map):
"""Find hardware map entries that support any of the new classes."""
hardware_names = []
class_to_hw = {}
for hw_name, hw_entries in hw_map.items():
for entry in hw_entries:
if isinstance(entry, dict) and "pyadi_iio_class_support" in entry:
supported = entry["pyadi_iio_class_support"]
matching = new_classes & set(supported)
if matching:
hardware_names.append(hw_name)
for cls in matching:
class_to_hw.setdefault(cls, []).append(hw_name)
return hardware_names, class_to_hw
def main():
base_ref = os.environ.get("GITHUB_BASE_REF", "main")
# Parse base branch imports
base_text = get_base_init(base_ref)
base_classes = parse_imports(base_text)
# Parse current branch imports
with open("adi/__init__.py") as f:
current_text = f.read()
current_classes = parse_imports(current_text)
# Find new classes
new_classes = current_classes - base_classes
if not new_classes:
print("No new device classes detected.")
with open(os.environ.get("GITHUB_OUTPUT", "/dev/null"), "a") as f:
f.write("has_new_classes=false\n")
f.write("new_classes=[]\n")
f.write("hardware_names=[]\n")
return
print(f"New device classes detected: {sorted(new_classes)}")
# Load hardware map
hw_map_path = os.path.join("test", "emu", "hardware_map.yml")
with open(hw_map_path) as f:
hw_map = yaml.safe_load(f)
# Map classes to hardware entries
hardware_names, class_to_hw = find_hardware_for_classes(new_classes, hw_map)
# Report unmapped classes
mapped_classes = set(class_to_hw.keys())
unmapped = new_classes - mapped_classes
if unmapped:
print(f"Warning: No hardware map entry found for: {sorted(unmapped)}")
print(f"Relevant hardware entries: {sorted(hardware_names)}")
print(f"Class to hardware mapping: {class_to_hw}")
# Write GitHub Actions outputs
with open(os.environ.get("GITHUB_OUTPUT", "/dev/null"), "a") as f:
f.write("has_new_classes=true\n")
f.write(f"new_classes={json.dumps(sorted(new_classes))}\n")
f.write(f"hardware_names={json.dumps(sorted(hardware_names))}\n")
if __name__ == "__main__":
main()
================================================
FILE: .github/scripts/format_coverage_report.py
================================================
#!/usr/bin/env python3
# Copyright (C) 2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
"""Filter IIO coverage results to hardware entries relevant to new device classes
and generate a markdown report suitable for posting as a PR comment."""
import argparse
import json
import os
def load_coverage(folder, hw_name):
"""Load coverage JSON for a hardware entry. Returns None if not found."""
path = os.path.join(folder, f"{hw_name}_coverage.json")
if not os.path.exists(path):
return None
with open(path) as f:
return json.load(f)
def compute_stats(data):
"""Compute coverage statistics from raw coverage JSON data."""
dev_attrs = data.get("device_attr_reads_writes", {})
chan_attrs = data.get("channel_attr_reads_writes", {})
# Device attribute stats
dev_total = 0
dev_covered = 0
for device in dev_attrs.values():
for count in device.values():
dev_total += 1
if count > 0:
dev_covered += 1
# Channel attribute stats
chan_total = 0
chan_covered = 0
for device in chan_attrs.values():
for direction in device.values():
for channel in direction.values():
for count in channel.values():
chan_total += 1
if count > 0:
chan_covered += 1
total = dev_total + chan_total
covered = dev_covered + chan_covered
return {
"dev_total": dev_total,
"dev_covered": dev_covered,
"dev_pct": (dev_covered / dev_total * 100) if dev_total else 0,
"chan_total": chan_total,
"chan_covered": chan_covered,
"chan_pct": (chan_covered / chan_total * 100) if chan_total else 0,
"total": total,
"covered": covered,
"total_pct": (covered / total * 100) if total else 0,
}
def format_untested_details(data):
"""Generate markdown details of untested attributes."""
lines = []
dev_attrs = data.get("device_attr_reads_writes", {})
chan_attrs = data.get("channel_attr_reads_writes", {})
# Untested device attributes
for dev_name, attrs in sorted(dev_attrs.items()):
untested = [a for a, c in sorted(attrs.items()) if c == 0]
if untested:
lines.append(
f" - **{dev_name}** device attrs untested: `{'`, `'.join(untested)}`"
)
# Untested channel attributes
for dev_name, directions in sorted(chan_attrs.items()):
for direction, channels in sorted(directions.items()):
for ch_id, attrs in sorted(channels.items()):
untested = [a for a, c in sorted(attrs.items()) if c == 0]
if untested:
lines.append(
f" - **{dev_name}** {direction} ch `{ch_id}` untested: "
f"`{'`, `'.join(untested)}`"
)
return lines
def generate_report(hardware_names, new_classes, coverage_folder):
"""Generate the full markdown report."""
lines = []
lines.append("# IIO Context Coverage Report")
lines.append("")
lines.append(f"New device classes in this PR: **{', '.join(sorted(new_classes))}**")
lines.append("")
# Summary table
lines.append("## Summary")
lines.append("")
lines.append(
"| Hardware | Device Attr Coverage | Channel Attr Coverage | Total Coverage |"
)
lines.append(
"|----------|---------------------|----------------------|----------------|"
)
details_lines = []
missing = []
for hw_name in sorted(hardware_names):
data = load_coverage(coverage_folder, hw_name)
if data is None:
missing.append(hw_name)
lines.append(f"| {hw_name} | N/A | N/A | No coverage data |")
continue
stats = compute_stats(data)
lines.append(
f"| {hw_name} "
f"| {stats['dev_covered']}/{stats['dev_total']} ({stats['dev_pct']:.1f}%) "
f"| {stats['chan_covered']}/{stats['chan_total']} ({stats['chan_pct']:.1f}%) "
f"| {stats['covered']}/{stats['total']} ({stats['total_pct']:.1f}%) |"
)
# Collect untested details
untested = format_untested_details(data)
if untested:
details_lines.append(f"### {hw_name}")
details_lines.append("")
details_lines.extend(untested)
details_lines.append("")
# Untested details section
if details_lines:
lines.append("")
lines.append("<details>")
lines.append("<summary>Untested attributes (click to expand)</summary>")
lines.append("")
lines.extend(details_lines)
lines.append("</details>")
# Warnings
if missing:
lines.append("")
lines.append(
f"> **Note:** No coverage data found for: {', '.join(missing)}. "
"These hardware entries may not have matching tests or emulation support."
)
lines.append("")
lines.append("---")
lines.append("*Generated by IIO Context Coverage workflow*")
return "\n".join(lines)
def main():
parser = argparse.ArgumentParser(
description="Filter and format IIO coverage report"
)
parser.add_argument(
"--hardware-names", required=True, help="JSON array of hardware names"
)
parser.add_argument(
"--new-classes", required=True, help="JSON array of new class names"
)
parser.add_argument(
"--coverage-folder",
default="iio_coverage_results",
help="Coverage results folder",
)
parser.add_argument("--output", required=True, help="Output markdown file path")
args = parser.parse_args()
hardware_names = json.loads(args.hardware_names)
new_classes = json.loads(args.new_classes)
if not hardware_names:
report = (
"# IIO Context Coverage Report\n\n"
f"New device classes in this PR: **{', '.join(sorted(new_classes))}**\n\n"
"> No hardware map entries found for these classes. "
"Context coverage tracking requires an emulation entry in "
"`test/emu/hardware_map.yml`.\n"
)
else:
report = generate_report(hardware_names, new_classes, args.coverage_folder)
os.makedirs(os.path.dirname(args.output) or ".", exist_ok=True)
with open(args.output, "w") as f:
f.write(report)
print(f"Coverage report written to {args.output}")
if __name__ == "__main__":
main()
================================================
FILE: .github/scripts/install_iioemu.sh
================================================
#!/bin/bash
sudo apt-get -qq update
git clone https://github.com/analogdevicesinc/libtinyiiod.git
cd libtinyiiod
mkdir build && cd build
cmake -DBUILD_EXAMPLES=OFF ..
make
sudo make install
sudo ldconfig
cd ../..
git clone -b main https://github.com/analogdevicesinc/iio-emu.git
cd iio-emu
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig
cd ../..
================================================
FILE: .github/scripts/install_libiio.sh
================================================
#!/bin/bash
# Set LIBIIO_BRANCH if not set
if [ -z "$LIBIIO_BRANCH" ]; then
LIBIIO_BRANCH="v0.26"
fi
sudo apt-get -qq update
sudo apt-get install -y build-essential git cmake graphviz libavahi-common-dev libavahi-client-dev libaio-dev libusb-1.0-0-dev libxml2-dev rpm tar bzip2 gzip flex bison git libzstd-dev
git clone -b $LIBIIO_BRANCH --single-branch --depth 1 https://github.com/analogdevicesinc/libiio.git
cd libiio
cmake . -DHAVE_DNS_SD=OFF -DPYTHON_BINDINGS=OFF
make
sudo make install
cd ..
rm -rf libiio
# Python pieces
sudo apt-get install -y python3-pip python3-setuptools
git clone -b $LIBIIO_BRANCH --single-branch --depth 1 https://github.com/analogdevicesinc/libiio.git
cd libiio
cmake . -DHAVE_DNS_SD=OFF -DPYTHON_BINDINGS=ON
make
cd bindings/python
pip install .
cd ../..
cd ..
rm -rf libiio
================================================
FILE: .github/scripts/install_part_libs.sh
================================================
#!/bin/bash
# Set LIBIIO_BRANCH if not set
if [ -z "$LIBIIO_BRANCH" ]; then
LIBIIO_BRANCH="v0.25"
fi
if [ "$LIBIIO_BRANCH" = "main" ]; then
echo "Using main branch of libiio, skipping libad9361-iio and libad9166-iio installation as they are unsupported on main."
exit 0
fi
git clone -b 'main' --single-branch --depth 1 https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
if [ "$LIBIIO_BRANCH" = "main" ]; then
cmake -DPYTHON_BINDINGS=ON -DLIBIIO_INCLUDEDIR=/usr/include/iio .
else
cmake -DPYTHON_BINDINGS=ON .
fi
make
cd bindings/python
pip install .
cd ../..
sudo make install
sudo ldconfig
cd ..
rm -rf libad9361-iio
git clone -b 'main' --single-branch --depth 1 https://github.com/analogdevicesinc/libad9166-iio.git
cd libad9166-iio
if [ "$LIBIIO_BRANCH" = "main" ]; then
cmake -DPYTHON_BINDINGS=ON -DLIBIIO_INCLUDEDIR=/usr/include/iio .
else
cmake -DPYTHON_BINDINGS=ON .
fi
make
cd bindings/python
pip install .
cd ../..
sudo make install
sudo ldconfig
cd ..
rm -rf libad9166-iio
pip install pylibiio>=0.23.1
================================================
FILE: .github/scripts/install_pydeps.sh
================================================
#!/bin/bash
sudo apt-get install -y python3-pip python3-setuptools
pip install -r requirements.txt
pip install -r requirements_dev.txt
pip install setuptools wheel twine build
if [ "$LIBIIO_BRANCH" = "main" ]; then
pip install --no-deps --force-reinstall pytest-libiio@git+https://github.com/tfcollins/pytest-libiio.git@master
pip install lxml pyyaml
# Update python bindings again
git clone -b $LIBIIO_BRANCH --single-branch --depth 1 https://github.com/analogdevicesinc/libiio.git
cd libiio
cmake . -DHAVE_DNS_SD=OFF -DPYTHON_BINDINGS=ON
make
cd bindings/python
pip install .
cd ../..
cd ..
rm -rf libiio
else
pip install "pytest-libiio>=0.0.18"
fi
================================================
FILE: .github/workflows/cleanup.yml
================================================
name: Cleanup Development Branch Doc
# only trigger on pull request closed events
on:
pull_request:
types: [ closed ]
jobs:
merge_or_close_job:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: 'gh-pages'
- name: Check For Doc Directory
id: folder_check
run: |
echo PR #${{ github.event.number }} has been merged or closed. Cleaning up doc
echo This came from source branch ${{ github.head_ref }}
echo This was targeted at branch ${{ github.base_ref }}
if [ -d "prs" ]; then
echo "Generate doc found under dev"
echo "check_result=true" >> $GITHUB_OUTPUT
else
echo "No generated doc found. No cleanup to happen"
echo "check_result=false" >> $GITHUB_OUTPUT
fi
- name: Run dependent step
if: steps.folder_check.outputs.check_result == 'true'
run: |
git config --global user.name "github-doc-bot"
git config --global user.email "docbot@github.dev"
git rm -rf "prs/${{ github.head_ref }}"
git commit -m "Remove dev doc for branch: ${{ github.head_ref }}"
git push origin 'gh-pages'
================================================
FILE: .github/workflows/doc.yml
================================================
name: Documentation Tests
on: [push, pull_request]
jobs:
CheckDocs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
bash ./.github/scripts/install_pydeps.sh
pip install -r requirements_doc.txt
- name: Check doc build
run: |
cd doc
make html SPHINXOPTS="-j auto -W"
cd ..
- name: Check doc coverage
run: |
cd doc
make coverage
cd ..
- name: Check doc links
run: |
cd doc
make linkcheck
cd ..
- name: Check missing docs
run: |
cd doc
python check_for_missing.py
CheckParts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
bash ./.github/scripts/install_pydeps.sh
pip install -r requirements_doc.txt
pip install invoke
- name: Check if supported parts missing
run: |
invoke checkparts
- name: Check if emulation support exists
run: |
invoke checkemulation
================================================
FILE: .github/workflows/iio-context-coverage.yml
================================================
name: IIO Context Coverage
on:
pull_request_target:
branches: [main]
permissions:
pull-requests: write
contents: read
jobs:
detect-new-classes:
runs-on: ubuntu-22.04
# Fork PRs are gated by the `external-pr` GitHub environment, which
# requires a maintainer to manually review and approve every run before
# any code from the PR head is checked out or executed. Do not remove
# the environment gate below without re-evaluating this suppression.
# codeql[actions/unsafe-checkout]
environment:
name: ${{ github.event.pull_request.head.repo.fork && 'external-pr' || 'internal-pr' }}
outputs:
has_new_classes: ${{ steps.detect.outputs.has_new_classes }}
hardware_names: ${{ steps.detect.outputs.hardware_names }}
new_classes: ${{ steps.detect.outputs.new_classes }}
steps:
# codeql[actions/unsafe-checkout] manual review required via `external-pr` environment approval gate
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Fetch base branch
run: git fetch origin ${{ github.event.pull_request.base.ref }}:${{ github.event.pull_request.base.ref }}
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install PyYAML
run: pip install pyyaml
- name: Detect new device classes
id: detect
run: python .github/scripts/detect_new_classes.py
context-coverage:
runs-on: ubuntu-22.04
needs: detect-new-classes
if: needs.detect-new-classes.outputs.has_new_classes == 'true'
# Fork PRs are gated by the `external-pr` GitHub environment, which
# requires a maintainer to manually review and approve every run before
# any code from the PR head is checked out or executed. Do not remove
# the environment gate below without re-evaluating this suppression.
# codeql[actions/unsafe-checkout]
environment:
name: ${{ github.event.pull_request.head.repo.fork && 'external-pr' || 'internal-pr' }}
steps:
# codeql[actions/unsafe-checkout] manual review required via `external-pr` environment approval gate
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
bash ./.github/scripts/install_iioemu.sh
sudo apt install -y python3-tk
- name: Run emulated tests with IIO coverage
run: |
pip uninstall -y paramiko
pytest -vs --emu --iio-coverage --cov=adi -k 'not prod' --skip-scan
- name: Generate filtered coverage report
run: |
python .github/scripts/format_coverage_report.py \
--hardware-names '${{ needs.detect-new-classes.outputs.hardware_names }}' \
--new-classes '${{ needs.detect-new-classes.outputs.new_classes }}' \
--coverage-folder iio_coverage_results \
--output coverage_pr_comment.md
- name: Post coverage report as PR comment
uses: mshick/add-pr-comment@v2
with:
message-id: iio-context-coverage
message-path: coverage_pr_comment.md
repo-token: ${{ secrets.GITHUB_TOKEN }}
issue: ${{ github.event.pull_request.number }}
================================================
FILE: .github/workflows/test-pypi.yml
================================================
name: TestPyPI
on:
push:
branches:
- main
jobs:
DeployTestPyPI:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
bash ./.github/scripts/install_pydeps.sh
pip install -r requirements_doc.txt
pip install setuptools wheel twine build
- name: Update to dev version and build release
run: |
pip install invoke
invoke bumpversion-test
python -m build
- uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_TOKEN }}
repository_url: https://test.pypi.org/legacy/
================================================
FILE: .github/workflows/test.yml
================================================
name: Linux Tests
on: [push, pull_request]
jobs:
Test:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
libiio: ['main', 'v0.26']
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
export LIBIIO_BRANCH=${{ matrix.libiio }}
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
- name: Test
run: pytest -v --cov=adi
Test-Emulated-HW:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
bash ./.github/scripts/install_iioemu.sh
sudo apt install -y python3-tk
- name: Test without optional dependencies
run: |
pip uninstall -y paramiko
pytest -vs -n auto --cov=adi --emu --junitxml="results.xml" -k 'not prod' --skip-scan
- name: Report coverage
if: (github.event_name != 'pull_request') && (matrix.python-version == 3.10)
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: coveralls
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
files: results.xml
Lint:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
- name: Lint
run: |
pre-commit run --all-files 2> /dev/null
ec=$?
git diff -U0 > log.txt && cat log.txt
exit $ec
Doc:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
pip install -r requirements_doc.txt
- name: Build doc
run: |
cd doc && make html
cd ..
DeployMainDoc:
runs-on: ubuntu-22.04
needs: [Test,Lint,Doc]
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
pip install -r requirements_doc.txt
- name: Build doc and release
run: |
export ADOC_TARGET_DEPTH=1
cd doc && make html
cd ..
- name: Publish doc
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/build/html
destination_dir: main
DeployDevelopmentDoc:
runs-on: ubuntu-22.04
needs: [Test,Lint,Doc]
# Only run on pull requests to main and non-forks
if: github.event_name == 'pull_request' && github.base_ref == 'main' && ! github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
pip install -r requirements_doc.txt
- name: Build doc and release
run: |
export GIT_BRANCH=${{ github.head_ref }}
export DEV_BUILD=1
export ADOC_TARGET_DEPTH=2
cd doc && make html
cd ..
- name: Publish doc
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/build/html
destination_dir: prs/${{ github.head_ref }}
- name: Add comment to PR
uses: mshick/add-pr-comment@v2
with:
message: |
Generated documentation for this PR is available at [Link](https://analogdevicesinc.github.io/pyadi-iio/prs/${{ github.head_ref }}/index.html)
Deploy:
runs-on: ubuntu-22.04
needs: [Test,Lint,Doc]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
bash ./.github/scripts/install_pydeps.sh
bash ./.github/scripts/install_libiio.sh
bash ./.github/scripts/install_part_libs.sh
pip install -r requirements_doc.txt
pip install setuptools wheel twine build
- name: Build doc and release
run: |
cd doc && make html
cd ..
python -m build
- name: Publish doc
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/build/html
- name: Publish package
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
================================================
FILE: .github/workflows/win-test.yml
================================================
name: Windows Tests
on: [push, pull_request]
jobs:
CondaBased:
name: Test (${{ matrix.python-version }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["windows-latest"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Conda info
shell: bash -l {0}
run: conda info
- name: Conda list
shell: pwsh
run: conda list
- name: Dependencies
run: |
conda activate test
python --version
conda install -c conda-forge pylibiio
conda install pip
pip install -r requirements_dev.txt
pip install paramiko
- name: Run tests
run: python -m pytest
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
# doc generation
doc/source/_static/logos
================================================
FILE: .isort.cfg
================================================
[settings]
known_third_party=iio
================================================
FILE: .pre-commit-config.yaml
================================================
exclude: '^test\/emu'
repos:
- repo: https://github.com/codespell-project/codespell
rev: v2.2.2
hooks:
- id: codespell
entry: codespell --ignore-words=.codespell-whitelist --exclude-file=examples/cn0549/ml_fan_example.ipynb --skip="*.pyc,*.xml"
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort (python)
args: ["--profile", "black", "--filter-files"]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-merge-conflict
- id: debug-statements
- id: check-docstring-first
- id: flake8
- repo: https://github.com/psf/black
rev: 19.10b0
hooks:
- id: black
language_version: python3
additional_dependencies: ['click==8.0.4']
args: [--exclude=./test/emu]
- repo: https://github.com/asottile/blacken-docs
rev: v1.12.0
hooks:
- id: blacken-docs
additional_dependencies: [black==19.10b0]
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.1
hooks:
- id: insert-license
files: adi\/.*\.py$
args:
- --license-filepath
- .github/license_header.txt
- --use-current-year
- --no-extra-eol
- --detect-license-in-X-top-lines=3
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
travis (dot) collins (at) analog (dot) com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to pyadi-iio
When contributing to this repository, please first discuss the change you wish to make via the
[issue tracker](https://github.com/analogdevicesinc/pyadi-iio/issues) before making a pull request.
Please note we have a code of conduct, please follow it in all your interactions with the project.
The [pyadi-iio repository](https://github.com/analogdevicesinc/pyadi-iio) is a aggregate of a module
and separate applications/programs/examples as well as doc which use that module:
* All components are licensed under the ADI-BSD license found in the root of the repository
Any pull requests will be covered by this license.
## Pull Request Checklist
1. Commit message includes a "Signed-off-by: [name] < email >" to the commit message.
This ensures you have the rights to submit your code, by agreeing to the
[Developer Certificate of Origin](https://developercertificate.org/). If you can not agree to
the DCO, don't submit a pull request, as we can not accept it.
2. Commit should be "atomic", ie : should do one thing only. A pull requests should only contain
multiple commits if that is required to fix the bug or implement the feature.
3. Commits should have good commit messages. Check out [The git Book](https://git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project)
for some pointers, and tools to use.
4. All code should be formatted using the recommended tools in the doc and pass all linter checks
5. All currently passing test should pass that run within the CI environment
## Pull Request Process
1. Make a fork, if you are not sure on how to make a fork, check out [GitHub help](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)
2. Make a Pull Request, if you are not sure on how to make a pull request, check out [GitHub help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)
3. Before a Pull Request can be merged, it must be reviewd by at least one reviewer, and tested on as
the target hardware(s). The hardware used to test a commit should be noted in the Pull Request.
================================================
FILE: JenkinsfileHW
================================================
// Pipeline
lock(label: 'adgt_test_harness_boards') {
@Library('sdgtt-lib@adgt-test-harness') _
def hdlBranch = "NA"
def linuxBranch = "NA"
def bootPartitionBranch = "master"
def jenkins_job_trigger = "ci"
def firmwareVersion = 'v0.37'
def bootfile_source = 'artifactory' // options: sftp, artifactory, http, local
def harness = getGauntlet(hdlBranch, linuxBranch, bootPartitionBranch, firmwareVersion, bootfile_source)
//Update nebula config from netbox
harness.set_update_nebula_config(true)
harness.set_env('nebula_config_source','netbox')
harness.set_env('netbox_ip','primary.englab')
harness.set_env('netbox_port','8000')
harness.set_env('netbox_base_url','netbox')
withCredentials([string(credentialsId: 'netbox_token', variable: 'TOKEN')]) {
harness.set_env('netbox_token', TOKEN)
}
harness.set_env('netbox_devices_tag','active')
//update first the agent with the required deps
harness.set_required_agent(["sdg-nuc-01","sdg-nuc-02"])
harness.update_agents()
//Set other test parameters
harness.set_nebula_debug(true)
harness.set_enable_docker(true)
harness.set_docker_host_mode(true)
harness.set_send_telemetry(false)
harness.set_log_artifacts(false)
harness.set_log_jira(false)
harness.set_enable_resource_queuing(true)
harness.set_elastic_server('primary.englab')
harness.set_docker_args(['Vivado'])
harness.set_nebula_local_fs_source_root("artifactory.analog.com")
// Set stages (Stages are run sequentially on agents.)
harness.add_stage(harness.stage_library("UpdateBOOTFiles"), 'stopWhenFail',
harness.stage_library("RecoverBoard"))
// Test stage
def cls = {
String board ->
stage("Install libad9361"){
sh 'git clone https://github.com/analogdevicesinc/libad9361-iio.git'
dir('libad9361-iio'){
sh 'mkdir build'
dir('build'){
sh 'cmake ..'
sh 'make'
sh 'make install'
sh 'ldconfig'
}
dir('bindings/python'){
sh 'cmake .'
sh 'pip install .'
}
}
}
}
harness.add_stage(cls)
// Test stage
harness.add_stage(harness.stage_library("PyADITests"),'continueWhenFail')
// Send results
//harness.add_stage(harness.stage_library('SendResults'),'continueWhenFail')
// Go go
harness.run_stages()
}
================================================
FILE: LICENSE
================================================
Copyright 2019-2023(c) Analog Devices, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of Analog Devices, Inc. nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
- The use of this software may or may not infringe the patent rights of one
or more patent holders. This license does not release you from the
requirement that you obtain separate licenses from these patent holders to
use this software.
- Use of the software either in source or binary form or filter designs
resulting from the use of this software, must be connected to, run on or
loaded to an Analog Devices Inc. component.
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: MANIFEST.in
================================================
include LICENSE
include README.md
include adi/*
exclude setup.cfg
recursive-exclude test *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
================================================
FILE: Makefile
================================================
.ONESHELL:
BIN=venv/bin
.PHONY: clean clean-build clean-pyc help dev
.DEFAULT_GOAL := help
define BROWSER_PYSCRIPT
import os, webbrowser, sys
from urllib.request import pathname2url
webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
endef
export BROWSER_PYSCRIPT
define PRINT_HELP_PYSCRIPT
import re, sys
for line in sys.stdin:
match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
if match:
target, help = match.groups()
print("%-20s %s" % (target, help))
endef
export PRINT_HELP_PYSCRIPT
BROWSER := python -c "$$BROWSER_PYSCRIPT"
help:
@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
clean-build: ## remove build artifacts
rm -fr build/
rm -fr dist/
rm -fr .eggs/
find . -name '*.egg-info' -exec rm -fr {} +
find . -name '*.egg' -exec rm -f {} +
clean-pyc: ## remove Python file artifacts
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
find . -name '__pycache__' -exec rm -fr {} +
tests: ## run tests
$(BIN)/python -m pytest -vs -k 'not prod'
etests: ## run emulation tests
$(BIN)/python -m pytest -vs --cov=adi --scan-verbose --adi-hw-map --emu -k 'not prod'
lint: ## format and lint code
pre-commit run --all-files
dev: ## setup development environment
virtualenv venv
source venv/bin/activate
python -m pip install -r requirements_dev.txt
echo ""
echo ""
echo "---Run 'source venv/bin/activate' to activate the virtual environment.---"
================================================
FILE: README.md
================================================
<!-- PYADI-IIO README -->
<p align="center">
<img src="https://raw.githubusercontent.com/analogdevicesinc/pyadi-iio/master/images/PyADI-IIO_Logo_300.png" width="500" alt="PyADI-IIO Logo"> </br>
</p>
<p align="center">
<a href="https://github.com/analogdevicesinc/pyadi-iio/actions">
<img src="https://github.com/analogdevicesinc/pyadi-iio/actions/workflows/test.yml/badge.svg" alt="Build Status">
</a>
<a href="https://badge.fury.io/py/pyadi-iio">
<img src="https://badge.fury.io/py/pyadi-iio.svg" alt="PyPI version">
</a>
<a href="https://www.codacy.com/gh/analogdevicesinc/pyadi-iio/dashboard?utm_source=github.com&utm_medium=referral&utm_content=analogdevicesinc/pyadi-iio&utm_campaign=Badge_Grade">
<img src="https://app.codacy.com/project/badge/Grade/200b7479f5024f6ea386350ca1049077" alt="Codacy Badge">
</a>
<a href="https://www.python.org/downloads/">
<img src="https://img.shields.io/pypi/pyversions/pyadi-iio" alt="Python Version">
</a>
</p>
<p align="center">
<a href="http://analogdevicesinc.github.io/pyadi-iio/">
<img alt="GitHub Pages" src="https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg">
</a>
<a href="https://ez.analog.com/sw-interface-tools/f/q-a">
<img alt="EngineerZone" src="https://img.shields.io/badge/Support-on%20EngineerZone-blue.svg">
</a>
<a href="https://wiki.analog.com/resources/tools-software/linux-software/pyadi-iio">
<img alt="Analog Wiki" src="https://img.shields.io/badge/Wiki-on%20wiki.analog.com-blue.svg">
</a>
</p>
---
### pyadi-iio: Analog Devices python interfaces for hardware with Industrial I/O drivers
pyadi-iio is a python abstraction module for ADI hardware with IIO drivers to make them easier to use. The libIIO interface although extremely flexible can be cumbersome to use due to the amount of boilerplate code required for even simple examples, especially when interfacing with buffers. This module has custom interfaces classes for specific parts and development systems which can generally make them easier to understand and use. To get up and running with a device can be as simple as a few lines of code:
```python
import adi
# Create device from specific uri address
sdr = adi.ad9361(uri="ip:192.168.2.1")
# Get data from transceiver
data = sdr.rx()
```
### Currently supported hardware
[Supported parts and boards](https://github.com/analogdevicesinc/pyadi-iio/blob/master/supported_parts.md)
### Dependencies
- [libiio with python bindings](https://wiki.analog.com/resources/tools-software/linux-software/libiio)
- [numpy](https://scipy.org/install.html)
### Installing from source
```
tcollins@jeeves:~$ git clone https://github.com/analogdevicesinc/pyadi-iio.git
tcollins@jeeves:~$ cd pyadi-iio
tcollins@jeeves:~$ (sudo) pip install .
```
### Installing from pip
```
tcollins@jeeves:~$ (sudo) pip install pyadi-iio
```
To get optional dependency for JESD debugging
```
tcollins@jeeves:~$ (sudo) pip install pyadi-iio[jesd]
```
### Building doc
Install necessary tools
```
tcollins@jeeves:~$ (sudo) pip install -r requirements_doc.txt
```
Build actual doc with sphinx
```
tcollins@jeeves:~$ cd doc
tcollins@jeeves:~$ make html
```
### Developing
Install necessary tools
```
tcollins@jeeves:~$ (sudo) pip install -r requirements_dev.txt
```
Running pre-commit checks
```
tcollins@jeeves:~$ pre-commit run --all-files
```
================================================
FILE: adi/QuadMxFE_multi.py
================================================
# Copyright (C) 2021-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
import time
from typing import List
from adi.ad9081_mc import QuadMxFE
class QuadMxFE_multi(object):
"""ADQUADMXFExEBZ Multi-SOM Manager
parameters:
primary_uri: type=string
URI of primary ADQUADMXFExEBZ. Parent HMC7044 is connected
to this SOM
secondary_uris: type=list[string]
URI(s) of secondary ADQUADMXFExEBZ(s).
primary_jesd: type=adi.jesd
JESD object associated with primary ADQUADMXFExEBZ
secondary_jesds: type=list[adi.jesd]
JESD object(s) associated with secondary ADQUADMXFExEBZ(s)
"""
__rx_buffer_size_multi = 2 ** 14
secondaries: List[QuadMxFE] = []
def __init__(
self,
primary_uri="",
secondary_uris=[],
primary_jesd=None,
secondary_jesds=[None],
):
if not isinstance(secondary_uris, list):
Exception("secondary_uris must be a list")
if not isinstance(secondary_jesds, list):
Exception("secondary_jesds must be a list")
self._dma_show_arming = False
self._jesd_show_status = False
self._jesd_fsm_show_status = False
self._clk_chip_show_cap_bank_sel = False
self._resync_tx = False
self._rx_initialized = False
self._request_sysref_carrier = False
self.primary = QuadMxFE(uri=primary_uri)
self.secondaries = []
self.samples_primary = []
self.samples_secondary = []
for uri in secondary_uris:
self.secondaries.append(QuadMxFE(uri=uri))
for dev in self.secondaries + [self.primary]:
dev._rxadc.set_kernel_buffers_count(1)
self.primary._clock_chip_ext = self.primary._ctx.find_device("hmc7044-ext")
def reinitialize(self):
""" reinitialize: reinitialize all transceivers """
for dev in self.secondaries + [self.primary]:
property_names = [p for p in dir(dev) if "reinitialize" in p]
for p in property_names:
eval("dev." + p + "()")
@property
def rx_buffer_size(self):
"""rx_buffer_size: Size of receive buffer in samples for each device"""
return self.__rx_buffer_size_multi
@rx_buffer_size.setter
def rx_buffer_size(self, value):
self.__rx_buffer_size_multi = value
for dev in self.secondaries + [self.primary]:
dev.rx_buffer_size = value
def __read_jesd_status_all_devs(self, attr, islink=False):
for dev in self.secondaries + [self.primary]:
if islink:
devs = dev._jesd.get_all_link_statuses()
for dev in devs:
lanes = devs[dev]
print("JESD {}: ".format(dev), end="")
for lane in lanes:
if attr in lanes[lane]:
print(" {}".format(lanes[lane][attr]), end="")
print("")
else:
s = dev._jesd.get_all_statuses()
for dev in s:
if attr in s[dev]:
print("JESD {}: {} ({})".format(attr, s[dev][attr], dev))
def __read_jesd_status(self):
self.__read_jesd_status_all_devs("Link status")
self.__read_jesd_status_all_devs("SYSREF captured")
self.__read_jesd_status_all_devs("SYSREF alignment error")
def __read_jesd_link_status(self):
self.__read_jesd_status_all_devs("Errors", True)
self.__read_jesd_status_all_devs("Initial Lane Alignment Sequence", True)
self.__read_jesd_status_all_devs("Initial Frame Synchronization", True)
def _device_is_running(self, dev, index, verbose):
err = dev.jesd204_fsm_error
paused = dev.jesd204_fsm_paused
state = dev.jesd204_fsm_state
if verbose:
print(
"%s: DEVICE%d: Is <%s> in state <%s> with status <%d>"
% (dev.uri, index, "Paused" if paused else "Running", state, err)
)
if err:
print(
"\nERROR %s: DEVICE%d: Is <%s> in state <%s> with status <%d>\n"
% (dev.uri, index, "Paused" if paused else "Running", state, err)
)
return "error"
state_last = state == "opt_post_running_stage"
if (state_last == 0) and (paused == 0):
return "running"
if (state_last == 0) and (paused == 1):
return "paused"
if (state_last == 1) and (paused == 0):
return "done"
assert False
def __jesd204_fsm_is_done(self):
cnt = 0
for index, dev in enumerate([self.primary] + self.secondaries):
ret = self._device_is_running(dev, index, 0)
if ret == "done":
cnt += 1
if cnt == len([self.primary] + self.secondaries):
return "done"
def _jesd204_fsm_sync(self):
while True:
stat = self.__jesd204_fsm_is_done()
if stat == "done":
return "done"
for index, dev in enumerate(self.secondaries + [self.primary]):
ret = self._device_is_running(dev, index, self._jesd_fsm_show_status)
if index == 0:
statep = dev.jesd204_fsm_state
else:
state = dev.jesd204_fsm_state
assert state == statep
if ret == "paused":
dev.jesd204_fsm_resume = "1"
if ret == "error":
return ret
def __unsync(self):
for dev in [self.primary] + self.secondaries:
dev._clock_chip.attrs["sleep_request"].value = "1"
self.primary._clock_chip_ext.attrs["sleep_request"].value = "1"
time.sleep(0.1)
self.primary._clock_chip_ext.attrs["sleep_request"].value = "0"
for dev in [self.primary] + self.secondaries:
dev._clock_chip.attrs["sleep_request"].value = "0"
def hmc7044_cap_sel(self):
vals = []
for dev in [self.primary] + self.secondaries:
vals.append(dev._clock_chip.reg_read(0x8C))
vals.append(self.primary._clock_chip_ext.reg_read(0x8C))
return vals
def hmc7044_set_cap_sel(self, vals):
"""hmc7044_set_cap_sel:
parameters:
vals: type=list
Forces certain Capacitor bank selections.
Typically the list returned form hmc7044_cap_sel
"""
for dev in [self.primary] + self.secondaries:
dev._clock_chip.reg_write(0xB2, vals.pop(0) << 2 | 1)
self.primary._clock_chip_ext.reg_write(0xB2, vals.pop(0) << 2 | 1)
def hmc7044_ext_output_delay(self, chan, digital, analog_ps):
"""hmc7044_ext_output_delay:
parameters:
digital: type=int
Digital delay. Adjusts the phase of the divider signal
by up to 17 half cycles of the VCO.
analog_ps: type=int
Analog delay. Adjusts the delay of the divider signal in
increments of ~25 ps. Range is from 100ps to 700ps.
"""
assert 0 <= chan <= 13
if analog_ps - 100 >= 0:
enable = 1
val = (analog_ps - 100) / 25
else:
enable = 0
val = 0
offs = chan * 10
self.primary._clock_chip_ext.reg_write(0xCF + offs, enable)
self.primary._clock_chip_ext.reg_write(0xCB + offs, int(val) & 0x1F)
self.primary._clock_chip_ext.reg_write(0xCC + offs, int(digital) & 0x1F)
def hmc7044_car_output_delay(self, chan, digital, analog_ps):
"""hmc7044_car_output_delay:
parameters:
digital: type=int
Digital delay. Adjusts the phase of the divider signal
by up to 17 half cycles of the VCO.
analog_ps: type=int
Analog delay. Adjusts the delay of the divider signal in
increments of ~25 ps. Range is from 100ps to 700ps.
"""
assert 0 <= chan <= 13
if analog_ps - 100 >= 0:
enable = 1
val = (analog_ps - 100) / 25
else:
enable = 0
val = 0
offs = chan * 10
for dev in [self.primary] + self.secondaries:
dev._clock_chip.reg_write(0xCF + offs, enable)
dev._clock_chip.reg_write(0xCB + offs, int(val) & 0x1F)
dev._clock_chip.reg_write(0xCC + offs, int(digital) & 0x1F)
def __rx_dma_arm(self):
for dev in self.secondaries + [self.primary]:
if self._dma_show_arming:
print("--DMA ARMING--", dev.uri)
dev.rx_sync_start = "arm"
if self._dma_show_arming:
print("\n--DMA ARMED--", dev.uri)
def __dds_sync_enable(self, enable):
for dev in self.secondaries + [self.primary]:
if self._dma_show_arming:
print("--DAC SYNC ARMING--", dev.uri)
dev.tx_sync_start = "arm"
def sysref_request(self):
""" sysref_request: Sysref request for parent HMC7044 """
self.primary._clock_chip_ext.attrs["sysref_request"].value = "1"
def __refill_samples(self, dev, is_primary):
if is_primary:
self.samples_primary = dev.rx()
else:
self.samples_secondary = dev.rx()
def _pre_rx_setup(self):
retries = 10
for _ in range(retries):
try:
for dev in [self.primary] + self.secondaries:
dev.jesd204_fsm_ctrl = 0
self.__unsync()
for dev in [self.primary] + self.secondaries:
dev.jesd204_fsm_ctrl = 1
self._jesd204_fsm_sync()
if not self._resync_tx:
self.__dds_sync_enable(1)
if self._clk_chip_show_cap_bank_sel:
print("HMC7044s CAP bank select: ", self.hmc7044_cap_sel())
if self._jesd_show_status:
self.__read_jesd_status()
self.__read_jesd_link_status()
for dev in [self.primary] + self.secondaries:
dev.rx_destroy_buffer()
dev._rx_init_channels()
return
except: # noqa: E722
print("Re-initializing due to lock-up")
self.reinitialize()
raise Exception("Unable to initialize (Board reboot required)")
def rx(self):
"""Receive data from multiple hardware buffers for each channel index in
rx_enabled_channels of each child object (primary,secondaries[indx]).
returns: type=numpy.array or list of numpy.array
An array or list of arrays when more than one receive channel
is enabled containing samples from a channel or set of channels.
Data will be complex when using a complex data device.
"""
if not self._rx_initialized:
self._pre_rx_setup()
self._rx_initialized = True
data = []
self.__rx_dma_arm()
# Recreate all buffers
for dev in [self.primary] + self.secondaries:
dev.rx_destroy_buffer()
dev._rx_init_channels()
if self._resync_tx:
self.__dds_sync_enable(1)
self.sysref_request()
for dev in [self.primary] + self.secondaries:
data += dev.rx()
return data
================================================
FILE: adi/__init__.py
================================================
# Copyright (C) 2019-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.ad2s1210 import ad2s1210
from adi.ad353xr import ad353xr
from adi.ad405x import ad405x
from adi.ad469x import ad469x
from adi.ad514x import ad514x
from adi.ad579x import ad579x
from adi.ad717x import ad717x
from adi.ad719x import ad719x
from adi.ad738x import ad738x
from adi.ad777x import ad777x
from adi.ad936x import Pluto, ad9361, ad9363, ad9364
from adi.ad937x import ad9371, ad9375
from adi.ad3552r import ad3552r
from adi.ad3552r_hs import ad3552r_hs
from adi.ad4020 import ad4000, ad4001, ad4002, ad4003, ad4020
from adi.ad4080 import ad4080
from adi.ad4110 import ad4110
from adi.ad4130 import ad4130
from adi.ad4170 import ad4170
from adi.ad4630 import ad4630, adaq42xx
from adi.ad4858 import ad4858
from adi.ad5592r import ad5592r
from adi.ad5686 import ad5686
from adi.ad5706r import ad5706r
from adi.ad5710r import ad5710r
from adi.ad5754r import ad5754r
from adi.ad5940 import ad5940
from adi.ad6676 import ad6676
from adi.ad7091rx import ad7091rx
from adi.ad7124 import ad7124
from adi.ad7134 import ad7134
from adi.ad7291 import ad7291
from adi.ad7405 import ad7405
from adi.ad7490 import ad7490
from adi.ad7606 import ad7606
from adi.ad7689 import ad7689
from adi.ad7746 import ad7746
from adi.ad7768 import ad7768, ad7768_4
from adi.ad7799 import ad7799
from adi.ad9081 import ad9081
from adi.ad9081_mc import QuadMxFE, ad9081_mc
from adi.ad9083 import ad9083
from adi.ad9084 import ad9084
from adi.ad9084_mc import Triton, ad9084_mc
from adi.ad9094 import ad9094
from adi.ad9136 import ad9136
from adi.ad9144 import ad9144
from adi.ad9152 import ad9152
from adi.ad9162 import ad9162
from adi.ad9166 import ad9166
from adi.ad9172 import ad9172
from adi.ad9213 import ad9213
from adi.ad9250 import ad9250
from adi.ad9265 import ad9265
from adi.ad9434 import ad9434
from adi.ad9467 import ad9467
from adi.ad9625 import ad9625
from adi.ad9680 import ad9680
from adi.ada4355 import ada4355
from adi.ada4356_lidar import ada4356_lidar
from adi.ada4961 import ada4961
from adi.adaq8092 import adaq8092
from adi.adar1000 import adar1000, adar1000_array
from adi.adf4030 import adf4030
from adi.adf4159 import adf4159
from adi.adf4355 import adf4355
from adi.adf4371 import adf4371
from adi.adf4377 import adf4377
from adi.adf4382 import adf4382
from adi.adf5610 import adf5610
from adi.adf5611 import adf5611
from adi.adg2128 import adg2128
from adi.adis16460 import adis16460
from adi.adis16475 import adis16475
from adi.adis16480 import (
adis16375,
adis16480,
adis16485,
adis16488,
adis16490,
adis16495,
adis16497,
adis16545,
adis16547,
)
from adi.adis16507 import adis16507
from adi.adis16550 import adis16550
from adi.adl5240 import adl5240
from adi.adl5960 import adl5960
from adi.adl8113 import adl8113
from adi.admv8818 import admv8818
from adi.adpd188 import adpd188
from adi.adpd410x import adpd410x
from adi.adpd1080 import adpd1080
from adi.adrf5720 import adrf5720
from adi.adrv9002 import adrv9002
from adi.adrv9009 import adrv9008_1, adrv9008_2, adrv9009
from adi.adrv9009_zu11eg import adrv9009_zu11eg
from adi.adrv9009_zu11eg_fmcomms8 import adrv9009_zu11eg_fmcomms8
from adi.adrv9009_zu11eg_multi import adrv9009_zu11eg_multi
from adi.adt7420 import adt7420
from adi.adxl313 import adxl313
from adi.adxl345 import adxl345
from adi.adxl355 import adxl355
from adi.adxl380 import adxl380
from adi.adxrs290 import adxrs290
from adi.axi_aion_trig import axi_aion_trig
from adi.cn0511 import cn0511
from adi.cn0532 import cn0532
from adi.cn0554 import cn0554
from adi.cn0556 import cn0556
from adi.cn0565 import cn0565
from adi.cn0566 import CN0566
from adi.cn0575 import cn0575
from adi.cn0579 import cn0579
from adi.daq2 import DAQ2
from adi.daq3 import DAQ3
from adi.fmc_vna import fmcvna
from adi.fmcadc3 import fmcadc3
from adi.fmcjesdadc1 import fmcjesdadc1
from adi.fmclidar1 import fmclidar1
from adi.fmcomms5 import FMComms5
from adi.fmcomms11 import FMComms11
from adi.gen_mux import genmux
from adi.hmc7044 import hmc7044
from adi.lm75 import lm75
from adi.ltc2314_14 import ltc2314_14
from adi.ltc2378 import ltc2378
from adi.ltc2387 import ltc2387
from adi.ltc2499 import ltc2499
from adi.ltc2664 import ltc2664
from adi.ltc2672 import ltc2672
from adi.ltc2688 import ltc2688
from adi.ltc2983 import ltc2983
from adi.max9611 import max9611
from adi.max11205 import max11205
from adi.max14001 import max14001
from adi.max31855 import max31855
from adi.max31865 import max31865
from adi.one_bit_adc_dac import one_bit_adc_dac
from adi.QuadMxFE_multi import QuadMxFE_multi
from adi.tdd import tdd
from adi.tddn import tddn
try:
from adi.jesd import jesd
except ImportError:
pass
__version__ = "0.0.21"
name = "Analog Devices Hardware Interfaces"
================================================
FILE: adi/ad2s1210.py
================================================
# Copyright (C) 2023-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.rx_tx import rx_def
# TODO: add support for events when libiio gains support for it
class ad2s1210_position_channel(attribute):
"""AD2S1210 position channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self) -> int:
"""AD2S1210 position channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self) -> float:
"""AD2S1210 position channel scale"""
return float(self._get_iio_attr(self.name, "scale", False))
class ad2s1210_velocity_channel(attribute):
"""AD2S1210 velocity channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self) -> int:
"""AD2S1210 velocity channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self) -> float:
"""AD2S1210 velocity channel scale"""
return float(self._get_iio_attr(self.name, "scale", False))
class ad2s1210(rx_def):
"""
AD2S1210 resolver to digital converter.
"""
compatible_parts = ["ad2s1210"]
_rx_data_device_name = "ad2s1210"
_control_device_name = "ad2s1210"
_complex_data = False
def __post_init__(self):
"""Create custom position and velocity channel objects"""
chan = self._ctrl.find_channel("angl0", False)
if chan is None:
raise Exception("angl0 channel not found")
self.position = ad2s1210_position_channel(self._ctrl, "angl0")
chan = self._ctrl.find_channel("anglvel0", False)
if chan is None:
raise Exception("anglvel0 channel not found")
self.velocity = ad2s1210_velocity_channel(self._ctrl, "anglvel0")
@property
def excitation_frequency(self) -> int:
"""
Gets and sets the excitation frequency in Hz.
Setting the value also does a soft reset of the device so that the
physical output is updated for the change.
"""
return self._get_iio_attr("altvoltage0", "frequency", True)
@excitation_frequency.setter
def excitation_frequency(self, value: int) -> None:
self._set_iio_attr("altvoltage0", "frequency", True, value)
@property
def hysteresis_enable(self) -> bool:
"""
Gets and sets the hysteresis bit in the Control register.
"""
return bool(self._get_iio_attr("angl0", "hysteresis", False))
@hysteresis_enable.setter
def hysteresis_enable(self, value: bool) -> None:
# This is just a boolean bit flag in the Control register but the
# IIO ABI requires us to use raw angle units so we have to look up
# the available values to find out what the raw value is for True.
# `avail` will be a list of two int values.
avail = self._get_iio_attr("angl0", "hysteresis_available", False)
self._set_iio_attr("angl0", "hysteresis", False, avail[bool(value)])
================================================
FILE: adi/ad353xr.py
================================================
# Copyright (C) 2025-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.device_base import tx_chan_comp
class ad353xr_channel(attribute):
"""AD353xr channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def input_register(self):
"""AD353xr channel input register value"""
return self._get_iio_attr(self.name, "input_register", True)
@input_register.setter
def input_register(self, value):
self._set_iio_attr(self.name, "input_register", True, str(int(value)))
@property
def raw(self):
"""AD353xr channel raw value"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""AD353xr channel offset"""
return self._get_iio_attr(self.name, "offset", True)
@property
def scale(self):
"""AD353xr channel scale"""
return self._get_iio_attr(self.name, "scale", True)
@property
def operating_mode_avail(self):
"""AD353xr channel operating mode settings"""
return self._get_iio_attr_str(self.name, "operating_mode_available", True)
@property
def operating_mode(self):
"""AD353xr channel operating mode"""
return self._get_iio_attr_str(self.name, "operating_mode", True)
@operating_mode.setter
def operating_mode(self, value):
if value in self.operating_mode_avail:
self._set_iio_attr(self.name, "operating_mode", True, value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.operating_mode_avail)
)
class ad353xr(tx_chan_comp):
""" AD353xr DAC """
channel = [] # type: ignore
compatible_parts = ["ad3530r", "ad3531r", "ad3532r"]
_device_name = ""
_complex_data = False
_channel_def = ad353xr_channel
def __post_init__(self):
"""Post-initialization to populate output_bits list."""
self._output_bits = []
for ch in self._ctrl.channels:
self._output_bits.append(ch.data_format.bits)
@property
def output_bits(self):
"""AD353xr channel-wise number of output bits list"""
return self._output_bits
@property
def sampling_frequency(self):
"""AD353xr sampling frequency config"""
return self._get_iio_dev_attr_str("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_dev_attr_str("sampling_frequency", value)
@property
def all_ch_operating_mode_avail(self):
"""AD353xr all channels operating mode available"""
return self._get_iio_dev_attr_str("all_ch_operating_mode_available")
@property
def all_ch_operating_mode(self):
"""AD353xr all channels operating mode config"""
return self._get_iio_dev_attr_str("all_ch_operating_mode")
@all_ch_operating_mode.setter
def all_ch_operating_mode(self, value):
if value in self.all_ch_operating_mode_avail:
self._set_iio_dev_attr_str("all_ch_operating_mode", value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.all_ch_operating_mode_avail)
)
@property
def all_ch_input_registers(self):
"""AD353xr all input registers config"""
return self._get_iio_dev_attr_str("all_ch_input_registers")
@all_ch_input_registers.setter
def all_ch_input_registers(self, value):
self._set_iio_dev_attr_str("all_ch_input_registers", value)
@property
def all_ch_raw(self):
"""AD353xr all dac registers config"""
return self._get_iio_dev_attr_str("all_ch_raw")
@all_ch_raw.setter
def all_ch_raw(self, value):
self._set_iio_dev_attr_str("all_ch_raw", value)
@property
def reference_select_available(self):
"""AD353xr reference voltage available"""
return self._get_iio_dev_attr_str("reference_select_available")
@property
def reference_select(self):
"""AD353xr reference voltage config"""
return self._get_iio_dev_attr_str("reference_select")
@reference_select.setter
def reference_select(self, value):
if value in self.reference_select_available:
self._set_iio_dev_attr_str("reference_select", value)
else:
raise ValueError(
"Error: Reference select not supported \nUse one of: "
+ str(self.reference_select_available)
)
@property
def sw_ldac_trigger_avail(self):
"""AD353xr sw_ldac_trigger available"""
return self._get_iio_dev_attr_str("sw_ldac_trigger_available")
@property
def sw_ldac_trigger(self):
"""AD353xr software ldac trigger config"""
return self._get_iio_dev_attr_str("sw_ldac_trigger")
@sw_ldac_trigger.setter
def sw_ldac_trigger(self, value):
if value in self.sw_ldac_trigger_avail:
self._set_iio_dev_attr_str("sw_ldac_trigger", value)
else:
raise ValueError(
"Error: Trigger value not supported \nUse one of: "
+ str(self.sw_ldac_trigger_avail)
)
@property
def hw_ldac_trigger_avail(self):
"""AD353xr hw_ldac_trigger available"""
return self._get_iio_dev_attr_str("hw_ldac_trigger_available")
@property
def hw_ldac_trigger(self):
"""AD353xr hardware ldac trigger config"""
return self._get_iio_dev_attr_str("hw_ldac_trigger")
@hw_ldac_trigger.setter
def hw_ldac_trigger(self, value):
if value in self.hw_ldac_trigger_avail:
self._set_iio_dev_attr_str("hw_ldac_trigger", value)
else:
raise ValueError(
"Error: Trigger value not supported \nUse one of: "
+ str(self.hw_ldac_trigger_avail)
)
@property
def range_avail(self):
"""AD353xr range available"""
return self._get_iio_dev_attr_str("range_available")
@property
def range(self):
"""AD353xr range config"""
return self._get_iio_dev_attr_str("range")
@range.setter
def range(self, value):
if value in self.range_avail:
self._set_iio_dev_attr_str("range", value)
else:
raise ValueError(
"Error: Range option not supported \nUse one of: "
+ str(self.range_avail)
)
@property
def mux_out_select_avail(self):
"""AD353xr mux_out_select available"""
return self._get_iio_dev_attr_str("mux_out_select_available")
@property
def mux_out_select(self):
"""AD353xr mux out select"""
return self._get_iio_dev_attr_str("mux_out_select")
@mux_out_select.setter
def mux_out_select(self, value):
if value in self.mux_out_select_avail:
self._set_iio_dev_attr_str("mux_out_select", value)
else:
raise ValueError(
"Error: Mux output option not supported \nUse one of: "
+ str(self.mux_out_select_avail)
)
================================================
FILE: adi/ad3552r.py
================================================
# Copyright (C) 2024-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
from adi.attribute import attribute
from adi.device_base import tx_chan_comp
class ad3552r_channel(attribute):
"""AD3552R channel"""
def __init__(self, ctrl, channel_name, output=None):
self.name = channel_name
self._ctrl = ctrl
self._output = output
@property
def raw(self):
"""Get channel raw value
DAC code in the range 0-65535"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
"""Set channel raw value"""
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""Get channel offset"""
return self._get_iio_attr_str(self.name, "offset", True)
@offset.setter
def offset(self, value):
"""Set channel offset"""
self._set_iio_attr(self.name, "offset", True, str(Decimal(value).real))
@property
def scale(self):
"""Get channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", True))
@scale.setter
def scale(self, value):
"""Set channel scale"""
self._set_iio_attr(self.name, "scale", True, str(Decimal(value).real))
class ad3552r(tx_chan_comp):
""" AD3552R DAC """
compatible_parts = ["ad3552r", "ad3542r"]
_complex_data = False
_channel_def = ad3552r_channel
_control_device_name = ""
_tx_data_device_name = ""
def __post_init__(self):
"""Set up output_bits list and named channel access."""
self.output_bits = []
for ch in self._ctrl.channels:
name = ch._id
output = ch._output
self.output_bits.append(ch.data_format.bits)
if output is True:
# Add named channel access for output channels
for i, chan in enumerate(self.channel):
if chan.name == name:
setattr(self, name, self.channel[i])
break
================================================
FILE: adi/ad3552r_hs.py
================================================
# Copyright (C) 2024-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import tx
class ad3552r_hs(tx, context_manager):
"""AD3552R_HS DAC"""
_complex_data = False
_device_name = "AD3552R_HS"
def __init__(self, uri="", device_name=""):
""" Constructor for AD3552R_HS driver class """
context_manager.__init__(self, uri, self._device_name)
compatible_parts = [
"ad3552r",
"ad3551r",
"ad3542r",
"ad3541r",
]
self._ctrl = None
self._txdac = None
if not device_name:
device_name = compatible_parts[0]
else:
if device_name not in compatible_parts:
raise Exception(
f"Not a compatible device: {device_name}. Supported device names "
f"are: {','.join(compatible_parts)}"
)
# Select the device matching device_name as working device
for device in self._ctx.devices:
if device.name == device_name:
self._ctrl = device
self._txdac = device
break
if not self._ctrl:
raise Exception("Error in selecting matching device")
if not self._txdac:
raise Exception("Error in selecting matching device")
self.output_bits = []
self.channel = []
self._tx_channel_names = []
for ch in self._ctrl.channels:
name = ch._id
output = ch._output
self.output_bits.append(ch.data_format.bits)
self._tx_channel_names.append(name)
self.channel.append(self._channel(self._ctrl, name, output))
if output is True:
setattr(self, name, self._channel(self._ctrl, name, output))
tx.__init__(self)
@property
def input_source(self):
"""Input source of the DAC"""
return self._get_iio_dev_attr_str("input_source", self._txdac)
@input_source.setter
def input_source(self, value):
self._set_iio_dev_attr_str("input_source", value, self._txdac)
@property
def stream_status(self):
"""Stream status of the DAC"""
return self._get_iio_dev_attr_str("stream_status", self._txdac)
@stream_status.setter
def stream_status(self, value):
self._set_iio_dev_attr_str("stream_status", value, self._txdac)
@property
def output_range(self):
"""Stream status of the DAC"""
return self._get_iio_dev_attr_str("output_range", self._txdac)
@output_range.setter
def output_range(self, value):
self._set_iio_dev_attr_str("output_range", value, self._txdac)
class _channel(attribute):
"""AD3552R_HS channel"""
def __init__(self, ctrl, channel_name, output):
self.name = channel_name
self._ctrl = ctrl
self._output = output
@property
def sample_rate(self):
"""Sample rate of the DAC"""
return self._get_iio_attr(self.name, "sampling_frequency", True)
@sample_rate.setter
def sample_rate(self, value):
self._set_iio_attr(self.name, "sampling_frequency", True, value)
@property
def raw(self):
"""Get channel raw value
DAC code in the range 0-65535"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
"""Set channel raw value"""
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""Get channel offset"""
return self._get_iio_attr_str(self.name, "offset", True)
@offset.setter
def offset(self, value):
"""Set channel offset"""
self._set_iio_attr(self.name, "offset", True, str(Decimal(value).real))
@property
def scale(self):
"""Get channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", True))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", True, str(Decimal(value).real))
================================================
FILE: adi/ad4020.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4020_channel(attribute):
"""AD4020 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD4020 channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""AD4020 channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
class ad4000_channel(ad4020_channel):
"""AD4000 channel"""
@property
def sampling_frequency(self):
"""Get and set the sampling frequency."""
return self._get_iio_attr(self.name, "sampling_frequency", False)
@sampling_frequency.setter
def sampling_frequency(self, value):
"""Set the sampling frequency."""
self._set_iio_attr(self.name, "sampling_frequency", False, value)
class __ad40xx_sr(object):
"""AD40xx sample rate control mixin class"""
@property
def sampling_frequency(self):
"""Get and set the sampling frequency."""
return self._get_iio_dev_attr("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
"""Set the sampling frequency."""
self._set_iio_dev_attr("sampling_frequency", value)
class ad4020(rx_chan_comp):
"""AD4020 device"""
channel = [] # type: ignore
compatible_parts = ["ad4020", "ad4021", "ad4022"]
_device_name = ""
_rx_data_type = np.int32
_complex_data = False
_channel_def = ad4020_channel
class ad4000(ad4020):
"""AD4000 device"""
compatible_parts = ["ad4000", "ad4004", "ad4008"]
_rx_data_type = np.uint16
_channel_def = ad4000_channel
def __init__(self, uri="", device_name="ad4000"):
super().__init__(uri, device_name)
class ad4001(ad4020, __ad40xx_sr):
"""AD4001 device"""
compatible_parts = ["ad4001", "ad4005"]
_rx_data_type = np.int16
def __init__(self, uri="", device_name="ad4001"):
super().__init__(uri, device_name)
class ad4002(ad4020):
"""AD4002 device"""
compatible_parts = ["ad4002", "ad4006", "ad4010"]
_rx_data_type = np.uint32
_channel_def = ad4000_channel
def __init__(self, uri="", device_name="ad4002"):
super().__init__(uri, device_name)
class ad4003(ad4020, __ad40xx_sr):
"""AD4003 device"""
compatible_parts = ["ad4003", "ad4007", "ad4011"]
_rx_data_type = np.int32
def __init__(self, uri="", device_name="ad4003"):
super().__init__(uri, device_name)
================================================
FILE: adi/ad405x.py
================================================
# Copyright (C) 2024-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad405x_channel(attribute):
"""AD405x channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD405x channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def offset(self):
"""AD405x channel system calibration"""
return self._get_iio_attr_str(self.name, "offset", False)
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
@property
def scale(self):
"""AD405x channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
class ad405x(rx_chan_comp):
""" AD405x ADC """
compatible_parts = ["ad4052", "ad4050", "ad4062", "ad4060"]
_device_name = ""
_complex_data = False
_channel_def = ad405x_channel
@property
def operating_mode_avail(self):
"""Get available operating modes."""
return self._get_iio_dev_attr_str("operating_mode_available")
@property
def operating_mode(self):
"""Get operating mode."""
return self._get_iio_dev_attr_str("operating_mode")
@operating_mode.setter
def operating_mode(self, value):
"""Set operating mode."""
if value in self.operating_mode_avail:
self._set_iio_dev_attr_str("operating_mode", value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.operating_mode_avail)
)
@property
def burst_sample_rate(self):
"""Get burst sample rate. Only available in Burst Averaging Mode."""
if "burst_sample_rate" in self._ctrl._attrs.keys():
return self._get_iio_dev_attr("burst_sample_rate")
else:
raise ValueError(
"Error: Burst sample rate not supported in " + self.operating_mode
)
@burst_sample_rate.setter
def burst_sample_rate(self, value):
"""Set burst sample rate."""
if "burst_sample_rate" in self._ctrl._attrs.keys():
self._set_iio_dev_attr("burst_sample_rate", value)
else:
raise Exception(
"Error: Burst sample rate not supported in " + self.operating_mode
)
@property
def avg_filter_length_avail(self):
"""Get available average filter length. Only available in Burst Averaging Mode."""
if "avg_filter_length_available" in self._ctrl._attrs.keys():
return self._get_iio_dev_attr("avg_filter_length_available")
else:
raise Exception(
"Error: Average filter length not supported in " + self.operating_mode
)
@property
def avg_filter_length(self):
"""Get average filter length. Only available in Burst Averaging Mode."""
if "avg_filter_length" in self._ctrl._attrs.keys():
return self._get_iio_dev_attr("avg_filter_length")
else:
raise Exception(
"Error: Average filter length not supported in " + self.operating_mode
)
@avg_filter_length.setter
def avg_filter_length(self, value):
"""Set average filter length."""
if "avg_filter_length_available" in self._ctrl._attrs.keys():
if value in self.avg_filter_length_avail:
self._set_iio_dev_attr("avg_filter_length", value)
else:
raise ValueError(
"Error: Average filter length not supported \nUse one of: "
+ str(self.avg_filter_length_avail)
)
else:
raise Exception(
"Error: Average filter length not supported in " + self.operating_mode
)
@property
def sampling_frequency(self):
"""Get sampling frequency."""
return self._get_iio_dev_attr("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
"""Set sampling_frequency."""
self._set_iio_dev_attr("sampling_frequency", value)
def to_volts(self, index, val):
"""Converts raw value to SI"""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.uint16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
return ret
================================================
FILE: adi/ad4080.py
================================================
# Copyright (C) 2025-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4080_channel(attribute):
"""AD4080 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def scale(self):
"""Get Scale value"""
return self._get_iio_attr("voltage0", "scale", False)
class ad4080(rx_chan_comp):
"""AD4080 ADC"""
channel = [] # type: ignore
compatible_parts = [
"ad4080",
"ad4081",
"ad4083",
"ad4084",
"ad4086",
"ad4087",
]
_device_name = ""
_complex_data = False
_channel_def = ad4080_channel
@property
def sampling_frequency(self):
"""Get Sampling frequency value"""
return self._get_iio_dev_attr("sampling_frequency", False)
@property
def oversampling_ratio_available(self):
"""Get the oversampling ratio available values"""
return self._get_iio_dev_attr("oversampling_ratio_available", False)
@property
def oversampling_ratio(self):
"""Get the oversampling ratio value"""
return self._get_iio_dev_attr("oversampling_ratio", False)
@oversampling_ratio.setter
def oversampling_ratio(self, value):
"""Set the oversampling ratio value"""
self._set_iio_dev_attr("oversampling_ratio", value)
@property
def filter_type_available(self):
"""Get the filter type available values"""
return self._get_iio_dev_attr_str("filter_type_available", False)
@property
def filter_type(self):
"""Get the filter type value"""
return self._get_iio_dev_attr_str("filter_type", False)
@filter_type.setter
def filter_type(self, value):
"""Set the filter type value"""
self._set_iio_dev_attr_str("filter_type", value)
def reg_read(self, reg):
"""Direct Register Access via debugfs"""
self._set_iio_debug_attr_str("direct_reg_access", reg, self._ctrl)
return self._get_iio_debug_attr_str("direct_reg_access", self._ctrl)
def reg_write(self, reg, value):
"""Direct Register Access via debugfs"""
self._set_iio_debug_attr_str("direct_reg_access", f"{reg} {value}", self._ctrl)
================================================
FILE: adi/ad4110.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4110_channel(attribute):
"""AD4110 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD4110 channel raw value."""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""AD4110 channel scale."""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
@property
def offset(self):
"""AD4110 channel offset."""
return float(self._get_iio_attr_str(self.name, "offset", False))
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
class ad4110(rx_chan_comp):
"""AD4110 ADC"""
channel = [] # type: ignore
compatible_parts = ["ad4110"]
_device_name = ""
_complex_data = False
_channel_def = ad4110_channel
def to_volts(self, index, val):
"""Converts raw value to SI."""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.int16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
if ret is None:
raise Exception("Error in converting to actual voltage")
return ret
================================================
FILE: adi/ad4130.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4130_channel(attribute):
"""AD4130 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD4130 channel raw value."""
return self._get_iio_attr(self.name, "raw", False)
@property
def offset(self):
"""AD4130 channel offset."""
return float(self._get_iio_attr_str(self.name, "offset", False))
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
@property
def scale(self):
"""AD4130 channel scale."""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
class ad4130(rx_chan_comp):
"""AD4130 ADC"""
channel = [] # type: ignore
compatible_parts = ["ad4130-8"]
_device_name = ""
_complex_data = False
_channel_def = ad4130_channel
def to_volts(self, index, val):
"""Converts raw value to SI."""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.int16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
return ret
================================================
FILE: adi/ad4170.py
================================================
# Copyright (C) 2024-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4170_channel(attribute):
"""AD4170 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD4170 channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def offset(self):
"""AD4170 channel offset"""
return float(self._get_iio_attr_str(self.name, "offset", False))
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
@property
def scale(self):
"""AD4170 channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
class ad4170(rx_chan_comp):
"""AD4170 ADC"""
channel = [] # type: ignore
compatible_parts = ["ad4170", "ad4190"]
_device_name = ""
_complex_data = False
_channel_def = ad4170_channel
def to_volts(self, index, val):
"""Converts raw value to SI"""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.int16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
return ret
================================================
FILE: adi/ad4630.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import rx
def _sign_extend(value, nbits):
sign_bit = 1 << (nbits - 1)
return (value & (sign_bit - 1)) - (value & sign_bit)
def _bitmask(nbits):
mask = 0
for i in range(0, nbits):
mask = (mask << 1) | 1
return mask
class ad4630(rx, context_manager, attribute):
""" AD4630 is low power precision SAR ADC family supporting 16-bit, 20-bit, and 24-bit variants """
_compatible_parts = [
"ad4630-24",
"ad4030-24",
"ad4630-16",
"ad4630-20",
"ad4632-20",
]
_complex_data = False
_data_type = np.uint32
_device_name = ""
_rx_channel_names = []
""" Default part to initialize is ad4630-24. If you don't hardware test fails"""
def __init__(self, uri="", device_name="ad4630-24"):
context_manager.__init__(self, uri, self._device_name)
if device_name not in self._compatible_parts:
raise Exception(
"Not a compatible device: "
+ str(device_name)
+ ". Please select from "
+ str(self._compatible_parts)
)
else:
self._ctrl = self._ctx.find_device(device_name)
self._rxadc = self._ctx.find_device(device_name)
_channels = []
self.output_bits = []
for ch in self._ctrl.channels:
self.output_bits.append(ch.data_format.bits)
self._rx_channel_names.append(ch.id)
_channels.append((ch.id, self._channel(self._ctrl, ch.id)))
if "0" in ch.id:
self.chan0 = self._channel(self._ctrl, ch.id)
if "1" in ch.id:
self.chan1 = self._channel(self._ctrl, ch.id)
rx.__init__(self)
def rx(self):
data = self._rx_buffered_data()
temp = []
if self._num_rx_channels != 2:
for ch in range(0, self._num_rx_channels):
nbits = self._ctrl.channels[ch].data_format.bits
shift = self._ctrl.channels[ch].data_format.shift
ch_data = np.zeros(data[int(ch / 2)].shape, dtype=np.uint32)
for index in range(0, len(data[int(ch / 2)])):
ch_data[index] = (data[int(ch / 2)][index] >> shift) & _bitmask(
nbits
)
temp.append(np.vectorize(_sign_extend)(ch_data, nbits))
data = temp
else:
for idx, ch_data in enumerate(data):
nbits = self._ctrl.channels[idx].data_format.bits
temp.append(np.vectorize(_sign_extend)(ch_data, nbits))
data = np.vectorize(_sign_extend)(data, nbits)
return data
@property
def output_data_mode(self):
"""Determine the output data mode in which device is configured."""
if self.output_bits[0] == 30:
return "30bit_avg"
if self.output_bits[0] == 32:
return "32bit_test_pattern"
if self.output_bits[0] == 16:
return "16bit_diff_8bit_cm"
if len(self.output_bits) == 1 and self.output_bits[0] == 24:
return "24bit_diff"
if len(self.output_bits) == 1 and self.output_bits[0] == 20:
return "20bit_diff"
if (
len(self.output_bits) == 2
and self.output_bits[0] == self.output_bits[1] == 24
):
return "24bit_diff"
if (
len(self.output_bits) == 2
and self.output_bits[0] == self.output_bits[1] == 20
):
return "20bit_diff"
if self.output_bits[0] == 20:
return "20bit_diff_8bit_cm"
else:
return "24bit_diff_8bit_cm"
@property
def sample_rate(self):
"""Get the sampling frequency."""
return self._get_iio_dev_attr("sampling_frequency")
@sample_rate.setter
def sample_rate(self, rate):
"""Set the sampling frequency."""
self._set_iio_dev_attr("sampling_frequency", str(rate))
class _channel(attribute):
"""AD4x30 differential channel."""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def calibbias(self):
"""Get calibration bias/offset value."""
return self._get_iio_attr(self.name, "calibbias", False, self._ctrl)
@calibbias.setter
def calibbias(self, calibbias):
"""Set calibration bias/offset value."""
self._set_iio_attr(
self.name, "calibbias", False, int(calibbias), self._ctrl
)
@property
def calibscale(self):
"""Get calibration scale value."""
return self._get_iio_attr(self.name, "calibscale", False, self._ctrl)
@calibscale.setter
def calibscale(self, calibscale):
"""Set calibration scale value."""
self._set_iio_attr(self.name, "calibscale", False, calibscale, self._ctrl)
@property
def oversampling_ratio_avail(self):
"""Get list of all the oversampling ratio values available. Only available in 30bit averaged mode."""
return self._get_iio_attr(
self.name, "oversampling_ratio_available", False, self._ctrl
)
@property
def oversampling_ratio(self):
"""Get the oversampling ratio. Only available in 30bit averaged mode."""
return self._get_iio_attr_str(
self.name, "oversampling_ratio", False, self._ctrl
)
@oversampling_ratio.setter
def oversampling_ratio(self, n_sample):
"""Set the oversampling ratio. Only available in 30bit averaged mode."""
if str(n_sample) in str(self.oversampling_ratio_avail):
self._set_iio_attr(
self.name, "oversampling_ratio", False, str(n_sample), self._ctrl,
)
else:
raise ValueError(
"Error: Number of avg samples not supported \nUse one of: "
+ str(self.oversampling_ratio_avail)
)
class adaq42xx(ad4630):
""" ADAQ4224 is a 24-bit precision SAR ADC data acquisition module """
_compatible_parts = ["adaq4224", "adaq4216", "adaq4220"]
def __init__(self, uri="", device_name="adaq4224"):
super().__init__(uri, device_name)
class _channel(ad4630._channel):
"""ADAQ42xx differential channel."""
@property
def scale_available(self):
"""Provides all available scale(gain) settings for the ADAQ42xx channel"""
return self._get_iio_attr(self.name, "scale_available", False)
@property
def scale(self):
"""ADAQ42xx channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
================================================
FILE: adi/ad469x.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad469x_channel(attribute):
"""AD469x base channel with attributes common to all parts."""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD469x channel raw value."""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""AD469x channel scale."""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
class ad4695_channel(ad469x_channel):
"""AD4695 channel with offset and calibration attributes (ad4695.c family)."""
@property
def offset(self):
"""AD469x channel offset."""
return self._get_iio_attr_str(self.name, "offset", False)
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, str(Decimal(value).real))
@property
def calibscale(self):
"""AD469x channel calibration scale."""
return float(self._get_iio_attr_str(self.name, "calibscale", False))
@calibscale.setter
def calibscale(self, value):
self._set_iio_attr(self.name, "calibscale", False, str(Decimal(value).real))
@property
def calibbias(self):
"""AD469x channel calibration bias."""
return self._get_iio_attr(self.name, "calibbias", False)
@calibbias.setter
def calibbias(self, value):
self._set_iio_attr(self.name, "calibbias", False, str(int(value)))
class ad4691_channel(ad469x_channel):
"""AD4691 channel with oversampling and sampling frequency (ad4691.c family)."""
@property
def scale(self):
"""AD4691 channel scale (device-level, shared by all channels)."""
return float(self._get_iio_dev_attr_str("scale"))
@scale.setter
def scale(self, value):
self._set_iio_dev_attr("scale", str(Decimal(value).real))
@property
def oversampling_ratio(self):
"""AD4691 channel oversampling ratio."""
return self._get_iio_attr(self.name, "oversampling_ratio", False)
@oversampling_ratio.setter
def oversampling_ratio(self, value):
self._set_iio_attr(self.name, "oversampling_ratio", False, str(int(value)))
@property
def oversampling_ratio_available(self):
"""List of available oversampling ratios."""
return self._get_iio_attr_str(self.name, "oversampling_ratio_available", False)
@property
def sampling_frequency(self):
"""AD4691 channel sampling frequency in Hz."""
return self._get_iio_attr(self.name, "sampling_frequency", False)
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_attr(self.name, "sampling_frequency", False, str(int(value)))
_AD4691_PARTS = {"ad4691", "ad4692", "ad4693", "ad4694"}
class ad469x(rx_chan_comp):
"""AD469x ADC.
Supports the ad4695.c Linux driver family (ad4695/96/97/98) and the
ad4691.c Linux driver family (ad4691/92/93/94).
"""
channel = [] # type: ignore
compatible_parts = [
"ad4691",
"ad4692",
"ad4693",
"ad4694",
"ad4695",
"ad4696",
"ad4697",
"ad4698",
]
_device_name = ""
_complex_data = False
_channel_def = ad469x_channel
def __init__(self, uri="", device_name=""):
if device_name in _AD4691_PARTS:
self._channel_def = ad4691_channel
else:
self._channel_def = ad4695_channel
super().__init__(uri=uri, device_name=device_name)
def to_volts(self, index, val):
"""Converts raw value to SI."""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.uint16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
if ret is None:
raise Exception("Error in converting to actual voltage")
return ret
================================================
FILE: adi/ad4858.py
================================================
# Copyright (C) 2020-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad4858_channel(attribute):
"""ad4858 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""Get channel raw value."""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""Get channel scale."""
return self._get_iio_attr(self.name, "scale", False)
@scale.setter
def scale(self, value):
"""Set channel scale."""
self._set_iio_attr(self.name, "scale", False, Decimal(value).real)
@property
def offset(self):
"""Get channel offset."""
return self._get_iio_attr(self.name, "offset", False)
@offset.setter
def offset(self, value):
"""Set channel offset."""
self._set_iio_attr(self.name, "offset", False, value)
@property
def calibbias(self):
"""Get calibration bias/offset value."""
return self._get_iio_attr(self.name, "calibbias", False)
@calibbias.setter
def calibbias(self, value):
"""Set channel calibration bias/offset."""
self._set_iio_attr(self.name, "calibbias", False, value)
@property
def calibphase(self):
"""Get calibration phase value."""
return self._get_iio_attr(self.name, "calibphase", False)
@calibphase.setter
def calibphase(self, value):
"""Set channel calibration phase."""
self._set_iio_attr(self.name, "calibphase", False, value)
@property
def hardwaregain(self):
"""Get calibration gain value."""
return self._get_iio_attr(self.name, "hardwaregain", False)
@hardwaregain.setter
def hardwaregain(self, value):
"""Set channel calibration gain."""
self._set_iio_attr(self.name, "hardwaregain", False, value)
@property
def softspan_avail(self):
"""Get list of all available softspans."""
return self._get_iio_attr_str(self.name, "softspan_available", False)
@property
def softspan(self):
"""Get softspan value."""
return self._get_iio_attr_str(self.name, "softspan", False)
@softspan.setter
def softspan(self, value):
"""Set softspan value."""
if value in self.softspan_avail:
self._set_iio_attr(self.name, "softspan", False, value)
else:
raise ValueError(
"Error: softspan not supported \nUse one of: "
+ str(self.softspan_avail)
)
class ad4858(rx_chan_comp):
"""AD4858 ADC"""
channel = [] # type: ignore
compatible_parts = ["ad4858"]
_device_name = ""
_complex_data = False
_channel_def = ad4858_channel
@property
def sampling_frequency(self):
"""Get sampling frequency."""
return self._get_iio_dev_attr("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
"""Set sampling frequency."""
self._set_iio_dev_attr("sampling_frequency", value)
@property
def oversampling_ratio_avail(self):
"""Get list of all available oversampling rates."""
return self._get_iio_dev_attr_str("oversampling_ratio_available")
@property
def oversampling_ratio(self):
"""Get oversampling ratio."""
return self._get_iio_dev_attr_str("oversampling_ratio")
@oversampling_ratio.setter
def oversampling_ratio(self, value):
"""Set oversampling ratio."""
if value in self.oversampling_ratio_avail:
self._set_iio_dev_attr_str("oversampling_ratio", value)
else:
raise ValueError(
"Error: oversampling ratio not supported \nUse one of: "
+ str(self.oversampling_ratio_avail)
)
@property
def packet_format_avail(self):
"""Get list of all available packet formats."""
return self._get_iio_dev_attr_str("packet_format_available")
@property
def packet_format(self):
"""Get packet format."""
return self._get_iio_dev_attr_str("packet_format")
@packet_format.setter
def packet_format(self, value):
"""Set packet format."""
if value in self.packet_format_avail:
self._set_iio_dev_attr_str("packet_format", value)
else:
raise ValueError(
"Error: packet format not supported \nUse one of: "
+ str(self.packet_format_avail)
)
def to_volts(self, index, val):
"""Converts raw value to SI."""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.int32):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
if ret is None:
raise Exception("Error in converting to actual voltage")
return ret
================================================
FILE: adi/ad514x.py
================================================
# Copyright (C) 2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.context_manager import context_manager
class ad514x(context_manager, attribute):
""" AD514x DigiPOTs """
compatible_parts = ["AD5141", "AD5142", "AD5142A", "AD5143", "AD5144"]
_complex_data = False
channel = [] # type: ignore
_device_name = ""
def __init__(self, uri="", device_name=""):
context_manager.__init__(self, uri, self._device_name)
self._ctrl = None
if not device_name:
device_name = self.compatible_parts[0]
else:
if device_name not in self.compatible_parts:
raise Exception("Not a compatible device: " + device_name)
# Select the device matching device_name as working device
for device in self._ctx.devices:
if device.name == device_name:
self._ctrl = device
break
self.channel = []
for ch in self._ctrl.channels:
name = ch._id
self.channel.append(self._channel(self._ctrl, name))
@property
def nvm_programming_avail(self):
"""Get nvm_programming options"""
return self._get_iio_dev_attr_str("nvm_programming_available")
@property
def nvm_programming(self):
"""Get nvm_programming value"""
return self._get_iio_dev_attr_str("nvm_programming")
@nvm_programming.setter
def nvm_programming(self, value):
"""Set nvm_programming value"""
if value in self.nvm_programming_avail:
self._set_iio_dev_attr_str("nvm_programming", value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.nvm_programming_avail)
)
@property
def rdac_wp_avail(self):
"""Get rdac_wp options"""
return self._get_iio_dev_attr_str("rdac_wp_available")
@property
def rdac_wp(self):
"""Get rdac_wp value"""
return self._get_iio_dev_attr_str("rdac_wp")
@rdac_wp.setter
def rdac_wp(self, value):
"""Set rdac_wp value"""
if value in self.rdac_wp_avail:
self._set_iio_dev_attr_str("rdac_wp", value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.rdac_wp_avail)
)
class _channel(attribute):
"""Digipots channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""Get channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@raw.setter
def raw(self, value):
"""Set channel raw value"""
self._set_iio_attr(self.name, "raw", False, str(int(value)))
@property
def eeprom_value(self):
"""Get channel eeprom value"""
return self._get_iio_attr(self.name, "eeprom_value", False)
@eeprom_value.setter
def eeprom_value(self, value):
"""Set channel eeprom value"""
self._set_iio_attr(self.name, "eeprom_value", False, str(int(value)))
@property
def input_reg_val(self):
"""Get channel input register value"""
return self._get_iio_attr(self.name, "input_reg_val", False)
@input_reg_val.setter
def input_reg_val(self, value):
"""Set channel input register value"""
self._set_iio_attr(self.name, "input_reg_val", False, str(int(value)))
@property
def bottom_scale_option(self):
"""Get bottom scale option"""
return self._get_iio_attr_str(self.name, "bottom_scale_option", False)
@property
def bottom_scale_option_avail(self):
"""Get bottom scale options"""
return self._get_iio_attr_str(
self.name, "bottom_scale_option_available", False
)
@bottom_scale_option.setter
def bottom_scale_option(self, value):
"""Set bottom scale option"""
if value in self.bottom_scale_option_avail:
self._set_iio_attr(self.name, "bottom_scale_option", False, value)
else:
raise ValueError(
"Error: Bottom_Scale_Option option not supported \nUse one of: "
+ str(self.bottom_scale_option_avail)
)
@property
def top_scale_option(self):
"""Get top scale options"""
return self._get_iio_attr_str(self.name, "top_scale_option", False)
@property
def top_scale_option_avail(self):
"""Get top scale options"""
return self._get_iio_attr_str(
self.name, "top_scale_option_available", False
)
@top_scale_option.setter
def top_scale_option(self, value):
"""Set top scale options"""
if value in self.top_scale_option_avail:
self._set_iio_attr(self.name, "top_scale_option", False, value)
else:
raise ValueError(
"Error: Top_Scale_Option option not supported \nUse one of: "
+ str(self.top_scale_option_avail)
)
@property
def copy_eeprom_to_rdac(self):
"""Get value"""
return self._get_iio_attr_str(self.name, "copy_eeprom_to_rdac", False)
@property
def copy_eeprom_to_rdac_avail(self):
"""Get options"""
return self._get_iio_attr_str(
self.name, "copy_eeprom_to_rdac_available", False
)
@copy_eeprom_to_rdac.setter
def copy_eeprom_to_rdac(self, value):
"""Set value"""
if value in self.copy_eeprom_to_rdac_avail:
self._set_iio_attr(self.name, "copy_eeprom_to_rdac", False, value)
else:
raise ValueError(
"Error: copy_eeprom_to_rdac option not supported \nUse one of: "
+ str(self.copy_eeprom_to_rdac_avail)
)
@property
def copy_rdac_to_eeprom(self):
"""Get value"""
return self._get_iio_attr_str(self.name, "copy_rdac_to_eeprom", False)
@property
def copy_rdac_to_eeprom_avail(self):
"""Get options"""
return self._get_iio_attr_str(
self.name, "copy_rdac_to_eeprom_available", False
)
@copy_rdac_to_eeprom.setter
def copy_rdac_to_eeprom(self, value):
"""Set value"""
if value in self.copy_rdac_to_eeprom_avail:
self._set_iio_attr(self.name, "copy_rdac_to_eeprom", False, value)
else:
raise ValueError(
"Error: copy_rdac_to_eeprom option not supported \nUse one of: "
+ str(self.copy_rdac_to_eeprom_avail)
)
@property
def shutdown(self):
"""Get shutdown value"""
return self._get_iio_attr_str(self.name, "shutdown", False)
@property
def shutdown_avail(self):
"""Get shutdown options"""
return self._get_iio_attr_str(self.name, "shutdown_available", False)
@shutdown.setter
def shutdown(self, value):
"""Set shutdown"""
if value in self.shutdown_avail:
self._set_iio_attr(self.name, "shutdown", False, value)
else:
raise ValueError(
"Error: shutdown option not supported \nUse one of: "
+ str(self.shutdown_avail)
)
@property
def rdac_6db(self):
"""Get rdac_6db value"""
return self._get_iio_attr_str(self.name, "rdac_6db", False)
@property
def rdac_6db_avail(self):
"""Get rdac_6db options"""
return self._get_iio_attr_str(self.name, "rdac_6db_available", False)
@rdac_6db.setter
def rdac_6db(self, value):
"""Set rdac_6db value"""
if value in self.rdac_6db_avail:
self._set_iio_attr(self.name, "rdac_6db", False, value)
else:
raise ValueError(
"Error: rdac_6db option not supported \nUse one of: "
+ str(self.rdac_6db_avail)
)
@property
def rdac_linear(self):
"""Get rdac_linear value"""
return self._get_iio_attr_str(self.name, "rdac_linear", False)
@property
def rdac_linear_avail(self):
"""Get rdac_linear options"""
return self._get_iio_attr_str(self.name, "rdac_linear_available", False)
@rdac_linear.setter
def rdac_linear(self, value):
"""Set rdac_linear value"""
if value in self.rdac_linear_avail:
self._set_iio_attr(self.name, "rdac_linear", False, value)
else:
raise ValueError(
"Error: rdac_linear option not supported \nUse one of: "
+ str(self.rdac_linear_avail)
)
@property
def sw_lrdac(self):
"""Get sw_lrdac value"""
return self._get_iio_attr_str(self.name, "sw_lrdac", False)
@property
def sw_lrdac_avail(self):
"""Get sw_lrdac options"""
return self._get_iio_attr_str(self.name, "sw_lrdac_available", False)
@sw_lrdac.setter
def sw_lrdac(self, value):
"""Set sw_lrdac value"""
if value in self.sw_lrdac_avail:
self._set_iio_attr(self.name, "sw_lrdac", False, value)
else:
raise ValueError(
"Error: sw_lrdac option not supported \nUse one of: "
+ str(self.sw_lrdac_avail)
)
@property
def scale(self):
"""Get scale value"""
return self._get_iio_attr_str(self.name, "scale", False)
================================================
FILE: adi/ad5592r.py
================================================
# Copyright (C) 2022-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import rx
class ad5592r(rx, context_manager):
"""AD5592R and AD5593R SPI / I2C interface, 8-channel, 12-bit Confiburable ADC/DAC, digital GPIO
Analog I/O pins are configured in the device tree and can be ADC, DAC, or both. Channel attributes are as follows, where X corresponds to device channel number:
voltageX_adc.raw: Raw 12-bit ADC code. read only for ADC channels\n
voltageX_adc.scale: ADC scale, millivolts per lsb\n
voltageX_adc.scale_available: Available scales, corresponding to Vref*1, Vref*2\n
voltageX(): Returns ADC reading in millivolts (read only)\n
voltageX_dac.raw: Raw 12-bit DAC code. read/write for DAC channels\n
voltageX_dac.scale: ADC scale, millivolts per lsb\n
voltageX_dac.scale_available: Available scales (corresponding to 1X/2X gain)\n
voltageX(1234.5): Sets/Returns ADC reading in millivolts\n
temp.raw: Temperature raw value\n
temp.scale: Temperature scale value\n
temp.offset Temperature offset value\n
temp(): Returns temperature in degrees Celsius\n
"""
_device_name = ""
_complex_data = False
def __repr__(self):
retstr = f"""
ad5592r(uri="{self.uri}, device_name={self._device_name})"
{self.__doc__}
"""
return retstr
def __init__(self, uri="", device_name=""):
context_manager.__init__(self, uri, self._device_name)
compatible_parts = [
"ad5592r",
"ad5593r",
]
self.ctrl = None
if not device_name:
device_name = compatible_parts[0]
else:
if device_name not in compatible_parts:
raise Exception("Not a compatible device: " + device_name)
# Selecting the device matching device_name AD559XR family as working device.
for device in self._ctx.devices:
if device.name in device_name:
self._ctrl = device
self._rxadc = device
buffers_avail = any([c.scan_element for c in self._rxadc.channels])
if not buffers_avail:
self.rx = None
break
self.channel = []
if buffers_avail:
self._rx_channel_names = []
# Dynamically get channels after the index
for ch in self._ctrl.channels:
name = ch._id
output = ch._output
if name == "temp":
setattr(self, name, self._channel_temp(self._ctrl, name, output))
else:
if output is True and "voltage" in name:
setattr(
self, name + "_dac", self._channel_dac(self._ctrl, name, output)
)
if output is False and "voltage" in name:
if buffers_avail:
self._rx_channel_names.append(name)
self.channel.append(self._channel_adc(self._ctrl, name, output))
setattr(
self, name + "_adc", self._channel_adc(self._ctrl, name, output)
)
if buffers_avail:
rx.__init__(self)
class _channel_adc(attribute):
"""AD5592R Input Voltage Channels"""
# AD559XR ADC channel
def __init__(self, ctrl, channel_name, output):
self.name = channel_name
self._ctrl = ctrl
self._output = output
@property
# AD559XR channel raw value, property only for ADC channels
def raw(self):
return self._get_iio_attr(self.name, "raw", self._output)
@property
# AD559XR channel scale (gain)
def scale(self):
return float(self._get_iio_attr_str(self.name, "scale", self._output))
@scale.setter
def scale(self, value):
scale_available = self._get_iio_attr(
self.name, "scale_available", self._output
)
for scale_available_0 in scale_available:
if scale_available_0 == value:
self._set_iio_attr(
self.name,
"scale",
self._output,
value, # str(Decimal(value).real) # Why do some device classes use Decimal??
)
@property
def scale_available(self):
"""Available scales"""
return self._get_iio_attr(self.name, "scale_available", self._output)
def __call__(self, mV=None):
"""Convenience function, set / get voltages in SI units (millivolts)"""
if mV is not None:
self.raw = int(float(mV) / float(self.scale))
return self.raw * self.scale
class _channel_dac(_channel_adc):
"""AD5592R Output Voltage Channels
(Add setter to raw property)"""
# AD559XR DAC channel
def __init__(self, ctrl, channel_name, output):
super().__init__(ctrl, channel_name, output)
@property
# AD559XR channel raw value
def raw(self):
return self._get_iio_attr(self.name, "raw", self._output)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", self._output, value)
class _channel_temp(attribute):
"""AD5592R Temperature Channel"""
# AD559XR voltage channel
def __init__(self, ctrl, channel_name, output):
self.name = channel_name
self._ctrl = ctrl
self._output = output
@property
# AD559XR channel raw value
def raw(self):
return self._get_iio_attr(self.name, "raw", self._output)
@property
# AD559XR channel scale (gain)
def scale(self):
return float(self._get_iio_attr_str(self.name, "scale", self._output))
@property
# AD559XR channel temp offset value
def offset(self):
return self._get_iio_attr(self.name, "offset", self._output)
def __call__(self, mV=None):
"""Convenience function, get temperature in SI units (Degrees C)"""
return ((self.raw + self.offset) * self.scale) / 1000
================================================
FILE: adi/ad5627.py
================================================
# Copyright (C) 2019-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.context_manager import context_manager
from adi.rx_tx import tx
class ad5627(tx, context_manager):
""" AD5627 Low Power Dual nanoDAC """
_complex_data = False
_tx_channel_names = ["voltage0", "voltage1"]
_device_name = ""
def __init__(self, uri=""):
context_manager.__init__(self, uri, self._device_name)
self._txdac = self._ctx.find_device("ad5627")
tx.__init__(self)
@staticmethod
def _adp_bias_volts_to_raw_convert(value, inverse):
"""Convert ADP bias from user values to internal values (or reverse)."""
ret = 0.0
if inverse:
ret = -((value * 5 * 18.18) / 4096) + 122
else:
ret = ((-122 - value) * 4096) / (5 * 18.18)
return ret
@property
def apdbias(self):
"""Get the APD Bias."""
bias = self._get_iio_attr("voltage0", "raw", True, self._txdac)
return self._adp_bias_volts_to_raw_convert(bias, True)
@apdbias.setter
def apdbias(self, value):
"""Set the APD Bias."""
bias = self._adp_bias_volts_to_raw_convert(value, False)
self._set_iio_attr_float("voltage0", "raw", True, bias, self._txdac)
@staticmethod
def _tilt_volts_to_raw_convert(value, inverse):
"""Convert tilt voltage from user values to internal values (or reverse)."""
ret = 0.0
if inverse:
ret = (value * 5) / 4096
else:
ret = (value * 4096) / 5
return ret
@property
def tiltvoltage(self):
"""Get the Tilt Voltage."""
voltage = self._get_iio_attr("voltage1", "raw", True, self._txdac)
return self._tilt_volts_to_raw_convert(voltage, True)
@tiltvoltage.setter
def tiltvoltage(self, voltage):
"""Set the Tilt Voltage."""
voltage = self._tilt_volts_to_raw_convert(voltage, False)
self._set_iio_attr_float("voltage1", "raw", True, voltage, self._txdac)
================================================
FILE: adi/ad5686.py
================================================
# Copyright (C) 2019-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
import numpy as np
from adi.attribute import attribute
from adi.device_base import tx_chan_comp_no_buff
class ad5686_channel(attribute):
"""AD5686 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD5686 channel raw value"""
return self._get_iio_attr(self.name, "raw", True, self._ctrl)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def powerdown(self):
"""AD5686 channel powerdown value"""
return self._get_iio_attr(self.name, "powerdown", True)
@powerdown.setter
def powerdown(self, val):
"""AD5686 channel powerdown value"""
self._set_iio_attr(self.name, "powerdown", True, val)
@property
def powerdown_mode(self):
"""AD5686 channel powerdown mode value"""
return self._get_iio_attr_str(self.name, "powerdown_mode", True)
@powerdown_mode.setter
def powerdown_mode(self, val):
"""AD5686 channel powerdown value"""
self._set_iio_attr_str(self.name, "powerdown_mode", True, val)
@property
def powerdown_mode_available(self):
"""Provides all available powerdown mode settings for the AD5686"""
return self._get_iio_attr_str(self.name, "powerdown_mode_available", True)
@property
def scale(self):
"""AD5686 channel scale(gain)"""
return self._get_iio_attr(self.name, "scale", True)
def to_raw(self, val):
"""Converts raw value to SI"""
return int(1000.0 * val / self.scale)
@property
def volts(self):
"""AD5686 channel value in volts"""
return self.raw * self.scale
@volts.setter
def volts(self, val):
"""AD5686 channel value in volts"""
self.raw = self.to_raw(val)
class ad5686(tx_chan_comp_no_buff):
""" AD5686 DAC """
compatible_parts = [
"ad5686",
"ad5310r",
"ad5311r",
"ad5671r",
"ad5672r",
"ad5673r",
"ad5674r",
"ad5675r",
"ad5676",
"ad5676r",
"ad5677r",
"ad5679r",
"ad5681r",
"ad5682r",
"ad5683",
"ad5683r",
"ad5684",
"ad5684r",
"ad5685r",
"ad5686r",
"ad5691r",
"ad5692r",
"ad5693",
"ad5693r",
"ad5694",
"ad5694r",
"ad5695r",
"ad5696",
"ad5696r",
]
_complex_data = False
_channel_def = ad5686_channel
_device_name = ""
================================================
FILE: adi/ad5706r.py
================================================
# Copyright (C) 2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import tx
class ad5706r(tx, context_manager):
""" ad5706r DAC """
_complex_data = False
_device_name = ""
def __init__(self, uri="", device_name=""):
"""Constructor for ad5706r class."""
context_manager.__init__(self, uri, self._device_name)
compatible_parts = ["ad5706r"]
self._ctrl = None
if not device_name:
device_name = compatible_parts[0]
else:
if device_name not in compatible_parts:
raise Exception(
f"Not a compatible device: {device_name}. Supported device names "
f"are: {','.join(compatible_parts)}"
)
# Select the device matching device_name as working device
for device in self._ctx.devices:
if device.name == device_name:
self._ctrl = device
self._txdac = device
break
if not self._ctrl:
raise Exception("Error in selecting matching device")
if not self._txdac:
raise Exception("Error in selecting matching device")
self.channel = [] # type: ignore
self._output_bits = []
for ch in self._ctrl.channels:
name = ch.id
self._output_bits.append(ch.data_format.bits)
self._tx_channel_names.append(name)
self.channel.append(self._channel(self._ctrl, name))
setattr(self, name, self._channel(self._ctrl, name))
tx.__init__(self)
@property
def output_bits(self):
"""AD5706r channel-wise number of output bits list"""
return self._output_bits
@property
def sampling_frequency(self):
"""ad5706r sampling frequency config"""
return self._get_iio_dev_attr_str("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_dev_attr_str("sampling_frequency", value)
@property
def dev_addr(self):
"""AD5706R multi-drop spi address config"""
return self._get_iio_dev_attr_str("dev_addr")
@dev_addr.setter
def dev_addr(self, value):
"""Set device address."""
self._set_iio_dev_attr_str("dev_addr", value)
@property
def addr_ascension(self):
"""AD5706R Address Ascension"""
return self._get_iio_dev_attr_str("addr_ascension")
@property
def addr_ascension_available(self):
"""addr_ascension_available: Options are:
descending, ascending"""
return self._get_iio_dev_attr_str("addr_ascension_available")
@addr_ascension.setter
def addr_ascension(self, value):
"""Configure the Address Ascension."""
if value in self.addr_ascension_available:
self._set_iio_dev_attr_str("addr_ascension", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.addr_ascension_available)
)
@property
def single_instr(self):
"""ad5706r Single instruction"""
return self._get_iio_dev_attr_str("single_instr")
@property
def single_instr_available(self):
"""single_instr_available: Options are:
single_instruction, streaming"""
return self._get_iio_dev_attr_str("single_instr_available")
@single_instr.setter
def single_instr(self, value):
"""Configure the Address Ascension."""
if value in self.single_instr_available:
self._set_iio_dev_attr_str("single_instr", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.single_instr_available)
)
@property
def hw_ldac_tg_state(self):
"""ad5706r HW LDAC/TG PWM"""
return self._get_iio_dev_attr_str("hw_ldac_tg_state")
@property
def hw_ldac_tg_state_available(self):
"""hw_ldac_tg_state_available: Options are:
low, high"""
return self._get_iio_dev_attr_str("hw_ldac_tg_state_available")
@hw_ldac_tg_state.setter
def hw_ldac_tg_state(self, value):
"""Toggle the HW LDAC/TG pin."""
if value in self.hw_ldac_tg_state_available:
self._set_iio_dev_attr_str("hw_ldac_tg_state", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.hw_ldac_tg_state_available)
)
@property
def hw_shutdown_state(self):
"""ad5706r HW Shutdown State"""
return self._get_iio_dev_attr_str("hw_shutdown_state")
@property
def hw_shutdown_state_available(self):
"""hw_shutdown_state_available: Options are:
low, high"""
return self._get_iio_dev_attr_str("hw_shutdown_state_available")
@hw_shutdown_state.setter
def hw_shutdown_state(self, value):
"""Toggle the HW Shutdown pin."""
if value in self.hw_shutdown_state_available:
self._set_iio_dev_attr_str("hw_shutdown_state", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.hw_shutdown_state_available)
)
@property
def mux_out_sel(self):
"""ad5706r Mux Output Select"""
return self._get_iio_dev_attr_str("mux_out_sel")
@property
def mux_out_sel_available(self):
"""mux_out_sel_available: Options are:
agnd, avdd, vref, agnd, iout0_vmon, iout1_vmon, iout2_vmon, iout3_vmon,
iout0_imon, iout1_imon, iout2_imon, iout3_imon, pvdd0, pvdd1, pvdd2, pvdd3
tdiode_ch0, tdiode_ch1, tdiode_ch2, tdiode_ch3, mux_in0, mux_in1, mux_in2, mux_in03"""
return self._get_iio_dev_attr_str("mux_out_sel_available")
@mux_out_sel.setter
def mux_out_sel(self, value):
"""Configure the Mux output."""
if value in self.mux_out_sel_available:
self._set_iio_dev_attr_str("mux_out_sel", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.mux_out_sel_available)
)
@property
def ref_select(self):
"""ad5706r Reference Select"""
return self._get_iio_dev_attr_str("ref_select")
@property
def ref_select_available(self):
"""ref_select_available: Options are:
internal, external"""
return self._get_iio_dev_attr_str("ref_select_available")
@ref_select.setter
def ref_select(self, value):
"""Configure the reference select."""
if value in self.ref_select_available:
self._set_iio_dev_attr_str("ref_select", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.ref_select_available)
)
@property
def multi_dac_sw_ldac_trigger(self):
"""ad5706r Multi DAC SW LDAC Trigger"""
return self._get_iio_dev_attr_str("multi_dac_sw_ldac_trigger")
@property
def multi_dac_sw_ldac_trigger_available(self):
"""multi_dac_sw_ldac_trigger_available: Options are:
trigger"""
return self._get_iio_dev_attr_str("multi_dac_sw_ldac_trigger_available")
@multi_dac_sw_ldac_trigger.setter
def multi_dac_sw_ldac_trigger(self, value):
"""Configure the Multi DAC SW LDAC Trigger."""
if value in self.multi_dac_sw_ldac_trigger:
self._set_iio_dev_attr_str("multi_dac_sw_ldac_trigger", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.multi_dac_sw_ldac_trigger_available)
)
@property
def hw_ldac_tg_pwm(self):
"""ad5706r HW LDAC/TG PWM"""
return self._get_iio_dev_attr_str("hw_ldac_tg_pwm")
@property
def hw_ldac_tg_pwm_available(self):
"""hw_ldac_tg_pwm_available: Options are:
disable, enable"""
return self._get_iio_dev_attr_str("hw_ldac_tg_pwm_available")
@hw_ldac_tg_pwm.setter
def hw_ldac_tg_pwm(self, value):
"""Enable/Disable the HW LDAC/TG PWM."""
if value in self.hw_ldac_tg_pwm_available:
self._set_iio_dev_attr_str("hw_ldac_tg_pwm", value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.hw_ldac_tg_pwm_available)
)
@property
def reference_volts(self):
"""ad5706r Reference value"""
return float(self._get_iio_dev_attr_str("reference_volts"))
@reference_volts.setter
def reference_volts(self, value):
"""Set the ad5706r Reference value"""
self._set_iio_dev_attr_str("reference_volts", value)
@property
def multi_dac_input_a(self):
"""ad5706r Multi DAC Input Register A value"""
return int(self._get_iio_dev_attr("multi_dac_input_a"))
@multi_dac_input_a.setter
def multi_dac_input_a(self, value):
"""Set the ad5706r Multi DAC Input Register A value"""
self._set_iio_dev_attr_str("multi_dac_input_a", value)
class _channel(attribute):
"""ad5706r channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""ad5706r channel raw value"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""ad5706r channel offset"""
return self._get_iio_attr(self.name, "offset", True)
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", True, str(Decimal(value).real))
@property
def scale(self):
"""ad5706r channel scale"""
return self._get_iio_attr(self.name, "scale", True)
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", True, str(Decimal(value).real))
@property
def input_register_a(self):
"""ad5706r channel Input Register A value"""
return int(self._get_iio_attr_str(self.name, "input_register_a", True))
@input_register_a.setter
def input_register_a(self, value):
"""Set the ad5706r channel Input Register A value"""
self._set_iio_attr(self.name, "input_register_a", True, value)
@property
def input_register_b(self):
"""ad5706r channel Input Register B value"""
return int(self._get_iio_attr_str(self.name, "input_register_b", True))
@input_register_b.setter
def input_register_b(self, value):
"""Set the ad5706r channel Input Register B value"""
self._set_iio_attr(self.name, "input_register_b", True, value)
@property
def hw_active_edge(self):
"""ad5706r channel HW active edge"""
return self._get_iio_attr_str(self.name, "hw_active_edge", True)
@property
def hw_active_edge_available(self):
"""ad5706r channel HW active edge options. Options are:
rising_edge, falling_edge, any_edge"""
return self._get_iio_attr_str(self.name, "hw_active_edge_available", True)
@hw_active_edge.setter
def hw_active_edge(self, value):
"""Set the HW active edge for the channel."""
if value in self.hw_active_edge_available:
self._set_iio_attr(self.name, "hw_active_edge", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.hw_active_edge_available)
)
@property
def multi_dac_sel_ch(self):
"""ad5706r Multi DAC channel select"""
return self._get_iio_attr_str(self.name, "multi_dac_sel_ch", True)
@property
def multi_dac_sel_ch_available(self):
"""ad5706r Multi DAC Channel Select options. Options are:
exclude, include"""
return self._get_iio_attr_str(self.name, "multi_dac_sel_ch_available", True)
@multi_dac_sel_ch.setter
def multi_dac_sel_ch(self, value):
"""Set the Multi DAC Channel."""
if value in self.multi_dac_sel_ch_available:
self._set_iio_attr(self.name, "multi_dac_sel_ch", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.multi_dac_sel_ch_available)
)
@property
def range_sel(self):
"""ad5706r channel range selection"""
return self._get_iio_attr_str(self.name, "range_sel", True)
@property
def range_sel_available(self):
"""ad5706r channel range options. Options are:
50mA, 150mA, 200mA, 300mA"""
return self._get_iio_attr_str(self.name, "range_sel_available", True)
@range_sel.setter
def range_sel(self, value):
"""Set the range for the channel."""
if value in self.range_sel_available:
self._set_iio_attr(self.name, "range_sel", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.range_sel_available)
)
@property
def ldac_trigger_chn(self):
"""ad5706r LDAC Trigger Chn setting"""
return self._get_iio_attr_str(self.name, "ldac_trigger_chn", True)
@property
def ldac_trigger_chn_available(self):
"""ad5706r channel LDAC trigger options. Options are:
None, sw_ldac, hw_ldac"""
return self._get_iio_attr_str(self.name, "ldac_trigger_chn_available", True)
@ldac_trigger_chn.setter
def ldac_trigger_chn(self, value):
"""Trigger LDAC for the channel."""
if value in self.ldac_trigger_chn_available:
self._set_iio_attr(self.name, "ldac_trigger_chn", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.ldac_trigger_chn_available)
)
@property
def toggle_trigger_chn(self):
"""ad5706r Toggle Trigger Chn setting"""
return self._get_iio_attr_str(self.name, "toggle_trigger_chn", True)
@property
def toggle_trigger_chn_available(self):
"""ad5706r channel Toggle trigger options. Options are:
None, sw_toggle, hw_toggle"""
return self._get_iio_attr_str(
self.name, "toggle_trigger_chn_available", True
)
@toggle_trigger_chn.setter
def toggle_trigger_chn(self, value):
"""Trigger Toggle for the channel."""
if value in self.toggle_trigger_chn_available:
self._set_iio_attr(self.name, "toggle_trigger_chn", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.toggle_trigger_chn_available)
)
@property
def hw_func_sel(self):
"""ad5706r HW function setting"""
return self._get_iio_attr_str(self.name, "hw_func_sel", True)
@property
def hw_func_sel_available(self):
"""ad5706r channel HW function options. Options are:
None, LDAC, Toggle, Dither"""
return self._get_iio_attr_str(self.name, "hw_func_sel_available", True)
@hw_func_sel.setter
def hw_func_sel(self, value):
"""Set HW function for the channel."""
if value in self.hw_func_sel_available:
self._set_iio_attr(self.name, "hw_func_sel", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.hw_func_sel_available)
)
@property
def output_state(self):
"""ad5706r channel output state setting"""
return self._get_iio_attr_str(self.name, "output_state", True)
@property
def output_state_available(self):
"""ad5706r channel output state options. Options are:
shutdown_to_tristate_sw, shutdown_to_gnd_sw, normal_sw,
shutdown_to_tristate_hw, shutdown_to_gnd_hw, normal_hw"""
return self._get_iio_attr_str(self.name, "output_state_available", True)
@output_state.setter
def output_state(self, value):
"""Set output state for the channel."""
if value in self.output_state_available:
self._set_iio_attr(self.name, "output_state", True, value)
else:
raise ValueError(
"Error: Attribute value not supported \nUse one of: "
+ str(self.output_state_available)
)
================================================
FILE: adi/ad5710r.py
================================================
# Copyright (C) 2025-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import tx
class ad5710r(tx, context_manager):
""" AD5710r DAC """
_complex_data = False
_device_name = ""
def __init__(self, uri="", device_name=""):
"""Constructor for AD5710r class."""
context_manager.__init__(self, uri, self._device_name)
compatible_parts = ["ad5710r"]
self._ctrl = None
if not device_name:
device_name = compatible_parts[0]
else:
if device_name not in compatible_parts:
raise Exception(
f"Not a compatible device: {device_name}. Supported device names "
f"are: {','.join(compatible_parts)}"
)
# Select the device matching device_name as working device
for device in self._ctx.devices:
if device.name == device_name:
self._ctrl = device
self._txdac = device
break
if not self._ctrl:
raise Exception("Error in selecting matching device")
if not self._txdac:
raise Exception("Error in selecting matching device")
self.channel = [] # type: ignore
self._output_bits = []
for ch in self._ctrl.channels:
name = ch.id
self._output_bits.append(ch.data_format.bits)
self._tx_channel_names.append(name)
self.channel.append(self._channel(self._ctrl, name))
setattr(self, name, self._channel(self._ctrl, name))
tx.__init__(self)
@property
def output_bits(self):
"""AD5710r channel-wise number of output bits list"""
return self._output_bits
### Add device attributes here ###
@property
def sampling_frequency(self):
"""AD5710r sampling frequency config"""
return self._get_iio_dev_attr_str("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_dev_attr_str("sampling_frequency", value)
@property
def all_ch_operating_mode_avail(self):
"""AD5710r all channels operating mode available"""
return self._get_iio_dev_attr_str("all_ch_operating_mode_available")
@property
def all_ch_operating_mode(self):
"""AD5710r all channels operating mode config"""
return self._get_iio_dev_attr_str("all_ch_operating_mode")
@all_ch_operating_mode.setter
def all_ch_operating_mode(self, value):
if value in self.all_ch_operating_mode_avail:
self._set_iio_dev_attr_str("all_ch_operating_mode", value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.all_ch_operating_mode_avail)
)
@property
def all_ch_input_registers(self):
"""AD5710r all input registers config"""
return self._get_iio_dev_attr_str("all_ch_input_registers")
@all_ch_input_registers.setter
def all_ch_input_registers(self, value):
self._set_iio_dev_attr_str("all_ch_input_registers", value)
@property
def all_ch_raw(self):
"""AD5710r all dac registers config"""
return self._get_iio_dev_attr_str("all_ch_raw")
@all_ch_raw.setter
def all_ch_raw(self, value):
self._set_iio_dev_attr_str("all_ch_raw", value)
@property
def reference_select_available(self):
"""AD5710r reference voltage available"""
return self._get_iio_dev_attr_str("reference_select_available")
@property
def reference_select(self):
"""AD5710r reference voltage config"""
return self._get_iio_dev_attr_str("reference_select")
@reference_select.setter
def reference_select(self, value):
if value in self.reference_select_available:
self._set_iio_dev_attr_str("reference_select", value)
else:
raise ValueError(
"Error: Reference select not supported \nUse one of: "
+ str(self.reference_select_available)
)
@property
def sw_ldac_trigger_avail(self):
"""AD5710r sw_ldac_trigger available"""
return self._get_iio_dev_attr_str("sw_ldac_trigger_available")
@property
def sw_ldac_trigger(self):
"""AD5710r software ldac trigger config"""
return self._get_iio_dev_attr_str("sw_ldac_trigger")
@sw_ldac_trigger.setter
def sw_ldac_trigger(self, value):
if value in self.sw_ldac_trigger_avail:
self._set_iio_dev_attr_str("sw_ldac_trigger", value)
else:
raise ValueError(
"Error: Trigger value not supported \nUse one of: "
+ str(self.sw_ldac_trigger_avail)
)
@property
def hw_ldac_trigger_avail(self):
"""AD5710r hw_ldac_trigger available"""
return self._get_iio_dev_attr_str("hw_ldac_trigger_available")
@property
def hw_ldac_trigger(self):
"""AD5710r hardware ldac trigger config"""
return self._get_iio_dev_attr_str("hw_ldac_trigger")
@hw_ldac_trigger.setter
def hw_ldac_trigger(self, value):
if value in self.hw_ldac_trigger_avail:
self._set_iio_dev_attr_str("hw_ldac_trigger", value)
else:
raise ValueError(
"Error: Trigger value not supported \nUse one of: "
+ str(self.hw_ldac_trigger_avail)
)
@property
def range_avail(self):
"""AD5710r range available"""
return self._get_iio_dev_attr_str("range_available")
@property
def range(self):
"""AD5710r range config"""
return self._get_iio_dev_attr_str("range")
@range.setter
def range(self, value):
if value in self.range_avail:
self._set_iio_dev_attr_str("range", value)
else:
raise ValueError(
"Error: Range option not supported \nUse one of: "
+ str(self.range_avail)
)
@property
def mux_out_select_avail(self):
"""AD5710r mux_out_select available"""
return self._get_iio_dev_attr_str("mux_out_select_available")
@property
def mux_out_select(self):
"""AD5710r mux out select"""
return self._get_iio_dev_attr_str("mux_out_select")
@mux_out_select.setter
def mux_out_select(self, value):
if value in self.mux_out_select_avail:
self._set_iio_dev_attr_str("mux_out_select", value)
else:
raise ValueError(
"Error: Mux output option not supported \nUse one of: "
+ str(self.mux_out_select_avail)
)
############################################################################
class _channel(attribute):
"""AD5710r channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
### Add channel attributes here ###
@property
def input_register(self):
"""AD5710r channel input register value"""
return self._get_iio_attr(self.name, "input_register", True)
@input_register.setter
def input_register(self, value):
self._set_iio_attr(self.name, "input_register", True, str(int(value)))
@property
def raw(self):
"""AD5710r channel raw value"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""AD5710r channel offset"""
return self._get_iio_attr(self.name, "offset", True)
@property
def scale(self):
"""AD5710r channel scale"""
return self._get_iio_attr(self.name, "scale", True)
@property
def ch_mode_avail(self):
"""Ad5710r channel modes available"""
return self._get_iio_attr_str(self.name, "ch_mode_available", True)
@property
def ch_mode(self):
"""Ad5710r channel mode config"""
return self._get_iio_attr_str(self.name, "ch_mode", True)
@ch_mode.setter
def ch_mode(self, value):
if value in self.ch_mode_avail:
self._set_iio_attr(self.name, "ch_mode", True, value)
else:
raise ValueError(
"Error: Channel mode not supported \nUse one of: "
+ str(self.ch_mode_avail)
)
@property
def operating_mode_avail(self):
"""AD5710r channel operating mode settings"""
return self._get_iio_attr_str(self.name, "operating_mode_available", True)
@property
def operating_mode(self):
"""AD5710r channel operating mode"""
return self._get_iio_attr_str(self.name, "operating_mode", True)
@operating_mode.setter
def operating_mode(self, value):
if value in self.operating_mode_avail:
self._set_iio_attr(self.name, "operating_mode", True, value)
else:
raise ValueError(
"Error: Operating mode not supported \nUse one of: "
+ str(self.operating_mode_avail)
)
#####################################################################
================================================
FILE: adi/ad5754r.py
================================================
# Copyright (C) 2020-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
from adi.attribute import attribute
from adi.device_base import tx_chan_comp_no_buff
class ad5754r_channel(attribute):
"""AD5754R channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""Get channel raw value
DAC code in the range 0-65535"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
"""Set channel raw value"""
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""Get channel offset"""
return self._get_iio_attr_str(self.name, "offset", True)
@offset.setter
def offset(self, value):
"""Set channel offset"""
self._set_iio_attr(self.name, "offset", True, str(Decimal(value).real))
@property
def scale(self):
"""Get channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", True))
@scale.setter
def scale(self, value):
"""Set channel scale"""
self._set_iio_attr(self.name, "scale", True, str(Decimal(value).real))
@property
def powerup(self):
"""Get DAC chn powerup"""
return self._get_iio_attr_str(self.name, "powerup", True)
@property
def powerup_available(self):
"""Get list of DAC chn powerup settings"""
return self._get_iio_attr_str(self.name, "powerup_available", True)
@powerup.setter
def powerup(self, value):
"""Set DAC chn powerup"""
if value in self.powerup_available:
self._set_iio_attr(self.name, "powerup", True, value)
else:
raise ValueError(
"Error: powerup setting not supported \nUse one of: "
+ str(self.powerup_available)
)
@property
def range(self):
"""Get output range"""
return self._get_iio_attr_str(self.name, "range", True)
@property
def range_available(self):
"""Get list of all output ranges"""
return self._get_iio_attr_str(self.name, "range_available", True)
@range.setter
def range(self, value):
"""Set DAC chn range"""
if value in self.range_available:
self._set_iio_attr(self.name, "range", True, value)
else:
raise ValueError(
"Error: range setting not supported \nUse one of: "
+ str(self.range_available)
)
@property
def dac_register(self):
"""Get dac_register value"""
return self._get_iio_attr_str(self.name, "dac_register", True)
@dac_register.setter
def dac_register(self, value):
"""Set dac_register value"""
self._set_iio_attr(self.name, "dac_register", True, str(Decimal(value).real))
class ad5754r(tx_chan_comp_no_buff):
""" AD5754R DAC """
channel = []
compatible_parts = ["ad5754r"]
_device_name = ""
_complex_data = False
_channel_def = ad5754r_channel
def __post_init__(self):
"""Populate output_bits list"""
self.output_bits = []
for ch in self._ctrl.channels:
self.output_bits.append(ch.data_format.bits)
@property
def int_ref_powerup(self):
"""Get internal reference powerup"""
return self._get_iio_dev_attr_str("int_ref_powerup")
@property
def int_ref_powerup_available(self):
"""Get list of all internal reference powerup settings"""
return self._get_iio_dev_attr_str("int_ref_powerup_available")
@int_ref_powerup.setter
def int_ref_powerup(self, value):
"""Set internal reference powerup"""
if value in self.int_ref_powerup_available:
self._set_iio_dev_attr_str("int_ref_powerup", value)
else:
raise ValueError(
"Error: internal reference powerup not supported \nUse one of: "
+ str(self.int_ref_powerup_available)
)
@property
def clear_setting(self):
"""Get clear code setting"""
return self._get_iio_dev_attr_str("clear_setting")
@property
def clear_setting_available(self):
"""Get list of all clear code settings"""
return self._get_iio_dev_attr_str("clear_setting_available")
@clear_setting.setter
def clear_setting(self, value):
"""Set clear setting"""
if value in self.clear_setting_available:
self._set_iio_dev_attr_str("clear_setting", value)
else:
raise ValueError(
"Error: clear setting not supported \nUse one of: "
+ str(self.clear_setting_available)
)
@property
def sdo_disable(self):
"""Get sdo disable"""
return self._get_iio_dev_attr_str("sdo_disable")
@property
def sdo_disable_available(self):
"""Get list of all sdo enable/disable settings"""
return self._get_iio_dev_attr_str("sdo_disable_available")
@sdo_disable.setter
def sdo_disable(self, value):
"""Set sdo enable/disable setting"""
if value in self.sdo_disable_available:
self._set_iio_dev_attr_str("sdo_disable", value)
else:
raise ValueError(
"Error: sdo setting not supported \nUse one of: "
+ str(self.sdo_disable_available)
)
@property
def sampling_frequency(self):
"""Get sampling frequency"""
return self._get_iio_dev_attr_str("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
"""Set sampling frequency"""
self._set_iio_dev_attr_str("sampling_frequency", value)
@property
def clamp_enable(self):
"""Get clamp_en setting"""
return self._get_iio_dev_attr_str("clamp_enable")
@property
def clamp_enable_available(self):
"""Get list of all clamp_en settings"""
return self._get_iio_dev_attr_str("clamp_enable_available")
@clamp_enable.setter
def clamp_enable(self, value):
"""Set clamp_en"""
if value in self.clamp_enable_available:
self._set_iio_dev_attr_str("clamp_enable", value)
else:
raise ValueError(
"Error: clamp_en setting not supported \nUse one of: "
+ str(self.clamp_enable_available)
)
@property
def tsd_enable(self):
"""Get tsd_en setting"""
return self._get_iio_dev_attr_str("tsd_enable")
@property
def tsd_enable_available(self):
"""Get list of all tsd_en settings"""
return self._get_iio_dev_attr_str("tsd_enable_available")
@tsd_enable.setter
def tsd_enable(self, value):
"""Set tsd_en"""
if value in self.tsd_enable_available:
self._set_iio_dev_attr_str("tsd_enable", value)
else:
raise ValueError(
"Error: tsd_en setting not supported \nUse one of: "
+ str(self.tsd_enable_available)
)
@property
def oc_tsd(self):
"""Get oc_tsd status"""
return self._get_iio_dev_attr_str("oc_tsd")
@property
def oc_tsd_available(self):
"""Get list of all possible oc_tsd status"""
return self._get_iio_dev_attr_str("oc_tsd_available")
@property
def all_chns_clear(self):
"""Get current all_chns_clear setting"""
return self._get_iio_dev_attr_str("all_chns_clear")
@property
def all_chns_clear_available(self):
"""Get list of all all_chns_clear settings"""
return self._get_iio_dev_attr_str("all_chns_clear_available")
@all_chns_clear.setter
def all_chns_clear(self, value):
"""Clear all channels"""
if value in self.all_chns_clear_available:
self._set_iio_dev_attr_str("all_chns_clear", value)
else:
raise ValueError(
"Error: all_chns_clear setting not supported \nUse one of: "
+ str(self.all_chns_clear_available)
)
@property
def sw_ldac_trigger(self):
"""Get sw_ldac_trigger setting"""
return self._get_iio_dev_attr_str("all_chns_clear")
@property
def sw_ldac_trigger_available(self):
"""Get list of all sw_ldac_trigger settings"""
return self._get_iio_dev_attr_str("sw_ldac_trigger_available")
@sw_ldac_trigger.setter
def sw_ldac_trigger(self, value):
"""Trigger software LDAC"""
if value in self.sw_ldac_trigger_available:
self._set_iio_dev_attr_str("sw_ldac_trigger", value)
else:
raise ValueError(
"Error: sw_ldac_trigger setting not supported \nUse one of: "
+ str(self.sw_ldac_trigger_available)
)
@property
def hw_ldac_trigger(self):
"""Get hw_ldac_trigger setting"""
return self._get_iio_dev_attr_str("hw_ldac_trigger")
@property
def hw_ldac_trigger_available(self):
"""Get list of all hw_ldac_trigger settings"""
return self._get_iio_dev_attr_str("hw_ldac_trigger_available")
@hw_ldac_trigger.setter
def hw_ldac_trigger(self, value):
"""Trigger hardware LDAC"""
if value in self.hw_ldac_trigger_available:
self._set_iio_dev_attr_str("hw_ldac_trigger", value)
else:
raise ValueError(
"Error: hw_ldac_trigger setting not supported \nUse one of: "
+ str(self.hw_ldac_trigger_available)
)
================================================
FILE: adi/ad579x.py
================================================
# Copyright (C) 2023-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
from adi.attribute import attribute
from adi.device_base import tx_chan_comp
class ad579x_channel(attribute):
"""AD579x channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD579x channel raw value"""
return self._get_iio_attr(self.name, "raw", True)
@raw.setter
def raw(self, value):
self._set_iio_attr(self.name, "raw", True, str(int(value)))
@property
def offset(self):
"""AD579x channel offset"""
return self._get_iio_attr(self.name, "offset", True)
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", True, str(Decimal(value).real))
@property
def scale(self):
"""AD579x channel scale"""
return self._get_iio_attr(self.name, "scale", True)
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", True, str(Decimal(value).real))
@property
def powerdown(self):
"""AD579x powerdown config"""
return self._get_iio_attr_str(self.name, "powerdown", True)
@powerdown.setter
def powerdown(self, value):
self._set_iio_attr(self.name, "powerdown", True, value)
@property
def powerdown_available(self):
"""AD579x powedown available"""
return self._get_iio_attr_str(self.name, "powerdown_available", True)
class ad579x(tx_chan_comp):
""" AD579x DAC """
channel = [] # type: ignore
compatible_parts = [
"ad5780",
"ad5781",
"ad5790",
"ad5791",
"ad5760",
]
_device_name = ""
_complex_data = False
_channel_def = ad579x_channel
def __post_init__(self):
"""Populate output_bits list"""
self.output_bits = []
for ch in self._ctrl.channels:
self.output_bits.append(ch.data_format.bits)
@property
def powerdown_mode(self):
"""Ad579x powerdown_mode config"""
return self._get_iio_dev_attr_str("powerdown_mode")
@powerdown_mode.setter
def powerdown_mode(self, value):
self._set_iio_dev_attr_str("powerdown_mode", value)
@property
def powerdown_mode_available(self):
"""AD579x powedown mode available"""
return self._get_iio_dev_attr_str("powerdown_mode_available")
@property
def sampling_frequency(self):
"""AD579x sampling frequency config"""
return self._get_iio_dev_attr_str("sampling_frequency")
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_dev_attr_str("sampling_frequency", value)
================================================
FILE: adi/ad5940.py
================================================
# Copyright (C) 2021-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
import struct
from collections import OrderedDict
from adi.attribute import attribute
from adi.context_manager import context_manager
from adi.rx_tx import rx
class ad5940(rx, context_manager):
""" ad5940 CDC """
_complex_data = False
channel = [] # type: ignore
_device_name = ""
def __init__(self, uri=""):
device_name = "ad5940"
context_manager.__init__(self, uri, self._device_name)
self._ctrl = None
# Select the device matching device_name as working device
for device in self._ctx.devices:
if device.name == device_name:
self._ctrl = device
self._rxadc = device
break
# dynamically get channels
_channels = []
self._rx_channel_names = []
for ch in self._ctrl.channels:
self._rx_channel_names.append(ch.id)
if ch.name == "bia":
_channels.append((ch.id, self._bia_channel(self, self._ctrl, ch.id)))
continue
self.channel = OrderedDict(_channels)
rx.__init__(self)
@property
def impedance_mode(self):
"""In impedance mode, device measures voltage and current and to
compute the impedance. Otherwise, only the voltage is measured."""
return bool(int(self._get_iio_dev_attr("impedance_mode", self._rxadc)))
@impedance_mode.setter
def impedance_mode(self, value):
self._set_iio_dev_attr("impedance_mode", int(value), self._rxadc)
@property
def magnitude_mode(self):
"""In magnitude mode, device computes and returns the magnitude.
Otherwise, a pair of real and imaginary parts of the complex
result is returned by the device."""
return bool(int(self._get_iio_dev_attr("magnitude_mode", self._rxadc)))
@magnitude_mode.setter
def magnitude_mode(self, value):
self._set_iio_dev_attr("magnitude_mode", int(value), self._rxadc)
@property
def excitation_frequency(self):
"""Excitation frequency."""
return self._get_iio_dev_attr("excitation_frequency", self._rxadc)
@excitation_frequency.setter
def excitation_frequency(self, value):
self._set_iio_dev_attr("excitation_frequency", value, self._rxadc)
@property
def excitation_amplitude(self):
"""Excitation amplitude."""
return self._get_iio_dev_attr("excitation_amplitude", self._rxadc)
@excitation_amplitude.setter
def excitation_amplitude(self, value):
self._set_iio_dev_attr("excitation_amplitude", value, self._rxadc)
@property
def gpio1_toggle(self):
"""GPIO1 control."""
return bool(int(self._get_iio_dev_attr("gpio1_toggle", self._rxadc)))
@gpio1_toggle.setter
def gpio1_toggle(self, value):
self._set_iio_dev_attr("gpio1_toggle", int(value), self._rxadc)
class _bia_channel(attribute):
"""ad5940 bio-impedance analysis channel."""
def __init__(self, parent, ctrl, channel_name):
self.name = channel_name
self._parent = parent
self._ctrl = ctrl
@property
def raw(self):
"""ad5940 channel raw value."""
raw = self._get_iio_attr(self.name, "raw", False)
impedance_mode = self._parent.impedance_mode
magnitude_mode = self._parent.magnitude_mode
if impedance_mode:
if magnitude_mode:
return struct.unpack(
">f", int(raw).to_bytes(4, byteorder="big", signed=True)
)[0]
else:
return complex(
struct.unpack(
">f", int(raw[0]).to_bytes(4, byteorder="big", signed=True)
)[0],
struct.unpack(
">f", int(raw[1]).to_bytes(4, byteorder="big", signed=True)
)[0],
)
else:
if magnitude_mode:
return struct.unpack(
">f", int(raw).to_bytes(4, byteorder="big", signed=True)
)[0]
else:
return complex(int(raw[0]), int(raw[1]))
================================================
FILE: adi/ad6676.py
================================================
# Copyright (C) 2021-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from adi.context_manager import context_manager
from adi.rx_tx import rx
class ad6676(rx, context_manager):
""" AD6676 Wideband IF Receiver Subsystem """
_complex_data = True
_rx_channel_names = ["voltage0", "voltage1"]
_device_name = ""
def __init__(self, uri=""):
context_manager.__init__(self, uri, self._device_name)
self._rxadc = self._ctx.find_device("axi-ad6676-hpc")
self._ctrl = self._rxadc
rx.__init__(self)
@property
def adc_frequency(self):
"""adc_frequency: The clock frequency of the ADC. Maximizing the clock frequency is helpful
when the IF or bandwidth are high. A lower clock frequency reduces power consumption and is
appropriate for low IFs and narrow bandwidths.
Range using external synthesizer [2.0,3.2] GHz in Hz
Range using internal synthesizer [2.925,3.2] GHz in Hz"""
return self._get_iio_attr_str("voltage0", "adc_frequency", False)
@adc_frequency.setter
def adc_frequency(self, value):
self._set_iio_attr("voltage0", "adc_frequency", False, value)
@property
def bandwidth(self):
"""bandwidth: The bandwidth of the ADC. Since the AD6676 uses delta-sigma technology,
the available bandwidth is a relatively small fraction of the ADC clock rate and
the AD6676 achieves the lowest noise and distortion when the bandwidth is small.
The allowed range is between [0.005,0.05]*FADC in Hz"""
return self._get_iio_attr_str("voltage0", "bandwidth", False)
@bandwidth.setter
def bandwidth(self, value):
self._set_iio_attr("voltage0", "bandwidth", False, value)
@property
def bw_margin_high(self):
"""bw_margin_high: High/upper bandwidth margins for the noise-shaping profile of the ADC.
Typical values are 5 MHz, but the user may want to increase these margins in wideband operation
in order to optimize the noise profile of the ADC.
Typical range [0,30] MHz in MHz"""
return self._get_iio_attr_str("voltage0", "bw_margin_high", False)
@bw_margin_high.setter
def bw_margin_high(self, value):
self._set_iio_attr("voltage0", "bw_margin_high", False, value)
@property
def bw_margin_if(self):
"""bw_margin_if: Displacement of the resonance frequency (F1Shift) of the first resonator within
the ADC from band-center. Typically 0 is appropriate, but in the widest bandwidth modes
positive shifts can be used to reduce the noise density near the upper edge of the passband.
Typical range [-30,30] MHz in MHz"""
return self._get_iio_attr_str("voltage0", "bw_margin_if", False)
@bw_margin_if.setter
def bw_margin_if(self, value):
self._set_iio_attr("voltage0", "bw_margin_if", False, value)
@property
def bw_margin_low(self):
"""bw_margin_low: Lower bandwidth margins for the noise-shaping profile of the ADC.
Typical values are 5 MHz, but the user may want to increase these margins in wideband operation
in order to optimize the noise profile of the ADC.
Typical range [0,30] MHz in MHz"""
return self._get_iio_attr_str("voltage0", "bw_margin_low", False)
@bw_margin_low.setter
def bw_margin_low(self, value):
self._set_iio_attr("voltage0", "bw_margin_low", False, value)
@property
def hardwaregain(self):
"""hardwaregain: The AD6676 contains a 50-ohm input attenuator programmable in 1-dB steps.
Use this device attribute to set the attenuator's attenuation.
The dynamic range of the system increases somewhat with moderate attenuation settings of 6-12 dB,
at the expense of an increased noise figure.
The range is from 0 to -27.00 dB in 1dB steps.
The nomenclature used here is gain instead of attenuation, so all values are expressed negative."""
return self._get_iio_attr_str("voltage0", "hardwaregain", False)
@hardwaregain.setter
def hardwaregain(self, value):
self._set_iio_attr("voltage0", "hardwaregain", False, value)
@property
def scale(self):
"""scale: One of the convenient features of the AD6676 is that the full-scale of its ADC is
relatively small and adjustable over a 12-dB range [1.00 .. 0.25]
The dynamic range of the ADC is highest at the maximum full-scale setting but the noise
figure of the system is lowest at the minimum full-scale setting.
Writing a value of 0.5 to this device attribute lowers the PIN_0dBFS by 6 dB.
Likewise writing a value of 0.25 to this device attribute lowers the PIN_0dBFS by 12 dB."""
return self._get_iio_attr_str("voltage0", "scale", False)
@scale.setter
def scale(self, value):
self._set_iio_attr("voltage0", "scale", False, value)
@property
def intermediate_frequency(self):
"""intermediate_frequency: The IF (intermediate frequency) to which the ADC is tuned.
The AD6676 supports IFs from 70 to 450 MHz provided the external inductors are chosen appropriately.
Since the AD6676-EBZ by default includes a pair of 19-nH inductors soldered to the evaluation board,
the IF range allowed is less than the full range supported by the AD6676."""
return self._get_iio_attr_str("voltage0", "intermediate_frequency", False)
@intermediate_frequency.setter
def intermediate_frequency(self, value):
self._set_iio_attr("voltage0", "intermediate_frequency", False, value)
@property
def sampling_frequency(self):
"""sampling_frequency: The complex (I/Q) data rate in SPS.
The AD6676 supports decimation factors (DFs) of 12, 16, 24 and 32.
The complex (I/Q) data rate at the JESD204B outputs is FADC / DF."""
return self._get_iio_attr_str("voltage0", "sampling_frequency", False)
@sampling_frequency.setter
def sampling_frequency(self, value):
self._set_iio_attr("voltage0", "sampling_frequency", False, value)
@property
def shuffler_control(self):
"""shuffler_control: The AD6676 includes dynamic reordering of the comparators within the ADC in order to
break up the spurious tones and distortion products associated with a fixed ordering.
The Shuffle Control device attribute allows the user to experiment with different shuffling rates.
The 'fadc' option (Shuffle every 1) reorders the comparators on every clock cycle with 50% probability.
This shuffle scheme is able to randomize deterministic spurs but tends to increase the
noise density and creates FADC/32 "shuffle humps" in the output spectrum.
Similarly, the 'fadc/2' 'fadc/3' 'fadc/4' (Shuffle every 2,3,4) options reorder the comparators every n clock cycles
with 50% probability. Using a high value of n decreases the noise degradation at the
expense of less effective randomization and FADC/(32*n) shuffle humps that are closer
to the main carrier. Fast shuffling can be disabled by selecting the **disable** option.
Available values: disable fadc fadc/2 fadc/3 fadc/4"""
return self._get_iio_attr_str("voltage0", "shuffler_control", False)
@shuffler_control.setter
def shuffler_control(self, value):
self._set_iio_attr("voltage0", "shuffler_control", False, value)
@property
def shuffler_thresh(self):
"""shuffler_thresh: In order to obtain the spur-reduction benefits of shuffling at large signal levels while
retaining the low noise of not shuffling when the signal is small, the AD6676 supports
dynamic shuffle control via the Shuffle Threshold attribute.
Shuffling is disabled if the raw ADC output is below the specified threshold for ~5000 clock cycles.
A threshold of zero implies that shuffling is always enabled.
The supported range is from 0..8"""
return self._get_iio_attr_str("voltage0", "shuffler_thresh", False)
@shuffler_thresh.setter
def shuffler_thresh(self, value):
self._set_iio_attr("voltage0", "shuffler_thresh", False, value)
@property
def test_mode(self):
"""test_mode: Select Test Mode. Options are:
off midscale_short pos_fullscale neg_fullscale checkerboard pn_long pn_short one_zero_toggle user ramp"""
return self._get_iio_attr("voltage0", "test_mode", False)
@test_mode.setter
def test_mode(self, value):
self._set_iio_attr("voltage0", "test_mode", False, value, self._rxadc)
================================================
FILE: adi/ad7091rx.py
================================================
# Copyright (C) 2025-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp_no_buff
class ad7091rx_channel(attribute):
"""AD7091R-8/-4/-2 Input Voltage Channels"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD7091r channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""AD7091r channel scale"""
return float(self._get_iio_attr_str(self.name, "scale", False))
class ad7091rx(rx_chan_comp_no_buff):
"""AD7091R-2/AD7091R-4/AD7091R-8 SPI interface,
2-/4-/8-channel, 12-bit SAR ADC"""
compatible_parts = ["ad7091r-8", "ad7091r-4", "ad7091r-2"]
_complex_data = False
_channel_def = ad7091rx_channel
_device_name = ""
def to_mvolts(self, index, val):
"""Converts raw value to mV"""
_scale = self.channel[index].scale
ret = None
if isinstance(val, np.uint16):
ret = val * _scale
if isinstance(val, np.ndarray):
ret = [x * _scale for x in val]
return ret
================================================
FILE: adi/ad7124.py
================================================
# Copyright (C) 2019-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad7124_channel(attribute):
"""AD7124 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD7124 channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""AD7124 channel scale(gain)"""
return float(self._get_iio_attr_str(self.name, "scale", False))
@scale.setter
def scale(self, value):
self._set_iio_attr(self.name, "scale", False, str(Decimal(value).real))
@property
def offset(self):
"""AD7124 channel offset"""
return self._get_iio_attr(self.name, "offset", False)
@offset.setter
def offset(self, value):
self._set_iio_attr(self.name, "offset", False, value)
class ad7124(rx_chan_comp):
"""AD7124 ADC"""
compatible_parts = ["ad7124-8", "ad7124-4"]
_device_name = ""
_complex_data = False
_channel_def = ad7124_channel
def __post_init__(self):
"""Post-initialization to sort channel names."""
# Sort channel names by numeric suffix
if self._rx_channel_names and "-" in self._rx_channel_names[0]:
self._rx_channel_names.sort(key=lambda x: int(x[7:].split("-")[0]))
elif self._rx_channel_names:
self._rx_channel_names.sort(key=lambda x: int(x[7:]))
@property
def sample_rate(self):
"""Sets sampling frequency of the AD7124"""
return self._get_iio_attr(self.channel[0].name, "sampling_frequency", False)
@sample_rate.setter
def sample_rate(self, value):
for ch in self.channel:
self._set_iio_attr(ch.name, "sampling_frequency", False, value)
@property
def scale_available(self):
"""Provides all available scale(gain) settings for the AD7124 channels"""
return self._get_iio_attr(self.channel[0].name, "scale_available", False)
def to_volts(self, index, val):
"""Converts raw value to SI"""
_scale = self.channel[index].scale
_offset = self.channel[index].offset
ret = None
if isinstance(val, np.int16):
ret = val * _scale + _offset
if isinstance(val, np.ndarray):
ret = [x * _scale + _offset for x in val]
return ret
================================================
FILE: adi/ad7134.py
================================================
# Copyright (C) 2024-2026 Analog Devices, Inc.
#
# SPDX short identifier: ADIBSD
from decimal import Decimal
import numpy as np
from adi.attribute import attribute
from adi.device_base import rx_chan_comp
class ad7134_channel(attribute):
"""AD7134 channel"""
def __init__(self, ctrl, channel_name):
self.name = channel_name
self._ctrl = ctrl
@property
def raw(self):
"""AD7134 channel raw value"""
return self._get_iio_attr(self.name, "raw", False)
@property
def scale(self):
"""
gitextract_brguha3x/
├── .codacy.yml
├── .codespell-whitelist
├── .github/
│ ├── license_header.txt
│ ├── pull_request_template.md
│ ├── scripts/
│ │ ├── detect_new_classes.py
│ │ ├── format_coverage_report.py
│ │ ├── install_iioemu.sh
│ │ ├── install_libiio.sh
│ │ ├── install_part_libs.sh
│ │ └── install_pydeps.sh
│ └── workflows/
│ ├── cleanup.yml
│ ├── doc.yml
│ ├── iio-context-coverage.yml
│ ├── test-pypi.yml
│ ├── test.yml
│ └── win-test.yml
├── .gitignore
├── .isort.cfg
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── JenkinsfileHW
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.md
├── adi/
│ ├── QuadMxFE_multi.py
│ ├── __init__.py
│ ├── ad2s1210.py
│ ├── ad353xr.py
│ ├── ad3552r.py
│ ├── ad3552r_hs.py
│ ├── ad4020.py
│ ├── ad405x.py
│ ├── ad4080.py
│ ├── ad4110.py
│ ├── ad4130.py
│ ├── ad4170.py
│ ├── ad4630.py
│ ├── ad469x.py
│ ├── ad4858.py
│ ├── ad514x.py
│ ├── ad5592r.py
│ ├── ad5627.py
│ ├── ad5686.py
│ ├── ad5706r.py
│ ├── ad5710r.py
│ ├── ad5754r.py
│ ├── ad579x.py
│ ├── ad5940.py
│ ├── ad6676.py
│ ├── ad7091rx.py
│ ├── ad7124.py
│ ├── ad7134.py
│ ├── ad717x.py
│ ├── ad719x.py
│ ├── ad7291.py
│ ├── ad738x.py
│ ├── ad7405.py
│ ├── ad7490.py
│ ├── ad7606.py
│ ├── ad7689.py
│ ├── ad7746.py
│ ├── ad7768.py
│ ├── ad777x.py
│ ├── ad7799.py
│ ├── ad9081.py
│ ├── ad9081_mc.py
│ ├── ad9083.py
│ ├── ad9084.py
│ ├── ad9084_mc.py
│ ├── ad9094.py
│ ├── ad9136.py
│ ├── ad9144.py
│ ├── ad9152.py
│ ├── ad9162.py
│ ├── ad9166.py
│ ├── ad9172.py
│ ├── ad9213.py
│ ├── ad9250.py
│ ├── ad9265.py
│ ├── ad936x.py
│ ├── ad937x.py
│ ├── ad9434.py
│ ├── ad9467.py
│ ├── ad9625.py
│ ├── ad9680.py
│ ├── ad9739a.py
│ ├── ada4355.py
│ ├── ada4356_lidar.py
│ ├── ada4961.py
│ ├── adaq8092.py
│ ├── adar1000.py
│ ├── adf4030.py
│ ├── adf4159.py
│ ├── adf4355.py
│ ├── adf4371.py
│ ├── adf4377.py
│ ├── adf4382.py
│ ├── adf5610.py
│ ├── adf5611.py
│ ├── adg2128.py
│ ├── adis16460.py
│ ├── adis16475.py
│ ├── adis16480.py
│ ├── adis16507.py
│ ├── adis16550.py
│ ├── adl5240.py
│ ├── adl5960.py
│ ├── adl8113.py
│ ├── admv8818.py
│ ├── adpd1080.py
│ ├── adpd188.py
│ ├── adpd410x.py
│ ├── adrf5720.py
│ ├── adrv9002.py
│ ├── adrv9009.py
│ ├── adrv9009_zu11eg.py
│ ├── adrv9009_zu11eg_fmcomms8.py
│ ├── adrv9009_zu11eg_multi.py
│ ├── adt7420.py
│ ├── adxl313.py
│ ├── adxl345.py
│ ├── adxl355.py
│ ├── adxl380.py
│ ├── adxrs290.py
│ ├── attribute.py
│ ├── axi_aion_trig.py
│ ├── cn0511.py
│ ├── cn0532.py
│ ├── cn0540.py
│ ├── cn0554.py
│ ├── cn0556.py
│ ├── cn0565.py
│ ├── cn0566.py
│ ├── cn0575.py
│ ├── cn0579.py
│ ├── compat.py
│ ├── context_manager.py
│ ├── daq2.py
│ ├── daq3.py
│ ├── dds.py
│ ├── device_base.py
│ ├── dsp.py
│ ├── fmc_vna.py
│ ├── fmcadc3.py
│ ├── fmcjesdadc1.py
│ ├── fmclidar1.py
│ ├── fmcomms11.py
│ ├── fmcomms5.py
│ ├── gen_mux.py
│ ├── hmc7044.py
│ ├── jesd.py
│ ├── jesd_internal.py
│ ├── lm75.py
│ ├── ltc2314_14.py
│ ├── ltc2378.py
│ ├── ltc2387.py
│ ├── ltc2499.py
│ ├── ltc2664.py
│ ├── ltc2672.py
│ ├── ltc2688.py
│ ├── ltc2983.py
│ ├── max11205.py
│ ├── max14001.py
│ ├── max31855.py
│ ├── max31865.py
│ ├── max9611.py
│ ├── mcp_server.py
│ ├── obs.py
│ ├── one_bit_adc_dac.py
│ ├── rx_tx.py
│ ├── sshfs.py
│ ├── sync_start.py
│ ├── tdd.py
│ └── tddn.py
├── doc/
│ ├── Makefile
│ ├── check_for_missing.py
│ ├── make.bat
│ ├── source/
│ │ ├── _static/
│ │ │ └── css/
│ │ │ └── style.css
│ │ ├── attr/
│ │ │ ├── index.rst
│ │ │ └── pluto_help.cli
│ │ ├── buffers/
│ │ │ └── index.rst
│ │ ├── conf.py
│ │ ├── dev/
│ │ │ ├── device_base.rst
│ │ │ ├── index.rst
│ │ │ ├── test_attr.rst
│ │ │ ├── test_dma.rst
│ │ │ ├── test_generics.rst
│ │ │ └── test_jesd.rst
│ │ ├── devices/
│ │ │ ├── adi.QuadMxFE_multi.rst
│ │ │ ├── adi.ad2s1210.rst
│ │ │ ├── adi.ad353xr.rst
│ │ │ ├── adi.ad3552r.rst
│ │ │ ├── adi.ad3552r_hs.rst
│ │ │ ├── adi.ad4020.rst
│ │ │ ├── adi.ad405x.rst
│ │ │ ├── adi.ad4080.rst
│ │ │ ├── adi.ad4110.rst
│ │ │ ├── adi.ad4130.rst
│ │ │ ├── adi.ad4170.rst
│ │ │ ├── adi.ad4630.rst
│ │ │ ├── adi.ad469x.rst
│ │ │ ├── adi.ad4858.rst
│ │ │ ├── adi.ad514x.rst
│ │ │ ├── adi.ad5592r.rst
│ │ │ ├── adi.ad5627.rst
│ │ │ ├── adi.ad5686.rst
│ │ │ ├── adi.ad5706r.rst
│ │ │ ├── adi.ad5710r.rst
│ │ │ ├── adi.ad5754r.rst
│ │ │ ├── adi.ad579x.rst
│ │ │ ├── adi.ad5940.rst
│ │ │ ├── adi.ad6676.rst
│ │ │ ├── adi.ad7091rx.rst
│ │ │ ├── adi.ad7124.rst
│ │ │ ├── adi.ad7134.rst
│ │ │ ├── adi.ad717x.rst
│ │ │ ├── adi.ad719x.rst
│ │ │ ├── adi.ad7291.rst
│ │ │ ├── adi.ad738x.rst
│ │ │ ├── adi.ad7405.rst
│ │ │ ├── adi.ad7490.rst
│ │ │ ├── adi.ad7606.rst
│ │ │ ├── adi.ad7689.rst
│ │ │ ├── adi.ad7746.rst
│ │ │ ├── adi.ad7768.rst
│ │ │ ├── adi.ad777x.rst
│ │ │ ├── adi.ad7799.rst
│ │ │ ├── adi.ad9081.rst
│ │ │ ├── adi.ad9081_mc.rst
│ │ │ ├── adi.ad9083.rst
│ │ │ ├── adi.ad9084.rst
│ │ │ ├── adi.ad9084_mc.rst
│ │ │ ├── adi.ad9094.rst
│ │ │ ├── adi.ad9136.rst
│ │ │ ├── adi.ad9144.rst
│ │ │ ├── adi.ad9152.rst
│ │ │ ├── adi.ad9162.rst
│ │ │ ├── adi.ad9166.rst
│ │ │ ├── adi.ad9172.rst
│ │ │ ├── adi.ad9213.rst
│ │ │ ├── adi.ad9250.rst
│ │ │ ├── adi.ad9265.rst
│ │ │ ├── adi.ad936x.rst
│ │ │ ├── adi.ad937x.rst
│ │ │ ├── adi.ad9434.rst
│ │ │ ├── adi.ad9467.rst
│ │ │ ├── adi.ad9625.rst
│ │ │ ├── adi.ad9680.rst
│ │ │ ├── adi.ad9739a.rst
│ │ │ ├── adi.ada4355.rst
│ │ │ ├── adi.ada4356_lidar.rst
│ │ │ ├── adi.ada4961.rst
│ │ │ ├── adi.adaq8092.rst
│ │ │ ├── adi.adar1000.rst
│ │ │ ├── adi.adf4030.rst
│ │ │ ├── adi.adf4159.rst
│ │ │ ├── adi.adf4355.rst
│ │ │ ├── adi.adf4371.rst
│ │ │ ├── adi.adf4377.rst
│ │ │ ├── adi.adf4382.rst
│ │ │ ├── adi.adf5610.rst
│ │ │ ├── adi.adf5611.rst
│ │ │ ├── adi.adg2128.rst
│ │ │ ├── adi.adis16375.rst
│ │ │ ├── adi.adis16460.rst
│ │ │ ├── adi.adis16475.rst
│ │ │ ├── adi.adis16480.rst
│ │ │ ├── adi.adis16485.rst
│ │ │ ├── adi.adis16488.rst
│ │ │ ├── adi.adis16490.rst
│ │ │ ├── adi.adis16495.rst
│ │ │ ├── adi.adis16497.rst
│ │ │ ├── adi.adis16507.rst
│ │ │ ├── adi.adis16545.rst
│ │ │ ├── adi.adis16547.rst
│ │ │ ├── adi.adis16550.rst
│ │ │ ├── adi.adl5240.rst
│ │ │ ├── adi.adl5960.rst
│ │ │ ├── adi.adl8113.rst
│ │ │ ├── adi.admv8818.rst
│ │ │ ├── adi.adpd1080.rst
│ │ │ ├── adi.adpd188.rst
│ │ │ ├── adi.adpd410x.rst
│ │ │ ├── adi.adrf5720.rst
│ │ │ ├── adi.adrv9002.rst
│ │ │ ├── adi.adrv9009.rst
│ │ │ ├── adi.adrv9009_zu11eg.rst
│ │ │ ├── adi.adrv9009_zu11eg_fmcomms8.rst
│ │ │ ├── adi.adrv9009_zu11eg_multi.rst
│ │ │ ├── adi.adt7420.rst
│ │ │ ├── adi.adxl313.rst
│ │ │ ├── adi.adxl345.rst
│ │ │ ├── adi.adxl355.rst
│ │ │ ├── adi.adxl380.rst
│ │ │ ├── adi.adxrs290.rst
│ │ │ ├── adi.axi_aion_trig.rst
│ │ │ ├── adi.cn0511.rst
│ │ │ ├── adi.cn0532.rst
│ │ │ ├── adi.cn0540.rst
│ │ │ ├── adi.cn0554.rst
│ │ │ ├── adi.cn0556.rst
│ │ │ ├── adi.cn0565.rst
│ │ │ ├── adi.cn0566.rst
│ │ │ ├── adi.cn0575.rst
│ │ │ ├── adi.cn0579.rst
│ │ │ ├── adi.daq2.rst
│ │ │ ├── adi.daq3.rst
│ │ │ ├── adi.fmc_vna.rst
│ │ │ ├── adi.fmcadc3.rst
│ │ │ ├── adi.fmcjesdadc1.rst
│ │ │ ├── adi.fmclidar1.rst
│ │ │ ├── adi.fmcomms11.rst
│ │ │ ├── adi.fmcomms5.rst
│ │ │ ├── adi.gen_mux.rst
│ │ │ ├── adi.hmc7044.rst
│ │ │ ├── adi.jesd.rst
│ │ │ ├── adi.lm75.rst
│ │ │ ├── adi.ltc2314_14.rst
│ │ │ ├── adi.ltc2378.rst
│ │ │ ├── adi.ltc2387.rst
│ │ │ ├── adi.ltc2499.rst
│ │ │ ├── adi.ltc2664.rst
│ │ │ ├── adi.ltc2672.rst
│ │ │ ├── adi.ltc2688.rst
│ │ │ ├── adi.ltc2983.rst
│ │ │ ├── adi.max11205.rst
│ │ │ ├── adi.max14001.rst
│ │ │ ├── adi.max31855.rst
│ │ │ ├── adi.max31865.rst
│ │ │ ├── adi.max9611.rst
│ │ │ ├── adi.one_bit_adc_dac.rst
│ │ │ ├── adi.tdd.rst
│ │ │ ├── adi.tddn.rst
│ │ │ └── index.rst
│ │ ├── ext/
│ │ │ └── ext_pyadi_iio.py
│ │ ├── fpga/
│ │ │ ├── dma_sync.mmd
│ │ │ └── index.rst
│ │ ├── guides/
│ │ │ ├── connectivity.rst
│ │ │ ├── examples.rst
│ │ │ └── quick.rst
│ │ ├── index.rst
│ │ ├── libiio.md
│ │ ├── mcp/
│ │ │ └── index.rst
│ │ └── support.rst
│ ├── update_devs.py
│ └── update_devs.sh
├── examples/
│ ├── QuadMxFE_dual_example.py
│ ├── QuadMxFE_example.py
│ ├── QuadMxFE_ffh_example.py
│ ├── Triton_example.py
│ ├── ad353xr_example.py
│ ├── ad3552r_example.py
│ ├── ad3552r_hs_example.py
│ ├── ad4020_example.py
│ ├── ad4052_example.py
│ ├── ad4080_example.py
│ ├── ad4110_example.py
│ ├── ad4130_example.py
│ ├── ad4170_example.py
│ ├── ad4630/
│ │ ├── ad4630_example_all_mode.py
│ │ ├── ad4630_example_simple_plot.py
│ │ └── sin_params.py
│ ├── ad469x_example.py
│ ├── ad4858_example.py
│ ├── ad514x_example.py
│ ├── ad5592r_example.py
│ ├── ad5706r_example.py
│ ├── ad5710r_example.py
│ ├── ad5754r_example.py
│ ├── ad579x_example.py
│ ├── ad5940.py
│ ├── ad6676.py
│ ├── ad7091rx_example.py
│ ├── ad7124.py
│ ├── ad7134_example.py
│ ├── ad717x_example.py
│ ├── ad719x_example.py
│ ├── ad7291_example_.py
│ ├── ad738x_example.py
│ ├── ad7405_example.py
│ ├── ad7490_example.py
│ ├── ad7606.py
│ ├── ad7689.py
│ ├── ad7746-ebz.py
│ ├── ad7746.py
│ ├── ad7768_4_example.py
│ ├── ad7768_example.py
│ ├── ad777x_example.py
│ ├── ad9081_dma_example.py
│ ├── ad9081_example.py
│ ├── ad9081_ffh_example.py
│ ├── ad9081_register_dump.py
│ ├── ad9081_sync_start_example.py
│ ├── ad9081_tdd_example.py
│ ├── ad9083_vna.py
│ ├── ad9084_ad9082_sync_start_example.py
│ ├── ad9084_example.py
│ ├── ad9084_sync_start_example.py
│ ├── ad9172.py
│ ├── ad9265.py
│ ├── ad9361_advanced_ensm.py
│ ├── ad9361_example.py
│ ├── ad9371.py
│ ├── ad9371_dec8.py
│ ├── ad9375.py
│ ├── ad9434.py
│ ├── ad9467.py
│ ├── ad9739a.py
│ ├── ada4355_example.py
│ ├── ada4356_lidar_example.py
│ ├── adalm-lsmspg/
│ │ ├── ad5592r_curve_tracer.py
│ │ ├── ad5592r_gpio_example.py
│ │ ├── ad5593r_curve_tracer.py
│ │ └── adalm-lsmspg_prod_tst.py
│ ├── adalm-mmsc/
│ │ └── adalm-mmsc-prod-tst-prog.py
│ ├── adaq4224_example.py
│ ├── adaq8092_example.py
│ ├── adar1000_array_example.py
│ ├── adar1000_single_example.py
│ ├── adf4159_example.py
│ ├── adf4377_example.py
│ ├── adf4382_example.py
│ ├── adf5611_example.py
│ ├── adg2128.py
│ ├── adiplot.py
│ ├── adis16460.py
│ ├── adis16475.py
│ ├── adis16480_example.py
│ ├── adis16507_example.py
│ ├── adis16550_example.py
│ ├── adl8113_example.py
│ ├── adpd1080.py
│ ├── adpd188.py
│ ├── adrv9002_example.py
│ ├── adrv9002_profile_example.py
│ ├── adrv9002_profiles/
│ │ ├── custom_profile.json
│ │ ├── custom_profile.stream
│ │ ├── lte_10_lvds_nco_api_68_0_6.json
│ │ ├── lte_10_lvds_nco_api_68_0_6.stream
│ │ ├── lte_10_lvds_nco_api_68_10_1.json
│ │ ├── lte_10_lvds_nco_api_68_10_1.stream
│ │ ├── lte_10_lvds_nco_api_68_13_7.json
│ │ ├── lte_10_lvds_nco_api_68_13_7.stream
│ │ ├── lte_10_lvds_nco_api_68_8_1.json
│ │ ├── lte_10_lvds_nco_api_68_8_1.stream
│ │ ├── lte_20_lvds_api_68_0_6.json
│ │ ├── lte_20_lvds_api_68_0_6.stream
│ │ ├── lte_20_lvds_api_68_10_1.json
│ │ ├── lte_20_lvds_api_68_10_1.stream
│ │ ├── lte_20_lvds_api_68_13_7.json
│ │ ├── lte_20_lvds_api_68_13_7.stream
│ │ ├── lte_20_lvds_api_68_8_1.json
│ │ ├── lte_20_lvds_api_68_8_1.stream
│ │ ├── lte_40_lvds_api_68_0_6.json
│ │ ├── lte_40_lvds_api_68_0_6.stream
│ │ ├── lte_40_lvds_api_68_10_1.json
│ │ ├── lte_40_lvds_api_68_10_1.stream
│ │ ├── lte_40_lvds_api_68_13_7.json
│ │ ├── lte_40_lvds_api_68_13_7.stream
│ │ ├── lte_40_lvds_api_68_8_1.json
│ │ ├── lte_40_lvds_api_68_8_1.stream
│ │ ├── lte_5_cmos_api_68_0_6.json
│ │ ├── lte_5_cmos_api_68_0_6.stream
│ │ ├── lte_5_cmos_api_68_10_1.json
│ │ ├── lte_5_cmos_api_68_10_1.stream
│ │ ├── lte_5_cmos_api_68_13_7.json
│ │ ├── lte_5_cmos_api_68_13_7.stream
│ │ ├── lte_5_cmos_api_68_8_1.json
│ │ └── lte_5_cmos_api_68_8_1.stream
│ ├── adrv9008_1.py
│ ├── adrv9008_2.py
│ ├── adrv9009.py
│ ├── adrv9009_som.py
│ ├── adrv9009_som_fhm_phase.py
│ ├── adrv9009_som_multi.py
│ ├── adrv9009_som_single_sync.py
│ ├── adrv9009_som_sync.py
│ ├── adt7420_example.py
│ ├── adxl313_example.py
│ ├── adxl345_example.py
│ ├── adxl355_example.py
│ ├── adxl380_example.py
│ ├── adxrs290.py
│ ├── cn0511_example.py
│ ├── cn0532_cn0540_basic.py
│ ├── cn0548/
│ │ ├── CN0548_simple_plot.py
│ │ └── requirements_cn0548.txt
│ ├── cn0548_py.py
│ ├── cn0549/
│ │ ├── collect_data.py
│ │ ├── inference.py
│ │ ├── ml_cn0532.py
│ │ ├── ml_fan_example.ipynb
│ │ ├── mode2.csv
│ │ ├── mode3.csv
│ │ ├── mode4.csv
│ │ ├── model.tflite
│ │ └── requirements.txt
│ ├── cn0554_example.py
│ ├── cn0556/
│ │ ├── README.md
│ │ ├── cn0556_example_boost.py
│ │ ├── cn0556_example_buck.py
│ │ ├── cn0556_prod_tst_boost.py
│ │ └── cn0556_prod_tst_buck.py
│ ├── cn0565/
│ │ ├── README.md
│ │ ├── cn0565_back_projection.py
│ │ ├── cn0565_example.py
│ │ ├── cn0565_example_single.py
│ │ ├── cn0565_greit.py
│ │ ├── cn0565_jacobian.py
│ │ ├── cn0565_prod_tst.py
│ │ ├── cn0565_sample_plot.py
│ │ ├── cn0565_test_iio.py
│ │ ├── cn0565_worker.py
│ │ ├── main.py
│ │ ├── realtimeEITUI.py
│ │ ├── realtimeEITUI.ui
│ │ └── requirements.txt
│ ├── cn0569/
│ │ ├── adpd2140_gesture_sensor.py
│ │ └── cn0569_theremin_module.py
│ ├── cn0575_example.py
│ ├── cn0579/
│ │ ├── cn0579_example.py
│ │ └── save_for_scope.py
│ ├── daq2.py
│ ├── dual_triton_sync_start.py
│ ├── fmcadc3.py
│ ├── fmcjesdadc1.py
│ ├── fmcomms11.py
│ ├── fmcomms5.py
│ ├── lidar.py
│ ├── lm75_example.py
│ ├── ltc2378_example.py
│ ├── ltc2387_example.py
│ ├── ltc2499_example.py
│ ├── ltc2664_example.py
│ ├── ltc2672_example.py
│ ├── ltc2688_example.py
│ ├── ltc2983.py
│ ├── max11205_example.py
│ ├── max14001_examples.py
│ ├── max31855.py
│ ├── max31865.py
│ ├── max9611_example.py
│ ├── phaser/
│ │ ├── ADAR_pyadi_functions.py
│ │ ├── LTE10_MHz.ftr
│ │ ├── LTE20_MHz.ftr
│ │ ├── LTE5_MHz.ftr
│ │ ├── RADAR_FFT_Waterfall.py
│ │ ├── SDR_functions.py
│ │ ├── config.py
│ │ ├── phaser_examples.py
│ │ ├── phaser_find_hb100.py
│ │ ├── phaser_functions.py
│ │ ├── phaser_gui.py
│ │ ├── phaser_minimal_example.py
│ │ ├── phaser_prod_tst.py
│ │ ├── requirements_phaser.txt
│ │ └── results/
│ │ └── CN0566_1234_Sun Jan 22 09-02-39 2023.txt
│ ├── pluto.py
│ ├── pluto_tddn.py
│ ├── requirements_adiplot.txt
│ ├── triton_mcs_qual.py
│ ├── triton_sync_start.py
│ ├── waterfall.md
│ └── waterfall.py
├── pyproject.toml
├── requirements.txt
├── requirements_dev.txt
├── requirements_doc.txt
├── requirements_prod_test.txt
├── setup.cfg
├── supported_parts.md
├── tasks.py
└── test/
├── __init__.py
├── ad9371_5_profiles/
│ ├── profile_TxBW100_ORxBW100_RxBW100.txt
│ ├── profile_TxBW100_ORxBW100_RxBW20.txt
│ ├── profile_TxBW100_ORxBW100_RxBW50.txt
│ ├── profile_TxBW200_ORxBW200_RxBW100.txt
│ ├── profile_TxBW50_ORxBW50_RxBW25.txt
│ └── profile_TxBW50_ORxBW50_RxBW50.txt
├── adrv9002_profiles/
│ ├── lte_10_lvds_nco_api_68_13_7.json
│ ├── lte_10_lvds_nco_api_68_13_7.stream
│ ├── lte_10_lvds_nco_api_68_14_10.json
│ ├── lte_10_lvds_nco_api_68_14_10.stream
│ ├── lte_20_lvds_api_68_13_7.json
│ ├── lte_20_lvds_api_68_13_7.stream
│ ├── lte_20_lvds_api_68_14_10.json
│ ├── lte_20_lvds_api_68_14_10.stream
│ ├── lte_40_lvds_api_68_13_7.json
│ ├── lte_40_lvds_api_68_13_7.stream
│ ├── lte_40_lvds_api_68_14_10.json
│ ├── lte_40_lvds_api_68_14_10.stream
│ ├── lte_5_cmos_api_68_13_7.json
│ ├── lte_5_cmos_api_68_13_7.stream
│ ├── lte_5_cmos_api_68_14_10.json
│ └── lte_5_cmos_api_68_14_10.stream
├── adrv9009_profiles/
│ ├── Tx_BW100_IR122p88_Rx_BW100_OR122p88_ORx_BW100_OR122p88_DC245p76.txt
│ ├── Tx_BW200_IR245p76_Rx_BW100_OR122p88_ORx_BW200_OR245p76_DC245p76.txt
│ ├── Tx_BW200_IR245p76_Rx_BW200_OR245p76_ORx_BW200_OR245p76_DC245p76.txt
│ ├── Tx_BW400_IR491p52_Rx_BW100_OR122p88_ORx_BW400_OR491p52_DC245p76.txt
│ └── Tx_BW400_IR491p52_Rx_BW200_OR245p76_ORx_BW400_OR491p52_DC245p76.txt
├── attr_tests.py
├── common.py
├── conftest.py
├── dma_tests.py
├── eeprom.py
├── emu/
│ ├── devices/
│ │ ├── ad2s1210.xml
│ │ ├── ad3532r.xml
│ │ ├── ad353xr.xml
│ │ ├── ad3552r.xml
│ │ ├── ad3552r_hs.xml
│ │ ├── ad4000.xml
│ │ ├── ad4001.xml
│ │ ├── ad4002.xml
│ │ ├── ad4003.xml
│ │ ├── ad4020.xml
│ │ ├── ad405x.xml
│ │ ├── ad4080.xml
│ │ ├── ad4170.xml
│ │ ├── ad4692.xml
│ │ ├── ad4858.xml
│ │ ├── ad514x.xml
│ │ ├── ad5592r.xml
│ │ ├── ad5686.xml
│ │ ├── ad5706r.xml
│ │ ├── ad5710r.xml
│ │ ├── ad5754r.xml
│ │ ├── ad579x.xml
│ │ ├── ad6676.xml
│ │ ├── ad7091rx.xml
│ │ ├── ad7124-8.xml
│ │ ├── ad7134.xml
│ │ ├── ad7291.xml
│ │ ├── ad7381.xml
│ │ ├── ad7405.xml
│ │ ├── ad7490.xml
│ │ ├── ad7746.xml
│ │ ├── ad7768-4.xml
│ │ ├── ad7768.xml
│ │ ├── ad9081.xml
│ │ ├── ad9081_full_bw_mock.xml
│ │ ├── ad9081_tdd.xml
│ │ ├── ad9084-fmca-ebz.xml
│ │ ├── ad9084.xml
│ │ ├── ad9172.xml
│ │ ├── ad9265.xml
│ │ ├── ad9371.xml
│ │ ├── ad9375.xml
│ │ ├── ad9434.xml
│ │ ├── ada4355.xml
│ │ ├── ada4356_lidar.xml
│ │ ├── adaq4224.xml
│ │ ├── adf4377.xml
│ │ ├── adf5611.xml
│ │ ├── adis16475.xml
│ │ ├── adis16480.xml
│ │ ├── adis16550.xml
│ │ ├── adl8113.xml
│ │ ├── adrv9002.xml
│ │ ├── adrv9002_singledma.xml
│ │ ├── adrv9002_splitdma.xml
│ │ ├── adrv9008-1.xml
│ │ ├── adrv9008-2.xml
│ │ ├── adrv9361-z7035.xml
│ │ ├── adrv9364-z7020.xml
│ │ ├── adsy1100.xml
│ │ ├── adxl345.xml
│ │ ├── adxl355.xml
│ │ ├── adxl382.xml
│ │ ├── adxrs290.xml
│ │ ├── cn0511.xml
│ │ ├── cn0540.xml
│ │ ├── cn0554.xml
│ │ ├── cn0556.xml
│ │ ├── cn0565.xml
│ │ ├── cn0566.xml
│ │ ├── cn0579.xml
│ │ ├── daq2.xml
│ │ ├── daq3.xml
│ │ ├── fmcomms11.xml
│ │ ├── fmcomms2-3.xml
│ │ ├── fmcomms4.xml
│ │ ├── fmcomms5.xml
│ │ ├── lm75.xml
│ │ ├── ltc2314-14.xml
│ │ ├── ltc2378.xml
│ │ ├── ltc2387.xml
│ │ ├── ltc2664.xml
│ │ ├── ltc2672.xml
│ │ ├── ltc2688.xml
│ │ ├── max14001.xml
│ │ ├── max31865.xml
│ │ ├── max9611.xml
│ │ └── pluto.xml
│ └── hardware_map.yml
├── generics.py
├── globals.py
├── html.py
├── jesd_tests.py
├── plot_logger.py
├── rf/
│ ├── __init__.py
│ ├── matlab/
│ │ └── spec_est.m
│ ├── phase.py
│ ├── spec.py
│ ├── test_phase.py
│ └── test_spec_est.py
├── scpi.py
├── test_ad2s1210.py
├── test_ad353xr.py
├── test_ad3552r.py
├── test_ad3552r_hs.py
├── test_ad4000.py
├── test_ad4001.py
├── test_ad4002.py
├── test_ad4003.py
├── test_ad4020.py
├── test_ad405x.py
├── test_ad4080.py
├── test_ad4110.py
├── test_ad4130.py
├── test_ad4170.py
├── test_ad4630.py
├── test_ad469x.py
├── test_ad4858.py
├── test_ad514x.py
├── test_ad5592r.py
├── test_ad5706r.py
├── test_ad5710r.py
├── test_ad5754r.py
├── test_ad579x.py
├── test_ad5940.py
├── test_ad7091rx.py
├── test_ad7124_8.py
├── test_ad7134.py
├── test_ad717x.py
├── test_ad719x.py
├── test_ad738x.py
├── test_ad7405.py
├── test_ad7490.py
├── test_ad7606.py
├── test_ad7689.py
├── test_ad7746.py
├── test_ad7768.py
├── test_ad7768_4.py
├── test_ad777x.py
├── test_ad7799.py
├── test_ad9081.py
├── test_ad9083_p.py
├── test_ad9084.py
├── test_ad9136_p.py
├── test_ad9144_p.py
├── test_ad9152_p.py
├── test_ad9162.py
├── test_ad9172_p.py
├── test_ad9213_p.py
├── test_ad9265.py
├── test_ad9361_p.py
├── test_ad9364_p.py
├── test_ad9371.py
├── test_ad9375.py
├── test_ad9434.py
├── test_ad9467.py
├── test_ad9625.py
├── test_ad9680_p.py
├── test_ad9739a_p.py
├── test_ada4355.py
├── test_ada4356_lidar.py
├── test_adaq8092.py
├── test_adf4355.py
├── test_adf4377.py
├── test_adf4382.py
├── test_adf5611.py
├── test_adg2128.py
├── test_adis16460_p.py
├── test_adis16475_p.py
├── test_adis16480.py
├── test_adis16495_p.py
├── test_adis16507_p.py
├── test_adis16550.py
├── test_adl5240.py
├── test_adl8113.py
├── test_adpd410x.py
├── test_adrv9002_generic_p.py
├── test_adrv9002_p.py
├── test_adrv9008_1.py
├── test_adrv9008_2.py
├── test_adrv9009_p.py
├── test_adrv9009_zu11eg.py
├── test_adrv9009_zu11eg_fmcomms8.py
├── test_adt7420.py
├── test_adxl313.py
├── test_adxl345.py
├── test_adxl355.py
├── test_adxl380.py
├── test_adxrs290.py
├── test_all_inits.py
├── test_cn0511_p.py
├── test_cn0540.py
├── test_cn0554.py
├── test_cn0556.py
├── test_cn0565.py
├── test_cn0575.py
├── test_cn0579.py
├── test_daq2_p.py
├── test_daq3_p.py
├── test_fmcadc3.py
├── test_fmcjesdadc1.py
├── test_fmcomms11_p.py
├── test_fmcomms2-3_prod.py
├── test_fmcomms5_p.py
├── test_generic.py
├── test_generic_rxtx.py
├── test_lm75.py
├── test_ltc2378.py
├── test_ltc2387.py
├── test_ltc2499.py
├── test_ltc2664.py
├── test_ltc2672.py
├── test_ltc2688.py
├── test_map.py
├── test_max11205.py
├── test_max14001.py
├── test_max31855.py
├── test_max31865.py
├── test_max9611.py
├── test_mcp_server.py
├── test_pluto_p.py
├── test_refactored_devices_unit.py
├── test_sshfs.py
└── test_stress.py
Showing preview only (306K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3965 symbols across 343 files)
FILE: .github/scripts/detect_new_classes.py
function parse_imports (line 20) | def parse_imports(text):
function get_base_init (line 37) | def get_base_init(base_ref):
function find_hardware_for_classes (line 52) | def find_hardware_for_classes(new_classes, hw_map):
function main (line 70) | def main():
FILE: .github/scripts/format_coverage_report.py
function load_coverage (line 14) | def load_coverage(folder, hw_name):
function compute_stats (line 23) | def compute_stats(data):
function format_untested_details (line 64) | def format_untested_details(data):
function generate_report (line 92) | def generate_report(hardware_names, new_classes, coverage_folder):
function main (line 160) | def main():
FILE: adi/QuadMxFE_multi.py
class QuadMxFE_multi (line 11) | class QuadMxFE_multi(object):
method __init__ (line 29) | def __init__(
method reinitialize (line 61) | def reinitialize(self):
method rx_buffer_size (line 69) | def rx_buffer_size(self):
method rx_buffer_size (line 74) | def rx_buffer_size(self, value):
method __read_jesd_status_all_devs (line 79) | def __read_jesd_status_all_devs(self, attr, islink=False):
method __read_jesd_status (line 96) | def __read_jesd_status(self):
method __read_jesd_link_status (line 101) | def __read_jesd_link_status(self):
method _device_is_running (line 106) | def _device_is_running(self, dev, index, verbose):
method __jesd204_fsm_is_done (line 137) | def __jesd204_fsm_is_done(self):
method _jesd204_fsm_sync (line 148) | def _jesd204_fsm_sync(self):
method __unsync (line 168) | def __unsync(self):
method hmc7044_cap_sel (line 179) | def hmc7044_cap_sel(self):
method hmc7044_set_cap_sel (line 187) | def hmc7044_set_cap_sel(self, vals):
method hmc7044_ext_output_delay (line 200) | def hmc7044_ext_output_delay(self, chan, digital, analog_ps):
method hmc7044_car_output_delay (line 224) | def hmc7044_car_output_delay(self, chan, digital, analog_ps):
method __rx_dma_arm (line 250) | def __rx_dma_arm(self):
method __dds_sync_enable (line 258) | def __dds_sync_enable(self, enable):
method sysref_request (line 264) | def sysref_request(self):
method __refill_samples (line 268) | def __refill_samples(self, dev, is_primary):
method _pre_rx_setup (line 274) | def _pre_rx_setup(self):
method rx (line 307) | def rx(self):
FILE: adi/ad2s1210.py
class ad2s1210_position_channel (line 11) | class ad2s1210_position_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name):
method raw (line 19) | def raw(self) -> int:
method scale (line 24) | def scale(self) -> float:
class ad2s1210_velocity_channel (line 29) | class ad2s1210_velocity_channel(attribute):
method __init__ (line 32) | def __init__(self, ctrl, channel_name):
method raw (line 37) | def raw(self) -> int:
method scale (line 42) | def scale(self) -> float:
class ad2s1210 (line 47) | class ad2s1210(rx_def):
method __post_init__ (line 57) | def __post_init__(self):
method excitation_frequency (line 71) | def excitation_frequency(self) -> int:
method excitation_frequency (line 81) | def excitation_frequency(self, value: int) -> None:
method hysteresis_enable (line 85) | def hysteresis_enable(self) -> bool:
method hysteresis_enable (line 92) | def hysteresis_enable(self, value: bool) -> None:
FILE: adi/ad353xr.py
class ad353xr_channel (line 9) | class ad353xr_channel(attribute):
method __init__ (line 12) | def __init__(self, ctrl, channel_name):
method input_register (line 17) | def input_register(self):
method input_register (line 22) | def input_register(self, value):
method raw (line 26) | def raw(self):
method raw (line 31) | def raw(self, value):
method offset (line 35) | def offset(self):
method scale (line 40) | def scale(self):
method operating_mode_avail (line 45) | def operating_mode_avail(self):
method operating_mode (line 50) | def operating_mode(self):
method operating_mode (line 55) | def operating_mode(self, value):
class ad353xr (line 65) | class ad353xr(tx_chan_comp):
method __post_init__ (line 74) | def __post_init__(self):
method output_bits (line 81) | def output_bits(self):
method sampling_frequency (line 86) | def sampling_frequency(self):
method sampling_frequency (line 91) | def sampling_frequency(self, value):
method all_ch_operating_mode_avail (line 95) | def all_ch_operating_mode_avail(self):
method all_ch_operating_mode (line 100) | def all_ch_operating_mode(self):
method all_ch_operating_mode (line 105) | def all_ch_operating_mode(self, value):
method all_ch_input_registers (line 115) | def all_ch_input_registers(self):
method all_ch_input_registers (line 120) | def all_ch_input_registers(self, value):
method all_ch_raw (line 124) | def all_ch_raw(self):
method all_ch_raw (line 129) | def all_ch_raw(self, value):
method reference_select_available (line 133) | def reference_select_available(self):
method reference_select (line 138) | def reference_select(self):
method reference_select (line 143) | def reference_select(self, value):
method sw_ldac_trigger_avail (line 153) | def sw_ldac_trigger_avail(self):
method sw_ldac_trigger (line 158) | def sw_ldac_trigger(self):
method sw_ldac_trigger (line 163) | def sw_ldac_trigger(self, value):
method hw_ldac_trigger_avail (line 173) | def hw_ldac_trigger_avail(self):
method hw_ldac_trigger (line 178) | def hw_ldac_trigger(self):
method hw_ldac_trigger (line 183) | def hw_ldac_trigger(self, value):
method range_avail (line 193) | def range_avail(self):
method range (line 198) | def range(self):
method range (line 203) | def range(self, value):
method mux_out_select_avail (line 213) | def mux_out_select_avail(self):
method mux_out_select (line 218) | def mux_out_select(self):
method mux_out_select (line 223) | def mux_out_select(self, value):
FILE: adi/ad3552r.py
class ad3552r_channel (line 11) | class ad3552r_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name, output=None):
method raw (line 20) | def raw(self):
method raw (line 26) | def raw(self, value):
method offset (line 31) | def offset(self):
method offset (line 36) | def offset(self, value):
method scale (line 41) | def scale(self):
method scale (line 46) | def scale(self, value):
class ad3552r (line 51) | class ad3552r(tx_chan_comp):
method __post_init__ (line 60) | def __post_init__(self):
FILE: adi/ad3552r_hs.py
class ad3552r_hs (line 12) | class ad3552r_hs(tx, context_manager):
method __init__ (line 18) | def __init__(self, uri="", device_name=""):
method input_source (line 70) | def input_source(self):
method input_source (line 75) | def input_source(self, value):
method stream_status (line 79) | def stream_status(self):
method stream_status (line 84) | def stream_status(self, value):
method output_range (line 88) | def output_range(self):
method output_range (line 93) | def output_range(self, value):
class _channel (line 96) | class _channel(attribute):
method __init__ (line 99) | def __init__(self, ctrl, channel_name, output):
method sample_rate (line 105) | def sample_rate(self):
method sample_rate (line 110) | def sample_rate(self, value):
method raw (line 114) | def raw(self):
method raw (line 120) | def raw(self, value):
method offset (line 125) | def offset(self):
method offset (line 130) | def offset(self, value):
method scale (line 135) | def scale(self):
method scale (line 140) | def scale(self, value):
FILE: adi/ad4020.py
class ad4020_channel (line 13) | class ad4020_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
class ad4000_channel (line 35) | class ad4000_channel(ad4020_channel):
method sampling_frequency (line 39) | def sampling_frequency(self):
method sampling_frequency (line 44) | def sampling_frequency(self, value):
class __ad40xx_sr (line 49) | class __ad40xx_sr(object):
method sampling_frequency (line 53) | def sampling_frequency(self):
method sampling_frequency (line 58) | def sampling_frequency(self, value):
class ad4020 (line 63) | class ad4020(rx_chan_comp):
class ad4000 (line 74) | class ad4000(ad4020):
method __init__ (line 81) | def __init__(self, uri="", device_name="ad4000"):
class ad4001 (line 85) | class ad4001(ad4020, __ad40xx_sr):
method __init__ (line 91) | def __init__(self, uri="", device_name="ad4001"):
class ad4002 (line 95) | class ad4002(ad4020):
method __init__ (line 102) | def __init__(self, uri="", device_name="ad4002"):
class ad4003 (line 106) | class ad4003(ad4020, __ad40xx_sr):
method __init__ (line 112) | def __init__(self, uri="", device_name="ad4003"):
FILE: adi/ad405x.py
class ad405x_channel (line 13) | class ad405x_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method offset (line 26) | def offset(self):
method offset (line 31) | def offset(self, value):
method scale (line 35) | def scale(self):
method scale (line 40) | def scale(self, value):
class ad405x (line 44) | class ad405x(rx_chan_comp):
method operating_mode_avail (line 53) | def operating_mode_avail(self):
method operating_mode (line 58) | def operating_mode(self):
method operating_mode (line 63) | def operating_mode(self, value):
method burst_sample_rate (line 74) | def burst_sample_rate(self):
method burst_sample_rate (line 84) | def burst_sample_rate(self, value):
method avg_filter_length_avail (line 94) | def avg_filter_length_avail(self):
method avg_filter_length (line 104) | def avg_filter_length(self):
method avg_filter_length (line 114) | def avg_filter_length(self, value):
method sampling_frequency (line 130) | def sampling_frequency(self):
method sampling_frequency (line 135) | def sampling_frequency(self, value):
method to_volts (line 139) | def to_volts(self, index, val):
FILE: adi/ad4080.py
class ad4080_channel (line 9) | class ad4080_channel(attribute):
method __init__ (line 12) | def __init__(self, ctrl, channel_name):
method scale (line 17) | def scale(self):
class ad4080 (line 22) | class ad4080(rx_chan_comp):
method sampling_frequency (line 39) | def sampling_frequency(self):
method oversampling_ratio_available (line 44) | def oversampling_ratio_available(self):
method oversampling_ratio (line 49) | def oversampling_ratio(self):
method oversampling_ratio (line 54) | def oversampling_ratio(self, value):
method filter_type_available (line 59) | def filter_type_available(self):
method filter_type (line 64) | def filter_type(self):
method filter_type (line 69) | def filter_type(self, value):
method reg_read (line 73) | def reg_read(self, reg):
method reg_write (line 78) | def reg_write(self, reg, value):
FILE: adi/ad4110.py
class ad4110_channel (line 13) | class ad4110_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad4110 (line 44) | class ad4110(rx_chan_comp):
method to_volts (line 53) | def to_volts(self, index, val):
FILE: adi/ad4130.py
class ad4130_channel (line 13) | class ad4130_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method offset (line 26) | def offset(self):
method offset (line 31) | def offset(self, value):
method scale (line 35) | def scale(self):
method scale (line 40) | def scale(self, value):
class ad4130 (line 44) | class ad4130(rx_chan_comp):
method to_volts (line 53) | def to_volts(self, index, val):
FILE: adi/ad4170.py
class ad4170_channel (line 13) | class ad4170_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method offset (line 26) | def offset(self):
method offset (line 31) | def offset(self, value):
method scale (line 35) | def scale(self):
method scale (line 40) | def scale(self, value):
class ad4170 (line 44) | class ad4170(rx_chan_comp):
method to_volts (line 53) | def to_volts(self, index, val):
FILE: adi/ad4630.py
function _sign_extend (line 14) | def _sign_extend(value, nbits):
function _bitmask (line 19) | def _bitmask(nbits):
class ad4630 (line 26) | class ad4630(rx, context_manager, attribute):
method __init__ (line 44) | def __init__(self, uri="", device_name="ad4630-24"):
method rx (line 72) | def rx(self):
method output_data_mode (line 95) | def output_data_mode(self):
method sample_rate (line 123) | def sample_rate(self):
method sample_rate (line 128) | def sample_rate(self, rate):
class _channel (line 132) | class _channel(attribute):
method __init__ (line 135) | def __init__(self, ctrl, channel_name):
method calibbias (line 140) | def calibbias(self):
method calibbias (line 145) | def calibbias(self, calibbias):
method calibscale (line 152) | def calibscale(self):
method calibscale (line 157) | def calibscale(self, calibscale):
method oversampling_ratio_avail (line 162) | def oversampling_ratio_avail(self):
method oversampling_ratio (line 169) | def oversampling_ratio(self):
method oversampling_ratio (line 176) | def oversampling_ratio(self, n_sample):
class adaq42xx (line 189) | class adaq42xx(ad4630):
method __init__ (line 195) | def __init__(self, uri="", device_name="adaq4224"):
class _channel (line 198) | class _channel(ad4630._channel):
method scale_available (line 202) | def scale_available(self):
method scale (line 207) | def scale(self):
method scale (line 212) | def scale(self, value):
FILE: adi/ad469x.py
class ad469x_channel (line 14) | class ad469x_channel(attribute):
method __init__ (line 17) | def __init__(self, ctrl, channel_name):
method raw (line 22) | def raw(self):
method scale (line 27) | def scale(self):
method scale (line 32) | def scale(self, value):
class ad4695_channel (line 36) | class ad4695_channel(ad469x_channel):
method offset (line 40) | def offset(self):
method offset (line 45) | def offset(self, value):
method calibscale (line 49) | def calibscale(self):
method calibscale (line 54) | def calibscale(self, value):
method calibbias (line 58) | def calibbias(self):
method calibbias (line 63) | def calibbias(self, value):
class ad4691_channel (line 67) | class ad4691_channel(ad469x_channel):
method scale (line 71) | def scale(self):
method scale (line 76) | def scale(self, value):
method oversampling_ratio (line 80) | def oversampling_ratio(self):
method oversampling_ratio (line 85) | def oversampling_ratio(self, value):
method oversampling_ratio_available (line 89) | def oversampling_ratio_available(self):
method sampling_frequency (line 94) | def sampling_frequency(self):
method sampling_frequency (line 99) | def sampling_frequency(self, value):
class ad469x (line 106) | class ad469x(rx_chan_comp):
method __init__ (line 128) | def __init__(self, uri="", device_name=""):
method to_volts (line 135) | def to_volts(self, index, val):
FILE: adi/ad4858.py
class ad4858_channel (line 13) | class ad4858_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 36) | def offset(self):
method offset (line 41) | def offset(self, value):
method calibbias (line 46) | def calibbias(self):
method calibbias (line 51) | def calibbias(self, value):
method calibphase (line 56) | def calibphase(self):
method calibphase (line 61) | def calibphase(self, value):
method hardwaregain (line 66) | def hardwaregain(self):
method hardwaregain (line 71) | def hardwaregain(self, value):
method softspan_avail (line 76) | def softspan_avail(self):
method softspan (line 81) | def softspan(self):
method softspan (line 86) | def softspan(self, value):
class ad4858 (line 97) | class ad4858(rx_chan_comp):
method sampling_frequency (line 107) | def sampling_frequency(self):
method sampling_frequency (line 112) | def sampling_frequency(self, value):
method oversampling_ratio_avail (line 117) | def oversampling_ratio_avail(self):
method oversampling_ratio (line 122) | def oversampling_ratio(self):
method oversampling_ratio (line 127) | def oversampling_ratio(self, value):
method packet_format_avail (line 138) | def packet_format_avail(self):
method packet_format (line 143) | def packet_format(self):
method packet_format (line 148) | def packet_format(self, value):
method to_volts (line 158) | def to_volts(self, index, val):
FILE: adi/ad514x.py
class ad514x (line 9) | class ad514x(context_manager, attribute):
method __init__ (line 17) | def __init__(self, uri="", device_name=""):
method nvm_programming_avail (line 41) | def nvm_programming_avail(self):
method nvm_programming (line 46) | def nvm_programming(self):
method nvm_programming (line 51) | def nvm_programming(self, value):
method rdac_wp_avail (line 62) | def rdac_wp_avail(self):
method rdac_wp (line 67) | def rdac_wp(self):
method rdac_wp (line 72) | def rdac_wp(self, value):
class _channel (line 82) | class _channel(attribute):
method __init__ (line 85) | def __init__(self, ctrl, channel_name):
method raw (line 90) | def raw(self):
method raw (line 95) | def raw(self, value):
method eeprom_value (line 100) | def eeprom_value(self):
method eeprom_value (line 105) | def eeprom_value(self, value):
method input_reg_val (line 110) | def input_reg_val(self):
method input_reg_val (line 115) | def input_reg_val(self, value):
method bottom_scale_option (line 120) | def bottom_scale_option(self):
method bottom_scale_option_avail (line 125) | def bottom_scale_option_avail(self):
method bottom_scale_option (line 132) | def bottom_scale_option(self, value):
method top_scale_option (line 143) | def top_scale_option(self):
method top_scale_option_avail (line 148) | def top_scale_option_avail(self):
method top_scale_option (line 155) | def top_scale_option(self, value):
method copy_eeprom_to_rdac (line 166) | def copy_eeprom_to_rdac(self):
method copy_eeprom_to_rdac_avail (line 171) | def copy_eeprom_to_rdac_avail(self):
method copy_eeprom_to_rdac (line 178) | def copy_eeprom_to_rdac(self, value):
method copy_rdac_to_eeprom (line 189) | def copy_rdac_to_eeprom(self):
method copy_rdac_to_eeprom_avail (line 194) | def copy_rdac_to_eeprom_avail(self):
method copy_rdac_to_eeprom (line 201) | def copy_rdac_to_eeprom(self, value):
method shutdown (line 212) | def shutdown(self):
method shutdown_avail (line 217) | def shutdown_avail(self):
method shutdown (line 222) | def shutdown(self, value):
method rdac_6db (line 233) | def rdac_6db(self):
method rdac_6db_avail (line 238) | def rdac_6db_avail(self):
method rdac_6db (line 243) | def rdac_6db(self, value):
method rdac_linear (line 254) | def rdac_linear(self):
method rdac_linear_avail (line 259) | def rdac_linear_avail(self):
method rdac_linear (line 264) | def rdac_linear(self, value):
method sw_lrdac (line 275) | def sw_lrdac(self):
method sw_lrdac_avail (line 280) | def sw_lrdac_avail(self):
method sw_lrdac (line 285) | def sw_lrdac(self, value):
method scale (line 296) | def scale(self):
FILE: adi/ad5592r.py
class ad5592r (line 10) | class ad5592r(rx, context_manager):
method __repr__ (line 31) | def __repr__(self):
method __init__ (line 40) | def __init__(self, uri="", device_name=""):
class _channel_adc (line 92) | class _channel_adc(attribute):
method __init__ (line 96) | def __init__(self, ctrl, channel_name, output):
method raw (line 103) | def raw(self):
method scale (line 108) | def scale(self):
method scale (line 112) | def scale(self, value):
method scale_available (line 126) | def scale_available(self):
method __call__ (line 130) | def __call__(self, mV=None):
class _channel_dac (line 136) | class _channel_dac(_channel_adc):
method __init__ (line 141) | def __init__(self, ctrl, channel_name, output):
method raw (line 146) | def raw(self):
method raw (line 150) | def raw(self, value):
class _channel_temp (line 153) | class _channel_temp(attribute):
method __init__ (line 157) | def __init__(self, ctrl, channel_name, output):
method raw (line 164) | def raw(self):
method scale (line 169) | def scale(self):
method offset (line 174) | def offset(self):
method __call__ (line 177) | def __call__(self, mV=None):
FILE: adi/ad5627.py
class ad5627 (line 9) | class ad5627(tx, context_manager):
method __init__ (line 16) | def __init__(self, uri=""):
method _adp_bias_volts_to_raw_convert (line 22) | def _adp_bias_volts_to_raw_convert(value, inverse):
method apdbias (line 32) | def apdbias(self):
method apdbias (line 38) | def apdbias(self, value):
method _tilt_volts_to_raw_convert (line 44) | def _tilt_volts_to_raw_convert(value, inverse):
method tiltvoltage (line 54) | def tiltvoltage(self):
method tiltvoltage (line 60) | def tiltvoltage(self, voltage):
FILE: adi/ad5686.py
class ad5686_channel (line 11) | class ad5686_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name):
method raw (line 19) | def raw(self):
method raw (line 24) | def raw(self, value):
method powerdown (line 28) | def powerdown(self):
method powerdown (line 33) | def powerdown(self, val):
method powerdown_mode (line 38) | def powerdown_mode(self):
method powerdown_mode (line 43) | def powerdown_mode(self, val):
method powerdown_mode_available (line 48) | def powerdown_mode_available(self):
method scale (line 53) | def scale(self):
method to_raw (line 57) | def to_raw(self, val):
method volts (line 62) | def volts(self):
method volts (line 67) | def volts(self, val):
class ad5686 (line 72) | class ad5686(tx_chan_comp_no_buff):
FILE: adi/ad5706r.py
class ad5706r (line 13) | class ad5706r(tx, context_manager):
method __init__ (line 19) | def __init__(self, uri="", device_name=""):
method output_bits (line 61) | def output_bits(self):
method sampling_frequency (line 66) | def sampling_frequency(self):
method sampling_frequency (line 71) | def sampling_frequency(self, value):
method dev_addr (line 75) | def dev_addr(self):
method dev_addr (line 80) | def dev_addr(self, value):
method addr_ascension (line 85) | def addr_ascension(self):
method addr_ascension_available (line 90) | def addr_ascension_available(self):
method addr_ascension (line 96) | def addr_ascension(self, value):
method single_instr (line 107) | def single_instr(self):
method single_instr_available (line 112) | def single_instr_available(self):
method single_instr (line 118) | def single_instr(self, value):
method hw_ldac_tg_state (line 129) | def hw_ldac_tg_state(self):
method hw_ldac_tg_state_available (line 134) | def hw_ldac_tg_state_available(self):
method hw_ldac_tg_state (line 140) | def hw_ldac_tg_state(self, value):
method hw_shutdown_state (line 151) | def hw_shutdown_state(self):
method hw_shutdown_state_available (line 156) | def hw_shutdown_state_available(self):
method hw_shutdown_state (line 162) | def hw_shutdown_state(self, value):
method mux_out_sel (line 173) | def mux_out_sel(self):
method mux_out_sel_available (line 178) | def mux_out_sel_available(self):
method mux_out_sel (line 186) | def mux_out_sel(self, value):
method ref_select (line 197) | def ref_select(self):
method ref_select_available (line 202) | def ref_select_available(self):
method ref_select (line 208) | def ref_select(self, value):
method multi_dac_sw_ldac_trigger (line 219) | def multi_dac_sw_ldac_trigger(self):
method multi_dac_sw_ldac_trigger_available (line 224) | def multi_dac_sw_ldac_trigger_available(self):
method multi_dac_sw_ldac_trigger (line 230) | def multi_dac_sw_ldac_trigger(self, value):
method hw_ldac_tg_pwm (line 241) | def hw_ldac_tg_pwm(self):
method hw_ldac_tg_pwm_available (line 246) | def hw_ldac_tg_pwm_available(self):
method hw_ldac_tg_pwm (line 252) | def hw_ldac_tg_pwm(self, value):
method reference_volts (line 263) | def reference_volts(self):
method reference_volts (line 268) | def reference_volts(self, value):
method multi_dac_input_a (line 273) | def multi_dac_input_a(self):
method multi_dac_input_a (line 278) | def multi_dac_input_a(self, value):
class _channel (line 282) | class _channel(attribute):
method __init__ (line 285) | def __init__(self, ctrl, channel_name):
method raw (line 290) | def raw(self):
method raw (line 295) | def raw(self, value):
method offset (line 299) | def offset(self):
method offset (line 304) | def offset(self, value):
method scale (line 308) | def scale(self):
method scale (line 313) | def scale(self, value):
method input_register_a (line 317) | def input_register_a(self):
method input_register_a (line 322) | def input_register_a(self, value):
method input_register_b (line 327) | def input_register_b(self):
method input_register_b (line 332) | def input_register_b(self, value):
method hw_active_edge (line 337) | def hw_active_edge(self):
method hw_active_edge_available (line 342) | def hw_active_edge_available(self):
method hw_active_edge (line 348) | def hw_active_edge(self, value):
method multi_dac_sel_ch (line 359) | def multi_dac_sel_ch(self):
method multi_dac_sel_ch_available (line 364) | def multi_dac_sel_ch_available(self):
method multi_dac_sel_ch (line 370) | def multi_dac_sel_ch(self, value):
method range_sel (line 381) | def range_sel(self):
method range_sel_available (line 386) | def range_sel_available(self):
method range_sel (line 392) | def range_sel(self, value):
method ldac_trigger_chn (line 403) | def ldac_trigger_chn(self):
method ldac_trigger_chn_available (line 408) | def ldac_trigger_chn_available(self):
method ldac_trigger_chn (line 414) | def ldac_trigger_chn(self, value):
method toggle_trigger_chn (line 425) | def toggle_trigger_chn(self):
method toggle_trigger_chn_available (line 430) | def toggle_trigger_chn_available(self):
method toggle_trigger_chn (line 438) | def toggle_trigger_chn(self, value):
method hw_func_sel (line 449) | def hw_func_sel(self):
method hw_func_sel_available (line 454) | def hw_func_sel_available(self):
method hw_func_sel (line 460) | def hw_func_sel(self, value):
method output_state (line 471) | def output_state(self):
method output_state_available (line 476) | def output_state_available(self):
method output_state (line 483) | def output_state(self, value):
FILE: adi/ad5710r.py
class ad5710r (line 10) | class ad5710r(tx, context_manager):
method __init__ (line 16) | def __init__(self, uri="", device_name=""):
method output_bits (line 58) | def output_bits(self):
method sampling_frequency (line 65) | def sampling_frequency(self):
method sampling_frequency (line 70) | def sampling_frequency(self, value):
method all_ch_operating_mode_avail (line 74) | def all_ch_operating_mode_avail(self):
method all_ch_operating_mode (line 79) | def all_ch_operating_mode(self):
method all_ch_operating_mode (line 84) | def all_ch_operating_mode(self, value):
method all_ch_input_registers (line 94) | def all_ch_input_registers(self):
method all_ch_input_registers (line 99) | def all_ch_input_registers(self, value):
method all_ch_raw (line 103) | def all_ch_raw(self):
method all_ch_raw (line 108) | def all_ch_raw(self, value):
method reference_select_available (line 112) | def reference_select_available(self):
method reference_select (line 117) | def reference_select(self):
method reference_select (line 122) | def reference_select(self, value):
method sw_ldac_trigger_avail (line 132) | def sw_ldac_trigger_avail(self):
method sw_ldac_trigger (line 137) | def sw_ldac_trigger(self):
method sw_ldac_trigger (line 142) | def sw_ldac_trigger(self, value):
method hw_ldac_trigger_avail (line 152) | def hw_ldac_trigger_avail(self):
method hw_ldac_trigger (line 157) | def hw_ldac_trigger(self):
method hw_ldac_trigger (line 162) | def hw_ldac_trigger(self, value):
method range_avail (line 172) | def range_avail(self):
method range (line 177) | def range(self):
method range (line 182) | def range(self, value):
method mux_out_select_avail (line 192) | def mux_out_select_avail(self):
method mux_out_select (line 197) | def mux_out_select(self):
method mux_out_select (line 202) | def mux_out_select(self, value):
class _channel (line 213) | class _channel(attribute):
method __init__ (line 216) | def __init__(self, ctrl, channel_name):
method input_register (line 222) | def input_register(self):
method input_register (line 227) | def input_register(self, value):
method raw (line 231) | def raw(self):
method raw (line 236) | def raw(self, value):
method offset (line 240) | def offset(self):
method scale (line 245) | def scale(self):
method ch_mode_avail (line 250) | def ch_mode_avail(self):
method ch_mode (line 255) | def ch_mode(self):
method ch_mode (line 260) | def ch_mode(self, value):
method operating_mode_avail (line 270) | def operating_mode_avail(self):
method operating_mode (line 275) | def operating_mode(self):
method operating_mode (line 280) | def operating_mode(self, value):
FILE: adi/ad5754r.py
class ad5754r_channel (line 11) | class ad5754r_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name):
method raw (line 19) | def raw(self):
method raw (line 25) | def raw(self, value):
method offset (line 30) | def offset(self):
method offset (line 35) | def offset(self, value):
method scale (line 40) | def scale(self):
method scale (line 45) | def scale(self, value):
method powerup (line 50) | def powerup(self):
method powerup_available (line 55) | def powerup_available(self):
method powerup (line 60) | def powerup(self, value):
method range (line 71) | def range(self):
method range_available (line 76) | def range_available(self):
method range (line 81) | def range(self, value):
method dac_register (line 92) | def dac_register(self):
method dac_register (line 97) | def dac_register(self, value):
class ad5754r (line 102) | class ad5754r(tx_chan_comp_no_buff):
method __post_init__ (line 111) | def __post_init__(self):
method int_ref_powerup (line 118) | def int_ref_powerup(self):
method int_ref_powerup_available (line 123) | def int_ref_powerup_available(self):
method int_ref_powerup (line 128) | def int_ref_powerup(self, value):
method clear_setting (line 139) | def clear_setting(self):
method clear_setting_available (line 144) | def clear_setting_available(self):
method clear_setting (line 149) | def clear_setting(self, value):
method sdo_disable (line 160) | def sdo_disable(self):
method sdo_disable_available (line 165) | def sdo_disable_available(self):
method sdo_disable (line 170) | def sdo_disable(self, value):
method sampling_frequency (line 181) | def sampling_frequency(self):
method sampling_frequency (line 186) | def sampling_frequency(self, value):
method clamp_enable (line 191) | def clamp_enable(self):
method clamp_enable_available (line 196) | def clamp_enable_available(self):
method clamp_enable (line 201) | def clamp_enable(self, value):
method tsd_enable (line 212) | def tsd_enable(self):
method tsd_enable_available (line 217) | def tsd_enable_available(self):
method tsd_enable (line 222) | def tsd_enable(self, value):
method oc_tsd (line 233) | def oc_tsd(self):
method oc_tsd_available (line 238) | def oc_tsd_available(self):
method all_chns_clear (line 243) | def all_chns_clear(self):
method all_chns_clear_available (line 248) | def all_chns_clear_available(self):
method all_chns_clear (line 253) | def all_chns_clear(self, value):
method sw_ldac_trigger (line 264) | def sw_ldac_trigger(self):
method sw_ldac_trigger_available (line 269) | def sw_ldac_trigger_available(self):
method sw_ldac_trigger (line 274) | def sw_ldac_trigger(self, value):
method hw_ldac_trigger (line 285) | def hw_ldac_trigger(self):
method hw_ldac_trigger_available (line 290) | def hw_ldac_trigger_available(self):
method hw_ldac_trigger (line 295) | def hw_ldac_trigger(self, value):
FILE: adi/ad579x.py
class ad579x_channel (line 12) | class ad579x_channel(attribute):
method __init__ (line 15) | def __init__(self, ctrl, channel_name):
method raw (line 20) | def raw(self):
method raw (line 25) | def raw(self, value):
method offset (line 29) | def offset(self):
method offset (line 34) | def offset(self, value):
method scale (line 38) | def scale(self):
method scale (line 43) | def scale(self, value):
method powerdown (line 47) | def powerdown(self):
method powerdown (line 52) | def powerdown(self, value):
method powerdown_available (line 56) | def powerdown_available(self):
class ad579x (line 61) | class ad579x(tx_chan_comp):
method __post_init__ (line 76) | def __post_init__(self):
method powerdown_mode (line 83) | def powerdown_mode(self):
method powerdown_mode (line 88) | def powerdown_mode(self, value):
method powerdown_mode_available (line 92) | def powerdown_mode_available(self):
method sampling_frequency (line 97) | def sampling_frequency(self):
method sampling_frequency (line 102) | def sampling_frequency(self, value):
FILE: adi/ad5940.py
class ad5940 (line 14) | class ad5940(rx, context_manager):
method __init__ (line 21) | def __init__(self, uri=""):
method impedance_mode (line 47) | def impedance_mode(self):
method impedance_mode (line 53) | def impedance_mode(self, value):
method magnitude_mode (line 57) | def magnitude_mode(self):
method magnitude_mode (line 64) | def magnitude_mode(self, value):
method excitation_frequency (line 68) | def excitation_frequency(self):
method excitation_frequency (line 73) | def excitation_frequency(self, value):
method excitation_amplitude (line 77) | def excitation_amplitude(self):
method excitation_amplitude (line 82) | def excitation_amplitude(self, value):
method gpio1_toggle (line 86) | def gpio1_toggle(self):
method gpio1_toggle (line 91) | def gpio1_toggle(self, value):
class _bia_channel (line 94) | class _bia_channel(attribute):
method __init__ (line 97) | def __init__(self, parent, ctrl, channel_name):
method raw (line 103) | def raw(self):
FILE: adi/ad6676.py
class ad6676 (line 9) | class ad6676(rx, context_manager):
method __init__ (line 16) | def __init__(self, uri=""):
method adc_frequency (line 26) | def adc_frequency(self):
method adc_frequency (line 36) | def adc_frequency(self, value):
method bandwidth (line 40) | def bandwidth(self):
method bandwidth (line 49) | def bandwidth(self, value):
method bw_margin_high (line 53) | def bw_margin_high(self):
method bw_margin_high (line 61) | def bw_margin_high(self, value):
method bw_margin_if (line 65) | def bw_margin_if(self):
method bw_margin_if (line 73) | def bw_margin_if(self, value):
method bw_margin_low (line 77) | def bw_margin_low(self):
method bw_margin_low (line 85) | def bw_margin_low(self, value):
method hardwaregain (line 89) | def hardwaregain(self):
method hardwaregain (line 99) | def hardwaregain(self, value):
method scale (line 103) | def scale(self):
method scale (line 114) | def scale(self, value):
method intermediate_frequency (line 118) | def intermediate_frequency(self):
method intermediate_frequency (line 126) | def intermediate_frequency(self, value):
method sampling_frequency (line 130) | def sampling_frequency(self):
method sampling_frequency (line 137) | def sampling_frequency(self, value):
method shuffler_control (line 141) | def shuffler_control(self):
method shuffler_control (line 156) | def shuffler_control(self, value):
method shuffler_thresh (line 160) | def shuffler_thresh(self):
method shuffler_thresh (line 170) | def shuffler_thresh(self, value):
method test_mode (line 174) | def test_mode(self):
method test_mode (line 180) | def test_mode(self, value):
FILE: adi/ad7091rx.py
class ad7091rx_channel (line 11) | class ad7091rx_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name):
method raw (line 19) | def raw(self):
method scale (line 24) | def scale(self):
class ad7091rx (line 29) | class ad7091rx(rx_chan_comp_no_buff):
method to_mvolts (line 38) | def to_mvolts(self, index, val):
FILE: adi/ad7124.py
class ad7124_channel (line 13) | class ad7124_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad7124 (line 44) | class ad7124(rx_chan_comp):
method __post_init__ (line 52) | def __post_init__(self):
method sample_rate (line 61) | def sample_rate(self):
method sample_rate (line 66) | def sample_rate(self, value):
method scale_available (line 71) | def scale_available(self):
method to_volts (line 75) | def to_volts(self, index, val):
FILE: adi/ad7134.py
class ad7134_channel (line 13) | class ad7134_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad7134 (line 44) | class ad7134(rx_chan_comp):
method to_volts (line 53) | def to_volts(self, index, val):
FILE: adi/ad717x.py
class ad717x_channel (line 13) | class ad717x_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad717x (line 44) | class ad717x(rx_chan_comp):
method to_volts (line 67) | def to_volts(self, index, val):
FILE: adi/ad719x.py
class ad719x_channel (line 13) | class ad719x_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad719x (line 44) | class ad719x(rx_chan_comp):
method to_volts (line 53) | def to_volts(self, index, val):
FILE: adi/ad7291.py
class ad7291_channel (line 9) | class ad7291_channel(attribute):
method __init__ (line 12) | def __init__(self, ctrl, channel_name):
method raw (line 17) | def raw(self):
method scale (line 22) | def scale(self):
method __call__ (line 26) | def __call__(self):
class ad7291_temp_channel (line 31) | class ad7291_temp_channel(ad7291_channel): # attribute):
method mean_raw (line 35) | def mean_raw(self):
method __call__ (line 39) | def __call__(self):
class ad7291 (line 44) | class ad7291(rx_chan_comp_no_buff):
method _channel_def (line 51) | def _channel_def(self, ctrl, name):
method __repr__ (line 57) | def __repr__(self):
FILE: adi/ad738x.py
class ad738x_channel (line 13) | class ad738x_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method raw (line 21) | def raw(self):
method scale (line 26) | def scale(self):
method scale (line 31) | def scale(self, value):
method offset (line 35) | def offset(self):
method offset (line 40) | def offset(self, value):
class ad738x (line 44) | class ad738x(rx_chan_comp):
method to_volts (line 68) | def to_volts(self, index, val):
FILE: adi/ad7405.py
class ad7405_channel (line 13) | class ad7405_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method scale (line 21) | def scale(self):
method offset (line 26) | def offset(self):
class ad7405 (line 31) | class ad7405(rx_chan_comp):
method oversampling_ratio (line 41) | def oversampling_ratio(self):
method oversampling_ratio (line 46) | def oversampling_ratio(self, value):
method oversampling_ratio_available (line 55) | def oversampling_ratio_available(self):
FILE: adi/ad7490.py
class ad7490_channel (line 11) | class ad7490_channel(attribute):
method __init__ (line 14) | def __init__(self, ctrl, channel_name):
method raw (line 19) | def raw(self):
method scale (line 24) | def scale(self):
class ad7490 (line 29) | class ad7490(rx_chan_comp):
method polarity_available (line 38) | def polarity_available(self):
method range_available (line 43) | def range_available(self):
method polarity (line 48) | def polarity(self):
method polarity (line 53) | def polarity(self, ptype):
method range (line 64) | def range(self):
method range (line 69) | def range(self, rtype):
method sampling_frequency (line 80) | def sampling_frequency(self):
method to_volts (line 84) | def to_volts(self, index, val):
FILE: adi/ad7606.py
class ad7606_channel (line 14) | class ad7606_channel(attribute):
method __init__ (line 17) | def __init__(self, ctrl, channel_name):
method raw (line 22) | def raw(self):
method scale (line 27) | def scale(self):
method scale (line 32) | def scale(self, value):
method range (line 36) | def range(self):
method range (line 41) | def range(self, value):
class ad7606 (line 45) | class ad7606(rx_chan_comp):
method scale_available (line 64) | def scale_available(self):
method range_available (line 69) | def range_available(self):
method oversampling_ratio (line 74) | def oversampling_ratio(self):
method oversampling_ratio (line 79) | def oversampling_ratio(self, value):
method oversampling_ratio_available (line 83) | def oversampling_ratio_available(self):
method to_volts (line 87) | def to_volts(self, index, val):
FILE: adi/ad7689.py
class ad7689_channel (line 14) | class ad7689_channel(attribute):
method __init__ (line 17) | def __init__(self, ctrl, channel_name):
method raw (line 22) | def raw(self):
method scale (line 27) | def scale(self):
method scale (line 32) | def scale(self, value):
class ad7689 (line 36) | class ad7689(rx_chan_comp):
method to_volts (line 51) | def to_volts(self, index, val):
FILE: adi/ad7746.py
class ad7746 (line 13) | class ad7746(rx, context_manager):
method __init__ (line 20) | def __init__(self, uri="", device_name=""):
class _temp_channel (line 60) | class _temp_channel(attribute):
method __init__ (line 63) | def __init__(self, ctrl, channel_name):
method input (line 68) | def input(self):
class _volt_channel (line 72) | class _volt_channel(attribute):
method __init__ (line 75) | def __init__(self, ctrl, channel_name):
method raw (line 80) | def raw(self):
method scale (line 85) | def scale(self):
method sampling_frequency (line 90) | def sampling_frequency(self):
method sampling_frequency (line 95) | def sampling_frequency(self, value):
method sampling_frequency_available (line 99) | def sampling_frequency_available(self):
method calibscale_calibration (line 106) | def calibscale_calibration(self, value=1):
class _cap_channel (line 110) | class _cap_channel(_volt_channel):
method offset (line 114) | def offset(self):
method offset (line 119) | def offset(self, value):
method calibscale (line 123) | def calibscale(self):
method calibscale (line 128) | def calibscale(self, value):
method calibbias (line 132) | def calibbias(self):
method calibbias (line 137) | def calibbias(self, value):
method calibbias_calibration (line 140) | def calibbias_calibration(self, value=1):
FILE: adi/ad7768.py
class ad7768 (line 10) | class ad7768(rx_def):
method sampling_frequency_available (line 21) | def sampling_frequency_available(self):
method sampling_frequency (line 26) | def sampling_frequency(self):
method sampling_frequency (line 31) | def sampling_frequency(self, rate):
method power_mode_avail (line 42) | def power_mode_avail(self):
method power_mode (line 47) | def power_mode(self):
method power_mode (line 52) | def power_mode(self, mode):
method filter_type_avail (line 63) | def filter_type_avail(self):
method filter_type (line 68) | def filter_type(self):
method filter_type (line 73) | def filter_type(self, ftype):
class ad7768_4 (line 84) | class ad7768_4(ad7768):
method sync_start_enable_available (line 92) | def sync_start_enable_available(self):
method sync_start_enable (line 97) | def sync_start_enable(self):
method sync_start_enable (line 102) | def sync_start_enable(self, ftype):
FILE: adi/ad777x.py
class ad777x_channel (line 14) | class ad777x_channel(attribute):
method __init__ (line 17) | def __init__(self, ctrl, channel_name):
method raw (line 22) | def raw(self):
method scale (line 27) | def scale(self):
method scale (line 32) | def scale(self, value):
method offset (line 36) | def offset(self):
method offset (line 41) | def offset(self, value):
class ad777x (line 45) | class ad777x(rx_chan_comp):
FILE: adi/ad7799.py
class ad7799_channel (line 9) | class ad7799_channel(attribute):
method __init__ (line 12) | def __init__(self, ctrl, channel_name):
method value (line 17) | def value(self):
class ad7799 (line 22) | class ad7799(rx_chan_comp):
method gain (line 33) | def gain(self):
method gain (line 38) | def gain(self, value):
FILE: adi/ad9081.py
function _map_to_dict (line 12) | def _map_to_dict(paths, ch):
function _sortconv (line 25) | def _sortconv(chans_names, noq=False, dds=False, complex=False):
class ad9081 (line 64) | class ad9081(rx_tx, context_manager, sync_start):
method __init__ (line 80) | def __init__(self, uri=""):
method _get_iio_attr_str_single (line 156) | def _get_iio_attr_str_single(self, channel_name, attr, output):
method _set_iio_attr_str_single (line 162) | def _set_iio_attr_str_single(self, channel_name, attr, output, value):
method _get_iio_attr_single (line 168) | def _get_iio_attr_single(self, channel_name, attr, output, _ctrl=None):
method _set_iio_attr_single (line 174) | def _set_iio_attr_single(self, channel_name, attr, output, value, _ctr...
method _get_iio_dev_attr_single (line 180) | def _get_iio_dev_attr_single(self, attr):
method _set_iio_dev_attr_single (line 184) | def _set_iio_dev_attr_single(self, attr, value):
method _get_iio_dev_attr_str_single (line 188) | def _get_iio_dev_attr_str_single(self, attr):
method _set_iio_dev_attr_str_single (line 192) | def _set_iio_dev_attr_str_single(self, attr, value):
method path_map (line 197) | def path_map(self):
method write_pfilt_config (line 203) | def write_pfilt_config(self, value):
method rx_channel_nco_frequencies (line 216) | def rx_channel_nco_frequencies(self):
method rx_channel_nco_frequencies (line 223) | def rx_channel_nco_frequencies(self, value):
method rx_channel_nco_phases (line 229) | def rx_channel_nco_phases(self):
method rx_channel_nco_phases (line 236) | def rx_channel_nco_phases(self, value):
method rx_main_nco_frequencies (line 242) | def rx_main_nco_frequencies(self):
method rx_main_nco_frequencies (line 249) | def rx_main_nco_frequencies(self, value):
method rx_main_nco_phases (line 255) | def rx_main_nco_phases(self):
method rx_main_nco_phases (line 262) | def rx_main_nco_phases(self, value):
method rx_test_mode (line 268) | def rx_test_mode(self):
method rx_test_mode (line 275) | def rx_test_mode(self, value):
method rx_nyquist_zone (line 281) | def rx_nyquist_zone(self):
method rx_nyquist_zone (line 288) | def rx_nyquist_zone(self, value):
method rx_main_6dB_digital_gains (line 294) | def rx_main_6dB_digital_gains(self):
method rx_main_6dB_digital_gains (line 301) | def rx_main_6dB_digital_gains(self, value):
method rx_channel_6dB_digital_gains (line 307) | def rx_channel_6dB_digital_gains(self):
method rx_channel_6dB_digital_gains (line 314) | def rx_channel_6dB_digital_gains(self, value):
method rx_main_nco_ffh_index (line 323) | def rx_main_nco_ffh_index(self):
method rx_main_nco_ffh_index (line 330) | def rx_main_nco_ffh_index(self, value):
method rx_main_nco_ffh_select (line 336) | def rx_main_nco_ffh_select(self):
method rx_main_nco_ffh_select (line 343) | def rx_main_nco_ffh_select(self, value):
method rx_main_ffh_mode (line 349) | def rx_main_ffh_mode(self):
method rx_main_ffh_mode (line 359) | def rx_main_ffh_mode(self, value):
method rx_main_ffh_trig_hop_en (line 365) | def rx_main_ffh_trig_hop_en(self):
method rx_main_ffh_trig_hop_en (line 372) | def rx_main_ffh_trig_hop_en(self, value):
method rx_main_ffh_gpio_mode_enable (line 378) | def rx_main_ffh_gpio_mode_enable(self):
method rx_main_ffh_gpio_mode_enable (line 385) | def rx_main_ffh_gpio_mode_enable(self, value):
method tx_channel_nco_frequencies (line 391) | def tx_channel_nco_frequencies(self):
method tx_channel_nco_frequencies (line 398) | def tx_channel_nco_frequencies(self, value):
method tx_channel_nco_phases (line 404) | def tx_channel_nco_phases(self):
method tx_channel_nco_phases (line 411) | def tx_channel_nco_phases(self, value):
method tx_channel_nco_test_tone_en (line 417) | def tx_channel_nco_test_tone_en(self):
method tx_channel_nco_test_tone_en (line 424) | def tx_channel_nco_test_tone_en(self, value):
method tx_channel_nco_test_tone_scales (line 430) | def tx_channel_nco_test_tone_scales(self):
method tx_channel_nco_test_tone_scales (line 437) | def tx_channel_nco_test_tone_scales(self, value):
method tx_channel_nco_gain_scales (line 446) | def tx_channel_nco_gain_scales(self):
method tx_channel_nco_gain_scales (line 453) | def tx_channel_nco_gain_scales(self, value):
method tx_main_nco_frequencies (line 459) | def tx_main_nco_frequencies(self):
method tx_main_nco_frequencies (line 466) | def tx_main_nco_frequencies(self, value):
method tx_main_nco_phases (line 472) | def tx_main_nco_phases(self):
method tx_main_nco_phases (line 479) | def tx_main_nco_phases(self, value):
method tx_main_nco_test_tone_en (line 485) | def tx_main_nco_test_tone_en(self):
method tx_main_nco_test_tone_en (line 492) | def tx_main_nco_test_tone_en(self, value):
method tx_main_nco_test_tone_scales (line 498) | def tx_main_nco_test_tone_scales(self):
method tx_main_nco_test_tone_scales (line 505) | def tx_main_nco_test_tone_scales(self, value):
method tx_main_ffh_frequency (line 511) | def tx_main_ffh_frequency(self):
method tx_main_ffh_frequency (line 520) | def tx_main_ffh_frequency(self, value):
method tx_main_ffh_index (line 526) | def tx_main_ffh_index(self):
method tx_main_ffh_index (line 533) | def tx_main_ffh_index(self, value):
method tx_main_nco_ffh_select (line 539) | def tx_main_nco_ffh_select(self):
method tx_main_nco_ffh_select (line 546) | def tx_main_nco_ffh_select(self, value):
method tx_main_ffh_mode (line 552) | def tx_main_ffh_mode(self):
method tx_main_ffh_mode (line 561) | def tx_main_ffh_mode(self, value):
method tx_main_ffh_gpio_mode_enable (line 567) | def tx_main_ffh_gpio_mode_enable(self):
method tx_main_ffh_gpio_mode_enable (line 572) | def tx_main_ffh_gpio_mode_enable(self, value):
method tx_dac_en (line 578) | def tx_dac_en(self):
method tx_dac_en (line 583) | def tx_dac_en(self, value):
method set_tx_dac_full_scale_current (line 588) | def set_tx_dac_full_scale_current(self, value):
method powerdown (line 600) | def powerdown(self):
method powerdown (line 611) | def powerdown(self, value):
method loopback_mode (line 617) | def loopback_mode(self):
method loopback_mode (line 630) | def loopback_mode(self, value):
method tx_ddr_offload (line 636) | def tx_ddr_offload(self):
method tx_ddr_offload (line 647) | def tx_ddr_offload(self, value):
method rx_sample_rate (line 651) | def rx_sample_rate(self):
method adc_frequency (line 658) | def adc_frequency(self):
method tx_sample_rate (line 665) | def tx_sample_rate(self):
method dac_frequency (line 672) | def dac_frequency(self):
method jesd204_fsm_ctrl (line 679) | def jesd204_fsm_ctrl(self):
method jesd204_fsm_ctrl (line 684) | def jesd204_fsm_ctrl(self, value):
method jesd204_fsm_resume (line 688) | def jesd204_fsm_resume(self):
method jesd204_fsm_resume (line 693) | def jesd204_fsm_resume(self, value):
method jesd204_fsm_state (line 697) | def jesd204_fsm_state(self):
method jesd204_fsm_paused (line 702) | def jesd204_fsm_paused(self):
method jesd204_fsm_error (line 707) | def jesd204_fsm_error(self):
method jesd204_device_status (line 712) | def jesd204_device_status(self):
method jesd204_device_status_check (line 717) | def jesd204_device_status_check(self):
method chip_version (line 741) | def chip_version(self):
method api_version (line 746) | def api_version(self):
FILE: adi/ad9081_mc.py
function _map_to_dict (line 15) | def _map_to_dict(paths, ch, dev_name):
function _sortconv (line 32) | def _sortconv(chans_names, noq=False, dds=False):
function _find_dev_with_buffers (line 60) | def _find_dev_with_buffers(ctx, output=False, contains=""):
class ad9081_mc (line 72) | class ad9081_mc(ad9081):
method __init__ (line 101) | def __init__(self, uri="", phy_dev_name=""):
method _map_unique (line 173) | def _map_unique(self, paths):
method _map_inputs_to_dict (line 203) | def _map_inputs_to_dict(self, channel_names_dict, attr, output, values):
method _map_inputs_to_dict_single (line 220) | def _map_inputs_to_dict_single(self, channel_names_dict, values):
method _get_iio_attr_vec (line 232) | def _get_iio_attr_vec(self, channel_names_dict, attr, output):
method _set_iio_attr_int_vec (line 240) | def _set_iio_attr_int_vec(self, channel_names_dict, attr, output, valu...
method _set_iio_attr_float_vec (line 252) | def _set_iio_attr_float_vec(self, channel_names_dict, attr, output, va...
method _set_iio_attr_str_vec (line 264) | def _set_iio_attr_str_vec(self, channel_names_dict, attr, output, valu...
method _get_iio_attr_str_single (line 277) | def _get_iio_attr_str_single(self, channel_name, attr, output):
method _set_iio_attr_str_single (line 289) | def _set_iio_attr_str_single(self, channel_name, attr, output, value):
method _get_iio_attr_single (line 301) | def _get_iio_attr_single(self, channel_name, attr, output):
method _set_iio_attr_single (line 313) | def _set_iio_attr_single(self, channel_name, attr, output, values):
method _get_iio_dev_attr_single (line 324) | def _get_iio_dev_attr_single(self, attr):
method _set_iio_dev_attr_single (line 331) | def _set_iio_dev_attr_single(self, attr, values):
class QuadMxFE (line 338) | class QuadMxFE(ad9081_mc):
method __init__ (line 346) | def __init__(self, uri="", calibration_board_attached=False):
method rx_dsa_gain (line 361) | def rx_dsa_gain(self):
method rx_dsa_gain (line 366) | def rx_dsa_gain(self, value):
FILE: adi/ad9083.py
class ad9083 (line 12) | class ad9083(sync_start, rx, context_manager):
method __init__ (line 20) | def __init__(self, uri=""):
method rx_sample_rate (line 40) | def rx_sample_rate(self):
method nco0_frequency (line 47) | def nco0_frequency(self):
method nco0_frequency (line 52) | def nco0_frequency(self, value):
method nco1_frequency (line 58) | def nco1_frequency(self):
method nco1_frequency (line 63) | def nco1_frequency(self, value):
method nco2_frequency (line 69) | def nco2_frequency(self):
method nco2_frequency (line 74) | def nco2_frequency(self, value):
method reg_read (line 79) | def reg_read(self, reg):
method reg_write (line 84) | def reg_write(self, reg, value):
FILE: adi/ad9084.py
function _map_to_dict (line 14) | def _map_to_dict(paths, ch):
function _sortconv (line 31) | def _sortconv(chans_names, noq=False, dds=False):
class ad9084 (line 59) | class ad9084(rx_tx, context_manager, sync_start, sync_start_b):
method __init__ (line 78) | def __init__(
method _get_iio_attr_str_single (line 195) | def _get_iio_attr_str_single(self, channel_name, attr, output):
method _set_iio_attr_str_single (line 199) | def _set_iio_attr_str_single(self, channel_name, attr, output, value):
method _get_iio_attr_single (line 203) | def _get_iio_attr_single(self, channel_name, attr, output):
method _set_iio_attr_single (line 207) | def _set_iio_attr_single(self, channel_name, attr, output, value):
method _get_iio_dev_attr_single (line 211) | def _get_iio_dev_attr_single(self, attr):
method _set_iio_dev_attr_single (line 215) | def _set_iio_dev_attr_single(self, attr, value):
method _get_iio_dev_attr_str_single (line 219) | def _get_iio_dev_attr_str_single(self, attr):
method _set_iio_dev_attr_str_single (line 223) | def _set_iio_dev_attr_str_single(self, attr, value):
method path_map (line 228) | def path_map(self):
method rx_channel_nco_frequencies (line 235) | def rx_channel_nco_frequencies(self):
method rx_channel_nco_frequencies (line 242) | def rx_channel_nco_frequencies(self, value):
method rx_channel_nco_phases (line 248) | def rx_channel_nco_phases(self):
method rx_channel_nco_phases (line 255) | def rx_channel_nco_phases(self, value):
method rx_main_nco_frequencies (line 261) | def rx_main_nco_frequencies(self):
method rx_main_nco_frequencies (line 268) | def rx_main_nco_frequencies(self, value):
method rx_main_nco_phases (line 274) | def rx_main_nco_phases(self):
method rx_main_nco_phases (line 281) | def rx_main_nco_phases(self, value):
method rx_main_tb1_6db_digital_gain_en (line 287) | def rx_main_tb1_6db_digital_gain_en(self):
method rx_main_tb1_6db_digital_gain_en (line 294) | def rx_main_tb1_6db_digital_gain_en(self, value):
method rx_test_mode (line 303) | def rx_test_mode(self):
method rx_test_mode (line 308) | def rx_test_mode(self, value):
method rx_nyquist_zone (line 314) | def rx_nyquist_zone(self):
method rx_nyquist_zone (line 321) | def rx_nyquist_zone(self, value):
method tx_channel_nco_frequencies (line 327) | def tx_channel_nco_frequencies(self):
method tx_channel_nco_frequencies (line 334) | def tx_channel_nco_frequencies(self, value):
method tx_channel_nco_phases (line 340) | def tx_channel_nco_phases(self):
method tx_channel_nco_phases (line 347) | def tx_channel_nco_phases(self, value):
method tx_channel_nco_test_tone_en (line 353) | def tx_channel_nco_test_tone_en(self):
method tx_channel_nco_test_tone_en (line 360) | def tx_channel_nco_test_tone_en(self, value):
method tx_channel_nco_test_tone_scales (line 366) | def tx_channel_nco_test_tone_scales(self):
method tx_channel_nco_test_tone_scales (line 373) | def tx_channel_nco_test_tone_scales(self, value):
method tx_channel_nco_gain_scales (line 382) | def tx_channel_nco_gain_scales(self):
method tx_channel_nco_gain_scales (line 389) | def tx_channel_nco_gain_scales(self, value):
method tx_main_nco_frequencies (line 395) | def tx_main_nco_frequencies(self):
method tx_main_nco_frequencies (line 402) | def tx_main_nco_frequencies(self, value):
method tx_main_nco_phases (line 408) | def tx_main_nco_phases(self):
method tx_main_nco_phases (line 415) | def tx_main_nco_phases(self, value):
method tx_main_nco_test_tone_en (line 421) | def tx_main_nco_test_tone_en(self):
method tx_main_nco_test_tone_en (line 428) | def tx_main_nco_test_tone_en(self, value):
method tx_main_nco_test_tone_scales (line 434) | def tx_main_nco_test_tone_scales(self):
method tx_main_nco_test_tone_scales (line 441) | def tx_main_nco_test_tone_scales(self, value):
method loopback_mode (line 447) | def loopback_mode(self):
method loopback_mode (line 460) | def loopback_mode(self, value):
method tx_ddr_offload (line 466) | def tx_ddr_offload(self):
method tx_ddr_offload (line 477) | def tx_ddr_offload(self, value):
method tx_b_ddr_offload (line 481) | def tx_b_ddr_offload(self):
method tx_b_ddr_offload (line 492) | def tx_b_ddr_offload(self, value):
method rx_sample_rate (line 496) | def rx_sample_rate(self):
method adc_frequency (line 501) | def adc_frequency(self):
method tx_sample_rate (line 506) | def tx_sample_rate(self):
method dac_frequency (line 511) | def dac_frequency(self):
method jesd204_fsm_ctrl (line 516) | def jesd204_fsm_ctrl(self):
method jesd204_fsm_ctrl (line 521) | def jesd204_fsm_ctrl(self, value):
method jesd204_fsm_resume (line 525) | def jesd204_fsm_resume(self):
method jesd204_fsm_resume (line 530) | def jesd204_fsm_resume(self, value):
method jesd204_fsm_state (line 534) | def jesd204_fsm_state(self):
method jesd204_fsm_paused (line 539) | def jesd204_fsm_paused(self):
method jesd204_fsm_error (line 544) | def jesd204_fsm_error(self):
method jesd204_device_status (line 549) | def jesd204_device_status(self):
method jesd204_device_status_check (line 554) | def jesd204_device_status_check(self):
method chip_version (line 578) | def chip_version(self):
method api_version (line 583) | def api_version(self):
FILE: adi/ad9084_mc.py
function _map_to_dict (line 17) | def _map_to_dict(paths, ch, dev_name):
function _sortconv (line 36) | def _sortconv(chans_names, noq=False, dds=False):
function _find_dev_with_buffers (line 64) | def _find_dev_with_buffers(ctx, output=False, contains=""):
function _is_mxfe_device (line 79) | def _is_mxfe_device(name):
class ad9084_mc (line 84) | class ad9084_mc(ad9084):
method __init__ (line 113) | def __init__(self, uri="", phy_dev_name=""):
method _map_unique (line 196) | def _map_unique(self, paths):
method _map_inputs_to_dict (line 229) | def _map_inputs_to_dict(self, channel_names_dict, attr, output, values):
method _map_inputs_to_dict_single (line 246) | def _map_inputs_to_dict_single(self, channel_names_dict, values):
method _get_iio_attr_vec (line 258) | def _get_iio_attr_vec(self, channel_names_dict, attr, output):
method _set_iio_attr_int_vec (line 266) | def _set_iio_attr_int_vec(self, channel_names_dict, attr, output, valu...
method _set_iio_attr_float_vec (line 278) | def _set_iio_attr_float_vec(self, channel_names_dict, attr, output, va...
method _set_iio_attr_str_vec (line 290) | def _set_iio_attr_str_vec(self, channel_names_dict, attr, output, valu...
method _get_iio_attr_str_single (line 303) | def _get_iio_attr_str_single(self, channel_name, attr, output):
method _get_iio_attr_single (line 312) | def _get_iio_attr_single(self, channel_name, attr, output):
method _set_iio_attr_single (line 321) | def _set_iio_attr_single(self, channel_name, attr, output, values):
method _get_iio_dev_attr_single (line 329) | def _get_iio_dev_attr_single(self, attr):
method _set_iio_dev_attr_single (line 336) | def _set_iio_dev_attr_single(self, attr, values):
class Triton (line 343) | class Triton(ad9084_mc):
method __init__ (line 351) | def __init__(self, uri="", calibration_board_attached=False):
method rx_dsa0_gain (line 379) | def rx_dsa0_gain(self):
method rx_dsa0_gain (line 384) | def rx_dsa0_gain(self, value):
method rx_dsa1_gain (line 388) | def rx_dsa1_gain(self):
method rx_dsa1_gain (line 393) | def rx_dsa1_gain(self, value):
method rx_dsa2_gain (line 397) | def rx_dsa2_gain(self):
method rx_dsa2_gain (line 402) | def rx_dsa2_gain(self, value):
method rx_dsa3_gain (line 406) | def rx_dsa3_gain(self):
method rx_dsa3_gain (line 411) | def rx_dsa3_gain(self, value):
method lpf_ctrl (line 415) | def lpf_ctrl(self):
method lpf_ctrl (line 420) | def lpf_ctrl(self, value):
method hpf_ctrl (line 424) | def hpf_ctrl(self):
method hpf_ctrl (line 429) | def hpf_ctrl(self, value):
FILE: adi/ad9094.py
class ad9094 (line 12) | class ad9094(sync_start, rx, context_manager):
method __init__ (line 19) | def __init__(self, uri=""):
FILE: adi/ad9136.py
class ad9136 (line 11) | class ad9136(tx, context_manager, sync_start):
method __init__ (line 18) | def __init__(self, uri="", username="root", password="analog"):
method sample_rate (line 29) | def sample_rate(self):
method sample_rate (line 34) | def sample_rate(self, value):
method jesd204_statuses (line 38) | def jesd204_statuses(self):
FILE: adi/ad9144.py
class ad9144 (line 10) | class ad9144(tx, context_manager, sync_start):
method __init__ (line 17) | def __init__(self, uri=""):
method sample_rate (line 26) | def sample_rate(self):
method sample_rate (line 31) | def sample_rate(self, value):
FILE: adi/ad9152.py
class ad9152 (line 10) | class ad9152(tx, context_manager, sync_start):
method __init__ (line 17) | def __init__(self, uri=""):
method sample_rate (line 26) | def sample_rate(self):
method sample_rate (line 31) | def sample_rate(self, value):
FILE: adi/ad9162.py
class ad9162 (line 11) | class ad9162(tx, context_manager, sync_start):
method __init__ (line 19) | def __init__(self, uri="", username="root", password="analog"):
method fir85_enable (line 29) | def fir85_enable(self):
method fir85_enable (line 33) | def fir85_enable(self, value):
method sample_rate (line 37) | def sample_rate(self):
method scale (line 42) | def scale(self):
method frequency_nco (line 46) | def frequency_nco(self):
method frequency_nco (line 50) | def frequency_nco(self, value):
method jesd204_statuses (line 54) | def jesd204_statuses(self):
FILE: adi/ad9166.py
class ad9166 (line 9) | class ad9166(attribute, context_manager):
method __init__ (line 19) | def __init__(self, uri=""):
method sample_rate (line 28) | def sample_rate(self):
method sample_rate (line 33) | def sample_rate(self, value):
method sample_rate_available (line 37) | def sample_rate_available(self):
method temperature (line 41) | def temperature(self):
method temperature_code (line 59) | def temperature_code(self):
method temperature_enable (line 64) | def temperature_enable(self):
method temperature_enable (line 75) | def temperature_enable(self, value=True):
method temperature_cal (line 82) | def temperature_cal(self):
method temperature_cal (line 89) | def temperature_cal(self, value=32.0):
method nco_enable (line 97) | def nco_enable(self):
method nco_enable (line 108) | def nco_enable(self, value=True):
method FIR85_enable (line 119) | def FIR85_enable(self):
method FIR85_enable (line 130) | def FIR85_enable(self, value=True):
method tx_enable (line 140) | def tx_enable(self):
method tx_enable (line 151) | def tx_enable(self, value=True):
method frequency (line 164) | def frequency(self):
method frequency (line 169) | def frequency(self, value):
method raw (line 173) | def raw(self):
method raw (line 178) | def raw(self, value):
FILE: adi/ad9172.py
class ad9172 (line 13) | class ad9172(tx, context_manager, sync_start):
method __init__ (line 20) | def __init__(self, uri=""):
method sample_rate (line 42) | def sample_rate(self):
FILE: adi/ad9213.py
class ad9213 (line 9) | class ad9213(rx_def, context_manager):
FILE: adi/ad9250.py
class ad9250 (line 11) | class ad9250(rx, context_manager, sync_start):
method __init__ (line 19) | def __init__(self, uri="", username="root", password="analog"):
method test_mode (line 29) | def test_mode(self):
method test_mode (line 35) | def test_mode(self, value):
method jesd204_statuses (line 39) | def jesd204_statuses(self):
FILE: adi/ad9265.py
class ad9265 (line 8) | class ad9265(rx_def):
method test_mode (line 19) | def test_mode(self):
method test_mode (line 26) | def test_mode(self, value):
FILE: adi/ad936x.py
class ad9364 (line 11) | class ad9364(rx_tx_def, context_manager):
method filter (line 23) | def filter(self):
method filter (line 28) | def filter(self, value):
method loopback (line 37) | def loopback(self):
method loopback (line 43) | def loopback(self, value):
method gain_control_mode_chan0 (line 47) | def gain_control_mode_chan0(self):
method gain_control_mode_chan0 (line 53) | def gain_control_mode_chan0(self, value):
method rx_hardwaregain_chan0 (line 57) | def rx_hardwaregain_chan0(self):
method rx_hardwaregain_chan0 (line 63) | def rx_hardwaregain_chan0(self, value):
method tx_hardwaregain_chan0 (line 68) | def tx_hardwaregain_chan0(self):
method tx_hardwaregain_chan0 (line 73) | def tx_hardwaregain_chan0(self, value):
method rx_rf_bandwidth (line 77) | def rx_rf_bandwidth(self):
method rx_rf_bandwidth (line 82) | def rx_rf_bandwidth(self, value):
method tx_rf_bandwidth (line 86) | def tx_rf_bandwidth(self):
method tx_rf_bandwidth (line 91) | def tx_rf_bandwidth(self, value):
method sample_rate (line 95) | def sample_rate(self):
method sample_rate (line 100) | def sample_rate(self, rate):
method rx_lo (line 191) | def rx_lo(self):
method rx_lo (line 196) | def rx_lo(self, value):
method tx_lo (line 200) | def tx_lo(self):
method tx_lo (line 205) | def tx_lo(self, value):
class ad9361 (line 209) | class ad9361(ad9364):
method gain_control_mode_chan1 (line 216) | def gain_control_mode_chan1(self):
method gain_control_mode_chan1 (line 222) | def gain_control_mode_chan1(self, value):
method rx_hardwaregain_chan1 (line 226) | def rx_hardwaregain_chan1(self):
method rx_hardwaregain_chan1 (line 232) | def rx_hardwaregain_chan1(self, value):
method tx_hardwaregain_chan1 (line 237) | def tx_hardwaregain_chan1(self):
method tx_hardwaregain_chan1 (line 242) | def tx_hardwaregain_chan1(self, value):
class ad9363 (line 246) | class ad9363(ad9361):
class Pluto (line 252) | class Pluto(ad9364, _dec_int_fpga_filter):
method __repr__ (line 258) | def __repr__(self):
FILE: adi/ad937x.py
class ad9371 (line 12) | class ad9371(rx_tx, context_manager, sync_start):
method __init__ (line 21) | def __init__(
method ensm_mode (line 47) | def ensm_mode(self):
method ensm_mode (line 53) | def ensm_mode(self, value):
method gain_control_mode (line 57) | def gain_control_mode(self):
method gain_control_mode (line 63) | def gain_control_mode(self, value):
method rx_quadrature_tracking_en_chan0 (line 67) | def rx_quadrature_tracking_en_chan0(self):
method rx_quadrature_tracking_en_chan0 (line 72) | def rx_quadrature_tracking_en_chan0(self, value):
method rx_quadrature_tracking_en_chan1 (line 76) | def rx_quadrature_tracking_en_chan1(self):
method rx_quadrature_tracking_en_chan1 (line 81) | def rx_quadrature_tracking_en_chan1(self, value):
method rx_hardwaregain_chan0 (line 85) | def rx_hardwaregain_chan0(self):
method rx_hardwaregain_chan0 (line 91) | def rx_hardwaregain_chan0(self, value):
method rx_hardwaregain_chan1 (line 96) | def rx_hardwaregain_chan1(self):
method rx_hardwaregain_chan1 (line 102) | def rx_hardwaregain_chan1(self, value):
method rx_temp_comp_gain_chan0 (line 107) | def rx_temp_comp_gain_chan0(self):
method rx_temp_comp_gain_chan0 (line 112) | def rx_temp_comp_gain_chan0(self, value):
method rx_temp_comp_gain_chan1 (line 116) | def rx_temp_comp_gain_chan1(self):
method rx_temp_comp_gain_chan1 (line 121) | def rx_temp_comp_gain_chan1(self, value):
method tx_quadrature_tracking_en_chan0 (line 125) | def tx_quadrature_tracking_en_chan0(self):
method tx_quadrature_tracking_en_chan0 (line 130) | def tx_quadrature_tracking_en_chan0(self, value):
method tx_quadrature_tracking_en_chan1 (line 134) | def tx_quadrature_tracking_en_chan1(self):
method tx_quadrature_tracking_en_chan1 (line 139) | def tx_quadrature_tracking_en_chan1(self, value):
method tx_hardwaregain_chan0 (line 143) | def tx_hardwaregain_chan0(self):
method tx_hardwaregain_chan0 (line 148) | def tx_hardwaregain_chan0(self, value):
method tx_hardwaregain_chan1 (line 152) | def tx_hardwaregain_chan1(self):
method tx_hardwaregain_chan1 (line 157) | def tx_hardwaregain_chan1(self, value):
method rx_rf_bandwidth (line 161) | def rx_rf_bandwidth(self):
method tx_rf_bandwidth (line 166) | def tx_rf_bandwidth(self):
method rx_enable_dec8 (line 171) | def rx_enable_dec8(self):
method rx_enable_dec8 (line 187) | def rx_enable_dec8(self, value):
method tx_enable_int8 (line 205) | def tx_enable_int8(self):
method tx_enable_int8 (line 221) | def tx_enable_int8(self, value):
method rx_sample_rate (line 237) | def rx_sample_rate(self):
method orx_sample_rate (line 245) | def orx_sample_rate(self):
method tx_sample_rate (line 253) | def tx_sample_rate(self):
method rx_lo (line 261) | def rx_lo(self):
method rx_lo (line 266) | def rx_lo(self, value):
method tx_lo (line 270) | def tx_lo(self):
method tx_lo (line 275) | def tx_lo(self, value):
method sn_lo (line 279) | def sn_lo(self):
method sn_lo (line 284) | def sn_lo(self, value):
method obs_gain_control_mode (line 288) | def obs_gain_control_mode(self):
method obs_gain_control_mode (line 294) | def obs_gain_control_mode(self, value):
method obs_hardwaregain (line 298) | def obs_hardwaregain(self):
method obs_hardwaregain (line 304) | def obs_hardwaregain(self, value):
method obs_temp_comp_gain (line 309) | def obs_temp_comp_gain(self):
method obs_temp_comp_gain (line 314) | def obs_temp_comp_gain(self, value):
method obs_quadrature_tracking_en (line 318) | def obs_quadrature_tracking_en(self):
method obs_quadrature_tracking_en (line 323) | def obs_quadrature_tracking_en(self, value):
method obs_rf_port_select (line 327) | def obs_rf_port_select(self):
method obs_rf_port_select (line 345) | def obs_rf_port_select(self, value):
method jesd204_statuses (line 349) | def jesd204_statuses(self):
method profile (line 353) | def profile(self):
method profile (line 358) | def profile(self, value):
class ad9375 (line 364) | class ad9375(ad9371):
method tx_clgc_tracking_en_chan0 (line 368) | def tx_clgc_tracking_en_chan0(self):
method tx_clgc_tracking_en_chan0 (line 373) | def tx_clgc_tracking_en_chan0(self, value):
method tx_clgc_tracking_en_chan1 (line 377) | def tx_clgc_tracking_en_chan1(self):
method tx_clgc_tracking_en_chan1 (line 382) | def tx_clgc_tracking_en_chan1(self, value):
method tx_clgc_current_gain_chan0 (line 386) | def tx_clgc_current_gain_chan0(self):
method tx_clgc_current_gain_chan1 (line 394) | def tx_clgc_current_gain_chan1(self):
method tx_clgc_desired_gain_chan0 (line 402) | def tx_clgc_desired_gain_chan0(self):
method tx_clgc_desired_gain_chan0 (line 410) | def tx_clgc_desired_gain_chan0(self, value):
method tx_clgc_desired_gain_chan1 (line 415) | def tx_clgc_desired_gain_chan1(self):
method tx_clgc_desired_gain_chan1 (line 423) | def tx_clgc_desired_gain_chan1(self, value):
method tx_clgc_orx_rms_chan0 (line 428) | def tx_clgc_orx_rms_chan0(self):
method tx_clgc_track_count_chan0 (line 436) | def tx_clgc_track_count_chan0(self):
method tx_clgc_track_count_chan1 (line 444) | def tx_clgc_track_count_chan1(self):
method tx_clgc_tx_gain_chan0 (line 452) | def tx_clgc_tx_gain_chan0(self):
method tx_clgc_tx_gain_chan1 (line 460) | def tx_clgc_tx_gain_chan1(self):
method tx_clgc_tx_rms_chan0 (line 467) | def tx_clgc_tx_rms_chan0(self):
method tx_clgc_tx_rms_chan1 (line 475) | def tx_clgc_tx_rms_chan1(self):
method tx_dpd_actuator_en_chan0 (line 483) | def tx_dpd_actuator_en_chan0(self):
method tx_dpd_actuator_en_chan0 (line 488) | def tx_dpd_actuator_en_chan0(self, value):
method tx_dpd_actuator_en_chan1 (line 492) | def tx_dpd_actuator_en_chan1(self):
method tx_dpd_actuator_en_chan1 (line 497) | def tx_dpd_actuator_en_chan1(self, value):
method tx_dpd_tracking_en_chan0 (line 501) | def tx_dpd_tracking_en_chan0(self):
method tx_dpd_tracking_en_chan0 (line 506) | def tx_dpd_tracking_en_chan0(self, value):
method tx_dpd_tracking_en_chan1 (line 510) | def tx_dpd_tracking_en_chan1(self):
method tx_dpd_tracking_en_chan1 (line 515) | def tx_dpd_tracking_en_chan1(self, value):
method tx_dpd_external_path_delay_chan0 (line 519) | def tx_dpd_external_path_delay_chan0(self):
method tx_dpd_external_path_delay_chan1 (line 527) | def tx_dpd_external_path_delay_chan1(self):
method tx_dpd_model_error_chan0 (line 535) | def tx_dpd_model_error_chan0(self):
method tx_dpd_model_error_chan1 (line 542) | def tx_dpd_model_error_chan1(self):
method tx_dpd_reset_en_chan0 (line 548) | def tx_dpd_reset_en_chan0(self, value):
method tx_dpd_reset_en_chan1 (line 553) | def tx_dpd_reset_en_chan1(self, value):
method tx_dpd_status_chan0 (line 559) | def tx_dpd_status_chan0(self):
method tx_dpd_status_chan1 (line 584) | def tx_dpd_status_chan1(self):
method tx_dpd_track_count_chan0 (line 609) | def tx_dpd_track_count_chan0(self):
method tx_dpd_track_count_chan1 (line 617) | def tx_dpd_track_count_chan1(self):
method tx_vswr_tracking_en_chan0 (line 625) | def tx_vswr_tracking_en_chan0(self):
method tx_vswr_tracking_en_chan0 (line 630) | def tx_vswr_tracking_en_chan0(self, value):
method tx_vswr_tracking_en_chan1 (line 634) | def tx_vswr_tracking_en_chan1(self):
method tx_vswr_tracking_en_chan1 (line 639) | def tx_vswr_tracking_en_chan1(self, value):
method tx_vswr_forward_gain_chan0 (line 643) | def tx_vswr_forward_gain_chan0(self):
method tx_vswr_forward_gain_chan1 (line 650) | def tx_vswr_forward_gain_chan1(self):
method tx_vswr_forward_gain_imag_chan0 (line 657) | def tx_vswr_forward_gain_imag_chan0(self):
method tx_vswr_forward_gain_imag_chan1 (line 664) | def tx_vswr_forward_gain_imag_chan1(self):
method tx_vswr_forward_gain_real_chan0 (line 671) | def tx_vswr_forward_gain_real_chan0(self):
method tx_vswr_forward_gain_real_chan1 (line 678) | def tx_vswr_forward_gain_real_chan1(self):
method tx_vswr_forward_orx_chan0 (line 685) | def tx_vswr_forward_orx_chan0(self):
method tx_vswr_forward_tx_chan0 (line 693) | def tx_vswr_forward_tx_chan0(self):
method tx_vswr_forward_tx_chan1 (line 701) | def tx_vswr_forward_tx_chan1(self):
method tx_vswr_reflected_gain_chan0 (line 709) | def tx_vswr_reflected_gain_chan0(self):
method tx_vswr_reflected_gain_chan1 (line 716) | def tx_vswr_reflected_gain_chan1(self):
method tx_vswr_reflected_gain_imag_chan0 (line 723) | def tx_vswr_reflected_gain_imag_chan0(self):
method tx_vswr_reflected_gain_imag_chan1 (line 732) | def tx_vswr_reflected_gain_imag_chan1(self):
method tx_vswr_reflected_gain_real_chan0 (line 741) | def tx_vswr_reflected_gain_real_chan0(self):
method tx_vswr_reflected_gain_real_chan1 (line 750) | def tx_vswr_reflected_gain_real_chan1(self):
method tx_vswr_reflected_orx_chan0 (line 759) | def tx_vswr_reflected_orx_chan0(self):
method tx_vswr_reflected_tx_chan0 (line 769) | def tx_vswr_reflected_tx_chan0(self):
method tx_vswr_reflected_tx_chan1 (line 779) | def tx_vswr_reflected_tx_chan1(self):
method tx_vswr_track_count_chan0 (line 789) | def tx_vswr_track_count_chan0(self):
method tx_vswr_track_count_chan1 (line 797) | def tx_vswr_track_count_chan1(self):
FILE: adi/ad9434.py
class ad9434 (line 8) | class ad9434(rx_def):
method test_mode (line 19) | def test_mode(self):
method test_mode (line 26) | def test_mode(self, value):
FILE: adi/ad9467.py
class ad9467 (line 8) | class ad9467(rx_def):
method test_mode (line 19) | def test_mode(self):
method test_mode (line 25) | def test_mode(self, value):
FILE: adi/ad9625.py
class ad9625 (line 13) | class ad9625(rx, context_manager, sync_start):
method __init__ (line 21) | def __init__(self, uri="", username="root", password="analog"):
method rx_sample_rate (line 31) | def rx_sample_rate(self):
method scale (line 36) | def scale(self):
method scale (line 41) | def scale(self, value):
method scale_available (line 45) | def scale_available(self):
method test_mode (line 50) | def test_mode(self):
method test_mode (line 57) | def test_mode(self, value):
method jesd204_statuses (line 61) | def jesd204_statuses(self):
FILE: adi/ad9680.py
class ad9680 (line 10) | class ad9680(rx, context_manager, sync_start):
method __init__ (line 17) | def __init__(self, uri=""):
method test_mode (line 26) | def test_mode(self):
method test_mode (line 32) | def test_mode(self, value):
FILE: adi/ad9739a.py
class ad9739a (line 8) | class ad9739a(tx_def):
method sample_rate (line 18) | def sample_rate(self):
method sample_rate (line 23) | def sample_rate(self, value):
FILE: adi/ada4355.py
class ada4355 (line 14) | class ada4355(rx, context_manager):
method __init__ (line 22) | def __init__(self, uri="", device_name="ada4355"):
method ada4355_register_read (line 58) | def ada4355_register_read(self, reg):
method ada4355_register_write (line 63) | def ada4355_register_write(self, reg, value):
method sampling_frequency (line 68) | def sampling_frequency(self):
class _channel (line 72) | class _channel(attribute):
method __init__ (line 76) | def __init__(self, ctrl, channel_name):
method scale (line 81) | def scale(self):
method scale (line 86) | def scale(self, value):
method raw (line 91) | def raw(self):
FILE: adi/ada4356_lidar.py
class ada4356_lidar (line 11) | class ada4356_lidar(ada4355):
method __init__ (line 14) | def __init__(self, uri=""):
FILE: adi/ada4961.py
class ada4961 (line 9) | class ada4961(context_manager, attribute):
method __init__ (line 15) | def __init__(self, uri=""):
method hardwaregain (line 25) | def hardwaregain(self):
method hardwaregain (line 31) | def hardwaregain(self, value):
FILE: adi/adaq8092.py
class adaq8092 (line 10) | class adaq8092(rx_def):
method __post_init__ (line 21) | def __post_init__(self):
method sampling_frequency (line 33) | def sampling_frequency(self):
FILE: adi/adar1000.py
class adar1000 (line 11) | class adar1000(attribute, context_manager):
class adar1000_channel (line 70) | class adar1000_channel:
method __init__ (line 88) | def __init__(self, adar_parent, adar_channel, array_element, row, co...
method __repr__ (line 97) | def __repr__(self):
method adar1000_channel (line 104) | def adar1000_channel(self):
method adar1000_parent (line 108) | def adar1000_parent(self):
method array_element_number (line 112) | def array_element_number(self):
method column (line 117) | def column(self):
method _detector_enable (line 122) | def _detector_enable(self):
method _detector_enable (line 131) | def _detector_enable(self, value):
method detector_power (line 138) | def detector_power(self):
method pa_bias_off (line 152) | def pa_bias_off(self):
method pa_bias_off (line 160) | def pa_bias_off(self, value):
method pa_bias_on (line 168) | def pa_bias_on(self):
method pa_bias_on (line 176) | def pa_bias_on(self, value):
method row (line 184) | def row(self):
method rx_attenuator (line 189) | def rx_attenuator(self):
method rx_attenuator (line 199) | def rx_attenuator(self, value):
method rx_beam_state (line 206) | def rx_beam_state(self):
method rx_beam_state (line 214) | def rx_beam_state(self, value):
method rx_enable (line 222) | def rx_enable(self):
method rx_enable (line 232) | def rx_enable(self, value):
method rx_gain (line 239) | def rx_gain(self):
method rx_gain (line 246) | def rx_gain(self, value):
method rx_phase (line 253) | def rx_phase(self):
method rx_phase (line 260) | def rx_phase(self, value):
method tx_attenuator (line 267) | def tx_attenuator(self):
method tx_attenuator (line 277) | def tx_attenuator(self, value):
method tx_beam_state (line 284) | def tx_beam_state(self):
method tx_beam_state (line 292) | def tx_beam_state(self, value):
method tx_enable (line 300) | def tx_enable(self):
method tx_enable (line 310) | def tx_enable(self, value):
method tx_gain (line 317) | def tx_gain(self):
method tx_gain (line 324) | def tx_gain(self, value):
method tx_phase (line 331) | def tx_phase(self):
method tx_phase (line 338) | def tx_phase(self, value):
method save_rx_beam (line 346) | def save_rx_beam(self, state, attenuator, gain, phase):
method save_tx_beam (line 365) | def save_tx_beam(self, state, attenuator, gain, phase):
method __init__ (line 384) | def __init__(
method __repr__ (line 445) | def __repr__(self):
method array_device_number (line 455) | def array_device_number(self):
method beam_mem_enable (line 460) | def beam_mem_enable(self):
method beam_mem_enable (line 465) | def beam_mem_enable(self, value):
method bias_dac_enable (line 470) | def bias_dac_enable(self):
method bias_dac_enable (line 475) | def bias_dac_enable(self, value):
method bias_dac_mode (line 480) | def bias_dac_mode(self):
method bias_dac_mode (line 492) | def bias_dac_mode(self, value):
method bias_mem_enable (line 507) | def bias_mem_enable(self):
method bias_mem_enable (line 512) | def bias_mem_enable(self, value):
method channel1 (line 517) | def channel1(self):
method channel2 (line 522) | def channel2(self):
method channel3 (line 527) | def channel3(self):
method channel4 (line 532) | def channel4(self):
method channels (line 537) | def channels(self):
method chip_id (line 542) | def chip_id(self):
method common_mem_enable (line 550) | def common_mem_enable(self):
method common_mem_enable (line 558) | def common_mem_enable(self, value):
method common_rx_beam_state (line 566) | def common_rx_beam_state(self):
method common_rx_beam_state (line 572) | def common_rx_beam_state(self, value):
method common_tx_beam_state (line 578) | def common_tx_beam_state(self):
method common_tx_beam_state (line 584) | def common_tx_beam_state(self, value):
method external_tr_pin (line 590) | def external_tr_pin(self):
method external_tr_pin (line 599) | def external_tr_pin(self, value):
method external_tr_polarity (line 611) | def external_tr_polarity(self):
method external_tr_polarity (line 619) | def external_tr_polarity(self, value):
method lna_bias_off (line 627) | def lna_bias_off(self):
method lna_bias_off (line 633) | def lna_bias_off(self, value):
method lna_bias_on (line 639) | def lna_bias_on(self):
method lna_bias_on (line 645) | def lna_bias_on(self, value):
method lna_bias_out_enable (line 651) | def lna_bias_out_enable(self):
method lna_bias_out_enable (line 656) | def lna_bias_out_enable(self, value):
method mode (line 661) | def mode(self):
method mode (line 693) | def mode(self, value):
method pol_state (line 721) | def pol_state(self):
method pol_state (line 726) | def pol_state(self, value):
method pol_switch_enable (line 731) | def pol_switch_enable(self):
method pol_switch_enable (line 736) | def pol_switch_enable(self, value):
method rx_bias_state (line 741) | def rx_bias_state(self):
method rx_bias_state (line 746) | def rx_bias_state(self, value):
method _rx_enable (line 751) | def _rx_enable(self):
method _rx_enable (line 756) | def _rx_enable(self, value):
method rx_lna_bias_current (line 761) | def rx_lna_bias_current(self):
method rx_lna_bias_current (line 766) | def rx_lna_bias_current(self, value):
method rx_lna_enable (line 771) | def rx_lna_enable(self):
method rx_lna_enable (line 776) | def rx_lna_enable(self, value):
method rx_sequencer_start (line 781) | def rx_sequencer_start(self):
method rx_sequencer_start (line 786) | def rx_sequencer_start(self, value):
method rx_sequencer_stop (line 791) | def rx_sequencer_stop(self):
method rx_sequencer_stop (line 796) | def rx_sequencer_stop(self, value):
method rx_to_tx_delay_1 (line 801) | def rx_to_tx_delay_1(self):
method rx_to_tx_delay_1 (line 806) | def rx_to_tx_delay_1(self, value):
method rx_to_tx_delay_2 (line 811) | def rx_to_tx_delay_2(self):
method rx_to_tx_delay_2 (line 816) | def rx_to_tx_delay_2(self, value):
method rx_vga_enable (line 821) | def rx_vga_enable(self):
method rx_vga_enable (line 826) | def rx_vga_enable(self, value):
method rx_vga_vm_bias_current (line 831) | def rx_vga_vm_bias_current(self):
method rx_vga_vm_bias_current (line 836) | def rx_vga_vm_bias_current(self, value):
method rx_vm_enable (line 841) | def rx_vm_enable(self):
method rx_vm_enable (line 846) | def rx_vm_enable(self, value):
method sequencer_enable (line 851) | def sequencer_enable(self):
method sequencer_enable (line 856) | def sequencer_enable(self, value):
method temperature (line 861) | def temperature(self):
method _tr (line 866) | def _tr(self):
method _tr (line 882) | def _tr(self, value):
method tr_source (line 898) | def tr_source(self):
method tr_source (line 907) | def tr_source(self, value):
method tr_spi (line 919) | def tr_spi(self):
method tr_spi (line 928) | def tr_spi(self, value):
method tr_switch_enable (line 940) | def tr_switch_enable(self):
method tr_switch_enable (line 945) | def tr_switch_enable(self, value):
method tx_bias_state (line 950) | def tx_bias_state(self):
method tx_bias_state (line 955) | def tx_bias_state(self, value):
method _tx_enable (line 960) | def _tx_enable(self):
method _tx_enable (line 965) | def _tx_enable(self, value):
method tx_pa_bias_current (line 970) | def tx_pa_bias_current(self):
method tx_pa_bias_current (line 975) | def tx_pa_bias_current(self, value):
method tx_pa_enable (line 980) | def tx_pa_enable(self):
method tx_pa_enable (line 985) | def tx_pa_enable(self, value):
method tx_sequencer_start (line 990) | def tx_sequencer_start(self):
method tx_sequencer_start (line 995) | def tx_sequencer_start(self, value):
method tx_sequencer_stop (line 1000) | def tx_sequencer_stop(self):
method tx_sequencer_stop (line 1005) | def tx_sequencer_stop(self, value):
method tx_to_rx_delay_1 (line 1010) | def tx_to_rx_delay_1(self):
method tx_to_rx_delay_1 (line 1015) | def tx_to_rx_delay_1(self, value):
method tx_to_rx_delay_2 (line 1020) | def tx_to_rx_delay_2(self):
method tx_to_rx_delay_2 (line 1025) | def tx_to_rx_delay_2(self, value):
method tx_vga_enable (line 1030) | def tx_vga_enable(self):
method tx_vga_enable (line 1035) | def tx_vga_enable(self, value):
method tx_vga_vm_bias_current (line 1040) | def tx_vga_vm_bias_current(self):
method tx_vga_vm_bias_current (line 1045) | def tx_vga_vm_bias_current(self, value):
method tx_vm_enable (line 1050) | def tx_vm_enable(self):
method tx_vm_enable (line 1055) | def tx_vm_enable(self, value):
method generate_clocks (line 1061) | def generate_clocks(self):
method initialize (line 1065) | def initialize(self, pa_off=-2.5, pa_on=-2.5, lna_off=-2, lna_on=-2):
method latch_rx_settings (line 1138) | def latch_rx_settings(self):
method latch_tx_settings (line 1142) | def latch_tx_settings(self):
method reset (line 1146) | def reset(self):
method save_rx_bias (line 1150) | def save_rx_bias(
method save_tx_bias (line 1181) | def save_tx_bias(
class adar1000_array (line 1241) | class adar1000_array(context_manager):
method __init__ (line 1288) | def __init__(
method __repr__ (line 1347) | def __repr__(self):
method all_rx_attenuators (line 1354) | def all_rx_attenuators(self):
method all_rx_attenuators (line 1367) | def all_rx_attenuators(self, value):
method all_rx_gains (line 1376) | def all_rx_gains(self):
method all_rx_gains (line 1389) | def all_rx_gains(self, value):
method all_rx_phases (line 1398) | def all_rx_phases(self):
method all_rx_phases (line 1411) | def all_rx_phases(self, value):
method all_tx_attenuators (line 1420) | def all_tx_attenuators(self):
method all_tx_attenuators (line 1433) | def all_tx_attenuators(self, value):
method all_tx_gains (line 1442) | def all_tx_gains(self):
method all_tx_gains (line 1455) | def all_tx_gains(self, value):
method all_tx_phases (line 1464) | def all_tx_phases(self):
method all_tx_phases (line 1477) | def all_tx_phases(self, value):
method devices (line 1486) | def devices(self):
method device_map (line 1494) | def device_map(self):
method elements (line 1499) | def elements(self):
method element_map (line 1512) | def element_map(self):
method element_spacing (line 1517) | def element_spacing(self):
method element_spacing (line 1522) | def element_spacing(self, value):
method frequency (line 1527) | def frequency(self):
method frequency (line 1532) | def frequency(self, value):
method rx_azimuth (line 1537) | def rx_azimuth(self):
method rx_azimuth_phi (line 1542) | def rx_azimuth_phi(self):
method rx_elevation (line 1547) | def rx_elevation(self):
method rx_elevation_phi (line 1552) | def rx_elevation_phi(self):
method temperatures (line 1557) | def temperatures(self):
method tx_azimuth (line 1562) | def tx_azimuth(self):
method tx_azimuth_phi (line 1567) | def tx_azimuth_phi(self):
method tx_elevation (line 1572) | def tx_elevation(self):
method tx_elevation_phi (line 1577) | def tx_elevation_phi(self):
method _steer (line 1581) | def _steer(self, rx_or_tx, azimuth, elevation):
method calculate_phi (line 1629) | def calculate_phi(self, azimuth, elevation):
method initialize_devices (line 1649) | def initialize_devices(self, pa_off=-2.5, pa_on=-2.5, lna_off=-2, lna_...
method latch_rx_settings (line 1667) | def latch_rx_settings(self):
method latch_tx_settings (line 1672) | def latch_tx_settings(self):
method steer_rx (line 1677) | def steer_rx(self, azimuth, elevation):
method steer_tx (line 1689) | def steer_tx(self, azimuth, elevation):
FILE: adi/adf4030.py
class adf4030 (line 10) | class adf4030(context_manager, attribute):
method __init__ (line 60) | def __init__(self, uri=""):
method in_temp0_input (line 68) | def in_temp0_input(self):
method _make_channel_property (line 71) | def _make_channel_property(self, channel, attr):
method _add_channel_properties (line 96) | def _add_channel_properties(self):
FILE: adi/adf4159.py
class adf4159 (line 10) | class adf4159(context_manager, attribute):
method __init__ (line 16) | def __init__(self, uri=""):
method ramp_mode (line 26) | def ramp_mode(self):
method ramp_mode (line 31) | def ramp_mode(self, value):
method enable (line 46) | def enable(self):
method enable (line 53) | def enable(self, value):
method frequency (line 58) | def frequency(self):
method frequency (line 63) | def frequency(self, value):
method freq_dev_range (line 68) | def freq_dev_range(self):
method freq_dev_range (line 75) | def freq_dev_range(self, value):
method freq_dev_step (line 82) | def freq_dev_step(self):
method freq_dev_step (line 89) | def freq_dev_step(self, value):
method freq_dev_time (line 96) | def freq_dev_time(self):
method freq_dev_time (line 103) | def freq_dev_time(self, value):
method phase_value (line 110) | def phase_value(self):
method phase_value (line 115) | def phase_value(self, value):
method trig_delay_en (line 120) | def trig_delay_en(self):
method trig_delay_en (line 125) | def trig_delay_en(self, value):
method sing_ful_tri (line 132) | def sing_ful_tri(self):
method sing_ful_tri (line 137) | def sing_ful_tri(self, value):
method tx_trig_en (line 144) | def tx_trig_en(self):
method tx_trig_en (line 149) | def tx_trig_en(self, value):
method ramp_delay_en (line 156) | def ramp_delay_en(self):
method ramp_delay_en (line 161) | def ramp_delay_en(self, value):
method delay_clk (line 166) | def delay_clk(self):
method delay_clk (line 173) | def delay_clk(self, value):
method delay_start_en (line 180) | def delay_start_en(self):
method delay_start_en (line 185) | def delay_start_en(self, value):
method delay_word (line 190) | def delay_word(self):
method delay_word (line 195) | def delay_word(self, value):
method clk1_mode (line 200) | def clk1_mode(self):
method clk1_mode (line 205) | def clk1_mode(self, value):
method ramp_en (line 210) | def ramp_en(self):
method ramp_en (line 215) | def ramp_en(self, value):
method clk1_div_value (line 220) | def clk1_div_value(self):
method clk1_div_value (line 225) | def clk1_div_value(self, value):
method clk2_div_value (line 230) | def clk2_div_value(self):
method clk2_div_value (line 235) | def clk2_div_value(self, value):
method muxout_sel (line 240) | def muxout_sel(self):
method muxout_sel (line 245) | def muxout_sel(self, value):
FILE: adi/adf4355.py
class adf4355 (line 9) | class adf4355(attribute, context_manager):
method __init__ (line 19) | def __init__(self, uri=""):
method frequency_altvolt0 (line 30) | def frequency_altvolt0(self):
method frequency_altvolt0 (line 34) | def frequency_altvolt0(self, value):
method powerdown_altvolt0 (line 38) | def powerdown_altvolt0(self):
method powerdown_altvolt0 (line 44) | def powerdown_altvolt0(self, value):
method frequency_altvolt1 (line 48) | def frequency_altvolt1(self):
method frequency_altvolt1 (line 52) | def frequency_altvolt1(self, value):
method powerdown_altvolt1 (line 56) | def powerdown_altvolt1(self):
method powerdown_altvolt1 (line 62) | def powerdown_altvolt1(self, value):
FILE: adi/adf4371.py
class adf4371 (line 9) | class adf4371(attribute, context_manager):
method __init__ (line 32) | def __init__(self, uri=""):
method muxout_mode (line 43) | def muxout_mode(self):
method muxout_mode (line 48) | def muxout_mode(self, value):
method rf8_enable (line 60) | def rf8_enable(self):
method rf8_enable (line 67) | def rf8_enable(self, value):
method rf8_frequency (line 72) | def rf8_frequency(self):
method rf8_frequency (line 77) | def rf8_frequency(self, value):
method rfaux8_enable (line 82) | def rfaux8_enable(self):
method rfaux8_enable (line 89) | def rfaux8_enable(self, value):
method rfaux8_frequency (line 94) | def rfaux8_frequency(self):
method rfaux8_frequency (line 99) | def rfaux8_frequency(self, value):
method rf16_enable (line 104) | def rf16_enable(self):
method rf16_enable (line 111) | def rf16_enable(self, value):
method rf16_frequency (line 116) | def rf16_frequency(self):
method rf16_frequency (line 121) | def rf16_frequency(self, value):
method rf32_enable (line 126) | def rf32_enable(self):
method rf32_enable (line 133) | def rf32_enable(self, value):
method rf32_frequency (line 138) | def rf32_frequency(self):
method rf32_frequency (line 143) | def rf32_frequency(self, value):
method temperature (line 148) | def temperature(self):
FILE: adi/adf4377.py
class adf4377 (line 9) | class adf4377(attribute, context_manager):
method __init__ (line 44) | def __init__(self, uri=""):
method volt0_en (line 55) | def volt0_en(self):
method volt0_en (line 60) | def volt0_en(self, value):
method volt0_output_power (line 65) | def volt0_output_power(self):
method volt0_output_power (line 70) | def volt0_output_power(self, value):
method volt0_frequency (line 75) | def volt0_frequency(self):
method volt0_frequency (line 80) | def volt0_frequency(self, value):
method volt1_en (line 85) | def volt1_en(self):
method volt1_en (line 90) | def volt1_en(self, value):
method volt1_output_power (line 95) | def volt1_output_power(self):
method volt1_output_power (line 100) | def volt1_output_power(self, value):
method volt1_frequency (line 105) | def volt1_frequency(self):
method volt1_frequency (line 110) | def volt1_frequency(self, value):
method reference_frequency (line 115) | def reference_frequency(self):
method reference_frequency (line 120) | def reference_frequency(self, value):
method reference_divider (line 125) | def reference_divider(self):
method reference_divider (line 130) | def reference_divider(self, value):
method reference_doubler_enable (line 135) | def reference_doubler_enable(self):
method reference_doubler_enable (line 140) | def reference_doubler_enable(self, value):
method charge_pump_current (line 145) | def charge_pump_current(self):
method charge_pump_current (line 150) | def charge_pump_current(self, value):
method bleed_current (line 160) | def bleed_current(self):
method bleed_current (line 165) | def bleed_current(self, value):
method rfout_divider (line 170) | def rfout_divider(self):
method rfout_divider (line 174) | def rfout_divider(self, value):
method sysref_delay_adjust (line 184) | def sysref_delay_adjust(self):
method sysref_delay_adjust (line 189) | def sysref_delay_adjust(self, value):
method sysref_invert_adjust (line 194) | def sysref_invert_adjust(self):
method sysref_invert_adjust (line 199) | def sysref_invert_adjust(self, value):
method sysref_monitoring (line 204) | def sysref_monitoring(self):
method sysref_monitoring (line 209) | def sysref_monitoring(self, value):
method reg_read (line 213) | def reg_read(self, reg):
method reg_write (line 218) | def reg_write(self, reg, value):
FILE: adi/adf4382.py
class adf4382 (line 9) | class adf4382(attribute, context_manager):
method __init__ (line 37) | def __init__(self, uri=""):
method altvolt0_en (line 48) | def altvolt0_en(self):
method altvolt0_en (line 53) | def altvolt0_en(self, value):
method altvolt0_output_power (line 58) | def altvolt0_output_power(self):
method altvolt0_output_power (line 63) | def altvolt0_output_power(self, value):
method altvolt0_frequency (line 70) | def altvolt0_frequency(self):
method altvolt0_frequency (line 75) | def altvolt0_frequency(self, value):
method altvolt0_phase (line 80) | def altvolt0_phase(self):
method altvolt0_phase (line 85) | def altvolt0_phase(self, value):
method altvolt1_en (line 90) | def altvolt1_en(self):
method altvolt1_en (line 95) | def altvolt1_en(self, value):
method altvolt1_output_power (line 100) | def altvolt1_output_power(self):
method altvolt1_output_power (line 105) | def altvolt1_output_power(self, value):
method altvolt1_frequency (line 112) | def altvolt1_frequency(self):
method altvolt1_frequency (line 117) | def altvolt1_frequency(self, value):
method altvolt1_phase (line 122) | def altvolt1_phase(self):
method altvolt1_phase (line 127) | def altvolt1_phase(self, value):
method bleed_current (line 132) | def bleed_current(self):
method bleed_current (line 137) | def bleed_current(self, value):
method charge_pump_current (line 142) | def charge_pump_current(self):
method charge_pump_current (line 147) | def charge_pump_current(self, value):
method reference_divider (line 157) | def reference_divider(self):
method reference_divider (line 162) | def reference_divider(self, value):
method reference_doubler_en (line 167) | def reference_doubler_en(self):
method reference_doubler_en (line 172) | def reference_doubler_en(self, value):
method reference_frequency (line 177) | def reference_frequency(self):
method reference_frequency (line 182) | def reference_frequency(self, value):
method sw_sync_en (line 187) | def sw_sync_en(self):
method sw_sync_en (line 192) | def sw_sync_en(self, value):
method ezsync_setup (line 197) | def ezsync_setup(self):
method ezsync_setup (line 202) | def ezsync_setup(self, value):
method timed_sync_setup (line 207) | def timed_sync_setup(self):
method timed_sync_setup (line 212) | def timed_sync_setup(self, value):
method fastcal_en (line 217) | def fastcal_en(self):
method fastcal_en (line 222) | def fastcal_en(self, value):
method fastcal_lut_en (line 227) | def fastcal_lut_en(self):
method fastcal_lut_en (line 232) | def fastcal_lut_en(self, value):
method change_frequency (line 237) | def change_frequency(self):
method change_frequency (line 242) | def change_frequency(self, value):
method start_calibration (line 247) | def start_calibration(self):
method start_calibration (line 252) | def start_calibration(self, value):
method reg_read (line 256) | def reg_read(self, reg):
method reg_write (line 261) | def reg_write(self, reg, value):
FILE: adi/adf5610.py
class adf5610 (line 9) | class adf5610(attribute, context_manager):
method __init__ (line 19) | def __init__(self, uri="", device_name=""):
method frequency (line 32) | def frequency(self):
method frequency (line 37) | def frequency(self, value):
method reg_read (line 41) | def reg_read(self, reg):
method reg_write (line 46) | def reg_write(self, reg, value):
FILE: adi/adf5611.py
class adf5611 (line 9) | class adf5611(attribute, context_manager):
method __init__ (line 48) | def __init__(self, uri=""):
method rfout_frequency (line 60) | def rfout_frequency(self):
method rfout_frequency (line 65) | def rfout_frequency(self, value):
method altvolt0_rfout_power (line 72) | def altvolt0_rfout_power(self):
method altvolt0_rfout_power (line 76) | def altvolt0_rfout_power(self, value):
method reference_frequency (line 82) | def reference_frequency(self):
method reference_frequency (line 86) | def reference_frequency(self, value):
method reference_divider (line 90) | def reference_divider(self):
method reference_divider (line 94) | def reference_divider(self, value):
method charge_pump_current (line 98) | def charge_pump_current(self):
method charge_pump_current (line 102) | def charge_pump_current(self, value):
method rfoutdiv_power (line 112) | def rfoutdiv_power(self):
method rfoutdiv_power (line 116) | def rfoutdiv_power(self, value):
method rfoutdiv_divider (line 120) | def rfoutdiv_divider(self):
method rfoutdiv_divider (line 124) | def rfoutdiv_divider(self, value):
method en_rfoutdiv (line 134) | def en_rfoutdiv(self):
method en_rfoutdiv (line 138) | def en_rfoutdiv(self, value):
method reg_read (line 141) | def reg_read(self, reg):
method reg_write (line 146) | def reg_write(self, reg, value):
FILE: adi/adg2128.py
class yline (line 9) | class yline(object):
method __init__ (line 10) | def __init__(self, dev, x, line):
method __str__ (line 16) | def __str__(self):
method __getitem__ (line 20) | def __getitem__(self, y):
method __setitem__ (line 24) | def __setitem__(self, y, value):
class adg2128 (line 30) | class adg2128(attribute, context_manager):
method __init__ (line 33) | def __init__(self, uri=""):
method immediate (line 49) | def immediate(self):
method immediate (line 58) | def immediate(self, value):
method add (line 61) | def add(self, addr):
method _read (line 80) | def _read(self, addr):
method _write (line 85) | def _write(self, addr, val):
method _switch (line 91) | def _switch(self, x, y, closed, immediate):
method _read_x (line 101) | def _read_x(self, x):
method __str__ (line 121) | def __str__(self):
method __getitem__ (line 125) | def __getitem__(self, x):
method __setitem__ (line 129) | def __setitem__(self, x, value):
method open_all (line 134) | def open_all(self):
FILE: adi/adis16460.py
class adis16460 (line 11) | class adis16460(rx, context_manager):
method __init__ (line 25) | def __init__(self, uri=""):
method sample_rate (line 35) | def sample_rate(self):
method sample_rate (line 40) | def sample_rate(self, value):
method current_timestamp_clock (line 44) | def current_timestamp_clock(self):
method current_timestamp_clock (line 49) | def current_timestamp_clock(self, value):
FILE: adi/adis16475.py
class adis16475 (line 10) | class adis16475(rx, context_manager):
method __init__ (line 31) | def __init__(self, uri="", device_name="adis16505-2"):
method __get_scaled_sensor (line 113) | def __get_scaled_sensor(self, channel_name: str) -> float:
method get_anglvel_x (line 119) | def get_anglvel_x(self):
method get_anglvel_y (line 125) | def get_anglvel_y(self):
method get_anglvel_z (line 131) | def get_anglvel_z(self):
method get_accel_x (line 137) | def get_accel_x(self):
method get_accel_y (line 143) | def get_accel_y(self):
method get_accel_z (line 149) | def get_accel_z(self):
method get_deltaangl_x (line 155) | def get_deltaangl_x(self):
method get_deltaangl_y (line 161) | def get_deltaangl_y(self):
method get_deltaangl_z (line 167) | def get_deltaangl_z(self):
method get_deltavelocity_x (line 173) | def get_deltavelocity_x(self):
method get_deltavelocity_y (line 179) | def get_deltavelocity_y(self):
method get_deltavelocity_z (line 185) | def get_deltavelocity_z(self):
method get_temp (line 191) | def get_temp(self):
method sample_rate (line 198) | def sample_rate(self):
method sample_rate (line 203) | def sample_rate(self, value):
method filter_low_pass_3db_frequency (line 207) | def filter_low_pass_3db_frequency(self):
method filter_low_pass_3db_frequency (line 213) | def filter_low_pass_3db_frequency(self, value):
method anglvel_x_calibbias (line 217) | def anglvel_x_calibbias(self):
method anglvel_x_calibbias (line 222) | def anglvel_x_calibbias(self, value):
method anglvel_y_calibbias (line 226) | def anglvel_y_calibbias(self):
method anglvel_y_calibbias (line 231) | def anglvel_y_calibbias(self, value):
method anglvel_z_calibbias (line 235) | def anglvel_z_calibbias(self):
method anglvel_z_calibbias (line 240) | def anglvel_z_calibbias(self, value):
method accel_x_calibbias (line 244) | def accel_x_calibbias(self):
method accel_x_calibbias (line 249) | def accel_x_calibbias(self, value):
method accel_y_calibbias (line 253) | def accel_y_calibbias(self):
method accel_y_calibbias (line 258) | def accel_y_calibbias(self, value):
method accel_z_calibbias (line 262) | def accel_z_calibbias(self):
method accel_z_calibbias (line 267) | def accel_z_calibbias(self, value):
method firmware_revision (line 271) | def firmware_revision(self):
method firmware_date (line 276) | def firmware_date(self):
method product_id (line 281) | def product_id(self):
method serial_number (line 286) | def serial_number(self):
method flash_count (line 291) | def flash_count(self):
class _channel_with_offset (line 295) | class _channel_with_offset(attribute):
method __init__ (line 298) | def __init__(self, ctrl, channel_name):
method calibbias (line 303) | def calibbias(self):
method calibbias (line 308) | def calibbias(self, value):
method raw (line 312) | def raw(self):
method scale (line 317) | def scale(self):
class _channel (line 321) | class _channel(attribute):
method __init__ (line 324) | def __init__(self, ctrl, channel_name):
method raw (line 329) | def raw(self):
method scale (line 334) | def scale(self):
method reg_read (line 338) | def reg_read(self, reg):
method reg_write (line 343) | def reg_write(self, reg, value):
FILE: adi/adis16480.py
class adis16XXX (line 12) | class adis16XXX(rx, context_manager, ABC):
method compatible_parts (line 33) | def compatible_parts(self):
method __init__ (line 36) | def __init__(self, uri="", device_name=None, trigger_name=None):
method __get_scaled_sensor (line 92) | def __get_scaled_sensor(self, channel_name: str) -> float:
method __get_scaled_sensor_temp (line 98) | def __get_scaled_sensor_temp(self, channel_name: str) -> float:
method get_anglvel_x (line 105) | def get_anglvel_x(self):
method get_anglvel_y (line 111) | def get_anglvel_y(self):
method get_anglvel_z (line 117) | def get_anglvel_z(self):
method get_accel_x (line 123) | def get_accel_x(self):
method get_accel_y (line 129) | def get_accel_y(self):
method get_accel_z (line 135) | def get_accel_z(self):
method get_temp (line 141) | def get_temp(self):
method get_deltaangl_x (line 147) | def get_deltaangl_x(self):
method get_deltaangl_y (line 153) | def get_deltaangl_y(self):
method get_deltaangl_z (line 159) | def get_deltaangl_z(self):
method get_deltavelocity_x (line 165) | def get_deltavelocity_x(self):
method get_deltavelocity_y (line 171) | def get_deltavelocity_y(self):
method get_deltavelocity_z (line 177) | def get_deltavelocity_z(self):
method sample_rate (line 184) | def sample_rate(self):
method sample_rate (line 189) | def sample_rate(self, value):
method current_timestamp_clock (line 193) | def current_timestamp_clock(self):
method current_timestamp_clock (line 198) | def current_timestamp_clock(self, value):
method anglvel_x_calibbias (line 202) | def anglvel_x_calibbias(self):
method anglvel_x_calibbias (line 207) | def anglvel_x_calibbias(self, value):
method anglvel_y_calibbias (line 211) | def anglvel_y_calibbias(self):
method anglvel_y_calibbias (line 216) | def anglvel_y_calibbias(self, value):
method anglvel_z_calibbias (line 220) | def anglvel_z_calibbias(self):
method anglvel_z_calibbias (line 225) | def anglvel_z_calibbias(self, value):
method accel_x_calibbias (line 229) | def accel_x_calibbias(self):
method accel_x_calibbias (line 234) | def accel_x_calibbias(self, value):
method accel_y_calibbias (line 238) | def accel_y_calibbias(self):
method accel_y_calibbias (line 243) | def accel_y_calibbias(self, value):
method accel_z_calibbias (line 247) | def accel_z_calibbias(self):
method accel_z_calibbias (line 252) | def accel_z_calibbias(self, value):
method anglvel_x_calibscale (line 257) | def anglvel_x_calibscale(self):
method anglvel_x_calibscale (line 262) | def anglvel_x_calibscale(self, value):
method anglvel_y_calibscale (line 266) | def anglvel_y_calibscale(self):
method anglvel_y_calibscale (line 271) | def anglvel_y_calibscale(self, value):
method anglvel_z_calibscale (line 275) | def anglvel_z_calibscale(self):
method anglvel_z_calibscale (line 280) | def anglvel_z_calibscale(self, value):
method accel_x_calibscale (line 284) | def accel_x_calibscale(self):
method accel_x_calibscale (line 289) | def accel_x_calibscale(self, value):
method accel_y_calibscale (line 293) | def accel_y_calibscale(self):
method accel_y_calibscale (line 298) | def accel_y_calibscale(self, value):
method accel_z_calibscale (line 302) | def accel_z_calibscale(self):
method accel_z_calibscale (line 307) | def accel_z_calibscale(self, value):
method anglvel_x_filter_low_pass_3db_frequency (line 311) | def anglvel_x_filter_low_pass_3db_frequency(self):
method anglvel_x_filter_low_pass_3db_frequency (line 316) | def anglvel_x_filter_low_pass_3db_frequency(self, value):
method anglvel_y_filter_low_pass_3db_frequency (line 320) | def anglvel_y_filter_low_pass_3db_frequency(self):
method anglvel_y_filter_low_pass_3db_frequency (line 325) | def anglvel_y_filter_low_pass_3db_frequency(self, value):
method anglvel_z_filter_low_pass_3db_frequency (line 329) | def anglvel_z_filter_low_pass_3db_frequency(self):
method anglvel_z_filter_low_pass_3db_frequency (line 334) | def anglvel_z_filter_low_pass_3db_frequency(self, value):
method accel_x_filter_low_pass_3db_frequency (line 338) | def accel_x_filter_low_pass_3db_frequency(self):
method accel_x_filter_low_pass_3db_frequency (line 343) | def accel_x_filter_low_pass_3db_frequency(self, value):
method accel_y_filter_low_pass_3db_frequency (line 347) | def accel_y_filter_low_pass_3db_frequency(self):
method accel_y_filter_low_pass_3db_frequency (line 352) | def accel_y_filter_low_pass_3db_frequency(self, value):
method accel_z_filter_low_pass_3db_frequency (line 356) | def accel_z_filter_low_pass_3db_frequency(self):
method accel_z_filter_low_pass_3db_frequency (line 361) | def accel_z_filter_low_pass_3db_frequency(self, value):
method firmware_revision (line 365) | def firmware_revision(self):
method firmware_date (line 370) | def firmware_date(self):
method product_id (line 375) | def product_id(self):
method serial_number (line 380) | def serial_number(self):
method flash_count (line 385) | def flash_count(self):
class _temp_channel (line 389) | class _temp_channel(attribute):
method __init__ (line 392) | def __init__(self, ctrl, channel_name):
method raw (line 397) | def raw(self):
method scale (line 402) | def scale(self):
method offset (line 407) | def offset(self):
class _pressure_channel (line 411) | class _pressure_channel(attribute):
method __init__ (line 414) | def __init__(self, ctrl, channel_name):
method raw (line 419) | def raw(self):
method scale (line 424) | def scale(self):
method calibbias (line 429) | def calibbias(self):
method calibbias (line 434) | def calibbias(self, value):
class _magn_channel (line 437) | class _magn_channel(_pressure_channel):
method __init__ (line 440) | def __init__(self, ctrl, channel_name):
method filter_low_pass_3db_frequency (line 445) | def filter_low_pass_3db_frequency(self):
method filter_low_pass_3db_frequency (line 450) | def filter_low_pass_3db_frequency(self, value):
class _anglvel_accel_channels (line 453) | class _anglvel_accel_channels(_magn_channel):
method __init__ (line 456) | def __init__(self, ctrl, channel_name):
method calibscale (line 461) | def calibscale(self):
method calibscale (line 466) | def calibscale(self, value):
class _delta_channels (line 469) | class _delta_channels(attribute):
method __init__ (line 472) | def __init__(self, ctrl, channel_name):
class adis16XXX_with_delta_angl (line 477) | class adis16XXX_with_delta_angl(adis16XXX):
method __init__ (line 478) | def __init__(self, uri="", device_name=None, trigger_name=None):
class adis16XXX_with_mag (line 489) | class adis16XXX_with_mag(adis16XXX):
method __init__ (line 490) | def __init__(self, uri="", device_name=None, trigger_name=None):
method get_magn_x (line 502) | def get_magn_x(self):
method get_magn_y (line 508) | def get_magn_y(self):
method get_magn_z (line 514) | def get_magn_z(self):
method get_pressure (line 520) | def get_pressure(self):
method magn_x_calibbias (line 527) | def magn_x_calibbias(self):
method magn_x_calibbias (line 534) | def magn_x_calibbias(self, value):
method magn_y_calibbias (line 539) | def magn_y_calibbias(self):
method magn_y_calibbias (line 546) | def magn_y_calibbias(self, value):
method magn_z_calibbias (line 551) | def magn_z_calibbias(self):
method magn_z_calibbias (line 558) | def magn_z_calibbias(self, value):
method pressure_calibbias (line 563) | def pressure_calibbias(self):
method pressure_calibbias (line 570) | def pressure_calibbias(self, value):
method magn_x_filter_low_pass_3db_frequency (line 575) | def magn_x_filter_low_pass_3db_frequency(self):
method magn_x_filter_low_pass_3db_frequency (line 582) | def magn_x_filter_low_pass_3db_frequency(self, value):
method magn_y_filter_low_pass_3db_frequency (line 587) | def magn_y_filter_low_pass_3db_frequency(self):
method magn_y_filter_low_pass_3db_frequency (line 594) | def magn_y_filter_low_pass_3db_frequency(self, value):
method magn_z_filter_low_pass_3db_frequency (line 599) | def magn_z_filter_low_pass_3db_frequency(self):
method magn_z_filter_low_pass_3db_frequency (line 606) | def magn_z_filter_low_pass_3db_frequency(self, value):
class adis16375 (line 614) | class adis16375(adis16XXX):
class adis16480 (line 626) | class adis16480(adis16XXX_with_mag):
class adis16485 (line 638) | class adis16485(adis16XXX):
class adis16488 (line 650) | class adis16488(adis16XXX_with_mag):
class adis16490 (line 662) | class adis16490(adis16XXX):
class adis16495 (line 674) | class adis16495(adis16XXX):
class adis16497 (line 691) | class adis16497(adis16XXX):
class adis16545 (line 703) | class adis16545(adis16XXX_with_delta_angl):
class adis16547 (line 720) | class adis16547(adis16XXX_with_delta_angl):
FILE: adi/adis16507.py
class adis16507 (line 11) | class adis16507(rx, context_manager):
method __init__ (line 26) | def __init__(
method sample_rate (line 41) | def sample_rate(self):
method sample_rate (line 46) | def sample_rate(self, value):
method filter_low_pass_3db_frequency (line 50) | def filter_low_pass_3db_frequency(self):
method filter_low_pass_3db_frequency (line 56) | def filter_low_pass_3db_frequency(self, value):
method current_timestamp_clock (line 60) | def current_timestamp_clock(self):
method current_timestamp_clock (line 65) | def current_timestamp_clock(self, value):
FILE: adi/adis16550.py
class adis16550 (line 10) | class adis16550(rx, context_manager):
method __init__ (line 34) | def __init__(self, uri="", device_name=None, trigger_name=None):
method __get_scaled_sensor (line 92) | def __get_scaled_sensor(self, channel_name: str) -> float:
method __get_scaled_sensor_temp (line 98) | def __get_scaled_sensor_temp(self, channel_name: str) -> float:
method get_anglvel_x (line 105) | def get_anglvel_x(self):
method get_anglvel_y (line 111) | def get_anglvel_y(self):
method get_anglvel_z (line 117) | def get_anglvel_z(self):
method get_accel_x (line 123) | def get_accel_x(self):
method get_accel_y (line 129) | def get_accel_y(self):
method get_accel_z (line 135) | def get_accel_z(self):
method get_temp (line 141) | def get_temp(self):
method get_deltaangl_x (line 147) | def get_deltaangl_x(self):
method get_deltaangl_y (line 153) | def get_deltaangl_y(self):
method get_deltaangl_z (line 159) | def get_deltaangl_z(self):
method get_deltavelocity_x (line 165) | def get_deltavelocity_x(self):
method get_deltavelocity_y (line 171) | def get_deltavelocity_y(self):
method get_deltavelocity_z (line 177) | def get_deltavelocity_z(self):
method sample_rate (line 184) | def sample_rate(self):
method sample_rate (line 189) | def sample_rate(self, value):
method current_timestamp_clock (line 193) | def current_timestamp_clock(self):
method current_timestamp_clock (line 198) | def current_timestamp_clock(self, value):
method anglvel_x_calibbias (line 202) | def anglvel_x_calibbias(self):
method anglvel_x_calibbias (line 207) | def anglvel_x_calibbias(self, value):
method anglvel_y_calibbias (line 211) | def anglvel_y_calibbias(self):
method anglvel_y_calibbias (line 216) | def anglvel_y_calibbias(self, value):
method anglvel_z_calibbias (line 220) | def anglvel_z_calibbias(self):
method anglvel_z_calibbias (line 225) | def anglvel_z_calibbias(self, value):
method accel_x_calibbias (line 229) | def accel_x_calibbias(self):
method accel_x_calibbias (line 234) | def accel_x_calibbias(self, value):
method accel_y_calibbias (line 238) | def accel_y_calibbias(self):
method accel_y_calibbias (line 243) | def accel_y_calibbias(self, value):
method accel_z_calibbias (line 247) | def accel_z_calibbias(self):
method accel_z_calibbias (line 252) | def accel_z_calibbias(self, value):
method anglvel_x_calibscale (line 256) | def anglvel_x_calibscale(self):
method anglvel_x_calibscale (line 261) | def anglvel_x_calibscale(self, value):
method anglvel_y_calibscale (line 265) | def anglvel_y_calibscale(self):
method anglvel_y_calibscale (line 270) | def anglvel_y_calibscale(self, value):
method anglvel_z_calibscale (line 274) | def anglvel_z_calibscale(self):
method anglvel_z_calibscale (line 279) | def anglvel_z_calibscale(self, value):
method accel_x_calibscale (line 283) | def accel_x_calibscale(self):
method accel_x_calibscale (line 288) | def accel_x_calibscale(self, value):
method accel_y_calibscale (line 292) | def accel_y_calibscale(self):
method accel_y_calibscale (line 297) | def accel_y_calibscale(self, value):
method accel_z_calibscale (line 301) | def accel_z_calibscale(self):
method accel_z_calibscale (line 306) | def accel_z_calibscale(self, value):
method anglvel_x_filter_low_pass_3db_frequency (line 310) | def anglvel_x_filter_low_pass_3db_frequency(self):
method anglvel_x_filter_low_pass_3db_frequency (line 315) | def anglvel_x_filter_low_pass_3db_frequency(self, value):
method anglvel_y_filter_low_pass_3db_frequency (line 319) | def anglvel_y_filter_low_pass_3db_frequency(self):
method anglvel_y_filter_low_pass_3db_frequency (line 324) | def anglvel_y_filter_low_pass_3db_frequency(self, value):
method anglvel_z_filter_low_pass_3db_frequency (line 328) | def anglvel_z_filter_low_pass_3db_frequency(self):
method anglvel_z_filter_low_pass_3db_frequency (line 333) | def anglvel_z_filter_low_pass_3db_frequency(self, value):
method accel_x_filter_low_pass_3db_frequency (line 337) | def accel_x_filter_low_pass_3db_frequency(self):
method accel_x_filter_low_pass_3db_frequency (line 342) | def accel_x_filter_low_pass_3db_frequency(self, value):
method accel_y_filter_low_pass_3db_frequency (line 346) | def accel_y_filter_low_pass_3db_frequency(self):
method accel_y_filter_low_pass_3db_frequency (line 351) | def accel_y_filter_low_pass_3db_frequency(self, value):
method accel_z_filter_low_pass_3db_frequency (line 355) | def accel_z_filter_low_pass_3db_frequency(self):
method accel_z_filter_low_pass_3db_frequency (line 360) | def accel_z_filter_low_pass_3db_frequency(self, value):
method firmware_revision (line 364) | def firmware_revision(self):
method firmware_date (line 369) | def firmware_date(self):
method product_id (line 374) | def product_id(self):
method serial_number (line 379) | def serial_number(self):
method flash_count (line 384) | def flash_count(self):
class _temp_channel (line 388) | class _temp_channel(attribute):
method __init__ (line 391) | def __init__(self, ctrl, channel_name):
method raw (line 396) | def raw(self):
method scale (line 401) | def scale(self):
method offset (line 406) | def offset(self):
class _simple_channel (line 410) | class _simple_channel(attribute):
method __init__ (line 413) | def __init__(self, ctrl, channel_name):
method raw (line 418) | def raw(self):
method scale (line 423) | def scale(self):
class _extended_channel (line 427) | class _extended_channel(_simple_channel):
method __init__ (line 430) | def __init__(self, ctrl, channel_name):
method calibbias (line 435) | def calibbias(self):
method calibbias (line 440) | def calibbias(self, value):
method calibscale (line 444) | def calibscale(self):
method calibscale (line 449) | def calibscale(self, value):
method filter_low_pass_3db_frequency (line 453) | def filter_low_pass_3db_frequency(self):
method filter_low_pass_3db_frequency (line 458) | def filter_low_pass_3db_frequency(self, value):
class _anglvel_accel_channels (line 461) | class _anglvel_accel_channels(_extended_channel):
method __init__ (line 464) | def __init__(self, ctrl, channel_name):
class _delta_channels (line 468) | class _delta_channels(_simple_channel):
method __init__ (line 471) | def __init__(self, ctrl, channel_name):
FILE: adi/adl5240.py
class adl5240 (line 9) | class adl5240(attribute, context_manager):
method __init__ (line 14) | def __init__(self, uri=""):
method hardwaregain (line 24) | def hardwaregain(self):
method hardwaregain (line 29) | def hardwaregain(self, value):
FILE: adi/adl5960.py
class adl5960 (line 9) | class adl5960(attribute, context_manager):
method __init__ (line 19) | def __init__(self, uri="", device_name=""):
method temperature (line 34) | def temperature(self):
method lo_frequency (line 41) | def lo_frequency(self):
method lo_mode_available (line 46) | def lo_mode_available(self):
method lo_mode (line 53) | def lo_mode(self):
method lo_mode (line 58) | def lo_mode(self, value):
method offset_frequency (line 65) | def offset_frequency(self):
method offset_frequency (line 70) | def offset_frequency(self, value):
method if_frequency (line 77) | def if_frequency(self):
method if_frequency (line 82) | def if_frequency(self, value):
method offset_mode_available (line 89) | def offset_mode_available(self):
method offset_mode (line 96) | def offset_mode(self):
method offset_mode (line 101) | def offset_mode(self, value):
method forward_gain (line 108) | def forward_gain(self):
method forward_gain (line 113) | def forward_gain(self, value):
method reflected_gain (line 122) | def reflected_gain(self):
method reflected_gain (line 127) | def reflected_gain(self, value):
method if_filter_cutoff (line 136) | def if_filter_cutoff(self):
method if_filter_cutoff (line 143) | def if_filter_cutoff(self, value):
method reg_read (line 149) | def reg_read(self, reg):
method reg_write (line 154) | def reg_write(self, reg, value):
FILE: adi/adl8113.py
class adl8113 (line 9) | class adl8113(attribute, context_manager):
method __init__ (line 14) | def __init__(self, uri="", device_name="adl8113"):
method hardwaregain (line 36) | def hardwaregain(self):
method hardwaregain (line 41) | def hardwaregain(self, value):
FILE: adi/admv8818.py
class admv8818 (line 9) | class admv8818(attribute, context_manager):
method __init__ (line 19) | def __init__(self, uri="", device_name=""):
method low_pass_3db_frequency (line 32) | def low_pass_3db_frequency(self):
method low_pass_3db_frequency (line 39) | def low_pass_3db_frequency(self, value):
method high_pass_3db_frequency (line 46) | def high_pass_3db_frequency(self):
method high_pass_3db_frequency (line 53) | def high_pass_3db_frequency(self, value):
method band_pass_bandwidth_3db_frequency (line 64) | def band_pass_bandwidth_3db_frequency(self):
method band_pass_bandwidth_3db_frequency (line 71) | def band_pass_bandwidth_3db_frequency(self, value):
method band_pass_center_frequency (line 82) | def band_pass_center_frequency(self):
method band_pass_center_frequency (line 89) | def band_pass_center_frequency(self, value):
method mode_available (line 100) | def mode_available(self):
method mode (line 105) | def mode(self):
method mode (line 110) | def mode(self, value):
method reg_read (line 114) | def reg_read(self, reg):
method reg_write (line 119) | def reg_write(self, reg, value):
FILE: adi/adpd1080.py
class adpd1080 (line 10) | class adpd1080(rx, context_manager):
method __init__ (line 16) | def __init__(self, uri="", device_index=0):
method rx (line 46) | def rx(self):
method sample_rate (line 52) | def sample_rate(self):
method sample_rate (line 57) | def sample_rate(self, value):
class _channel (line 60) | class _channel(attribute):
method __init__ (line 63) | def __init__(self, ctrl, channel_name):
method raw (line 68) | def raw(self):
method offset (line 73) | def offset(self):
method offset (line 78) | def offset(self, value):
FILE: adi/adpd188.py
class adpd188 (line 10) | class adpd188(rx, context_manager):
method __init__ (line 17) | def __init__(self, uri="", device_index=0):
method mode (line 48) | def mode(self):
method mode (line 53) | def mode(self, value):
method sample_rate (line 57) | def sample_rate(self):
method sample_rate (line 62) | def sample_rate(self, value):
class _channel (line 65) | class _channel(attribute):
method __init__ (line 69) | def __init__(self, ctrl, channel_name):
method raw (line 74) | def raw(self):
method offset (line 79) | def offset(self):
method offset (line 84) | def offset(self, value):
method mode_available (line 88) | def mode_available(self):
FILE: adi/adpd410x.py
class adpd410x (line 10) | class adpd410x(rx, context_manager):
method __init__ (line 27) | def __init__(self, uri=""):
method sampling_frequency (line 38) | def sampling_frequency(self):
method sampling_frequency (line 43) | def sampling_frequency(self, value):
method last_timeslot (line 48) | def last_timeslot(self):
method last_timeslot (line 53) | def last_timeslot(self, value):
method operation_mode (line 58) | def operation_mode(self):
method operation_mode (line 63) | def operation_mode(self, value):
class _channel (line 67) | class _channel(attribute):
method __init__ (line 70) | def __init__(self, ctrl, channel_name):
method raw (line 75) | def raw(self):
FILE: adi/adrf5720.py
class adrf5720 (line 9) | class adrf5720(attribute, context_manager):
method __init__ (line 16) | def __init__(self, uri="", device_name=""):
method attenuation (line 37) | def attenuation(self):
method attenuation (line 42) | def attenuation(self, value):
FILE: adi/adrv9002.py
function rx1 (line 14) | def rx1(self):
function rx2 (line 19) | def rx2(self):
function tx1 (line 24) | def tx1(self, data):
function tx2 (line 29) | def tx2(self, data):
class adrv9002 (line 34) | class adrv9002(rx_tx, context_manager):
method __init__ (line 44) | def __init__(self, uri=""):
method write_stream_profile (line 92) | def write_stream_profile(self, stream, profile):
method write_profile (line 103) | def write_profile(self, value):
method write_stream (line 112) | def write_stream(self, value):
method profile (line 124) | def profile(self):
method rx_dma_mode (line 132) | def rx_dma_mode(self):
method tx_dma_mode (line 142) | def tx_dma_mode(self):
method rx_ensm_mode_chan0 (line 152) | def rx_ensm_mode_chan0(self):
method rx_ensm_mode_chan0 (line 158) | def rx_ensm_mode_chan0(self, value):
method rx_ensm_mode_chan1 (line 162) | def rx_ensm_mode_chan1(self):
method rx_ensm_mode_chan1 (line 168) | def rx_ensm_mode_chan1(self, value):
method tx_ensm_mode_chan0 (line 172) | def tx_ensm_mode_chan0(self):
method tx_ensm_mode_chan0 (line 178) | def tx_ensm_mode_chan0(self, value):
method tx_ensm_mode_chan1 (line 182) | def tx_ensm_mode_chan1(self):
method tx_ensm_mode_chan1 (line 188) | def tx_ensm_mode_chan1(self, value):
method gain_control_mode_chan0 (line 192) | def gain_control_mode_chan0(self):
method gain_control_mode_chan0 (line 198) | def gain_control_mode_chan0(self, value):
method gain_control_mode_chan1 (line 202) | def gain_control_mode_chan1(self):
method gain_control_mode_chan1 (line 208) | def gain_control_mode_chan1(self, value):
method rx_hardwaregain_chan0 (line 212) | def rx_hardwaregain_chan0(self):
method rx_hardwaregain_chan0 (line 218) | def rx_hardwaregain_chan0(self, value):
method rx_hardwaregain_chan1 (line 225) | def rx_hardwaregain_chan1(self):
method rx_hardwaregain_chan1 (line 231) | def rx_hardwaregain_chan1(self, value):
method tx_hardwaregain_chan0 (line 238) | def tx_hardwaregain_chan0(self):
method tx_hardwaregain_chan0 (line 243) | def tx_hardwaregain_chan0(self, value):
method tx_hardwaregain_chan1 (line 250) | def tx_hardwaregain_chan1(self):
method tx_hardwaregain_chan1 (line 255) | def tx_hardwaregain_chan1(self, value):
method interface_gain_chan0 (line 262) | def interface_gain_chan0(self):
method interface_gain_chan0 (line 268) | def interface_gain_chan0(self, value):
method interface_gain_chan1 (line 275) | def interface_gain_chan1(self):
method interface_gain_chan1 (line 281) | def interface_gain_chan1(self, value):
method agc_tracking_en_chan0 (line 288) | def agc_tracking_en_chan0(self):
method agc_tracking_en_chan0 (line 293) | def agc_tracking_en_chan0(self, value):
method bbdc_rejection_tracking_en_chan0 (line 297) | def bbdc_rejection_tracking_en_chan0(self):
method bbdc_rejection_tracking_en_chan0 (line 302) | def bbdc_rejection_tracking_en_chan0(self, value):
method hd_tracking_en_chan0 (line 306) | def hd_tracking_en_chan0(self):
method hd_tracking_en_chan0 (line 311) | def hd_tracking_en_chan0(self, value):
method quadrature_fic_tracking_en_chan0 (line 315) | def quadrature_fic_tracking_en_chan0(self):
method quadrature_fic_tracking_en_chan0 (line 321) | def quadrature_fic_tracking_en_chan0(self, value):
method quadrature_w_poly_tracking_en_chan0 (line 325) | def quadrature_w_poly_tracking_en_chan0(self):
method quadrature_w_poly_tracking_en_chan0 (line 331) | def quadrature_w_poly_tracking_en_chan0(self, value):
method rfdc_tracking_en_chan0 (line 335) | def rfdc_tracking_en_chan0(self):
method rfdc_tracking_en_chan0 (line 340) | def rfdc_tracking_en_chan0(self, value):
method rssi_tracking_en_chan0 (line 344) | def rssi_tracking_en_chan0(self):
method rssi_tracking_en_chan0 (line 349) | def rssi_tracking_en_chan0(self, value):
method agc_tracking_en_chan1 (line 353) | def agc_tracking_en_chan1(self):
method agc_tracking_en_chan1 (line 358) | def agc_tracking_en_chan1(self, value):
method bbdc_rejection_tracking_en_chan1 (line 362) | def bbdc_rejection_tracking_en_chan1(self):
method bbdc_rejection_tracking_en_chan1 (line 367) | def bbdc_rejection_tracking_en_chan1(self, value):
method hd_tracking_en_chan1 (line 371) | def hd_tracking_en_chan1(self):
method hd_tracking_en_chan1 (line 376) | def hd_tracking_en_chan1(self, value):
method quadrature_fic_tracking_en_chan1 (line 380) | def quadrature_fic_tracking_en_chan1(self):
method quadrature_fic_tracking_en_chan1 (line 386) | def quadrature_fic_tracking_en_chan1(self, value):
method quadrature_w_poly_tracking_en_chan1 (line 390) | def quadrature_w_poly_tracking_en_chan1(self):
method quadrature_w_poly_tracking_en_chan1 (line 396) | def quadrature_w_poly_tracking_en_chan1(self, value):
method rfdc_tracking_en_chan1 (line 400) | def rfdc_tracking_en_chan1(self):
method rfdc_tracking_en_chan1 (line 405) | def rfdc_tracking_en_chan1(self, value):
method rssi_tracking_en_chan1 (line 409) | def rssi_tracking_en_chan1(self):
method rssi_tracking_en_chan1 (line 414) | def rssi_tracking_en_chan1(self, value):
method close_loop_gain_tracking_en_chan0 (line 418) | def close_loop_gain_tracking_en_chan0(self):
method close_loop_gain_tracking_en_chan0 (line 423) | def close_loop_gain_tracking_en_chan0(self, value):
method lo_leakage_tracking_en_chan0 (line 427) | def lo_leakage_tracking_en_chan0(self):
method lo_leakage_tracking_en_chan0 (line 432) | def lo_leakage_tracking_en_chan0(self, value):
method loopback_delay_tracking_en_chan0 (line 436) | def loopback_delay_tracking_en_chan0(self):
method loopback_delay_tracking_en_chan0 (line 441) | def loopback_delay_tracking_en_chan0(self, value):
method pa_correction_tracking_en_chan0 (line 445) | def pa_correction_tracking_en_chan0(self):
method pa_correction_tracking_en_chan0 (line 450) | def pa_correction_tracking_en_chan0(self, value):
method quadrature_tracking_en_chan0 (line 454) | def quadrature_tracking_en_chan0(self):
method quadrature_tracking_en_chan0 (line 459) | def quadrature_tracking_en_chan0(self, value):
method close_loop_gain_tracking_en_chan1 (line 463) | def close_loop_gain_tracking_en_chan1(self):
method close_loop_gain_tracking_en_chan1 (line 468) | def close_loop_gain_tracking_en_chan1(self, value):
method lo_leakage_tracking_en_chan1 (line 472) | def lo_leakage_tracking_en_chan1(self):
method lo_leakage_tracking_en_chan1 (line 477) | def lo_leakage_tracking_en_chan1(self, value):
method loopback_delay_tracking_en_chan1 (line 481) | def loopback_delay_tracking_en_chan1(self):
method loopback_delay_tracking_en_chan1 (line 486) | def loopback_delay_tracking_en_chan1(self, value):
method pa_correction_tracking_en_chan1 (line 490) | def pa_correction_tracking_en_chan1(self):
method pa_correction_tracking_en_chan1 (line 495) | def pa_correction_tracking_en_chan1(self, value):
method quadrature_tracking_en_chan1 (line 499) | def quadrature_tracking_en_chan1(self):
method quadrature_tracking_en_chan1 (line 504) | def quadrature_tracking_en_chan1(self, value):
method digital_gain_control_mode_chan0 (line 508) | def digital_gain_control_mode_chan0(self):
method digital_gain_control_mode_chan0 (line 513) | def digital_gain_control_mode_chan0(self, value):
method digital_gain_control_mode_chan1 (line 517) | def digital_gain_control_mode_chan1(self):
method digital_gain_control_mode_chan1 (line 522) | def digital_gain_control_mode_chan1(self, value):
method rx0_port_en (line 526) | def rx0_port_en(self):
method rx0_port_en (line 531) | def rx0_port_en(self, value):
method tx0_port_en (line 535) | def tx0_port_en(self):
method tx0_port_en (line 540) | def tx0_port_en(self, value):
method rx1_port_en (line 544) | def rx1_port_en(self):
method rx1_port_en (line 549) | def rx1_port_en(self, value):
method tx1_port_en (line 553) | def tx1_port_en(self):
method tx1_port_en (line 558) | def tx1_port_en(self, value):
method rx0_en (line 562) | def rx0_en(self):
method rx0_en (line 567) | def rx0_en(self, value):
method tx0_en (line 571) | def tx0_en(self):
method tx0_en (line 576) | def tx0_en(self, value):
method rx1_en (line 580) | def rx1_en(self):
method rx1_en (line 585) | def rx1_en(self, value):
method tx1_en (line 589) | def tx1_en(self):
method tx1_en (line 594) | def tx1_en(self, value):
method rx0_nco_frequency (line 598) | def rx0_nco_frequency(self):
method rx0_nco_frequency (line 603) | def rx0_nco_frequency(self, value):
method tx0_nco_frequency (line 607) | def tx0_nco_frequency(self):
method tx0_nco_frequency (line 612) | def tx0_nco_frequency(self, value):
method rx1_nco_frequency (line 616) | def rx1_nco_frequency(self):
method rx1_nco_frequency (line 621) | def rx1_nco_frequency(self, value):
method tx1_nco_frequency (line 625) | def tx1_nco_frequency(self):
method tx1_nco_frequency (line 630) | def tx1_nco_frequency(self, value):
method atten_control_mode_chan0 (line 634) | def atten_control_mode_chan0(self):
method atten_control_mode_chan0 (line 639) | def atten_control_mode_chan0(self, value):
method atten_control_mode_chan1 (line 643) | def atten_control_mode_chan1(self):
method atten_control_mode_chan1 (line 648) | def atten_control_mode_chan1(self, value):
method rx0_rf_bandwidth (line 652) | def rx0_rf_bandwidth(self):
method tx0_rf_bandwidth (line 657) | def tx0_rf_bandwidth(self):
method rx0_sample_rate (line 662) | def rx0_sample_rate(self):
method tx0_sample_rate (line 667) | def tx0_sample_rate(self):
method rx1_rf_bandwidth (line 672) | def rx1_rf_bandwidth(self):
method tx1_rf_bandwidth (line 677) | def tx1_rf_bandwidth(self):
method rx1_sample_rate (line 682) | def rx1_sample_rate(self):
method tx1_sample_rate (line 687) | def tx1_sample_rate(self):
method rx0_lo (line 692) | def rx0_lo(self):
method rx0_lo (line 697) | def rx0_lo(self, value):
method rx1_lo (line 701) | def rx1_lo(self):
method rx1_lo (line 706) | def rx1_lo(self, value):
method tx0_lo (line 710) | def tx0_lo(self):
method tx0_lo (line 715) | def tx0_lo(self, value):
method tx1_lo (line 719) | def tx1_lo(self):
method tx1_lo (line 724) | def tx1_lo(self, value):
method api_version (line 728) | def api_version(self):
FILE: adi/adrv9009.py
class adrv9009 (line 12) | class adrv9009(rx_tx, context_manager, sync_start):
method __init__ (line 31) | def __init__(self, uri="", jesd_monitor=False, jesd=None):
method ensm_mode (line 46) | def ensm_mode(self):
method ensm_mode (line 52) | def ensm_mode(self, value):
method profile (line 56) | def profile(self):
method profile (line 61) | def profile(self, value):
method frequency_hopping_mode (line 71) | def frequency_hopping_mode(self):
method frequency_hopping_mode (line 76) | def frequency_hopping_mode(self, value):
method frequency_hopping_mode_en (line 80) | def frequency_hopping_mode_en(self):
method frequency_hopping_mode_en (line 85) | def frequency_hopping_mode_en(self, value):
method calibrate_rx_phase_correction_en (line 89) | def calibrate_rx_phase_correction_en(self):
method calibrate_rx_phase_correction_en (line 94) | def calibrate_rx_phase_correction_en(self, value):
method calibrate_rx_qec_en (line 98) | def calibrate_rx_qec_en(self):
method calibrate_rx_qec_en (line 103) | def calibrate_rx_qec_en(self, value):
method calibrate_tx_qec_en (line 107) | def calibrate_tx_qec_en(self):
method calibrate_tx_qec_en (line 112) | def calibrate_tx_qec_en(self, value):
method calibrate (line 116) | def calibrate(self):
method calibrate (line 121) | def calibrate(self, value):
method gain_control_mode_chan0 (line 125) | def gain_control_mode_chan0(self):
method gain_control_mode_chan0 (line 131) | def gain_control_mode_chan0(self, value):
method gain_control_mode_chan1 (line 135) | def gain_control_mode_chan1(self):
method gain_control_mode_chan1 (line 141) | def gain_control_mode_chan1(self, value):
method rx_quadrature_tracking_en_chan0 (line 145) | def rx_quadrature_tracking_en_chan0(self):
method rx_quadrature_tracking_en_chan0 (line 150) | def rx_quadrature_tracking_en_chan0(self, value):
method rx_quadrature_tracking_en_chan1 (line 154) | def rx_quadrature_tracking_en_chan1(self):
method rx_quadrature_tracking_en_chan1 (line 159) | def rx_quadrature_tracking_en_chan1(self, value):
method rx_powerdown_en_chan0 (line 163) | def rx_powerdown_en_chan0(self):
method rx_powerdown_en_chan0 (line 169) | def rx_powerdown_en_chan0(self, value):
method rx_powerdown_en_chan1 (line 173) | def rx_powerdown_en_chan1(self):
method rx_powerdown_en_chan1 (line 179) | def rx_powerdown_en_chan1(self, value):
method rx_hardwaregain_chan0 (line 183) | def rx_hardwaregain_chan0(self):
method rx_hardwaregain_chan0 (line 189) | def rx_hardwaregain_chan0(self, value):
method rx_hardwaregain_chan1 (line 194) | def rx_hardwaregain_chan1(self):
method rx_hardwaregain_chan1 (line 200) | def rx_hardwaregain_chan1(self, value):
method obs_powerdown_en (line 205) | def obs_powerdown_en(self):
method obs_powerdown_en (line 211) | def obs_powerdown_en(self, value):
method aux_obs_lo (line 215) | def aux_obs_lo(self):
method aux_obs_lo (line 220) | def aux_obs_lo(self, value):
method obs_quadrature_tracking_en (line 224) | def obs_quadrature_tracking_en(self):
method obs_quadrature_tracking_en (line 229) | def obs_quadrature_tracking_en(self, value):
method obs_rf_port_select (line 233) | def obs_rf_port_select(self):
method obs_rf_port_select (line 243) | def obs_rf_port_select(self, value):
method obs_hardwaregain (line 247) | def obs_hardwaregain(self):
method obs_hardwaregain (line 252) | def obs_hardwaregain(self, value):
method tx_quadrature_tracking_en_chan0 (line 256) | def tx_quadrature_tracking_en_chan0(self):
method tx_quadrature_tracking_en_chan0 (line 261) | def tx_quadrature_tracking_en_chan0(self, value):
method tx_quadrature_tracking_en_chan1 (line 265) | def tx_quadrature_tracking_en_chan1(self):
method tx_quadrature_tracking_en_chan1 (line 270) | def tx_quadrature_tracking_en_chan1(self, value):
method tx_hardwaregain_chan0 (line 274) | def tx_hardwaregain_chan0(self):
method tx_hardwaregain_chan0 (line 279) | def tx_hardwaregain_chan0(self, value):
method tx_hardwaregain_chan1 (line 283) | def tx_hardwaregain_chan1(self):
method tx_hardwaregain_chan1 (line 288) | def tx_hardwaregain_chan1(self, value):
method rx_rf_bandwidth (line 292) | def rx_rf_bandwidth(self):
method tx_rf_bandwidth (line 297) | def tx_rf_bandwidth(self):
method rx_sample_rate (line 302) | def rx_sample_rate(self):
method orx_sample_rate (line 307) | def orx_sample_rate(self):
method tx_sample_rate (line 314) | def tx_sample_rate(self):
method trx_lo (line 319) | def trx_lo(self):
method trx_lo (line 324) | def trx_lo(self, value):
method jesd204_fsm_ctrl (line 328) | def jesd204_fsm_ctrl(self):
method jesd204_fsm_ctrl (line 333) | def jesd204_fsm_ctrl(self, value):
method jesd204_fsm_resume (line 337) | def jesd204_fsm_resume(self):
method jesd204_fsm_resume (line 342) | def jesd204_fsm_resume(self, value):
method jesd204_fsm_state (line 346) | def jesd204_fsm_state(self):
method jesd204_fsm_paused (line 351) | def jesd204_fsm_paused(self):
method jesd204_fsm_error (line 356) | def jesd204_fsm_error(self):
class adrv9008_1 (line 361) | class adrv9008_1(rx, context_manager, sync_start):
method __init__ (line 364) | def __init__(self, uri="", jesd_monitor=False, jesd=None):
method ensm_mode (line 377) | def ensm_mode(self):
method ensm_mode (line 383) | def ensm_mode(self, value):
method profile (line 387) | def profile(self):
method profile (line 392) | def profile(self, value):
method frequency_hopping_mode (line 396) | def frequency_hopping_mode(self):
method frequency_hopping_mode (line 401) | def frequency_hopping_mode(self, value):
method frequency_hopping_mode_en (line 405) | def frequency_hopping_mode_en(self):
method frequency_hopping_mode_en (line 410) | def frequency_hopping_mode_en(self, value):
method calibrate_rx_phase_correction_en (line 414) | def calibrate_rx_phase_correction_en(self):
method calibrate_rx_phase_correction_en (line 419) | def calibrate_rx_phase_correction_en(self, value):
method calibrate_rx_qec_en (line 423) | def calibrate_rx_qec_en(self):
method calibrate_rx_qec_en (line 428) | def calibrate_rx_qec_en(self, value):
method calibrate (line 432) | def calibrate(self):
method calibrate (line 437) | def calibrate(self, value):
method gain_control_mode_chan0 (line 441) | def gain_control_mode_chan0(self):
method gain_control_mode_chan0 (line 447) | def gain_control_mode_chan0(self, value):
method gain_control_mode_chan1 (line 451) | def gain_control_mode_chan1(self):
method gain_control_mode_chan1 (line 457) | def gain_control_mode_chan1(self, value):
method rx_quadrature_tracking_en_chan0 (line 461) | def rx_quadrature_tracking_en_chan0(self):
method rx_quadrature_tracking_en_chan0 (line 466) | def rx_quadrature_tracking_en_chan0(self, value):
method rx_quadrature_tracking_en_chan1 (line 470) | def rx_quadrature_tracking_en_chan1(self):
method rx_quadrature_tracking_en_chan1 (line 475) | def rx_quadrature_tracking_en_chan1(self, value):
method rx_powerdown_en_chan0 (line 479) | def rx_powerdown_en_chan0(self):
method rx_powerdown_en_chan0 (line 485) | def rx_powerdown_en_chan0(self, value):
method rx_powerdown_en_chan1 (line 489) | def rx_powerdown_en_chan1(self):
method rx_powerdown_en_chan1 (line 495) | def rx_powerdown_en_chan1(self, value):
method rx_hardwaregain_chan0 (line 499) | def rx_hardwaregain_chan0(self):
method rx_hardwaregain_chan0 (line 505) | def rx_hardwaregain_chan0(self, value):
method rx_hardwaregain_chan1 (line 510) | def rx_hardwaregain_chan1(self):
method rx_hardwaregain_chan1 (line 516) | def rx_hardwaregain_chan1(self, value):
method rx_rf_bandwidth (line 521) | def rx_rf_bandwidth(self):
method rx_sample_rate (line 526) | def rx_sample_rate(self):
method trx_lo (line 531) | def trx_lo(self):
method trx_lo (line 536) | def trx_lo(self, value):
class adrv9008_2 (line 540) | class adrv9008_2(tx, context_manager, sync_start):
method __init__ (line 543) | def __init__(self, uri="", jesd_monitor=False, jesd=None):
method ensm_mode (line 556) | def ensm_mode(self):
method ensm_mode (line 562) | def ensm_mode(self, value):
method profile (line 566) | def profile(self):
method profile (line 571) | def profile(self, value):
method frequency_hopping_mode (line 575) | def frequency_hopping_mode(self):
method frequency_hopping_mode (line 580) | def frequency_hopping_mode(self, value):
method frequency_hopping_mode_en (line 584) | def frequency_hopping_mode_en(self):
method frequency_hopping_mode_en (line 589) | def frequency_hopping_mode_en(self, value):
method calibrate_tx_qec_en (line 593) | def calibrate_tx_qec_en(self):
method calibrate_tx_qec_en (line 598) | def calibrate_tx_qec_en(self, value):
method calibrate (line 602) | def calibrate(self):
method calibrate (line 607) | def calibrate(self, value):
method tx_quadrature_tracking_en_chan0 (line 611) | def tx_quadrature_tracking_en_chan0(self):
method tx_quadrature_tracking_en_chan0 (line 616) | def tx_quadrature_tracking_en_chan0(self, value):
method tx_quadrature_tracking_en_chan1 (line 620) | def tx_quadrature_tracking_en_chan1(self):
method tx_quadrature_tracking_en_chan1 (line 625) | def tx_quadrature_tracking_en_chan1(self, value):
method tx_hardwaregain_chan0 (line 629) | def tx_hardwaregain_chan0(self):
method tx_hardwaregain_chan0 (line 634) | def tx_hardwaregain_chan0(self, value):
method tx_hardwaregain_chan1 (line 638) | def tx_hardwaregain_chan1(self):
method tx_hardwaregain_chan1 (line 643) | def tx_hardwaregain_chan1(self, value):
method tx_rf_bandwidth (line 647) | def tx_rf_bandwidth(self):
method tx_sample_rate (line 652) | def tx_sample_rate(self):
method trx_lo (line 657) | def trx_lo(self):
method trx_lo (line 662) | def trx_lo(self, value):
method obs_powerdown_en (line 666) | def obs_powerdown_en(self):
method obs_powerdown_en (line 672) | def obs_powerdown_en(self, value):
method aux_obs_lo (line 676) | def aux_obs_lo(self):
method aux_obs_lo (line 681) | def aux_obs_lo(self, value):
method obs_quadrature_tracking_en (line 685) | def obs_quadrature_tracking_en(self):
method obs_quadrature_tracking_en (line 690) | def obs_quadrature_tracking_en(self, value):
method obs_rf_port_select (line 694) | def obs_rf_port_select(self):
method obs_rf_port_select (line 704) | def obs_rf_port_select(self, value):
method obs_hardwaregain (line 708) | def obs_hardwaregain(self):
method obs_hardwaregain (line 713) | def obs_hardwaregain(self, value):
method orx_sample_rate (line 717) | def orx_sample_rate(self):
FILE: adi/adrv9009_zu11eg.py
class adrv9009_zu11eg (line 8) | class adrv9009_zu11eg(adrv9009):
method __init__ (line 43) | def __init__(self, uri="", jesd_monitor=False, jesd=None):
method mcs_chips (line 52) | def mcs_chips(self):
method frequency_hopping_mode_chip_b (line 71) | def frequency_hopping_mode_chip_b(self):
method frequency_hopping_mode_chip_b (line 78) | def frequency_hopping_mode_chip_b(self, value):
method frequency_hopping_mode_en_chip_b (line 84) | def frequency_hopping_mode_en_chip_b(self):
method frequency_hopping_mode_en_chip_b (line 91) | def frequency_hopping_mode_en_chip_b(self, value):
method calibrate_rx_phase_correction_en_chip_b (line 97) | def calibrate_rx_phase_correction_en_chip_b(self):
method calibrate_rx_phase_correction_en_chip_b (line 102) | def calibrate_rx_phase_correction_en_chip_b(self, value):
method calibrate_rx_qec_en_chip_b (line 108) | def calibrate_rx_qec_en_chip_b(self):
method calibrate_rx_qec_en_chip_b (line 113) | def calibrate_rx_qec_en_chip_b(self, value):
method calibrate_tx_qec_en_chip_b (line 117) | def calibrate_tx_qec_en_chip_b(self):
method calibrate_tx_qec_en_chip_b (line 122) | def calibrate_tx_qec_en_chip_b(self, value):
method calibrate_chip_b (line 126) | def calibrate_chip_b(self):
method calibrate_chip_b (line 131) | def calibrate_chip_b(self, value):
method gain_control_mode_chan0_chip_b (line 135) | def gain_control_mode_chan0_chip_b(self):
method gain_control_mode_chan0_chip_b (line 143) | def gain_control_mode_chan0_chip_b(self, value):
method gain_control_mode_chan1_chip_b (line 147) | def gain_control_mode_chan1_chip_b(self):
method gain_control_mode_chan1_chip_b (line 155) | def gain_control_mode_chan1_chip_b(self, value):
method rx_hardwaregain_chan0_chip_b (line 159) | def rx_hardwaregain_chan0_chip_b(self):
method rx_hardwaregain_chan0_chip_b (line 165) | def rx_hardwaregain_chan0_chip_b(self, value):
method rx_hardwaregain_chan1_chip_b (line 170) | def rx_hardwaregain_chan1_chip_b(self):
method rx_hardwaregain_chan1_chip_b (line 176) | def rx_hardwaregain_chan1_chip_b(self, value):
method tx_hardwaregain_chan0_chip_b (line 181) | def tx_hardwaregain_chan0_chip_b(self):
method tx_hardwaregain_chan0_chip_b (line 186) | def tx_hardwaregain_chan0_chip_b(self, value):
method tx_hardwaregain_chan1_chip_b (line 190) | def tx_hardwaregain_chan1_chip_b(self):
method tx_hardwaregain_chan1_chip_b (line 195) | def tx_hardwaregain_chan1_chip_b(self, value):
method rx_rf_bandwidth_chip_b (line 199) | def rx_rf_bandwidth_chip_b(self):
method tx_rf_bandwidth_chip_b (line 204) | def tx_rf_bandwidth_chip_b(self):
method rx_sample_rate_chip_b (line 209) | def rx_sample_rate_chip_b(self):
method tx_sample_rate_chip_b (line 214) | def tx_sample_rate_chip_b(self):
method trx_lo_chip_b (line 219) | def trx_lo_chip_b(self):
method trx_lo_chip_b (line 224) | def trx_lo_chip_b(self, value):
FILE: adi/adrv9009_zu11eg_fmcomms8.py
class adrv9009_zu11eg_fmcomms8 (line 8) | class adrv9009_zu11eg_fmcomms8(adrv9009_zu11eg):
method __init__ (line 59) | def __init__(self, uri="", jesd_monitor=False, jesd=None):
method mcs_chips (line 65) | def mcs_chips(self):
method calibrate_rx_phase_correction_en_chip_c (line 82) | def calibrate_rx_phase_correction_en_chip_c(self):
method calibrate_rx_phase_correction_en_chip_c (line 87) | def calibrate_rx_phase_correction_en_chip_c(self, value):
method calibrate_rx_qec_en_chip_c (line 93) | def calibrate_rx_qec_en_chip_c(self):
method calibrate_rx_qec_en_chip_c (line 98) | def calibrate_rx_qec_en_chip_c(self, value):
method calibrate_tx_qec_en_chip_c (line 102) | def calibrate_tx_qec_en_chip_c(self):
method calibrate_tx_qec_en_chip_c (line 107) | def calibrate_tx_qec_en_chip_c(self, value):
method calibrate_chip_c (line 111) | def calibrate_chip_c(self):
method calibrate_chip_c (line 116) | def calibrate_chip_c(self, value):
method gain_control_mode_chan0_chip_c (line 120) | def gain_control_mode_chan0_chip_c(self):
method gain_control_mode_chan0_chip_c (line 128) | def gain_control_mode_chan0_chip_c(self, value):
method gain_control_mode_chan1_chip_c (line 132) | def gain_control_mode_chan1_chip_c(self):
method gain_control_mode_chan1_chip_c (line 140) | def gain_control_mode_chan1_chip_c(self, value):
method rx_hardwaregain_chan0_chip_c (line 144) | def rx_hardwaregain_chan0_chip_c(self):
method rx_hardwaregain_chan0_chip_c (line 150) | def rx_hardwaregain_chan0_chip_c(self, value):
method rx_hardwaregain_chan1_chip_c (line 155) | def rx_hardwaregain_chan1_chip_c(self):
method rx_hardwaregain_chan1_chip_c (line 161) | def rx_hardwaregain_chan1_chip_c(self, value):
method tx_hardwaregain_chan0_chip_c (line 166) | def tx_hardwaregain_chan0_chip_c(self):
method tx_hardwaregain_chan0_chip_c (line 171) | def tx_hardwaregain_chan0_chip_c(self, value):
method tx_hardwaregain_chan1_chip_c (line 175) | def tx_hardwaregain_chan1_chip_c(self):
method tx_hardwaregain_chan1_chip_c (line 180) | def tx_hardwaregain_chan1_chip_c(self, value):
method rx_rf_bandwidth_chip_c (line 184) | def rx_rf_bandwidth_chip_c(self):
method tx_rf_bandwidth_chip_c (line 189) | def tx_rf_bandwidth_chip_c(self):
method rx_sample_rate_chip_c (line 194) | def rx_sample_rate_chip_c(self):
method tx_sample_rate_chip_c (line 199) | def tx_sample_rate_chip_c(self):
method trx_lo_chip_c (line 204) | def trx_lo_chip_c(self):
method trx_lo_chip_c (line 209) | def trx_lo_chip_c(self, value):
method calibrate_rx_phase_correction_en_chip_d (line 215) | def calibrate_rx_phase_correction_en_chip_d(self):
method calibrate_rx_phase_correction_en_chip_d (line 220) | def calibrate_rx_phase_correction_en_chip_d(self, value):
method calibrate_rx_qec_en_chip_d (line 226) | def calibrate_rx_qec_en_chip_d(self):
method calibrate_rx_qec_en_chip_d (line 231) | def calibrate_rx_qec_en_chip_d(self, value):
method calibrate_tx_qec_en_chip_d (line 235) | def calibrate_tx_qec_en_chip_d(self):
method calibrate_tx_qec_en_chip_d (line 240) | def calibrate_tx_qec_en_chip_d(self, value):
method calibrate_chip_d (line 244) | def calibrate_chip_d(self):
method calibrate_chip_d (line 249) | def calibrate_chip_d(self, value):
method gain_control_mode_chan0_chip_d (line 253) | def gain_control_mode_chan0_chip_d(self):
method gain_control_mode_chan0_chip_d (line 261) | def gain_control_mode_chan0_chip_d(self, value):
method gain_control_mode_chan1_chip_d (line 265) | def gain_control_mode_chan1_chip_d(self):
method gain_control_mode_chan1_chip_d (line 273) | def gain_control_mode_chan1_chip_d(self, value):
method rx_hardwaregain_chan0_chip_d (line 277) | def rx_hardwaregain_chan0_chip_d(self):
method rx_hardwaregain_chan0_chip_d (line 283) | def rx_hardwaregain_chan0_chip_d(self, value):
method rx_hardwaregain_chan1_chip_d (line 288) | def rx_hardwaregain_chan1_chip_d(self):
method rx_hardwaregain_chan1_chip_d (line 294) | def rx_hardwaregain_chan1_chip_d(self, value):
method tx_hardwaregain_chan0_chip_d (line 299) | def tx_hardwaregain_chan0_chip_d(self):
method tx_hardwaregain_chan0_chip_d (line 304) | def tx_hardwaregain_chan0_chip_d(self, value):
method tx_hardwaregain_chan1_chip_d (line 308) | def tx_hardwaregain_chan1_chip_d(self):
method tx_hardwaregain_chan1_chip_d (line 313) | def tx_hardwaregain_chan1_chip_d(self, value):
method rx_rf_bandwidth_chip_d (line 317) | def rx_rf_bandwidth_chip_d(self):
method tx_rf_bandwidth_chip_d (line 322) | def tx_rf_bandwidth_chip_d(self):
method rx_sample_rate_chip_d (line 327) | def rx_sample_rate_chip_d(self):
method tx_sample_rate_chip_d (line 332) | def tx_sample_rate_chip_d(self):
method trx_lo_chip_d (line 337) | def trx_lo_chip_d(self):
method trx_lo_chip_d (line 342) | def trx_lo_chip_d(self, value):
FILE: adi/adrv9009_zu11eg_multi.py
class adrv9009_zu11eg_multi (line 14) | class adrv9009_zu11eg_multi(object):
method __init__ (line 34) | def __init__(
method reinitialize (line 89) | def reinitialize(self):
method rx_buffer_size (line 97) | def rx_buffer_size(self):
method rx_buffer_size (line 102) | def rx_buffer_size(self, value):
method __read_jesd_status_all_devs (line 107) | def __read_jesd_status_all_devs(self, attr, islink=False):
method __read_jesd_status (line 124) | def __read_jesd_status(self):
method __read_jesd_link_status (line 129) | def __read_jesd_link_status(self):
method __setup_framers (line 134) | def __setup_framers(self):
method _device_is_running (line 161) | def _device_is_running(self, dev, index, verbose):
method __jesd204_fsm_is_done (line 192) | def __jesd204_fsm_is_done(self):
method _jesd204_fsm_sync (line 202) | def _jesd204_fsm_sync(self):
method __unsync (line 221) | def __unsync(self):
method hmc7044_cap_sel (line 240) | def hmc7044_cap_sel(self):
method hmc7044_set_cap_sel (line 251) | def hmc7044_set_cap_sel(self, vals):
method hmc7044_ext_output_delay (line 267) | def hmc7044_ext_output_delay(self, chan, digital, analog_ps):
method hmc7044_car_output_delay (line 291) | def hmc7044_car_output_delay(self, chan, digital, analog_ps):
method __rx_dma_arm (line 317) | def __rx_dma_arm(self):
method __dds_sync_enable (line 325) | def __dds_sync_enable(self, enable):
method sysref_request (line 331) | def sysref_request(self):
method set_trx_lo_frequency (line 338) | def set_trx_lo_frequency(self, freq):
method set_trx_framer_a_loopback (line 358) | def set_trx_framer_a_loopback(self, enable):
method __refill_samples (line 372) | def __refill_samples(self, dev, is_primary):
method _pre_rx_setup (line 378) | def _pre_rx_setup(self):
method rx (line 411) | def rx(self):
FILE: adi/adt7420.py
class adt7420 (line 8) | class adt7420(attribute, context_manager):
method __init__ (line 11) | def __init__(self, uri=""):
class channel_temp (line 35) | class channel_temp(attribute):
method __init__ (line 38) | def __init__(self, ctrl, channel_name, is_linux):
method temp_val (line 44) | def temp_val(self):
method temp_max (line 50) | def temp_max(self):
method temp_max (line 56) | def temp_max(self, value):
method temp_min (line 62) | def temp_min(self):
method temp_min (line 68) | def temp_min(self, value):
method temp_crit (line 74) | def temp_crit(self):
method temp_crit (line 80) | def temp_crit(self, value):
method temp_hyst (line 86) | def temp_hyst(self):
method temp_hyst (line 92) | def temp_hyst(self, value):
FILE: adi/adxl313.py
class adxl313 (line 12) | class adxl313(rx, context_manager, attribute):
method __init__ (line 21) | def __init__(self, uri=""):
class _channel (line 51) | class _channel(attribute):
method __init__ (line 55) | def __init__(self, ctrl, channel_name):
method calibbias (line 60) | def calibbias(self):
method calibbias (line 65) | def calibbias(self, value):
method raw (line 69) | def raw(self):
method sampling_frequency (line 74) | def sampling_frequency(self):
method sampling_frequency (line 79) | def sampling_frequency(self, value):
method sampling_frequency_available (line 83) | def sampling_frequency_available(self):
method range (line 88) | def range(self):
method range (line 93) | def range(self, value):
method range_available (line 97) | def range_available(self):
method scale (line 102) | def scale(self):
method scale (line 107) | def scale(self, value):
method scale_available (line 111) | def scale_available(self):
FILE: adi/adxl345.py
class adxl345_channel (line 13) | class adxl345_channel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method calibbias (line 21) | def calibbias(self):
method calibbias (line 26) | def calibbias(self, value):
method raw (line 30) | def raw(self):
method scale (line 35) | def scale(self):
class adxl345 (line 40) | class adxl345(rx_chan_comp):
method __init__ (line 55) | def __init__(self, uri="", **kwargs):
method _setup_channels (line 59) | def _setup_channels(self):
method sampling_frequency_available (line 67) | def sampling_frequency_available(self):
method sampling_frequency (line 72) | def sampling_frequency(self):
method sampling_frequency (line 78) | def sampling_frequency(self, value):
FILE: adi/adxl355.py
class adxl355_tempchannel (line 13) | class adxl355_tempchannel(attribute):
method __init__ (line 16) | def __init__(self, ctrl, channel_name):
method offset (line 21) | def offset(self):
method raw (line 26) | def raw(self):
method scale (line 31) | def scale(self):
class adxl355_channel (line 36) | class adxl355_channel(attribute):
method __init__ (line 39) | def __init__(self, ctrl, channel_name):
method calibbias (line 44) | def calibbias(self):
method calibbias (line 49) | def calibbias(self, value):
method filter_high_pass_3db_frequency (line 53) | def filter_high_pass_3db_frequency(self):
method filter_high_pass_3db_frequency (line 58) | def filter_high_pass_3db_frequency(self, value):
method filter_high_pass_3db_frequency_available (line 67) | def filter_high_pass_3db_frequency_available(self):
method raw (line 74) | def raw(self):
method scale (line 79) | def scale(self):
method sampling_frequency_available (line 84) | def sampling_frequency_available(self):
method sampling_frequency (line 89) | def sampling_frequency(self):
method sampling_frequency (line 94) | def sampling_frequency(self, value):
class adxl355 (line 100) | class adxl355(rx_chan_comp):
method __init__ (line 115) | def __init__(self, uri="", **kwargs):
method _setup_channels (line 119) | def _setup_channels(self):
method current_timestamp_clock (line 130) | def current_timestamp_clock(self):
method to_degrees (line 134) | def to_degrees(self, raw):
FILE: adi/adxl380.py
class adxl380 (line 12) | class adxl380(rx, context_manager, attribute):
method __init__ (line 19) | def __init__(self, uri="", device_name=None):
method sampling_frequency (line 63) | def sampling_frequency(self):
method sampling_frequency (line 68) | def sampling_frequency(self, value):
method sampling_frequency_available (line 72) | def sampling_frequency_available(self):
method waiting_for_supplier (line 77) | def waiting_for_supplier(self):
method to_degrees (line 81) | def to_degrees(self, raw):
class _tempchannel (line 85) | class _tempchannel(attribute):
method __init__ (line 88) | def __init__(self, ctrl, channel_name):
method offset (line 93) | def offset(self):
method raw (line 98) | def raw(self):
method scale (line 103) | def scale(self):
class _channel (line 107) | class _channel(attribute):
method __init__ (line 110) | def __init__(self, ctrl, channel_name):
method calibbias (line 115) | def calibbias(self):
method calibbias (line 120) | def calibbias(self, value):
method filter_high_pass_3db_frequency (line 124) | def filter_high_pass_3db_frequency(self):
method filter_high_pass_3db_frequency (line 131) | def filter_high_pass_3db_frequency(self, value):
method filter_high_pass_3db_frequency_available (line 140) | def filter_high_pass_3db_frequency_available(self):
method filter_low_pass_3db_frequency (line 147) | def filter_low_pass_3db_frequency(self):
method filter_low_pass_3db_frequency (line 152) | def filter_low_pass_3db_frequency(self, value):
method filter_low_pass_3db_frequency_available (line 161) | def filter_low_pass_3db_frequency_available(self):
method raw (line 168) | def raw(self):
method scale (line 173) | def scale(self):
method scale (line 178) | def scale(self, value):
method scale_available (line 184) | def scale_available(self):
FILE: adi/adxrs290.py
class adxrs290 (line 12) | class adxrs290(rx, context_manager, attribute):
method __init__ (line 20) | def __init__(self, uri=""):
method hpf_3db_frequency_available (line 32) | def hpf_3db_frequency_available(self):
method hpf_3db_frequency (line 39) | def hpf_3db_frequency(self):
method hpf_3db_frequency (line 47) | def hpf_3db_frequency(self, value):
method lpf_3db_frequency_available (line 53) | def lpf_3db_frequency_available(self):
method lpf_3db_frequency (line 60) | def lpf_3db_frequency(self):
method lpf_3db_frequency (line 68) | def lpf_3db_frequency(self, value):
class _channel (line 73) | class _channel(attribute):
method __init__ (line 76) | def __init__(self, ctrl, channel_name):
method raw (line 81) | def raw(self):
method scale (line 86) | def scale(self):
FILE: adi/attribute.py
function get_numbers (line 8) | def get_numbers(s):
class attribute (line 18) | class attribute:
method _get_iio_attr_str_multi_dev (line 19) | def _get_iio_attr_str_multi_dev(self, channel_names, attr_name, output...
method _set_iio_attr_multi_dev (line 33) | def _set_iio_attr_multi_dev(self, channel_names, attr_name, output, va...
method _set_iio_attr_float_multi_dev (line 47) | def _set_iio_attr_float_multi_dev(
method _set_iio_attr (line 62) | def _set_iio_attr(self, channel_name, attr_name, output, value, _ctrl=...
method _set_iio_attr_float (line 73) | def _set_iio_attr_float(self, channel_name, attr_name, output, value, ...
method _set_iio_attr_float_vec (line 81) | def _set_iio_attr_float_vec(
method _set_iio_attr_int (line 90) | def _set_iio_attr_int(self, channel_name, attr_name, output, value, _c...
method _set_iio_attr_int_vec (line 96) | def _set_iio_attr_int_vec(
method _set_iio_attr_str_vec (line 105) | def _set_iio_attr_str_vec(
method _get_iio_attr_str (line 114) | def _get_iio_attr_str(self, channel_name, attr_name, output, _ctrl=None):
method _get_iio_attr (line 124) | def _get_iio_attr(self, channel_name, attr_name, output, _ctrl=None):
method _get_iio_attr_vec (line 130) | def _get_iio_attr_vec(self, channel_names, attr_name, output, _ctrl=No...
method _get_iio_attr_str_vec (line 138) | def _get_iio_attr_str_vec(self, channel_names, attr_name, output, _ctr...
method _set_iio_dev_attr_str (line 146) | def _set_iio_dev_attr_str(self, attr_name, value, _ctrl=None):
method _get_iio_dev_attr_str (line 156) | def _get_iio_dev_attr_str(self, attr_name, _ctrl=None):
method _set_iio_dev_attr (line 163) | def _set_iio_dev_attr(self, attr_name, value, _ctrl=None):
method _get_iio_dev_attr (line 171) | def _get_iio_dev_attr(self, attr_name, _ctrl=None):
method _set_iio_debug_attr_str (line 175) | def _set_iio_debug_attr_str(self, attr_name, value, _ctrl=None):
method _get_iio_debug_attr_str (line 185) | def _get_iio_debug_attr_str(self, attr_name, _ctrl=None):
method _get_iio_debug_attr (line 192) | def _get_iio_debug_attr(self, attr_name, _ctrl=None):
FILE: adi/axi_aion_trig.py
class axi_aion_trig (line 10) | class axi_aion_trig(context_manager, attribute):
method __init__ (line 57) | def __init__(self, uri=""):
method _make_channel_property (line 64) | def _make_channel_property(self, channel, attr):
method _add_channel_properties (line 85) | def _add_channel_properties(self):
FILE: adi/cn0511.py
class cn0511 (line 15) | class cn0511(ad9166_adi):
method __init__ (line 18) | def __init__(self, uri=""):
method trim_frequency_raw (line 35) | def trim_frequency_raw(self):
method trim_frequency_raw (line 40) | def trim_frequency_raw(self, value):
method amp_enable (line 44) | def amp_enable(self):
method amp_enable (line 49) | def amp_enable(self, value=True):
method amplitude_cal (line 57) | def amplitude_cal(self):
method amplitude_cal (line 67) | def amplitude_cal(self, value=True):
method calibrated_output (line 77) | def calibrated_output(self):
method calibrated_output (line 84) | def calibrated_output(self, value):
method board_calibrated (line 95) | def board_calibrated(self):
FILE: adi/cn0532.py
class cn0532 (line 10) | class cn0532(cn0540):
method __init__ (line 13) | def __init__(self, uri=""):
method calibrate (line 18) | def calibrate(self):
FILE: adi/cn0540.py
function reset_buffer (line 13) | def reset_buffer(func):
class cn0540 (line 26) | class cn0540(rx, context_manager):
method __init__ (line 40) | def __init__(self, uri=""):
method sample_rate (line 53) | def sample_rate(self):
method sample_rate (line 62) | def sample_rate(self, value):
method input_voltage (line 66) | def input_voltage(self):
method shift_voltage (line 74) | def shift_voltage(self):
method shift_voltage (line 83) | def shift_voltage(self, value):
method sensor_voltage (line 90) | def sensor_voltage(self):
method sw_ff_status (line 104) | def sw_ff_status(self):
method monitor_powerup (line 109) | def monitor_powerup(self):
method monitor_powerup (line 114) | def monitor_powerup(self, value):
method fda_disable_status (line 118) | def fda_disable_status(self):
method fda_disable_status (line 124) | def fda_disable_status(self, value):
method fda_mode (line 128) | def fda_mode(self):
method fda_mode (line 135) | def fda_mode(self, value):
method red_led_enable (line 143) | def red_led_enable(self):
method red_led_enable (line 148) | def red_led_enable(self, value):
method sw_cc (line 152) | def sw_cc(self):
method sw_cc (line 157) | def sw_cc(self, value):
FILE: adi/cn0554.py
class cn0554 (line 8) | class cn0554:
method __init__ (line 17) | def __init__(self, uri="ip:analog.local"):
method in_scale (line 48) | def in_scale(self):
method in_scale (line 53) | def in_scale(self, value):
method rx_output_type (line 61) | def rx_output_type(self):
method rx_output_type (line 66) | def rx_output_type(self, value):
method rx_enabled_channels (line 71) | def rx_enabled_channels(self):
method rx_enabled_channels (line 76) | def rx_enabled_channels(self, value):
method out_channels (line 81) | def out_channels(self):
method in_channels (line 86) | def in_channels(self):
method out_reference (line 91) | def out_reference(self):
method out_reference (line 96) | def out_reference(self, value):
method sample_rate (line 104) | def sample_rate(self):
method sample_rate (line 109) | def sample_rate(self, value):
method rx_buffer_size (line 114) | def rx_buffer_size(self):
method rx_buffer_size (line 119) | def rx_buffer_size(self, value):
method rx (line 123) | def rx(self):
method convert_to_volts (line 127) | def convert_to_volts(self, in_voltage, channel):
FILE: adi/cn0556.py
class cn0556 (line 7) | class cn0556(adi.cn0554):
method __init__ (line 131) | def __init__(self, uri="ip:analog.local"):
method drxn (line 140) | def drxn(self):
method drxn (line 145) | def drxn(self, value):
method enable (line 155) | def enable(self):
method enable (line 161) | def enable(self, value):
method intvcc_voltage (line 177) | def intvcc_voltage(self):
method share_voltage (line 187) | def share_voltage(self):
method report (line 197) | def report(self):
method fault (line 202) | def fault(self):
method buck_output_voltage (line 207) | def buck_output_voltage(self):
method buck_target_output_voltage (line 217) | def buck_target_output_voltage(self):
method buck_target_output_voltage (line 237) | def buck_target_output_voltage(self, value):
method buck_input_voltage (line 254) | def buck_input_voltage(self):
method buck_output_current (line 264) | def buck_output_current(self):
method buck_input_current (line 274) | def buck_input_current(self):
method buck_input_undervoltage (line 284) | def buck_input_undervoltage(self):
method buck_input_undervoltage (line 305) | def buck_input_undervoltage(self, value):
method buck_input_current_limit (line 322) | def buck_input_current_limit(self):
method buck_input_current_limit (line 342) | def buck_input_current_limit(self, value):
method buck_output_current_limit (line 359) | def buck_output_current_limit(self):
method buck_output_current_limit (line 379) | def buck_output_current_limit(self, value):
method boost_output_voltage (line 396) | def boost_output_voltage(self):
method boost_target_output_voltage (line 406) | def boost_target_output_voltage(self):
method boost_target_output_voltage (line 426) | def boost_target_output_voltage(self, value):
method boost_input_voltage (line 443) | def boost_input_voltage(self):
method boost_output_current (line 453) | def boost_output_current(self):
method boost_input_current (line 463) | def boost_input_current(self):
method boost_input_undervoltage (line 473) | def boost_input_undervoltage(self):
method boost_input_undervoltage (line 493) | def boost_input_undervoltage(self, value):
method boost_input_current_limit (line 510) | def boost_input_current_limit(self):
method boost_input_current_limit (line 530) | def boost_input_current_limit(self, value):
method boost_output_current_limit (line 547) | def boost_output_current_limit(self):
method boost_output_current_limit (line 567) | def boost_output_current_limit(self, value):
method read_value (line 583) | def read_value(self, ctrl, ctrl_name, scale, offset):
method set_value (line 588) | def set_value(self, value, ctrl, ctrl_name, scale, offset, val_min, va...
FILE: adi/cn0565.py
class cn0565 (line 13) | class cn0565(ad5940, adg2128, context_manager):
method __init__ (line 28) | def __init__(self, uri=""):
method electrode_count (line 41) | def electrode_count(self):
method electrode_count (line 46) | def electrode_count(self, value):
method force_distance (line 50) | def force_distance(self):
method force_distance (line 55) | def force_distance(self, value):
method sense_distance (line 59) | def sense_distance(self):
method sense_distance (line 64) | def sense_distance(self, value):
method switch_sequence (line 68) | def switch_sequence(self):
method all_voltages (line 91) | def all_voltages(self):
method electrode_count_available (line 117) | def electrode_count_available(self):
FILE: adi/cn0566.py
class CN0566 (line 15) | class CN0566(adf4159, adar1000_array):
method __init__ (line 54) | def __init__(
method set_tx_sw_div (line 151) | def set_tx_sw_div(self, div_ratio):
method read_monitor (line 166) | def read_monitor(self, verbose=False):
method lo (line 208) | def lo(self):
method lo (line 213) | def lo(self, value):
method configure (line 217) | def configure(self, device_mode="rx"):
method save_channel_cal (line 309) | def save_channel_cal(self, filename="channel_cal_val.pkl"):
method save_gain_cal (line 315) | def save_gain_cal(self, filename="gain_cal_val.pkl"):
method save_phase_cal (line 321) | def save_phase_cal(self, filename="phase_cal_val.pkl"):
method load_channel_cal (line 327) | def load_channel_cal(self, filename="channel_cal_val.pkl"):
method load_gain_cal (line 343) | def load_gain_cal(self, filename="gain_cal_val.pkl"):
method load_phase_cal (line 358) | def load_phase_cal(self, filename="phase_cal_val.pkl"):
method set_rx_hardwaregain (line 373) | def set_rx_hardwaregain(self, gain, apply_cal=True):
method set_all_gain (line 391) | def set_all_gain(self, value=127, apply_cal=True):
method set_chan_gain (line 410) | def set_chan_gain(self, chan_no: int, gain_val, apply_cal=True):
method set_chan_phase (line 446) | def set_chan_phase(self, chan_no: int, phase_val, apply_cal=True):
method set_beam_phase_diff (line 477) | def set_beam_phase_diff(self, Ph_Diff):
method SDR_init (line 523) | def SDR_init(self, SampleRate, TX_freq, RX_freq, Rx_gain, Tx_gain, buf...
FILE: adi/cn0575.py
class cn0575 (line 8) | class cn0575:
method __init__ (line 14) | def __init__(self, uri=""):
method button (line 21) | def button(self):
method led (line 26) | def led(self):
method led (line 31) | def led(self, value):
FILE: adi/cn0579.py
class cn0579 (line 8) | class cn0579(ad7768_4):
method __init__ (line 12) | def __init__(
method shift_voltage0 (line 22) | def shift_voltage0(self):
method shift_voltage0 (line 29) | def shift_voltage0(self, value):
method shift_voltage1 (line 34) | def shift_voltage1(self):
method shift_voltage1 (line 41) | def shift_voltage1(self, value):
method shift_voltage2 (line 46) | def shift_voltage2(self):
method shift_voltage2 (line 53) | def shift_voltage2(self, value):
method shift_voltage3 (line 58) | def shift_voltage3(self):
method shift_voltage3 (line 65) | def shift_voltage3(self, value):
method CC_CH0 (line 70) | def CC_CH0(self):
method CC_CH0 (line 75) | def CC_CH0(self, value):
method CC_CH1 (line 80) | def CC_CH1(self):
method CC_CH1 (line 85) | def CC_CH1(self, value):
method CC_CH2 (line 90) | def CC_CH2(self):
method CC_CH2 (line 95) | def CC_CH2(self, value):
method CC_CH3 (line 100) | def CC_CH3(self):
method CC_CH3 (line 105) | def CC_CH3(self, value):
FILE: adi/compat.py
function _is_libiio_v1 (line 12) | def _is_libiio_v1() -> bool:
class compat_libiio_v1_rx (line 18) | class compat_libiio_v1_rx:
method _rx_init_channels (line 25) | def _rx_init_channels(self):
method _rx_buffered_data (line 50) | def _rx_buffered_data(self):
class compat_libiio_v1_tx (line 68) | class compat_libiio_v1_tx:
method _tx_init_channels (line 76) | def _tx_init_channels(self):
method _tx_buffer_push (line 104) | def _tx_buffer_push(self, data):
class compat_libiio_v0_rx (line 118) | class compat_libiio_v0_rx:
method _rx_init_channels (line 121) | def _rx_init_channels(self):
method _rx_buffered_data (line 140) | def _rx_buffered_data(self) -> Union[List[np.ndarray], np.ndarray]:
class compat_libiio_v0_tx (line 173) | class compat_libiio_v0_tx:
method _tx_init_channels (line 176) | def _tx_init_channels(self):
method _tx_buffer_push (line 191) | def _tx_buffer_push(self, data):
FILE: adi/context_manager.py
class context_manager (line 8) | class context_manager(object):
method ctx (line 13) | def ctx(self) -> iio.Context:
method __init__ (line 17) | def __init__(self, uri="", _device_name=""):
method close (line 40) | def close(self):
method __enter__ (line 46) | def __enter__(self):
method __exit__ (line 49) | def __exit__(self, exc_type, exc_value, traceback):
FILE: adi/daq2.py
class DAQ2 (line 9) | class DAQ2(ad9144, ad9680):
method __init__ (line 12) | def __init__(self, uri=""):
FILE: adi/daq3.py
class DAQ3 (line 9) | class DAQ3(ad9152, ad9680):
method __init__ (line 12) | def __init__(self, uri=""):
FILE: adi/dds.py
class dds (line 10) | class dds(attribute):
method __update_dds (line 18) | def __update_dds(self, attr, value):
method _read_dds (line 37) | def _read_dds(self, attr):
method disable_dds (line 55) | def disable_dds(self):
method dds_frequencies (line 60) | def dds_frequencies(self):
method dds_frequencies (line 65) | def dds_frequencies(self, value):
method dds_scales (line 69) | def dds_scales(self):
method dds_scales (line 76) | def dds_scales(self, value):
method dds_phases (line 80) | def dds_phases(self):
method dds_phases (line 87) | def dds_phases(self, value):
method dds_enabled (line 91) | def dds_enabled(self):
method dds_enabled (line 96) | def dds_enabled(self, value):
method dds_single_tone (line 99) | def dds_single_tone(self, frequency, scale, channel=0):
method dds_dual_tone (line 172) | def dds_dual_tone(self, frequency1, scale1, frequency2, scale2, channe...
FILE: adi/device_base.py
class device_base (line 8) | class device_base(shared_def):
method __init__ (line 24) | def __init__(self, device_name="", device_index=0):
method _add_channel_instances (line 56) | def _add_channel_instances(self):
class tx_chan_comp (line 70) | class tx_chan_comp(tx_def, device_base):
method __init__ (line 78) | def __init__(self, uri="", device_name="", device_index=0):
class rx_chan_comp (line 91) | class rx_chan_comp(rx_def, device_base):
method __init__ (line 99) | def __init__(self, uri="", device_name="", device_index=0):
class tx_chan_comp_no_buff (line 112) | class tx_chan_comp_no_buff(tx_def_no_buff, device_base):
method __init__ (line 120) | def __init__(self, uri="", device_name="", device_index=0):
class rx_chan_comp_no_buff (line 133) | class rx_chan_comp_no_buff(rx_def_no_buff, device_base):
method __init__ (line 141) | def __init__(self, uri="", device_name="", device_index=0):
FILE: adi/dsp.py
class _dec_int_fpga_filter (line 8) | class _dec_int_fpga_filter:
method _get_rates (line 11) | def _get_rates(self, dev, output):
method rx_dec8_filter_en (line 20) | def rx_dec8_filter_en(self) -> bool:
method rx_dec8_filter_en (line 27) | def rx_dec8_filter_en(self, value: bool):
method tx_int8_filter_en (line 34) | def tx_int8_filter_en(self) -> bool:
method tx_int8_filter_en (line 41) | def tx_int8_filter_en(self, value: bool):
FILE: adi/fmc_vna.py
class fmcvna (line 16) | class fmcvna(adrf5720, ad9083, admv8818, genmux, adf5610, adl5960):
method __init__ (line 21) | def __init__(self, uri):
FILE: adi/fmcadc3.py
class fmcadc3 (line 9) | class fmcadc3(ad9625, ada4961):
method __init__ (line 13) | def __init__(self, uri=""):
FILE: adi/fmcjesdadc1.py
class fmcjesdadc1 (line 11) | class fmcjesdadc1(ad9250):
method __init__ (line 19) | def __init__(self, uri="", username="root", password="analog"):
method test_mode_chan0 (line 29) | def test_mode_chan0(self):
method test_mode_chan0 (line 35) | def test_mode_chan0(self, value):
method test_mode_chan1 (line 39) | def test_mode_chan1(self):
method test_mode_chan1 (line 45) | def test_mode_chan1(self, value):
method jesd204_statuses (line 49) | def jesd204_statuses(self):
FILE: adi/fmclidar1.py
class fmclidar1 (line 12) | class fmclidar1(ad5627, ad9094, phy):
method __init__ (line 17) | def __init__(self, uri, pulse_capture_address="7c700000"):
method rx (line 26) | def rx(self):
method laser_enable (line 87) | def laser_enable(self):
method laser_disable (line 91) | def laser_disable(self):
method laser_pulse_width (line 96) | def laser_pulse_width(self):
method laser_pulse_width (line 101) | def laser_pulse_width(self, width):
method laser_frequency (line 106) | def laser_frequency(self):
method laser_frequency (line 111) | def laser_frequency(self, frequency):
method channel_sequencer_enable_disable (line 116) | def channel_sequencer_enable_disable(self):
method channel_sequencer_enable_disable (line 121) | def channel_sequencer_enable_disable(self, status):
method channel_sequencer_opmode (line 128) | def channel_sequencer_opmode(self):
method channel_sequencer_opmode (line 133) | def channel_sequencer_opmode(self, mode):
method channel_sequencer_order_auto_mode (line 140) | def channel_sequencer_order_auto_mode(self):
method channel_sequencer_order_auto_mode (line 145) | def channel_sequencer_order_auto_mode(self, order):
method channel_sequencer_order_manual_mode (line 152) | def channel_sequencer_order_manual_mode(self):
method channel_sequencer_order_manual_mode (line 157) | def channel_sequencer_order_manual_mode(self, order):
method sequencer_pulse_delay (line 164) | def sequencer_pulse_delay(self):
method sequencer_pulse_delay (line 169) | def sequencer_pulse_delay(self, ns):
method set_all_iio_attrs_to_default_values (line 173) | def set_all_iio_attrs_to_default_values(self):
FILE: adi/fmcomms11.py
class FMComms11 (line 9) | class FMComms11(
method __init__ (line 14) | def __init__(self, uri=""):
FILE: adi/fmcomms5.py
class FMComms5 (line 15) | class FMComms5(ad9361):
method __init__ (line 42) | def __init__(self, uri=""):
method filter (line 55) | def filter(self):
method filter (line 60) | def filter(self, value):
method loopback_chip_b (line 74) | def loopback_chip_b(self):
method loopback_chip_b (line 80) | def loopback_chip_b(self, value):
method gain_control_mode_chip_b_chan0 (line 84) | def gain_control_mode_chip_b_chan0(self):
method gain_control_mode_chip_b_chan0 (line 92) | def gain_control_mode_chip_b_chan0(self, value):
method gain_control_mode_chip_b_chan1 (line 96) | def gain_control_mode_chip_b_chan1(self):
method gain_control_mode_chip_b_chan1 (line 104) | def gain_control_mode_chip_b_chan1(self, value):
method rx_hardwaregain_chip_b_chan0 (line 108) | def rx_hardwaregain_chip_b_chan0(self):
method rx_hardwaregain_chip_b_chan0 (line 114) | def rx_hardwaregain_chip_b_chan0(self, value):
method rx_hardwaregain_chip_b_chan1 (line 119) | def rx_hardwaregain_chip_b_chan1(self):
method rx_hardwaregain_chip_b_chan1 (line 125) | def rx_hardwaregain_chip_b_chan1(self, value):
method tx_hardwaregain_chip_b_chan0 (line 130) | def tx_hardwaregain_chip_b_chan0(self):
method tx_hardwaregain_chip_b_chan0 (line 135) | def tx_hardwaregain_chip_b_chan0(self, value):
method tx_hardwaregain_chip_b_chan1 (line 139) | def tx_hardwaregain_chip_b_chan1(self):
method tx_hardwaregain_chip_b_chan1 (line 144) | def tx_hardwaregain_chip_b_chan1(self, value):
method rx_rf_bandwidth_chip_b (line 148) | def rx_rf_bandwidth_chip_b(self):
method rx_rf_bandwidth_chip_b (line 154) | def rx_rf_bandwidth_chip_b(self, value):
method tx_rf_bandwidth_chip_b (line 158) | def tx_rf_bandwidth_chip_b(self):
method tx_rf_bandwidth_chip_b (line 164) | def tx_rf_bandwidth_chip_b(self, value):
method sample_rate (line 168) | def sample_rate(self):
method sample_rate (line 174) | def sample_rate(self, rate):
method rx_lo_chip_b (line 284) | def rx_lo_chip_b(self):
method rx_lo_chip_b (line 289) | def rx_lo_chip_b(self, value):
method tx_lo_chip_b (line 293) | def tx_lo_chip_b(self):
method tx_lo_chip_b (line 298) | def tx_lo_chip_b(self, value):
FILE: adi/gen_mux.py
class genmux (line 9) | class genmux(attribute, context_manager):
method __init__ (line 20) | def __init__(self, uri="", device_name=""):
method select_available (line 33) | def select_available(self):
method select (line 38) | def select(self):
method select (line 43) | def select(self, value):
FILE: adi/hmc7044.py
class hmc7044 (line 10) | class hmc7044(context_manager, attribute):
method __init__ (line 48) | def __init__(self, uri=""):
method _make_channel_property (line 55) | def _make_channel_property(self, channel, attr):
method mute_request (line 66) | def mute_request(self):
method mute_request (line 70) | def mute_request(self, value):
method reseed_request (line 74) | def reseed_request(self):
method reseed_request (line 78) | def reseed_request(self, value):
method reset_dividers_request (line 82) | def reset_dividers_request(self):
method reset_dividers_request (line 86) | def reset_dividers_request(self, value):
method sleep_request (line 90) | def sleep_request(self):
method sleep_request (line 94) | def sleep_request(self, value):
method sync_pin_mode (line 98) | def sync_pin_mode(self):
method sync_pin_mode (line 102) | def sync_pin_mode(self, value):
method sync_pin_mode_available (line 106) | def sync_pin_mode_available(self):
method sysref_request (line 110) | def sysref_request(self):
method sysref_request (line 114) | def sysref_request(self, value):
method status (line 119) | def status(self):
method _add_channel_properties (line 125) | def _add_channel_properties(self):
FILE: adi/jesd_internal.py
class jesd (line 8) | class jesd:
method __init__ (line 11) | def __init__(self, address, username="root", password="analog"):
method find_lanes (line 25) | def find_lanes(self):
method find_jesd_dir (line 39) | def find_jesd_dir(self):
method decode_status (line 46) | def decode_status(self, status):
method get_status (line 59) | def get_status(self, dr):
method get_dev_lane_info (line 62) | def get_dev_lane_info(self, dr):
method get_all_link_statuses (line 70) | def get_all_link_statuses(self):
method get_all_statuses (line 77) | def get_all_statuses(self):
FILE: adi/lm75.py
class lm75 (line 9) | class lm75(context_manager, attribute):
method __init__ (line 25) | def __init__(self, uri="", device_index=0):
method update_interval (line 47) | def update_interval(self):
method to_degrees (line 51) | def to_degrees(self, value):
method to_millidegrees (line 55) | def to_millidegrees(self, value):
method input (line 60) | def input(self):
method max (line 65) | def max(self):
method max (line 70) | def max(self, value):
method max_hyst (line 75) | def max_hyst(self):
method max_hyst (line 80) | def max_hyst(self, value):
method __call__ (line 84) | def __call__(self):
FILE: adi/ltc2314_14.py
class ltc2314_14_channel (line 9) | class ltc2314_14_channel(attribute):
method __init__ (line 12) | def __init__(self, ctrl, channel_name):
method lsb_mv (line 17) | def lsb_mv(self):
method voltage (line 22) | def voltage(self):
class ltc2314_14 (line 28) | class ltc2314_14(rx_chan_comp_no_buff):
FILE: adi/ltc2378.py
class ltc2378 (line 14) | class ltc2378(rx, context_manager):
method __init__ (line 22) | def __init__(self, uri="", device_name="ltc2378-20"):
method sampling_frequency (line 79) | def sampling_frequency(self):
method sampling_frequency (line 84) | def sampling_frequency(self, value):
class _channel (line 89) | class _channel(attribute):
method __init__ (line 92) | def __init__(self, ctrl, channel_name):
method scale (line 97) | def scale(self):
method scale (line 102) | def scale(self, value):
method sampling_frequency (line 107) | def sampling_frequency(self):
method sampling_frequency (line 112) | def sampling_frequency(self, value):
FILE: adi/ltc2387.py
class ltc2387 (line 10) | class ltc23
Copy disabled (too large)
Download .json
Condensed preview — 831 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (37,740K chars).
[
{
"path": ".codacy.yml",
"chars": 99,
"preview": "exclude_paths:\n - 'examples/**'\n - 'test/**'\n - 'doc/**'\n - '**.md'\n - '**.yml'\n - '**.yaml'\n"
},
{
"path": ".codespell-whitelist",
"chars": 37,
"preview": "AFE\nafe\nSOM\nsom\nsinc\nbyteorder\ninout\n"
},
{
"path": ".github/license_header.txt",
"chars": 71,
"preview": "Copyright (C) 2023 Analog Devices, Inc.\n\nSPDX short identifier: ADIBSD\n"
},
{
"path": ".github/pull_request_template.md",
"chars": 1787,
"preview": "# Description\n\nSummarize the change and the motivation. Link the issue this fixes.\n\nFixes # (issue)\n\n## Type of change\n\n"
},
{
"path": ".github/scripts/detect_new_classes.py",
"chars": 3727,
"preview": "#!/usr/bin/env python3\n# Copyright (C) 2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\"\"\"Detect new device"
},
{
"path": ".github/scripts/format_coverage_report.py",
"chars": 6538,
"preview": "#!/usr/bin/env python3\n# Copyright (C) 2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\"\"\"Filter IIO covera"
},
{
"path": ".github/scripts/install_iioemu.sh",
"chars": 371,
"preview": "#!/bin/bash\nsudo apt-get -qq update\n\ngit clone https://github.com/analogdevicesinc/libtinyiiod.git\ncd libtinyiiod\nmkdir "
},
{
"path": ".github/scripts/install_libiio.sh",
"chars": 815,
"preview": "#!/bin/bash\n\n# Set LIBIIO_BRANCH if not set\nif [ -z \"$LIBIIO_BRANCH\" ]; then\n LIBIIO_BRANCH=\"v0.26\"\nfi\n\nsudo apt-get "
},
{
"path": ".github/scripts/install_part_libs.sh",
"chars": 1067,
"preview": "#!/bin/bash\n\n# Set LIBIIO_BRANCH if not set\nif [ -z \"$LIBIIO_BRANCH\" ]; then\n LIBIIO_BRANCH=\"v0.25\"\nfi\n\nif [ \"$LIBIIO"
},
{
"path": ".github/scripts/install_pydeps.sh",
"chars": 704,
"preview": "#!/bin/bash\nsudo apt-get install -y python3-pip python3-setuptools\npip install -r requirements.txt\npip install -r requir"
},
{
"path": ".github/workflows/cleanup.yml",
"chars": 1198,
"preview": "name: Cleanup Development Branch Doc\n\n# only trigger on pull request closed events\non:\n pull_request:\n types: [ clos"
},
{
"path": ".github/workflows/doc.yml",
"chars": 1628,
"preview": "name: Documentation Tests\n\non: [push, pull_request]\n\njobs:\n CheckDocs:\n runs-on: ubuntu-latest\n\n steps:\n - u"
},
{
"path": ".github/workflows/iio-context-coverage.yml",
"chars": 3770,
"preview": "name: IIO Context Coverage\n\non:\n pull_request_target:\n branches: [main]\n\npermissions:\n pull-requests: write\n conte"
},
{
"path": ".github/workflows/test-pypi.yml",
"chars": 907,
"preview": "name: TestPyPI\non:\n push:\n branches:\n - main\njobs:\n DeployTestPyPI:\n runs-on: ubuntu-latest\n\n steps:\n "
},
{
"path": ".github/workflows/test.yml",
"chars": 6544,
"preview": "name: Linux Tests\n\non: [push, pull_request]\n\njobs:\n Test:\n runs-on: ubuntu-22.04\n strategy:\n matrix:\n "
},
{
"path": ".github/workflows/win-test.yml",
"chars": 956,
"preview": "name: Windows Tests\n\non: [push, pull_request]\n\njobs:\n CondaBased:\n name: Test (${{ matrix.python-version }}, ${{ mat"
},
{
"path": ".gitignore",
"chars": 1246,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": ".isort.cfg",
"chars": 33,
"preview": "[settings]\nknown_third_party=iio\n"
},
{
"path": ".pre-commit-config.yaml",
"chars": 1389,
"preview": "exclude: '^test\\/emu'\nrepos:\n- repo: https://github.com/codespell-project/codespell\n rev: v2.2.2\n hooks:\n - "
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5244,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "CONTRIBUTING.md",
"chars": 2141,
"preview": "# Contributing to pyadi-iio\n\nWhen contributing to this repository, please first discuss the change you wish to make via "
},
{
"path": "JenkinsfileHW",
"chars": 2563,
"preview": "// Pipeline\nlock(label: 'adgt_test_harness_boards') {\n @Library('sdgtt-lib@adgt-test-harness') _\n def hdlBranch = "
},
{
"path": "LICENSE",
"chars": 1958,
"preview": "Copyright 2019-2023(c) Analog Devices, Inc.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, wit"
},
{
"path": "MANIFEST.in",
"chars": 154,
"preview": "include LICENSE\ninclude README.md\ninclude adi/*\n\nexclude setup.cfg\n\nrecursive-exclude test *\nrecursive-exclude * __pycac"
},
{
"path": "Makefile",
"chars": 1571,
"preview": ".ONESHELL:\n\nBIN=venv/bin\n\n.PHONY: clean clean-build clean-pyc help dev\n.DEFAULT_GOAL := help\n\ndefine BROWSER_PYSCRIPT\nim"
},
{
"path": "README.md",
"chars": 3323,
"preview": "<!-- PYADI-IIO README -->\n\n<p align=\"center\">\n<img src=\"https://raw.githubusercontent.com/analogdevicesinc/pyadi-iio/mas"
},
{
"path": "adi/QuadMxFE_multi.py",
"chars": 11573,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport time\nfrom typing import List\n\nf"
},
{
"path": "adi/__init__.py",
"chars": 4817,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad2s1210 import ad2s1210\nfrom"
},
{
"path": "adi/ad2s1210.py",
"chars": 3164,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad353xr.py",
"chars": 7386,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad3552r.py",
"chars": 2092,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/ad3552r_hs.py",
"chars": 4344,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/ad4020.py",
"chars": 2872,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad405x.py",
"chars": 4820,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad4080.py",
"chars": 2338,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad4110.py",
"chars": 1663,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad4130.py",
"chars": 1571,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad4170.py",
"chars": 1575,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad4630.py",
"chars": 7239,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad469x.py",
"chars": 4272,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nimport n"
},
{
"path": "adi/ad4858.py",
"chars": 5081,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad514x.py",
"chars": 10240,
"preview": "# Copyright (C) 2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfrom ad"
},
{
"path": "adi/ad5592r.py",
"chars": 6571,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad5627.py",
"chars": 2034,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad5686.py",
"chars": 2686,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/ad5706r.py",
"chars": 17683,
"preview": "# Copyright (C) 2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nfrom adi.attr"
},
{
"path": "adi/ad5710r.py",
"chars": 9592,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad5754r.py",
"chars": 9658,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/ad579x.py",
"chars": 2774,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nfrom adi"
},
{
"path": "adi/ad5940.py",
"chars": 4361,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nimport struct\nfrom collections import"
},
{
"path": "adi/ad6676.py",
"chars": 8645,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad7091rx.py",
"chars": 1252,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/ad7124.py",
"chars": 2532,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad7134.py",
"chars": 1669,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad717x.py",
"chars": 1908,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad719x.py",
"chars": 1798,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad7291.py",
"chars": 2005,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad738x.py",
"chars": 1922,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad7405.py",
"chars": 1700,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ad7490.py",
"chars": 2558,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/ad7606.py",
"chars": 2626,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nimport n"
},
{
"path": "adi/ad7689.py",
"chars": 1377,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nimport n"
},
{
"path": "adi/ad7746.py",
"chars": 4583,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom collections import OrderedDict\n\n"
},
{
"path": "adi/ad7768.py",
"chars": 3358,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.device_ba"
},
{
"path": "adi/ad777x.py",
"chars": 1242,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom decimal import Decimal\n\nimport n"
},
{
"path": "adi/ad7799.py",
"chars": 1032,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad9081.py",
"chars": 26499,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import Dict, List\n\nfrom ad"
},
{
"path": "adi/ad9081_mc.py",
"chars": 14243,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import Dict, List\n\nfrom ad"
},
{
"path": "adi/ad9083.py",
"chars": 2718,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import Dict, List\n\nfrom ad"
},
{
"path": "adi/ad9084.py",
"chars": 21393,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import Dict, List\n\nfrom ad"
},
{
"path": "adi/ad9084_mc.py",
"chars": 16263,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import Dict, List\n\nfrom ad"
},
{
"path": "adi/ad9094.py",
"chars": 608,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.context_m"
},
{
"path": "adi/ad9136.py",
"chars": 1222,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9144.py",
"chars": 913,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9152.py",
"chars": 913,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9162.py",
"chars": 1694,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9166.py",
"chars": 5679,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ad9172.py",
"chars": 1322,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import List\n\nfrom adi.ad90"
},
{
"path": "adi/ad9213.py",
"chars": 414,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9250.py",
"chars": 1192,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9265.py",
"chars": 815,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.device_base import rx_def\n\n\nc"
},
{
"path": "adi/ad936x.py",
"chars": 11548,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad937x.py",
"chars": 33656,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9434.py",
"chars": 810,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.device_base import rx_def\n\n\nc"
},
{
"path": "adi/ad9467.py",
"chars": 789,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.device_base import rx_def\n\n\nc"
},
{
"path": "adi/ad9625.py",
"chars": 1882,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/ad9680.py",
"chars": 968,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/ad9739a.py",
"chars": 746,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.rx_tx import tx_def\n\n\nclass a"
},
{
"path": "adi/ada4355.py",
"chars": 2807,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ada4356_lidar.py",
"chars": 349,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\"\"\"ADA4356 LiDAR System\"\"\"\n\nfrom adi.a"
},
{
"path": "adi/ada4961.py",
"chars": 861,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adaq8092.py",
"chars": 1094,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.device_ba"
},
{
"path": "adi/adar1000.py",
"chars": 63717,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom math import pi, sin\n\nfrom adi.att"
},
{
"path": "adi/adf4030.py",
"chars": 3944,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom adi.attribute import attribute\nf"
},
{
"path": "adi/adf4159.py",
"chars": 8186,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom adi.attribute import attribute\nf"
},
{
"path": "adi/adf4355.py",
"chars": 1945,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adf4371.py",
"chars": 5022,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adf4377.py",
"chars": 7635,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adf4382.py",
"chars": 9196,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adf5610.py",
"chars": 1532,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adf5611.py",
"chars": 4463,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adg2128.py",
"chars": 4516,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adis16460.py",
"chars": 1422,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.context_m"
},
{
"path": "adi/adis16475.py",
"chars": 11688,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adis16480.py",
"chars": 25511,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom abc import ABC, abstractmethod\n\nf"
},
{
"path": "adi/adis16507.py",
"chars": 2046,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.context_m"
},
{
"path": "adi/adis16550.py",
"chars": 16883,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adl5240.py",
"chars": 873,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adl5960.py",
"chars": 4785,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adl8113.py",
"chars": 1365,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/admv8818.py",
"chars": 3897,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adpd1080.py",
"chars": 2399,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adpd188.py",
"chars": 2794,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adpd410x.py",
"chars": 2272,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adrf5720.py",
"chars": 1226,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/adrv9002.py",
"chars": 27866,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom ctypes import c_char_p\n\nimport ii"
},
{
"path": "adi/adrv9009.py",
"chars": 25757,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.context_manager import contex"
},
{
"path": "adi/adrv9009_zu11eg.py",
"chars": 8417,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.adrv9009 import adrv9009\n\n\ncl"
},
{
"path": "adi/adrv9009_zu11eg_fmcomms8.py",
"chars": 13237,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.adrv9009_zu11eg import adrv90"
},
{
"path": "adi/adrv9009_zu11eg_multi.py",
"chars": 15964,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport datetime\nimport time\nfrom typin"
},
{
"path": "adi/adt7420.py",
"chars": 3472,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nfrom adi.attribute import attribute\nfro"
},
{
"path": "adi/adxl313.py",
"chars": 3649,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/adxl345.py",
"chars": 2445,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/adxl355.py",
"chars": 4275,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/adxl380.py",
"chars": 6490,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/adxrs290.py",
"chars": 2911,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/attribute.py",
"chars": 7419,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport re\n\n\ndef get_numbers(s):\n v "
},
{
"path": "adi/axi_aion_trig.py",
"chars": 2974,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom adi.attribute import attribute\nf"
},
{
"path": "adi/cn0511.py",
"chars": 3524,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nimport numpy as np\n\nfrom adi.ad9166 imp"
},
{
"path": "adi/cn0532.py",
"chars": 1794,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport time\n\nfrom adi.cn0540 import cn"
},
{
"path": "adi/cn0540.py",
"chars": 5334,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport time\n\nimport numpy as np\n\nfrom "
},
{
"path": "adi/cn0554.py",
"chars": 4408,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport adi\n\n\nclass cn0554:\n \"\"\" CN0"
},
{
"path": "adi/cn0556.py",
"chars": 21989,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nimport adi\n\n\nclass cn0556(adi.cn0554):\n"
},
{
"path": "adi/cn0565.py",
"chars": 3855,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n# Author: Ivan Gil Mercano <ivangil.mer"
},
{
"path": "adi/cn0566.py",
"chars": 26591,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport pickle\nfrom time import sleep\n\n"
},
{
"path": "adi/cn0575.py",
"chars": 841,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport adi\n\n\nclass cn0575:\n \"\"\" CN0"
},
{
"path": "adi/cn0579.py",
"chars": 3514,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad7768 import ad7768_4\n\n\nclas"
},
{
"path": "adi/compat.py",
"chars": 6513,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\"\"\"Compatibility module for libiio v1.X"
},
{
"path": "adi/context_manager.py",
"chars": 1412,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport iio\n\n\nclass context_manager(obj"
},
{
"path": "adi/daq2.py",
"chars": 334,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad9144 import ad9144\nfrom adi"
},
{
"path": "adi/daq3.py",
"chars": 334,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad9152 import ad9152\nfrom adi"
},
{
"path": "adi/dds.py",
"chars": 11032,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/device_base.py",
"chars": 6032,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom .rx_tx import rx_def, rx_def_no_b"
},
{
"path": "adi/dsp.py",
"chars": 1771,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom numpy import min\n\n\nclass _dec_int"
},
{
"path": "adi/fmc_vna.py",
"chars": 1217,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.ad9083 im"
},
{
"path": "adi/fmcadc3.py",
"chars": 345,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad9625 import ad9625\nfrom adi"
},
{
"path": "adi/fmcjesdadc1.py",
"chars": 1756,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad9250 import ad9250\nfrom adi"
},
{
"path": "adi/fmclidar1.py",
"chars": 7396,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.ad5627 im"
},
{
"path": "adi/fmcomms11.py",
"chars": 330,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad9162 import ad9162\nfrom adi"
},
{
"path": "adi/fmcomms5.py",
"chars": 13013,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.ad936x import ad9361\nfrom adi"
},
{
"path": "adi/gen_mux.py",
"chars": 1264,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/hmc7044.py",
"chars": 4785,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom adi.attribute import attribute\nf"
},
{
"path": "adi/jesd.py",
"chars": 250,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\"\"\"JESD Shim import to handle JESD as "
},
{
"path": "adi/jesd_internal.py",
"chars": 2275,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom .sshfs import sshfs\n\n\nclass jesd:"
},
{
"path": "adi/lm75.py",
"chars": 2402,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ltc2314_14.py",
"chars": 1014,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ltc2378.py",
"chars": 3151,
"preview": "# Copyright (C) 2025-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nimport nu"
},
{
"path": "adi/ltc2387.py",
"chars": 1225,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.device_ba"
},
{
"path": "adi/ltc2499.py",
"chars": 1382,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nfrom collections import OrderedDict\n\nim"
},
{
"path": "adi/ltc2664.py",
"chars": 5981,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ltc2672.py",
"chars": 6905,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom decimal import Decimal\n\nfrom adi."
},
{
"path": "adi/ltc2688.py",
"chars": 9195,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/ltc2983.py",
"chars": 2224,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nimport numbers\nfrom collections import "
},
{
"path": "adi/max11205.py",
"chars": 2454,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nimport numpy as np\n\nfrom adi.attribut"
},
{
"path": "adi/max14001.py",
"chars": 2612,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nimport numpy as np\n\nfrom adi.attribut"
},
{
"path": "adi/max31855.py",
"chars": 1342,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nimport numpy as np\n\nfrom adi.attribute"
},
{
"path": "adi/max31865.py",
"chars": 2211,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\nimport numpy as np\n\nfrom adi.attribute "
},
{
"path": "adi/max9611.py",
"chars": 4814,
"preview": "# Copyright (C) 2023-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/mcp_server.py",
"chars": 16140,
"preview": "# Copyright (C) 2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\"\"\"MCP server for pyadi-iio — runtime devic"
},
{
"path": "adi/obs.py",
"chars": 1616,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nfrom adi.rx_tx import rx, tx\n\n\nclass "
},
{
"path": "adi/one_bit_adc_dac.py",
"chars": 2258,
"preview": "# Copyright (C) 2020-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom adi.attribute import attribute\nfr"
},
{
"path": "adi/rx_tx.py",
"chars": 28376,
"preview": "# Copyright (C) 2019-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom abc import ABCMeta, abstractmetho"
},
{
"path": "adi/sshfs.py",
"chars": 1599,
"preview": "# Copyright (C) 2021 Xiphos Systems Corp.\n# SKIP LICENSE INSERTION\n# SPDX short identifier: ADIBSD\n\nfrom contextlib impo"
},
{
"path": "adi/sync_start.py",
"chars": 8740,
"preview": "# Copyright (C) 2022-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\n\nimport time\n\nfrom adi.attribute impor"
},
{
"path": "adi/tdd.py",
"chars": 8559,
"preview": "# Copyright (C) 2021-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import List\n\nfrom adi.attr"
},
{
"path": "adi/tddn.py",
"chars": 7019,
"preview": "# Copyright (C) 2024-2026 Analog Devices, Inc.\n#\n# SPDX short identifier: ADIBSD\n\nfrom typing import List\n\nfrom adi.attr"
},
{
"path": "doc/Makefile",
"chars": 646,
"preview": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the "
},
{
"path": "doc/check_for_missing.py",
"chars": 642,
"preview": "\"\"\"Utility script to check for missing classes\"\"\"\n\nimport glob\nimport os\n\nimport update_devs\n\nroot = os.path.dirname(os."
},
{
"path": "doc/make.bat",
"chars": 799,
"preview": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sp"
},
{
"path": "doc/source/_static/css/style.css",
"chars": 98,
"preview": "#indexlogo img, #badges img {\n background: none;\n}\n\n#badges img {\n display: inline-block;\n}\n"
},
{
"path": "doc/source/attr/index.rst",
"chars": 1087,
"preview": "Attributes\n==================\n\nTo simplify hardware configuration through different IIO drivers, basic class properties "
},
{
"path": "doc/source/attr/pluto_help.cli",
"chars": 190,
"preview": "python3\n>>> import adi\n>>> help(adi.Pluto.gain_control_mode_chan0)\nHelp on property:\n gain_control_mode_chan0: Mode o"
},
{
"path": "doc/source/buffers/index.rst",
"chars": 7277,
"preview": "Buffers\n==================\n\nUsing buffers or transmitting and receiving data is done through interacting with two method"
},
{
"path": "doc/source/conf.py",
"chars": 3437,
"preview": "# Configuration file for the Sphinx documentation builder.\n#\n# This file only contains a selection of the most common op"
},
{
"path": "doc/source/dev/device_base.rst",
"chars": 3696,
"preview": "Device Base Classes\n===================\n\nFor new device-specific class interfaces, pyadi-iio provides a set of common\npa"
},
{
"path": "doc/source/dev/index.rst",
"chars": 7676,
"preview": "Developers\n===================\n\n.. warning::\n This section is only for developers and advanced users.\n\nWhen submittin"
},
{
"path": "doc/source/dev/test_attr.rst",
"chars": 157,
"preview": "Attribute Tests\n=================\n\nFunctions used by test fixtures for evaluating attributes and driver state.\n\n.. autom"
},
{
"path": "doc/source/dev/test_dma.rst",
"chars": 154,
"preview": "DMA Tests\n=================\n\nFunctions used by test fixtures for evaluating receive and transmit DMA/buffers\n\n.. automod"
},
{
"path": "doc/source/dev/test_generics.rst",
"chars": 193,
"preview": "Generic Tests\n=================\n\nFunctions used by test fixtures for evaluating drivers without pyadi-iio classes or not"
},
{
"path": "doc/source/dev/test_jesd.rst",
"chars": 147,
"preview": "JESD204 Tests\n=================\n\nFunctions used by test fixtures for evaluating JESD204 link states.\n\n.. automodule:: te"
},
{
"path": "doc/source/devices/adi.QuadMxFE_multi.rst",
"chars": 133,
"preview": "QuadMxFE\\_multi\n==========================\n\n.. automodule:: adi.QuadMxFE_multi\n :members:\n :undoc-members:\n :show-"
},
{
"path": "doc/source/devices/adi.ad2s1210.rst",
"chars": 111,
"preview": "ad2s1210\n=================\n\n.. automodule:: adi.ad2s1210\n :members:\n :undoc-members:\n :show-inheritance:\n"
},
{
"path": "doc/source/devices/adi.ad353xr.rst",
"chars": 777,
"preview": "ad353xr\n=================\n\nSupported Drivers\n-----------------\n\nThe class **adi.ad353xr** supports the following IIO dri"
},
{
"path": "doc/source/devices/adi.ad3552r.rst",
"chars": 784,
"preview": "ad3552r\n=================\n\nThe device class in this module supports multiple parts, as follows:\n\n**ad3552r:** ad3542r, a"
},
{
"path": "doc/source/devices/adi.ad3552r_hs.rst",
"chars": 130,
"preview": "adi.ad3552r_hs module\n=====================\n\n.. automodule:: adi.ad3552r_hs\n :members:\n :undoc-members:\n :show-inh"
},
{
"path": "doc/source/devices/adi.ad4020.rst",
"chars": 1542,
"preview": "ad4020\r\n=================\r\n\r\nEach device class in this module supports multiple parts, as follows:\r\n\r\n**ad4020:** ad4020"
},
{
"path": "doc/source/devices/adi.ad405x.rst",
"chars": 106,
"preview": "ad405x\n================\n\n.. automodule:: adi.ad405x\n :members:\n :undoc-members:\n :show-inheritance:\n"
},
{
"path": "doc/source/devices/adi.ad4080.rst",
"chars": 769,
"preview": "ad4080\n=================\n\nSupported Drivers\n-----------------\n\nThe class **adi.ad4080** supports the following IIO drive"
},
{
"path": "doc/source/devices/adi.ad4110.rst",
"chars": 769,
"preview": "ad4110\n=================\n\nSupported Drivers\n-----------------\n\nThe class **adi.ad4110** supports the following IIO drive"
},
{
"path": "doc/source/devices/adi.ad4130.rst",
"chars": 769,
"preview": "ad4130\n=================\n\nSupported Drivers\n-----------------\n\nThe class **adi.ad4130** supports the following IIO drive"
}
]
// ... and 631 more files (download for full content)
About this extraction
This page contains the full source code of the analogdevicesinc/pyadi-iio GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 831 files (34.4 MB), approximately 9.1M tokens, and a symbol index with 3965 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.