RemotiveBroker-এর gRPC API জানুন এবং এটি কীভাবে প্রোটোটাইপিং, বিল্ডিং এবং স্বয়ংচালিত সফ্টওয়্যার পরীক্ষাকে সহজ করে। আপনি যেভাবে চান এবং আপনার পছন্দের প্রোগ্রামিং ভাষায় সফ্টওয়্যার তৈরি করুন। আমরা পাইথন র্যাপার এবং আমাদের GitHub-এ একটি পাবলিক রেপোতে উপলব্ধ gRPC স্টাবগুলির সাহায্যে জিনিসগুলিকে আরও সহজ করি৷
পাইথন ব্যবহার করে একটি দ্রুত প্রোটোটাইপ করতে চান? মরিচা আগ্রহী? RemotiveBroker gRPC API আপনার পছন্দের ভাষায় যানবাহনের সিগন্যাল ডেটা পড়তে এবং লিখতে ব্যবহার করা যেতে পারে। এর মানে হল যে আপনি যে সরঞ্জামগুলিকে পছন্দ করেন সেগুলি ব্যবহার করতে পারেন দ্রুত অ্যাপ্লিকেশন তৈরি করতে যা আসল গাড়ির সংকেত ডেটার উপর নির্ভর করে৷ একটি সাধারণ কনফিগারেশন এবং একটি সিগন্যাল ডাটাবেস ফাইল দেওয়া হলে, আপনি এখনই রেকর্ড করা ডেটা বা লাইভ ডেটা সহ একটি ভৌত গাড়ির ভিতরে কাজ করতে পারেন।
আপনি যদি রেকর্ড করা বা লাইভ ডেটা নিয়ে কাজ করেন তা নির্বিশেষে একই API ব্যবহার করুন, একবার আপনার অ্যাপ্লিকেশনটি লিখুন এবং এটি আপনার ডেস্কটপে এবং একটি গাড়ির ভিতরে পরীক্ষা করুন! আপনি পূর্বে রেকর্ড করা ড্রাইভ চক্র পুনঃব্যবহার করতে পারেন, যেমন একটি ডিটারমিনিস্টিক ECU টেস্টিং সেটআপে বা গ্রাফিক্যাল ইউজার ইন্টারফেস প্রোটোটাইপ করার সময়। একবার আপনি আপনার কাজের সাথে সন্তুষ্ট হয়ে গেলে, আপনি সত্যিকারের শিফট-বাম চেতনায়, কোডটি পরীক্ষা করা হয়েছে জেনে এটিকে একটি পরীক্ষামূলক রিগ বা শারীরিক যানবাহনে আনতে পারেন।
আমাদের সহযোগিতার প্ল্যাটফর্ম, RemotiveCloud- এর সাথে যুক্ত, আপনি একাধিক ভার্চুয়ালাইজড RemotiveBrokers-এর সাহায্যে আপনার উন্নয়ন প্রচেষ্টা দ্রুত বাড়াতে পারেন!
কোডের তিনটি লাইন দিয়ে একটি RemotiveBroker শুরু করুন:
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
আমাদের বিনামূল্যের 3-মিনিটের ডেমো ব্যবহার করে দেখুন বা Github-এ আমাদের কিছু জিনিস দেখুন, যেমন APIs , সাধারণ নমুনা , ProtoPie ইন্টিগ্রেশন ) এবং আপনার ডেস্কটপে বুটস্ট্র্যাপ RemotiveBroker চালানোর জন্য রেপোতে যান।
RemotiveBroker হল একটি নমনীয় ডেভেলপার টুল যা বেশিরভাগ সেটআপে ফিট করে। এটি একটি পাব/সাব gRPC API এর মাধ্যমে গাড়ির সংকেত ডেটা প্রকাশ করে। আমরা CAN, Flexray, LIN, এবং অটোমোটিভ ইথারনেট-এর মতো সবচেয়ে সাধারণ যানবাহন নেটওয়ার্ক সমর্থন করি – .dbx, .xml (fibex), .ldf এবং .arxml দ্বারা সক্ষম৷ আমরা E2E সুরক্ষাও প্রমাণ করেছি।
আমাদের মোড়ক এবং স্টাবগুলির জন্য আমাদের একটি পাবলিক রেপো আছে। যে কেউ তাদের প্রিয় ভাষায় একটি মোড়ক সহ একটি পুল অনুরোধ জমা দিতে স্বাগত জানাই, আমাদের gRPC প্রোটো ফাইলগুলি দিয়ে শুরু করুন৷ আমাদের উচ্চাকাঙ্ক্ষা হল র্যাপার এবং স্টাব/ক্লায়েন্ট সবার জন্য উপলব্ধ।
একটি সাধারণ কনফিগারেশন দেওয়া হলে, RemotiveBroker একটি gRPC API প্রকাশ করবে যা আপনাকে নিয়ন্ত্রণে রাখে। GRPC-এর যে বিস্তৃত ভাষা সমর্থন রয়েছে তা দিয়ে আপনি যা পছন্দ করেন তা ব্যবহার করতে পারেন, যেমন Node.js, Ruby, C# বা Kotlin। gRPC HTTP/2 এবং একটি বাইনারি বার্তা বিন্যাস ব্যবহার করে, এটি নেটওয়ার্ক ব্যান্ডউইথ কমাতে এবং লেটেন্সি কমাতে সাহায্য করে। এটি আমাদের রিমোটিভ ব্রোকারকে রিয়েল-টাইমে প্রচুর পরিমাণে ডেটা পাঠাতে দেয়, যেমন উচ্চ-গতির CAN & CAN-FD বা FlexRay-এর ক্ষেত্রে।
অ্যাপ্লিকেশন তৈরি করা আরও সহজ করার জন্য আমাদের কাছে RemotiveBroker API-এর একটি উপসেটের জন্য একটি পাইথন র্যাপার API রয়েছে। এটি পাইথন প্যাকেজ সূচকের মাধ্যমে সহজে ইনস্টলেশনের জন্য উপলব্ধ। এই মোড়ক API এটি একটি RemotiveBroker সাথে সংযোগ এবং গাড়ির সংকেত ডেটা সাবস্ক্রিপশন সেট আপ করার মত সাধারণ ক্রিয়াকলাপগুলিকে সহজ করে তোলে৷
একটি RemotiveBroker এর সাথে সংযোগ করুন এবং একটি সংকেত সদস্যতা সেট আপ করুন:
# 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-ওয়েবের জন্য উপলব্ধ রয়েছে। এটি এনপিএম/সুতার মাধ্যমেও পাওয়া যায়। সঠিক র্যাপার API-এর মতো উপযোগী না হলেও, gRPC-এর সাথে কাজ করার সময় স্টাব/ক্লায়েন্টের প্রয়োজন হয়। যাইহোক, এপিআই অন্বেষণ করার সময় শুধুমাত্র স্টাবগুলির দিকে তাকানো সহায়ক।
ফ্রেম ফ্রিকোয়েন্সি বিতরণে সদস্যতা নিন:
// Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)
আমাদের টুলিং এবং API ক্রমাগত বিকশিত হয়.
আরও সহায়ক ডেভেলপার সামগ্রী মিস না করতে GitHub এবং LinkedIn- এ আমাদের অনুসরণ করুন।
আমাদের পরবর্তী বিকাশের জন্য যদি আপনার ইচ্ছা বা চিন্তা থাকে তবে অপরিচিত হবেন না!