Для организации взаимодействия с прикладными и системными программами в Kaspersky IoT Secure Gateway 1000, при разработке ваших программ вам потребуется добавлять в инструкции сборки CMakeLists.txt модули и библиотеки, с которыми ваша программа взаимодействует.
Модуль platform
Модуль platform включает дополнительные библиотеки и функции CMake, требуемые для работы с платформой Kaspersky IoT Secure Gateway 1000:
initialize_platform ()Функция для инициализации модуля platform и включения правил компоновки программ и библиотек. Скрипт содержит функции для задания флагов компилятора и заголовков проекта.
platform/nkБиблиотека для работы с компилятором NK, использующегося для генерации транспортного кода.
platform/installБиблиотека, содержащая функции для установки программ.
platform/storageБиблиотека, содержащая функции для работы с изолированным файловым хранилищем.
platform/doxygenБиблиотека, содержащая функции для работы с Doxygen. Открывает доступ к функции add_project_documentation_main_target(), использующейся для автоматизированной генерации документации на основе исходных текстов программ.
Модуль platform и его библиотеки подключаются с помощью CMake-функции include().
Пример подключения модуля platform
...
# Подключение и инициализация CMake-библиотеки platform.
include(platform)
initialize_platform()
# Подключение CMake-библиотеки doxygen для документирования исходных текстов.
include(platform/doxygen)
add_project_documentation_main_target()
...
Библиотеки для взаимодействия с системными программами
Для взаимодействия с системными программами и их библиотеками требуется обнаружить их в составе SDK, подключить директории с заголовочными файлами к проекту и включить компоновку. Для разных типов программ требуются подключение различных наборов библиотек, поэтому мы рекомендуем обратить внимание на подключение библиотек в готовых примерах программ в директории /examples/secure_gateway/sdkl3/applications/. Для подключения библиотек в инструкциях сборки CMakeLists.txt используются функции find_package(), include_directories() и target_link_libraries(). Список библиотек, доступных для взаимодействия:
vfsБиблиотека для работы с виртуальной файловой системой.
nsБиблиотека для работы с сервером имен.
fmtБиблиотека, предоставляющая функции форматирования строк.
rtl_cpp::fullБиблиотека для работы с кодами возврата.
package_managerБиблиотека для работы с программой PackageManager, использующейся для работы с KPA-пакетами.
config_managerБиблиотека для работы с программой ConfigManager, использующейся для управления конфигурациями программ.
routing_tableБиблиотека для работы с программой RoutingTable, использующейся для получения информации о маршрутах данных между программами.
messagebusБиблиотека для работы с программой MessageBus, реализующей шину для обмена сообщениями между программами через IPC-каналы.
messagingБиблиотека messaging, использующаяся для обмена сообщениями между программами.
message_stubЧасть библиотеки messaging, содержащая описание методов отправки и получения сообщений.
message_consumer_apiЧасть библиотеки messaging, содержащая описание типов данных и метод для отправки сообщений.
logrr_cpp_LIBБиблиотека logrr_cpp для работы с компонентом LogRR, использующимся для журналирования информации о работе программ.
logrr_clog_LIBБиблиотека logrr_clog для работы с компонентом LogRR, использующимся для журналирования информации о работе программ.
Пример подключения библиотеки messagebus
...
# Подключение пакета messagebus для работы с компонентом MessageBus, реализующим шину сообщений
# для обмена данными между программами через IPC-каналы.
find_package(messagebus REQUIRED)
# Добавление директорий, описанных в переменной messagebus_INCLUDE, к списку директорий поиска заголовочных файлов.
include_directories(${messagebus_INCLUDE})
target_link_libraries(${EXECUTABLE_NAME}
...
${messagebus_CLIENT_LIB}
...
)
...
В начало