रिमोटिवब्रोकर के gRPC API को जानें और जानें कि यह प्रोटोटाइपिंग, ऑटोमोटिव सॉफ़्टवेयर का निर्माण और परीक्षण कैसे सरल बनाता है। अपनी पसंद की प्रोग्रामिंग भाषा में और अपनी पसंद के अनुसार सॉफ़्टवेयर बनाएँ। हम अपने GitHub पर एक सार्वजनिक रेपो में उपलब्ध पायथन रैपर और gRPC स्टब्स के साथ चीजों को आसान बनाते हैं।
क्या आप Python का उपयोग करके एक त्वरित प्रोटोटाइप बनाना चाहते हैं? Rust में रुचि रखते हैं? RemotiveBroker gRPC API का उपयोग आपकी पसंद की भाषा में वाहन सिग्नल डेटा को पढ़ने और लिखने के लिए किया जा सकता है। इसका मतलब है कि आप अपने पसंदीदा टूल का उपयोग करके ऐसे एप्लिकेशन बना सकते हैं जो वास्तविक वाहन सिग्नल डेटा पर निर्भर करते हैं। एक सरल कॉन्फ़िगरेशन और सिग्नल डेटाबेस फ़ाइल दिए जाने पर, आप रिकॉर्ड किए गए डेटा के साथ या लाइव डेटा के साथ भौतिक वाहन के अंदर तुरंत काम करना शुरू कर सकते हैं।
चाहे आप रिकॉर्ड किए गए या लाइव डेटा के साथ काम कर रहे हों, एक ही API का उपयोग करें, अपना एप्लिकेशन एक बार लिखें और इसे अपने डेस्कटॉप पर और वाहन के अंदर परीक्षण करें! आप पहले से रिकॉर्ड किए गए ड्राइव चक्रों का पुनः उपयोग कर सकते हैं, उदाहरण के लिए एक नियतात्मक ECU परीक्षण सेटअप में या ग्राफ़िकल उपयोगकर्ता इंटरफ़ेस का प्रोटोटाइप बनाते समय। एक बार जब आप अपने काम से संतुष्ट हो जाते हैं, तो आप एक सच्ची शिफ्ट-लेफ्ट भावना में, इसे एक परीक्षण रिग या भौतिक वाहन में ला सकते हैं, यह जानते हुए कि कोड का परीक्षण किया गया है।
हमारे सहयोग मंच, रिमोटाइवक्लाउड के साथ मिलकर, आप कई वर्चुअलाइज्ड रिमोटाइवब्रोकर्स के साथ अपने विकास प्रयासों को तेजी से बढ़ा सकते हैं!
तीन पंक्तियों के कोड के साथ रिमोटिवब्रोकर प्रारंभ करें:
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
हमारे मुफ्त 3 मिनट के डेमो को आज़माएं या गिटहब पर हमारे कुछ सामान की जांच करें, जैसे एपीआई , सरल नमूने , प्रोटोपाई एकीकरण ) और अपने डेस्कटॉप पर बूटस्ट्रैप रिमोटब्रोकर चलाने के लिए रेपो पर जाएं।
रिमोटब्रोकर एक लचीला डेवलपर टूल है जो अधिकांश सेटअप में फिट बैठता है। यह पब/सब जीआरपीसी एपीआई के माध्यम से वाहन सिग्नल डेटा को उजागर करता है। हम CAN, Flexray, LIN, और ऑटोमोटिव ईथरनेट जैसे सबसे आम वाहन नेटवर्क का समर्थन करते हैं - .dbx, .xml (fibex), .ldf और .arxml द्वारा सक्षम। हमने E2E सुरक्षा भी साबित की है।
हमारे पास रैपर और स्टब्स के लिए एक सार्वजनिक रेपो है। कोई भी व्यक्ति अपनी पसंदीदा भाषा में रैपर के साथ पुल अनुरोध सबमिट कर सकता है, हमारी gRPC प्रोटो फ़ाइलों के साथ आरंभ करें। हमारी महत्वाकांक्षा है कि रैपर और स्टब्स/क्लाइंट सभी के लिए उपलब्ध हों।
एक सरल कॉन्फ़िगरेशन के साथ, RemotiveBroker एक gRPC API प्रदर्शित करेगा जो आपको नियंत्रण में रखता है। gRPC के पास मौजूद व्यापक भाषा समर्थन के साथ आप अपनी पसंद का उपयोग कर सकते हैं, जैसे कि Node.js, Ruby, C# या Kotlin। gRPC HTTP/2 और बाइनरी संदेश प्रारूप का लाभ उठाता है, इससे नेटवर्क बैंडविड्थ को कम करने और विलंबता को कम करने में मदद मिलती है। यह हमारे RemotiveBroker को वास्तविक समय में बड़ी मात्रा में डेटा भेजने की अनुमति देता है, जैसे कि हाई-स्पीड CAN और CAN-FD या FlexRay के मामले में।
हमारे पास रिमोटब्रोकर API के एक उपसमूह के लिए एक पायथन रैपर API है, जिससे एप्लिकेशन बनाना और भी आसान हो जाता है। यह पायथन पैकेज इंडेक्स के माध्यम से आसान इंस्टॉलेशन के लिए भी उपलब्ध है। यह रैपर API रिमोटब्रोकर से कनेक्ट होने और वाहन सिग्नल डेटा सब्सक्रिप्शन सेट अप करने जैसे सामान्य ऑपरेशन करना आसान बनाता है।
रिमोटीवब्रोकर से जुड़ें और सिग्नल सदस्यता सेट अप करें:
# Connect to RemotiveBroker client = Client() client.on_connect = lambda c: print(f"Yay! - connected as {c.client_id} to {c.url}") client.on_signals = lambda signals: print(signals.to_json()) client.connect(url="http://localhost:50051") subscription = client.subscribe( signal_names=["Vehicle.Speed"], namespaces=["vss"], changed_values_only=False)
चूँकि हम अपने वेब क्लाइंट में gRPC-web के साथ काम कर रहे हैं, इसलिए हमारे पास grpc-web के लिए Typescript और Javascript दोनों स्टब्स/क्लाइंट उपलब्ध हैं। यह npm/yarn के ज़रिए भी उपलब्ध है। हालाँकि यह उचित रैपर API जितना उपयोगी नहीं है, लेकिन gRPC के साथ काम करते समय स्टब्स/क्लाइंट की आवश्यकता होती है। हालाँकि, API को एक्सप्लोर करते समय सिर्फ़ स्टब्स को देखना मददगार होता है।
फ़्रेम आवृत्ति वितरण की सदस्यता लें:
// Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)
हमारे उपकरण और एपीआई लगातार विकसित हो रहे हैं।
अधिक उपयोगी डेवलपर सामग्री से वंचित न रहने के लिए हमें GitHub और LinkedIn पर फॉलो करें।
यदि आपके पास कोई इच्छा या विचार है कि हमें आगे क्या विकसित करना चाहिए, तो अजनबी मत बनिए!