| Български | English |
Родител: Documentation Index
Daqster е Qt5-базирана рамка за създаване и зареждане на плъгини с хост приложение. Проектът използва модулна архитектура, която позволява лесно разширяване чрез динамично зареждане на плъгини.
Daqster/
├── src/ # Source код
│ ├── frame_work/ # Ядро на рамката
│ │ └── base/ # Основни класове
│ │ ├── src/ # Implementation
│ │ └── include/ # Headers
│ ├── apps/ # Приложения
│ │ └── Daqster/ # Главно приложение
│ ├── plugins/ # Плъгини
│ │ ├── NodeEditor/ # Node Editor плъгин
│ │ ├── QtCoinTrader/ # QtCoinTrader плъгин
│ │ └── tests/ # Тестови плъгини
│ └── external_libs/ # Външни библиотеки
│ ├── nodeeditor/ # Node Editor библиотека
│ └── qtrest_lib/ # REST API библиотека
├── tools/ # Инструменти за билд
│ ├── create_appimage.sh # AppImage създаване
│ └── Build_AppImage/ # Локални AppImage билдове
├── docs/ # Документация
│ ├── Architecture/ # Архитектурна документация
│ │ ├── README.md # Тази документация
│ │ ├── README.en.md # English версия
│ │ ├── BuildSystemArchitecture.md
│ │ ├── apps/
│ │ ├── framework/
│ │ └── plugins/
│ ├── development/ # Разработка и дебъг
│ │ ├── README.md
│ │ ├── DeveloperGuide.md
│ │ └── HowToDebugAppImage.md
│ ├── operations/ # Оперативни и build теми
│ │ ├── BuildHelpers.md
│ │ └── UpstreamManagement.md
│ └── porting/ # Портинг и миграции
│ └── QtRest_Qt6_Porting.md
├── .github/workflows/ # CI/CD
│ ├── ci.yml # Continuous Integration
│ └── release.yml # Release workflow
└── CMakeLists.txt # Главен CMake файл
Местоположение: src/frame_work/base/
Основни класове:
QPluginManager - Управление на плъгиниQPluginInterface - Базов интерфейс за плъгиниQPluginLoaderExt - Разширено зареждане на плъгиниPluginFilter - Филтриране на плъгиниОтговорности:
Местоположение: src/apps/Daqster/
Основни класове:
main.cpp - Точка на влизанеApplicationsManager - Управление на child приложенияAppToolbar - GUI toolbar за стартиране на плъгиниОтговорности:
Местоположение: src/plugins/
Типове плъгини:
Plugin Discovery:
./plugins, ../lib/daqster/plugins)DAQSTER_PLUGIN_DIR, DAQSTER_PLUGIN_PATH)~/.local/share/daqster/plugins)/usr/lib/daqster/plugins)Местоположение: src/external_libs/
Библиотеки:
main.cpp
├── Инициализира QApplication
├── Създава QPluginManager
├── Зарежда плъгини
└── Стартира GUI
QPluginManager
├── Сканира директории за плъгини
├── Зарежда .so файлове
├── Инициализира QPluginInterface
└── Добавя в списък с активни плъгини
AppToolbar/ApplicationsManager
├── Получава заявка за стартиране
├── Намира плъгин по име
├── Създава QProcess с environment
└── Стартира като child процес
DAQSTER_PLUGIN_DIR - Една директория за плъгиниDAQSTER_PLUGIN_PATH - Множество директории (разделени с :)LD_LIBRARY_PATH - Пътища към споделени библиотекиQML2_IMPORT_PATH - Пътища към QML модулиQT_PLUGIN_PATH - Пътища към Qt плъгиниQT_QPA_PLATFORM_PLUGIN_PATH - Пътища към platform плъгиниXDG_CONFIG_HOME - Конфигурационни файловеXDG_DATA_HOME - ДанниXDG_CACHE_HOME - КешDaqster-x86_64.AppImage
├── AppRun ← startup script
├── daqster.desktop
├── daqster.png
└── usr/
├── bin/
│ └── Daqster ← главен изпълним файл
├── lib/
│ ├── libQt*.so.* ← Qt библиотеки
│ ├── libicu*.so.* ← ICU библиотеки
│ ├── plugins/ ← Qt плъгини
│ ├── qml/ ← QML модули
│ └── daqster/
│ └── plugins/ ← Daqster плъгини
└── share/
├── applications/ ← .desktop файл
└── icons/ ← икона
AppRun настройва environment при стартиране:
| Променлива | Стойност |
|---|---|
LD_LIBRARY_PATH |
usr/lib/ |
QT_PLUGIN_PATH |
usr/lib/plugins/ |
QML2_IMPORT_PATH |
usr/lib/qml/ |
DAQSTER_PLUGIN_DIR |
usr/lib/daqster/plugins/ |
XDG_CONFIG_HOME |
~/.config/daqster |
Daqster използва модулна архитектура, която позволява лесно разширяване и поддръжка. Системата за плъгини е проектирана да бъде безопасна, ефективна и лесна за използване. Build системата поддържа както локална разработка, така и CI/CD за автоматизирано разпространение.