D-Bus signature Problem

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
alpich
User
Beiträge: 4
Registriert: Montag 1. Februar 2021, 23:10

Hallo,
bin nicht versiert in Python und objektorienterten Sprachen.
Ich habe ein Rezept erhalten wie ich die Kommunikation zwischen 2 Progammen managen kann. Bei einigen Methoden geht das auch sehr schön, aber bei anderern scheitere ich immer mit Fehlermeldung:

qdbus org.Parole.Media.Player
.
.
.
method void org.Parole.Media.Player.Play()
.
.
.

Programmschnipsel:
import sys
import dbus
bus = dbus.SessionBus()
proxy = bus.get_object('org.Parole.Media.Player', '/org')
iface = dbus.Interface(proxy, 'org.Parole.Media.Player')
iface.Play()

#dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "Play" with signature "" on interface "org.Parole.Media.Player" doesn't exist

?? signature finde ich nicht in der Auflistung von qdbus
in dbusviewer wird kein Parameter verlangt

Was ist zu tun?

p.s. Wenn ich im Forum auf den Link Regeln gehe kommt die Meldung Diese Seite gibt es nicht. Ich hab es also versucht. Bitte Nachsicht. Mein Englisch ist sehr bescheiden und die bisher gefundenen Toturials sind alle in englisch.

Danke
Thants
User
Beiträge: 34
Registriert: Dienstag 1. Dezember 2020, 12:00

Kann es sein, dass du auf das falsche Objekt zugreifst? "/org" als Objektpfad klingt ein bisschen merkwürdig, sieht eher danach aus, als würde der Pfad da noch weitergehen.
Benutzeravatar
sparrow
User
Beiträge: 4231
Registriert: Freitag 17. April 2009, 10:28

@alpich: "Signatur" meint in diesem Fall die Signatur einer Methode oder Funktion.

Alo stimmt entweder das Interface nicht, der Methodennamen oder die Methode erwartet Parameter.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Laut github sollte die Methode existieren. Aber die dbus wrapper sind irgendwie immer Mist. Die Technologie selbst ist cool, aber die Tools drumrum total hakelig.
Benutzeravatar
sparrow
User
Beiträge: 4231
Registriert: Freitag 17. April 2009, 10:28

Mich würde der Code interessieren, der funktioniert. Denn alpich schrieb ja, dass es bei einigen Methoden kein Problem gab.
Benutzeravatar
__blackjack__
User
Beiträge: 13202
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Kleiner Test sagt das Thants recht hat. "/org" ist nicht der Pfad zu dem Objekt. Der lautet "/org/Parole/Media/Player". Dann funktioniert's auch.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Antworten