Biblioteka Configurable Publisher Registry umożliwia tworzenie niestandardowych wydawców telemetrii i rejestrowanie ich w usłudze telemetrii za pomocą Configurable Publisher Registry. Biblioteka abstrahuje od interfejsu Binder i serializacji oraz deserializacji danych.
Omówienie interfejsu API
Biblioteka udostępnia interfejsy specyficzne dla języka w językach Java i Rust do interakcji z bazowym rejestrem wydawców konfigurowalnych. Biblioteka odpowiada za te obszary:
- Definicja wydawcy: udostępnia klasy bazowe w języku Java lub cechy w języku Rust, które określają zachowanie wydawcy.
- Definicja metadanych: opisuje wydawcę, w tym jego nazwę i plik
FileDescriptorSetprotobuf, który definiuje opublikowane wiadomości. Więcej informacji znajdziesz w artykule Wiadomości samopisujące. Jeśli używasz języka Java, narzędzie do generowania deskryptorów protobuf w języku Java może pomóc Ci w wygenerowaniu metadanych deskryptora protobuf. - Produkcja danych: obsługuje logikę produkcji danych na podstawie subskrypcji lub na żądanie.
- Obsługa konfiguracji: przetwarza opcjonalne argumenty konfiguracyjne skonfigurowane przez kampanię dotyczącą pomiarów podczas generowania danych.
- Definicja metadanych: opisuje wydawcę, w tym jego nazwę i plik
- Kodowanie i dekodowanie danych: oferuje mechanizmy konwertowania wiadomości i konfiguracji do formatu przewodowego i z niego.
- Kodeki: obejmuje wbudowane i niestandardowe kodeki do serializacji i deserializacji danych.
- Rejestracja i cykl życia wydawcy: zarządza połączeniem między wydawcą a usługą telemetrii.
Szczegółowe przykłady i kompletne, kompilowalne aplikacje, które pokazują pełny cykl życia, znajdziesz w odpowiednich plikach README.md w drzewie źródłowym:
Biblioteka Java:
system/software_defined_vehicle/telemetry/sdk/java/configurable_publisher_registry/README.mdPrzykład w języku Java:
samples/telemetry/publishers/java/sample_ivi_sdk_publisher/README.mdBiblioteka Rust:
system/software_defined_vehicle/telemetry/sdk/rust/configurable_publisher_registry/README.mdPrzykład w języku Rust:
samples/telemetry/publishers/rust/sample_getter_publisher/README.md