[Gambas-user] D-Bus - Change property
Hans Lehmann
hans at gambas-buch.de
Fri Mar 9 17:59:50 CET 2018
Hello,
after the notes in the documentation
(http://gambaswiki.org/wiki/doc/dbus) I tested a (D-Bus-)Server, which
only has a property' Trigger', whose value should read and change a
(D-Bus-)Client:
FMain.class:
' Gambas class file
Public Sub _new()
DBus.Unique = True
DBus.Session.Register(Export1, "/export1")
End
Public Sub Form_Open()
FMain.Resizable = False
FMain.Caption = ("The data server is activated")
End
Public Sub Form_Close()
FMain.Close()
End
export1.class:
' Gambas class file
Inherits DBusObject
Create Static
Property Trigger1 As Float
Private $fTrigger1 As Float = Pi(4)
Private Sub Trigger1_Read() As Float
Return $fTrigger1
End
Private Sub Trigger1_Write(Value As Float)
$fTrigger1 = Value
End
' dbus-send --session --print-reply --dest=org.gambas.dbusserver
/export1 org.freedesktop.DBus.Introspectable.Introspect
' Extract from the XML introspection file:
' ...
' <interface name="org.gambas.dbusserver.export1">
' <property name="Trigger1" type="d" access="readwrite"/>
' ...
' </interface>
----
The client is simple:
FMain.class:
' Gambas class file
Public hDBusProxy As DBusProxy
Public Sub Form_Open()
hDBusProxy = DBus["org.gambas.server"]["/export1"]
End
Public Sub btnDataRefresh_Click()
Print hDBusProxy.Trigger1
End
Public Sub btnSetData_Click()
hDBusProxy.Trigger1 = 44 ----->> ERROR
End
As a result, I can read the value of the property from the exported
object from the client via the D-Bus without any problems. However, I do
not succeed in setting the value for the property Trigger. Only the
error message "No function" is displayed. Where is my mental error? I
have oriented myself to the following:
To get the value of a property, do: DBus[Application][ObjectPath].Property
And to set the value of a property, do:
DBus[Application][ObjectPath].Property = Value
Regards
Hans
More information about the User
mailing list