कॉन्फ़िगर की जा सकने वाली पब्लिशर रजिस्ट्री लाइब्रेरी की मदद से, टेलीमेट्री के लिए कस्टम पब्लिशर बनाए जा सकते हैं. साथ ही, उन्हें कॉन्फ़िगर की जा सकने वाली पब्लिशर रजिस्ट्री के ज़रिए, टेलीमेट्री सेवा के साथ रजिस्टर किया जा सकता है. यह लाइब्रेरी, पहले से मौजूद बाइंडर इंटरफ़ेस के साथ-साथ डेटा को क्रम से लगाने और क्रम से हटाने की प्रोसेस को भी ऐब्स्ट्रैक्ट करती है.
एपीआई सरफ़ेस की खास जानकारी
यह लाइब्रेरी, पहले से मौजूद कॉन्फ़िगर की जा सकने वाली पब्लिशर रजिस्ट्री के साथ इंटरैक्ट करने के लिए, Java और Rust में भाषा के हिसाब से इंटरफ़ेस उपलब्ध कराती है. यह लाइब्रेरी, इन कामों के लिए ज़िम्मेदार है:
- पब्लिशर की परिभाषा: Java में बेस क्लास या Rust में ट्रेट उपलब्ध कराती है, ताकि पब्लिशर के व्यवहार को तय किया जा सके.
- मेटाडेटा की परिभाषा: आपके पब्लिशर के बारे में जानकारी देती है. इसमें उसका नाम और protobuf
FileDescriptorSetशामिल है, जो पब्लिश किए गए मैसेज तय करता है. ज़्यादा जानकारी के लिए, सेल्फ़-डिस्क्राइबिंग मैसेज देखें. अगर Java का इस्तेमाल किया जाता है, तो Java protobuf डिस्क्रिप्टर जनरेटर टूल, protobuf डिस्क्रिप्टर मेटाडेटा जनरेट करने में आपकी मदद कर सकता है. - डेटा जनरेट करना: सदस्यता के आधार पर या मांग पर डेटा जनरेट करने की लॉजिक को मैनेज करता है.
- कॉन्फ़िगरेशन को मैनेज करना: डेटा जनरेट करते समय, मेट्रिक कैंपेन के ज़रिए कॉन्फ़िगर किए गए, कॉन्फ़िगरेशन के वैकल्पिक आर्ग्युमेंट को प्रोसेस करता है.
- मेटाडेटा की परिभाषा: आपके पब्लिशर के बारे में जानकारी देती है. इसमें उसका नाम और protobuf
- डेटा को एनकोड और डिकोड करना: मैसेज और कॉन्फ़िगरेशन को वायर फ़ॉर्मैट में बदलने और वायर फ़ॉर्मैट से वापस लाने के लिए, मैकेनिज़्म उपलब्ध कराता है.
- कोडेक: डेटा को क्रम से लगाने और क्रम से हटाने के लिए, बिल्ट-इन और कस्टम कोडेक शामिल हैं.
- पब्लिशर को रजिस्टर करना और उसकी लाइफ़साइकल: पब्लिशर और टेलीमेट्री सेवा के बीच कनेक्शन को मैनेज करता है.
ज़्यादा जानकारी वाले सैंपल और पूरी तरह से कंपाइल किए जा सकने वाले ऐप्लिकेशन देखने के लिए, सोर्स ट्री में मौजूद README.md फ़ाइलें देखें. इनमें पूरी लाइफ़साइकल के बारे में बताया गया है:
Java लाइब्रेरी:
system/software_defined_vehicle/telemetry/sdk/java/configurable_publisher_registry/README.mdJava सैंपल:
samples/telemetry/publishers/java/sample_ivi_sdk_publisher/README.mdRust लाइब्रेरी:
system/software_defined_vehicle/telemetry/sdk/rust/configurable_publisher_registry/README.mdRust सैंपल:
samples/telemetry/publishers/rust/sample_getter_publisher/README.md