Во-первых, пример в репозитории github работает как задумано: https://github. com/zhanglongqi/python-sdbus-modemmanager/blob/master/example/list_modem_sim.py
та часть, где я не могу осмыслить является «Простым интерфейсом» этого модуля.
поэтому в приведенном примере, если вы берете переменную «modem» и используете функцию modem.simple.connect(), ожидайте Dict[str , аргументы Tuple[str, Any]].
поскольку документации по этой части нет, я пытаюсь передать apn и ip-тип.
в командной строке я бы использовал эту строку :
mmcli -m 0 --simple-connect='apn=myapn,ip-type=ipv4v6'
так что я ожидаю этого simple.conect() будет использовать то же самое.
Я пробовал множество способов передать эти параметры, но всегда получаю одну и ту же ошибку.
modem.simple.connect({'apn':('s','myapn')})
Код: Выделить всё
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.12/site-packages/sdbus/dbus_proxy_sync_method.py", line 93, in __call__
rebuilt_args = self.dbus_method._rebuild_args(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/sdbus/dbus_common_elements.py", line 199, in _rebuild_args
raise TypeError('Could not flatten the args')
TypeError: Could not flatten the args
Код: Выделить всё
import sdbus
from sdbus_block.modemmanager import MM, MMModems
sdbus.set_default_bus(sdbus.sd_bus_open_system())
mm = MM()
mms = MMModems()
modem = mms.get_first()
modem.simple.connect({'apn':('s','myapn')})
Заранее спасибо
Я добавляю немного информации об окружающей среде:
[*]ModemManager 1.22
[*]Python 3.12
[*]python3-sdbus 0.11.1
[*]python3-sdbus-modemmanager 1.0.2
[*]Yocto Scarthgap (ядро 6.6.23)
< /ул>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -interface
Мобильная версия