Библиотека настраиваемого реестра издателя

Библиотека Configurable Publisher Registry позволяет создавать пользовательские издатели телеметрии и регистрировать их в службе телеметрии через Configurable Publisher Registry . Библиотека абстрагирует базовый интерфейс Binder, а также сериализацию и десериализацию данных.

Обзор поверхности API

Библиотека предоставляет языковые интерфейсы на Java и Rust для взаимодействия с базовым конфигурируемым реестром издателей. Библиотека отвечает за следующие области:

  • Определение издателя: Предоставляет базовые классы в Java или трейты в Rust для определения поведения издателя.
    • Определение метаданных: описывает вашего издателя, включая его имя и FileDescriptorSet protobuf, определяющий публикуемые сообщения. Для получения дополнительной информации см. раздел «Самоописывающиеся сообщения» . Если вы используете Java, инструмент генерации дескрипторов protobuf для Java поможет вам сгенерировать метаданные дескриптора protobuf.
    • Создание данных: обрабатывает логику создания данных на основе подписки или по запросу.
    • Обработка конфигурации: обрабатывает необязательные аргументы конфигурации, заданные в рамках кампании по сбору метрик, при формировании данных.
  • Кодирование и декодирование данных: Предоставляет механизмы для преобразования сообщений и конфигураций в формат передачи данных и обратно.
    • Кодеки: Включает встроенные и пользовательские кодеки для сериализации и десериализации данных.
  • Регистрация и жизненный цикл издателя: управляет связью между издателем и службой телеметрии.

Подробные примеры и полные, компилируемые приложения, демонстрирующие полный жизненный цикл, см. в соответствующих файлах README.md в исходном коде:

  • Библиотека Java: system/software_defined_vehicle/telemetry/sdk/java/configurable_publisher_registry/README.md

  • Пример на Java: samples/telemetry/publishers/java/sample_ivi_sdk_publisher/README.md

  • Библиотека Rust: system/software_defined_vehicle/telemetry/sdk/rust/configurable_publisher_registry/README.md

  • Пример кода на Rust: samples/telemetry/publishers/rust/sample_getter_publisher/README.md