![]() |
aqc_embedded_doc
|
Для создания документации сначала установите зависимости (doxygen, doxyqml and dot):
Затем создайте документацию:
Документация будет создана в папке ./doc/html/
. Чтобы открыть документацию, откройте файл ./doc/html/pages.html
в браузере.
Используются категории:
Категория | Класс | Описание |
---|---|---|
default | - | Стандартная категория для сообщений без категории |
qml | - | Стандартная категория для сообщений из qml |
aqsi.dm.dm | DisplayManager, AppStack | Сообщения о действиях, связанные с управлением экрана и графическими приложениями |
aqsi.dm.qctests | QCTestsModel | Сообщения во время прохождения тестов |
aqsi.dm.manufacturing | Manufacturing | Сообщения при производстве (отправке результатов тестирования) |
aqsi.dm.can_tester | CanTester | Сообщения от CanTester в режиме "DeviceIsFactoryTester" |
aqsi.dm.rs485tester | Rs485Tester | Сообщения от Rs485Tester в режиме "DeviceIsFactoryTester" |
Правила задаются из строки в параметре DmQtLoggingRules.
https://doc.qt.io/qt-5/qloggingcategory.html#logging-rules
Если в параметре будет пустая строка, то правила будут сброшены к стандартным. Если будет *=true, то будут показываться все сообщения, в том числе некоторые debug, скрытые по-умолчанию.
Display Manager (DM) оперирует следующими понятиями:
Стек приложений - список из всех приложений, которые запрашивали показ, но еще не завершились. Дублируется в файловой системе, поэтому в случае перезапуска dm информация о том, что должно показываться на экране, останется. На экране отображаетсяя верхнее (последнее) приложение из стека. Если стек пустой, дм пытается показать дефолтное приложение (ждет его появления, в этот момент на экране "пожалуйста, подождите").
Дефолтное приложение - приложение, которое dm пытается показать по-умолчанию. Задается с помощью конфигурационного параметра DefaultAppService. Конфиг по-умолчанию лежит в /mnt/data/aqsi-config.json. Без этого параметра DM не будет работать.
В случае, если приложение крашнулось или завершилось без вызова RequestHide, DM отлавливает эту ситуацию, удаляет приложение из стека, и если оно было верхним, то показывает предыдущее.
Производство - процесс регистрации устройства на серверах aqsi, который проводится в сервисном меню. По завершению производства создается файл **/mnt/data/manufacturing_date**. Если этот файл присутствует в системе, то при старте DM сервисное меню не будет показано.
Methods:
bool RequestShow(string service)
service - DBus service name приложения, которое вызывает метод.
Когда клиентское приложение хочет себя показать на экране, оно должно вызвать этот метод, дождаться завершения, и в зависимости от результата либо показать себя, либо нет. Проще говоря, приложение спрашивает у dm таким образом разрешение на показ себя. Случаи, когда Dm может запретить показ:
bool RequestHide(string path)
Когда клиентское приложение хочет себя скрыть, оно должно вызвать этот метод, и скрыть себя, если разрешение получено. После этого dm покажет на экране предыдущее приложение в стеке. Dm может отказать в скрытии, если себя пытается скрыть дефолтное приложение.
void StartService(bool ask_pin)
Скрывает текущее приложение на экране и отображает сервисное меню. Параметр ask_pin сейчас ни на что на влияет, но в будущем в зависимости от него перед входом в меню будет показан экран ввода пин-кода.
void StopService()
Выходит из сервисного меню и показывает текущее верхнее приложение в стеке.
Чтобы приложение могло работать с dm, оно должно предоставить следующее API:
Methods:
void SetVisible(bool val)
Если val - true, приложение отображается на экране. Иначе скрывается. По сути это обёртка над свойством visible коренного qml объекта в Qt.