Mit der Bibliothek „Configurable Publisher Registry“ können Sie benutzerdefinierte Telemetrie-Publisher erstellen und über die Configurable Publisher Registry beim Telemetry-Dienst registrieren. Die Bibliothek abstrahiert die zugrunde liegende Binder-Schnittstelle sowie die Daten-Serialisierung und ‑Deserialisierung.
Übersicht über die API-Oberfläche
Die Bibliothek bietet sprachspezifische Schnittstellen in Java und Rust für die Interaktion mit der zugrunde liegenden konfigurierbaren Publisher-Registrierung. Die Bibliothek ist für die folgenden Bereiche zuständig:
- Publisher-Definition:Bietet Basisklassen in Java oder Traits in Rust, um das Verhalten eines Publishers zu definieren.
- Metadatendefinition:Beschreibt Ihren Verlag oder Webpublisher, einschließlich des Namens und des Protobuf-
FileDescriptorSet, der die veröffentlichten Nachrichten definiert. Weitere Informationen finden Sie unter Selbstbeschreibende Nachrichten. Wenn Sie Java verwenden, kann das Java-Tool zum Generieren von Protobuf-Deskriptoren Ihnen helfen, die Protobuf-Deskriptor-Metadaten zu generieren. - Datenerstellung:Verarbeitet die Logik für die Erstellung von Daten auf Abo- oder On-Demand-Basis.
- Konfigurationsverarbeitung:Verarbeitet optionale Konfigurationsargumente, die von einer Messkampagne konfiguriert werden, wenn Daten generiert werden.
- Metadatendefinition:Beschreibt Ihren Verlag oder Webpublisher, einschließlich des Namens und des Protobuf-
- Daten codieren und decodieren:Bietet Mechanismen zum Konvertieren von Nachrichten und Konfigurationen in das und aus dem Wire-Format.
- Codecs:Enthält integrierte und benutzerdefinierte Codecs für die Serialisierung und Deserialisierung von Daten.
- Registrierung und Lebenszyklus des Publishers:Verwaltet die Verbindung zwischen dem Publisher und dem Telemetriedienst.
Ausführliche Beispiele und vollständige, kompilierbare Anwendungen, die den gesamten Lebenszyklus demonstrieren, finden Sie in den entsprechenden README.md-Dateien im Quellbaum:
Java-Bibliothek:
system/software_defined_vehicle/telemetry/sdk/java/configurable_publisher_registry/README.mdJava-Beispiel:
samples/telemetry/publishers/java/sample_ivi_sdk_publisher/README.mdRust-Bibliothek:
system/software_defined_vehicle/telemetry/sdk/rust/configurable_publisher_registry/README.mdRust-Beispiel:
samples/telemetry/publishers/rust/sample_getter_publisher/README.md