I asked this in a comment of a previous question but I think it is better to move it here as a new independent question.
I am trying to figure out how to translate this Python code to emit a dbus signal into Lua using lgi DBus:
class DBUSTestInterface(object):
"""
Server_XML definition.
Emit / Publish a signal that is a random integer every second
type='i' for integer.
"""
dbus = """
<node>
<interface name="com.test.device.aaa">
<signal name="get">
<arg type='s'/>
<arg type='s'/>
<arg type='s'/>
<arg type='s'/>
<arg type='s'/>
<arg type='s'/>
<arg type='s'/>
<arg type='i'/>
</signal>
</interface>
</node>
"""
get = signal()
emit = DBUSTestInterface()
bus.publish("com.test.device.get", emit)
I suspect (not sure at all) that it has to be made sending a message to the introspectable interface, something similar to this:
local object = "/org/freedesktop/DBus"
local interface = "org.freedesktop.DBus.Introspectable"
local method = "Introspect"
local message = Gio.DBusMessage.new_method_call(name, object, interface, method)
message:set_body(GLib.Variant("(aoo)", {{location},session})) -- How do I set the same message as above?
But I am not sure, and I have no idea of how to set the message body with the XML that is working in Python.
If you can provide some example or point out where I can find it I would appreciate it!
Thanks!
Heh, Google just lead me here while looking at https://github.com/pavouk/lgi/issues/220.
Somehow I feel like your code example cannot work as-is / is not some self-contained python code. Hence, I will go with the comment in the text:
Lua code doing this (well, except for "random integer", unless you consider
42
to be random):