Programlı olarak ethernet kartımın arayüz adını almak istediğimi söyle. döndürürorg.freedesktop.DBus.Properties.Get'i çağırmadan D-Bus özelliği alabilir misiniz?
dbus-send --print-reply \
--type=method_call \
--system \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager/Devices/0 \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.NetworkManager.Device \
string:Interface
:
method return sender=:1.5 -> dest=:1.135 reply_serial=2
variant string "eth0"
aracıyı org.freedesktop.DBus.Properties.Get
kesmek bazı yolu var mı ve daha doğrudan özelliğini almaya Bu iş gibi görünüyor? Ne yazık ki, bir yöntem olarak çağırarak çalışmaz:
dbus-send --print-reply \
--type=method_call \
--system \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/NetworkManager/Devices/0 \
org.freedesktop.NetworkManager.Device.Interface
İade: org.freedesktop.DBus.Properties.Get
çağrı Python/Java/vb bir object.getProp("someproperty")
yerine object.getSomeProperty()
arasında aramak zorunda benziyor zorunda çünkü sormak
Error org.freedesktop.DBus.Error.UnknownMethod:
Method "Interface" with signature "" on interface
"org.freedesktop.NetworkManager.Device" doesn't exist
.
çok yazık En iyi dbus komut satırı aracı dt değil, qt ile dağıtılır. – olejorgenb
İçinde 'qdbus' * 'ın * org.freedesktop.DBus.Properties.Get' veya' org.freedesktop.DBus.Properties.GetAll' işlevini çağıracağı ya da 'org'dan gelen sinyalleri aldığını .freedesktop.DBus.ObjectManager'. Protokol düzeyinde, bu bir gerekliliktir. –