Проект реализован в рамках выполнения тестового задания для Открытых Мобильных Платформ
Подразумевается наличие в системе библиотек и ПО для сборки:
- Компилятор
GCCилиClang - Система сборки
CMake - Библиотека
jsoncpp - Библиотека
sdbus-c++версии 2.1.0- Репозитории содержит предкомпилированные файлы в директории
lib
- Репозитории содержит предкомпилированные файлы в директории
- Библиотека
PkgConfig
- Откройте окно терминала
- Выполните от имени супер-пользователя следующую команду для установки пакетов:
Для Ubuntu 20.04
apt install -y cmake build-essential libjsoncpp-dev libjsoncpp1 python3-pkgconfig libsystemd-devДля Ubuntu 22.04
apt install -y cmake build-essential libjsoncpp-dev libjsoncpp25 python3-pkgconfig libsystemd-dev- Можно перейти к разделу "Инструкция по сборке".
- Загрузите этот репозитории на диск любым из предложенных способов:
- Загрузите как архив и распакуйте, откройте распакованную директорию в окне терминала;
- Используйте утилиту
git, в окне терминала выполните:
git clone https://github.com/gh0st17/DBusService.git
cd DBusService- Выполните в окне терминала команду для подготовки файлов для сборки:
cmake -G Unix\ Makefiles -DCMAKE_BUILD_TYPE=Release -B build
cmake --build build- После сборки серверная часть сервиса запускается следующей командой:
./build/service/DBusService -p configsПараметр -p служит для указания пути к директории с файлами конфигурации приложении.
- После успешного запуска в окне терминала будет строка:
[ INFO ] Entering into event loopозначающая, что сервер готов обмениваться сообщениями по сессионной шине DBus.
- В другом окне терминала из текущей директории запустите клиентскую часть командой:
./build/app/confManagerApplication -p configsПри успешном запуске сообщения ключи TimeoutPhrase каждого имитируемого приложения начнут выводиться, каждый через свой Timeout интервал.
- Создаете еще одно окно терминала и запустите команду:
gdbus call --session --dest com.system.configurationManager \
--object-path /com/system/configurationManager/Application/confManagerApplication1 \
--method com.system.configurationManager.Application.Configuration.ChangeConfiguration \
"TimeoutPhrase" "<'STOP'>"- Появится результат вызова метода
ChangeConfiguration:
("Key 'TimeoutPhrase' was set to 'STOP'",)
При этом в окне с клиентской частью приложение с именем confManagerApplication1 обновит значение ключа TimeoutPhrase на значение равное STOP.