Konfigurierbare Publisher Registry-Bibliothek

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.
  • 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.md

  • Java-Beispiel: samples/telemetry/publishers/java/sample_ivi_sdk_publisher/README.md

  • Rust-Bibliothek: system/software_defined_vehicle/telemetry/sdk/rust/configurable_publisher_registry/README.md

  • Rust-Beispiel: samples/telemetry/publishers/rust/sample_getter_publisher/README.md