paint-brush
RemotiveBroker の gRPC API で自動車ソフトウェア開発に革命を起こす@remotivelabs
283 測定値

RemotiveBroker の gRPC API で自動車ソフトウェア開発に革命を起こす

RemotiveLabs3m2024/04/16
Read on Terminal Reader

長すぎる; 読むには

RemotiveBroker gRPC API を使用すると、開発者は自動車ソフトウェアを効率的に構築およびテストできます。複数のプログラミング言語をサポートし、パブリック GitHub リポジトリを介してシンプルな Python ラッパーと gRPC スタブを提供します。この API を使用すると、ライブ データ設定と記録データ設定の両方に適用可能な車両信号データの読み取りと書き込みが可能です。プロセスは、Docker を使用して RemotiveBroker を設定するためのわずか 3 行のコードから始まります。さらに、このプラットフォームは RemotiveCloud と統合されているため、開発作業をスケーリングし、一般的な車両ネットワークをサポートし、HTTP/2 を活用してレイテンシとネットワーク帯域幅を削減できます。この記事では、gRPC-web で利用可能な TypeScript および JavaScript スタブについても触れており、プル リクエストを通じてコミュニティへの貢献を奨励しています。
featured image - RemotiveBroker の gRPC API で自動車ソフトウェア開発に革命を起こす
RemotiveLabs HackerNoon profile picture
0-item
1-item


RemotiveBroker の gRPC API と、それが自動車ソフトウェアのプロトタイピング、構築、テストを簡素化する方法を学びましょう。ソフトウェアを好きな方法で、好きなプログラミング言語で構築できます。Python ラッパーと、GitHub のパブリック リポジトリで利用できる gRPC スタブを使用すると、作業が簡単になります。

gRPC APIで作業を完了する

Python を使用して簡単なプロトタイプを作成したいですか? Rust に興味がありますか? RemotiveBroker gRPC API を使用すると、選択した言語で車両信号データを読み書きできます。つまり、好みのツールを使用して、実際の車両信号データに依存するアプリケーションをすばやく構築できます。簡単な構成と信号データベース ファイルがあれば、記録されたデータや実際の車両内でライブ データを使用してすぐに作業を開始できます。


記録されたデータとライブ データのどちらで作業しているかに関係なく、同じ API を使用し、アプリケーションを一度作成してデスクトップと車両内でテストします。たとえば、決定論的な ECU テスト セットアップやグラフィカル ユーザー インターフェイスのプロトタイプ作成時に、以前に記録されたドライブ サイクルを再利用できます。作業に満足したら、真のシフト レフト精神で、コードがテストされていることを確認しながら、テスト リグまたは実際の車両に持ち込むことができます。


当社のコラボレーション プラットフォームRemotiveCloudと組み合わせることで、複数の仮想化された RemotiveBrokers を使用して開発作業を迅速に拡大できます。


3行のコードから始めましょう

3 行のコードで RemotiveBroker を起動します。


 $ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d


無料の 3 分間のデモを試すか、Github でAPI簡単なサンプルProtoPie 統合などのコンテンツをチェックして、デスクトップでブートストラップ RemotiveBrokerを実行するためのリポジトリにアクセスしてください。


RemotiveBroker とは何ですか?

RemotiveBroker は、ほとんどの設定に適合する柔軟な開発ツールです。pub/sub gRPC API を介して車両信号データを公開します。.dbx、.xml (fibex)、.ldf、.arxml によって有効化される、CAN、Flexray、LIN、車載イーサネットなどの最も一般的な車両ネットワークをサポートしています。また、E2E 保護も実証されています。


APIラッパーとgRPCスタブでさらに簡単に

ラッパーとスタブの公開リポジトリがあります。誰でも、好きな言語でラッパーをプル リクエストとして送信し、gRPC の proto ファイルを使って始めることができます。私たちの目標は、ラッパーとスタブ/クライアントを誰もが利用できるようにすることです。


gRPCの利点

シンプルな構成であれば、RemotiveBroker は gRPC API を公開して制御できるようにします。gRPC は幅広い言語をサポートしているため、Node.js、Ruby、C#、Kotlin など、お好みの言語を使用できます。gRPC は HTTP/2 とバイナリ メッセージ形式を活用しているため、ネットワーク帯域幅を削減し、レイテンシを短縮できます。これにより、RemotiveBroker は高速 CAN、CAN-FD、FlexRay の場合のように、大量のデータをリアルタイムで送信できます。


Pythonラッパー

アプリケーションの構築をさらに容易にするために、 RemotiveBroker API のサブセット用の Python ラッパー API を用意しています。また、Python パッケージ インデックスから簡単にインストールすることもできます。このラッパー 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)


Typescript および Javascript スタブ/クライアント

私たちはウェブクライアントで 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)


当社のツールと API は常に進化しています。

開発者にとって役立つコンテンツを見逃さないように、 GitHubLinkedInでフォローしてください。

次に何を開発すべきかについての希望や考えがあれば、遠慮なくお知らせください。