Приветствую. Есть у меня питоновский код который создает dbus сервис. В этом коде реализован метод get_message, который возвращает строку: This is the service. Код на основе https://gist.github.com/caspian311/4676061
dbus-send --print-reply --session --dest='soln.awesome.mail' '/soln/awesome/mail' 'soln.awesome.mail.Message.get_message'
method return time=1516014840.089297 sender=:1.2718 -> destination=:1.2953 serial=197 reply_serial=2
string "This is the service"
В rc.lua я регистрирую на сесионой шине имя, где я хочу получать сообщения.
dbus.request_name("session", "soln.awesome.client")
Создаю правило для матча сообщений.
dbus.add_match("session", "interface=soln.awesome.mail.Message.get_message")
Добавляю обработчик (Обработчик на данном этапе просто функция отладки. А как принято вести отладку в lua?)
dbus.connect_signal("soln.awesome.mail.Message",
function(...)
log = io.open("/tmp/lua.log", "w")
log:write('Awesome mail widget tabel struc ...\n')
local data = {...}
log:write(tostring(data) .. '\n')
for i,v in pairs(data) do
local index = tostring(i) .. '\t'
local value = tostring(v) .. '\n'
log:write(index .. value)
if type(v) == 'table' then
for ii, vv in pairs(v) do
local _index = '\t ' .. tostring(ii)
local _value = '\t' .. tostring(vv)
log:write(_index .. _value .. '\n')
end
else
log:write('Type value: ' .. type(v) .. '\n')
end
end
log:flush ()
end)
Отпровляю сообщение soln.awesome.client.
~$ dbus-send --print-reply --session --dest='soln.awesome.client' '/soln/awesome/mail' 'soln.awesome.mail.Message.get_message'
method return time=1516020338.162989 sender=:1.3053 -> destination=:1.3063 serial=12 reply_serial=2
В мониторе в этот момент.
method call time=1516020338.157824 sender=:1.3063 -> destination=soln.awesome.client serial=2 path=/soln/awesome/mail;
interface=soln.awesome.mail.Message; member=get_message
method return time=1516020338.161027 sender=:1.3053 -> destination=:1.3063 serial=12 reply_serial=2
В обробочик приехала таблица следующего содержания.
table: 0x564823c8c330
1 table: 0x5648234f11b0
type method_call
bus session
sender :1.3129
member get_message
path /soln/awesome/mail
interface soln.awesome.mail.Message
Строки This is the service в приехавшей таблице нет.
Что - то я не понял судя по всему. Если кто разжует, или придаст ускорение в нужном направлении, буду благодарен.