Я пытаюсь использовать пакет python3 dbus для управления беспроводной связью на встроенной цели Linux (mips MT7628, если это имеет значение).
Скорее всего, система настроена правильно, потому что у меня iwd + Запуск и запуск dhclient для этой встроенной цели.
Я могу подключиться как через eth0, так и через wlan0.
Я также могу управлять iwd через iwctl. Пока все хорошо.
Теперь мне нужно управлять iwd из python3; в частности, мне нужно иметь возможность отправлять результаты сканирования по последовательной линии (реальная цель, в отличие от моей платы разработки, будет без головы).
Я в недоумении с интерфейсом dbus. Мне нужно несколько примеров для начала.
Я попробовал что-то вроде:
# python
Python 3.8.1 (default, Feb 21 2020, 11:13:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbus
>>> bus = dbus.SystemBus()
>>> wlan0 = bus.get_object('net.connman.iwd', '/net/connman/iwd/phy1/1')
>>> p = wlan0.Properties(dbus_interface='net.connman.iwd.Station')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/site-packages/dbus/proxies.py", line 72, in __call__
File "/usr/lib/python3.8/site-packages/dbus/proxies.py", line 141, in __call__
File "/usr/lib/python3.8/site-packages/dbus/connection.py", line 652, in call_blocking
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotFound: No matching method found
>>> p = wlan0.Scan(dbus_interface='net.connman.iwd.Station')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.8/site-packages/dbus/proxies.py", line 141, in __call__
File "/usr/lib/python3.8/site-packages/dbus/connection.py", line 652, in call_blocking
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotFound: No matching method found
>>>
Это пока Wi-Fi работает:
# iwctl
[iwd]# adapter list
Adapters *
--------------------------------------------------------------------------------
Name Powered Vendor Model
--------------------------------------------------------------------------------
phy1 on --
[iwd]# device list
Devices *
--------------------------------------------------------------------------------
Name Address Powered Adapter Mode
--------------------------------------------------------------------------------
wlan1 42:c1:f8:85:67:ba on phy1 station
[iwd]# station list
Devices in Station Mode *
--------------------------------------------------------------------------------
Name State Scanning
--------------------------------------------------------------------------------
wlan1 connected
[iwd]#
... но я Очевидно, я что-то упускаю из виду c.
Может кто-нибудь указать мне правильное направление, пожалуйста?