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: 1
Registriert: Montag 1. Februar 2021, 23:10

Montag 1. Februar 2021, 23:39

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: 32
Registriert: Dienstag 1. Dezember 2020, 12:00

Dienstag 2. Februar 2021, 05:57

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: 2642
Registriert: Freitag 17. April 2009, 10:28

Dienstag 2. Februar 2021, 07:08

@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: 9686
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dienstag 2. Februar 2021, 09:06

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: 2642
Registriert: Freitag 17. April 2009, 10:28

Dienstag 2. Februar 2021, 09:37

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: 8573
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 2. Februar 2021, 11:45

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.
“Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”
Antworten