Skip to content

garrikus/qdbus_tut

Repository files navigation

utf-8

Есть DBUS -- программная шина обмена данными. Она позволяет
одним приложениям предоставлять свой функцианал другим приложениям
через удаленный вызов процедур. Также есть возможность отправлять и принимать
широковещательные сигналы. В общем есть программы серверы, которые
предоставляют функции и вещают сигналы, и есть программы клиенты, которые
эти функции вызывают и эти сигналы ловят.

Как происходит адресация на шине DBus

 * есть адрес программы, например "my.cool.program". Вот он такой, через точку

 * в программе есть объекты, например "/", "/level1", "/something",
   "/level1/level2", "/level1/one_more_level2". Подразумевается, что
   логически они объединены в иерархию (как, например, файловая система)

 * у объектов есть (будем считать, что) один интерфейс, например "my.cool.program.iface" --
   вот такая строка, через точки. И кстати она никак не связана с именем программы,
   просто я захотел назвать её так, а мог бы "iface.this.is". Это просто строка такая,
   причем такая же может быть у другого объекта

 * на интерфейсе сидят методы и сигналы, например "method_name" или "signal". Для обозначения
   полного имени, приписывают имя интрерфейса, например "iface.this.is.method_name"
   
Для каких целей мы сейчас будем этот DBus использовать.

1. Пусть у нас есть DBus демон навигационного датчика, который вещает сигналами текущие координаты.

2. Напишем скелет-демон навигационных расчетов, который должен:
  - по запросу пользователя создавать маршрут (пусть это будет одна лишь точка) (маршрутов может быть несколько)
  - по запросу пользователя менять имеющийся маршрут
  - ловить сигналы от нав. датчика, проводить рассчет и выдавать сигналы об удалении (дальности)
    от каждого активного маршрута (помните, 1 точка)
  - по запросу пользователя удалять маршрут

About

Туториал по QtDBus

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published