SOME/IP ट्रांसलेशन को इस तरह से डिज़ाइन किया गया है कि यह AUTOSAR सेवाओं के साथ इंटिग्रेट करने के लिए, अपडेट किया जा सकने वाला समाधान उपलब्ध करा सके. ब्रोकर के लिए मुख्य चुनौती, उन मैसेज और आरपीसी कॉल का अनुवाद करना था जिनके बारे में कंपाइलेशन के समय पता नहीं था. इस समस्या को हल करने के लिए, रनटाइम अपडेट में SDV सेवाओं के डाइनैमिक तौर पर जोड़े जाने या अपडेट किए जाने की सुविधा होती है. यह सुविधा, नई यूनिट टाइप को जोड़ने की सुविधा की तरह ही होती है.
डाइनैमिक ट्रांसलेशन के लिए, रनटाइम टाइप इन्फ़ॉर्मेशन (आरटीटीआई) का इस्तेमाल किया जाता है. ब्रोकर, इंस्टॉल किए गए सभी सेवा बंडलों से कॉन्फ़िगरेशन का इस्तेमाल करता है. साथ ही, उस कॉन्फ़िगरेशन से डेटा स्कीम का इस्तेमाल करके, रिफ़्लेक्शन के आधार पर अनुवाद करता है.
आरटीटीआई पर आधारित अनुवाद की सुविधा में बदलाव किया जा सकता है. हालांकि, यह पहले से कंपाइल किए गए तरीकों की तुलना में धीमी होती है. ज़्यादा लोड वाले डेटा पाथ को ऑप्टिमाइज़ करने के लिए, ऐसी तकनीक का इस्तेमाल करें जो अनुवाद को बायपास करती हो.
ज़्यादा और बार-बार भेजे जाने वाले मैसेज को प्रोसेस करने के लिए, SDV आपको अनुवाद की प्रोसेस को बायपास करने की सुविधा देता है. साथ ही, SOME/IP फ़ॉर्मैट किए गए बाइट को उपभोक्ता सेवा बंडलों को फ़ॉरवर्ड करने की सुविधा देता है.
यह सेवा बंडल, SOME/IP फ़ॉर्मैट वाले पेलोड को मैनेज करता है. यह पेलोड का इस्तेमाल कर सकता है या उसे protobuf में बदल सकता है.
अनुवाद को बायपास करने के लिए, SOME/IP मैपिंग फ़ाइल में इवेंट के लिए message_translation_mode: INTERPRET_AS_BYTES तय करें. samples/some_ip/catalog/integration_test/byte_forward_someip.vsidl में इसका उदाहरण देखें.
अनुवाद के तरीके से जुड़ी कमियां
अनुवाद करने का तरीका चुनते समय, इन बातों का ध्यान रखें:
सिस्टम इंटरैक्शन: एसडीवी की अन्य सेवाएं, रॉ फ़ॉर्मैट की जानकारी के बिना SOME/IP फ़ॉर्मैट में फ़ॉरवर्ड किए गए बाइट को नहीं समझ सकतीं. उदाहरण के लिए, SDV Telemetry ऐसे मैसेज के अलग-अलग फ़ील्ड को प्रोसेस नहीं कर सकता.
ज़्यादा मेहनत: SOME/IP फ़ॉर्मैट में रॉ पेलोड का अनुवाद करने के लिए, सेवा बंडल डेवलपर को ज़्यादा मेहनत करनी पड़ती है.
लाइब्रेरी जनरेटर
SDV, SOME/IP फ़ॉर्मैट का अनुवाद करने के लिए, अपने-आप काम करने वाला जनरेटर उपलब्ध कराता है. यह जनरेटर, उपलब्ध मैसेज डेफ़िनिशन और मैपिंग के आधार पर लाइब्रेरी बनाता है. इससे सीधे तौर पर अनुवाद किया जा सकता है. ऐसे सर्विस बंडल जो फ़ॉरवर्ड किए गए SOME/IP बाइट का इस्तेमाल करते हैं वे जनरेट की गई लाइब्रेरी का इस्तेमाल कर सकते हैं.
सुझाव: जनरेटर का इस्तेमाल सिर्फ़ तब करें, जब आपका ओईएम परफ़ॉर्मेंस के लिए ज़रूरी ऐसे इवेंट की पहचान करता है जिन्हें आपके प्रोजेक्ट की परफ़ॉर्मेंस से जुड़ी ज़रूरी शर्तों के तहत अनुवादित नहीं किया जा सकता. ऐसे मामलों में, आपके ओईएम के पास पहले से ही प्रोटोबफ़ डेफ़िनिशन और SOME/IP मैपिंग होनी चाहिए. इनका इस्तेमाल, आरटीटीआई पर आधारित अनुवाद के लिए किया जाता है. इस कॉन्फ़िगरेशन का इस्तेमाल, जनरेटर के लिए इनपुट के तौर पर किया जा सकता है. ज़्यादा जानकारी के लिए, README.md डायरेक्ट्री में मौजूद README.md फ़ाइल देखें.core_services/tools/someip_translation_generator/