Adalm Pluto 连接到运行 Linux Mint 20 的笔记本电脑。尝试运行一个非常基本的 Python 脚本并收到错误“TypeError: 'Context' object is not callable”。
确实有一个较早的错误,即 Python 无法找到 iio.py 模块,但这已通过更新 bashrc 脚本中的 $PYTHONPATH 变量得到修复。
其他所有测试似乎都可以正常工作。Pluto 本身看起来工作正常,并且在 Windows 10 上连接到 SATSAGEN 时表现出色。
不知道怎么进步。任何指针都非常感谢。
Python代码:
# Import library
import adi
# Create radio object
sdr = adi.Pluto(uri="ip:192.168.2.1")
# Configure properties
sdr.rx_rf_bandwidth = 4000000
# Get data
data = sdr.rx()
终端输出:
bob@SamsungLaptop:~$ python "/home/bob/Documents/Python scripts/Pluto/pluto_check_installation.py"
Traceback (most recent call last):
File "/home/bob/Documents/Python scripts/Pluto/pluto_check_installation.py", line 8, in <module>
data = sdr.rx()
File "/usr/local/lib/python3.8/dist-packages/pyadi_iio-0.0.7-py3.8.egg/adi/rx_tx.py", line 250, in rx
return self.__rx_complex()
File "/usr/local/lib/python3.8/dist-packages/pyadi_iio-0.0.7-py3.8.egg/adi/rx_tx.py", line 171, in __rx_complex
self._rx_init_channels()
File "/usr/local/lib/python3.8/dist-packages/pyadi_iio-0.0.7-py3.8.egg/adi/rx_tx.py", line 127, in _rx_init_channels
self.__rxbuf = iio.Buffer(self._rxadc, self.__rx_buffer_size, False)
File "/home/bob/libiio/bindings/python/iio.py", line 1016, in __init__
self._ctx = device.ctx()
TypeError: 'Context' object is not callable
上面的 Python 代码也在解释器模式下运行,并且最后一行之前的所有命令都被接受。
已尝试其他示例脚本,但包含“sdr.rx()”的行似乎导致错误。与 Pluto 的通信似乎可以正常工作(例如,如上所述设置了射频带宽,这可以通过打印命令进行检查。此外,可以通过 USB 连接或 IP 地址或通过 ssh 或通过 PuTTY 进行通信)。libiio 库似乎没问题(例如,输入“iio_info -s”或“iio_info -u Pluto.local”正在工作。pyadi 库似乎没问题(例如,adi 的导入工作没有错误)
安装: A) 带有 Cinnammon GUI 的 Linux Mint 20(内核从 v5.4 更新到 v5.8 以解决另一个问题)。B) libiio、libadad9361-iio 和 pyadi-iio 均根据 PySDR ( https://pysdr.org/content/pluto_intro.html ) 第 5 章从源代码生成并安装。上述 Python 示例在同一章中提供,作为检查安装的方法。