dbus properties

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
xundeenergie
User
Beiträge: 1
Registriert: Donnerstag 15. März 2018, 09:08

Hi Leute!

Zuerst einmal möchte ich kurz über mich erzählen, da ich neu in diesem Forum bin :-)

Ich programmiere das im Selbststudium erlernte Python jetzt seit ca 4 Jahren. Ich nutze Linux, konkret Debian, meistens Testing. Meine ersten Programmier-Fingerübungen habe ich am Commodore VC20 kurz nach seinem Erscheinen gemacht und Basic lernte ich am C128D. Bin also schon ein reiferes Semester. Auf Python bin ich dann vor einigen Jahren gestoßen, hab mich aber erst vor 4 Jahren mit eine größeren Projekt herangewagt.

Ich habe mir ein Backupskript für BTRFS (für die Linux-Auskenner, die wissen, was das ist, für die anderen ist es egal) geschrieben, da ich einerseits Python lernen wollte, und andererseits die bestehenden Backuplösungen nicht meinen Vorstellungen entsprachen.

Jetzt bin ich dabei, ein graphisches Frontend aufzubauen, bei dem ich die Kommunikation über dbus laufen lassen möchte. Der Grund ist einfach: Das Backup-Programm läuft als Systemdienst im Hintergrund und wird von systemd gestartet. Und so wie NetworkManager mit seinen verschiedenen Frontends über dbus kommuniziert, damit das unabhängig der verwendeten graphischen Desktopoberfläche klappt, möchte ich das analog realisieren und komfortabel von mehreren eingeloggten Benutzern immer den aktuellen Stand des Backups angezeigt haben können.
UND ich möchte mich mit dem mehrköpfigen Drachen dbus auseinandersetzen, da ich denke, dass der gute Dienste leisten kann, wenn man ihn einmal verstanden hat.

Ich habe jetzt eine Möglichkeit gefunden, wie ich Properties von dbus setzen und abfragen kann:
https://stackoverflow.com/questions/374 ... e-property

Dennoch funktioniert das nicht so, wie ich es von NetworkManager oder anderen Diensten sehe.

d-feet ist ein python-basiertes GUI für dbus. Das zeigt mir z.B. einerseits org.freedesktop.DBus.Properties, und darin die 3 Methoden Get, GetAll und Set, sowie das Signal PropertiesChanged.
Andererseits zeigt es mir bei anderen Interfaces am selben Objekt Methoden, wie auch Properties, die ich mit den vorhergehenden Methoden für diesen Pfad abfragen kann.

Die Lösung im Link stellt mir zwar die Methoden und das Signal für die Properties her, jedoch tauchen in d-feet (also am dbus) keine Properties auf.

Und ich google mich jetzt schon seit Wochen in meiner Freizeit die Finger wund und finde nichts dazu, wie man das richtig macht.

Gibt es hier Spezialisten für dbus und python?

lg scientific
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Kann es sein das die andere Antwort bei SO das Problem beschreibt? https://stackoverflow.com/a/13629355
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten