RemotiveBroker の gRPC API と、それが自動車ソフトウェアのプロトタイピング、構築、テストを簡素化する方法を学びましょう。ソフトウェアを好きな方法で、好きなプログラミング言語で構築できます。Python ラッパーと、GitHub のパブリック リポジトリで利用できる gRPC スタブを使用すると、作業が簡単になります。
Python を使用して簡単なプロトタイプを作成したいですか? Rust に興味がありますか? RemotiveBroker gRPC API を使用すると、選択した言語で車両信号データを読み書きできます。つまり、好みのツールを使用して、実際の車両信号データに依存するアプリケーションをすばやく構築できます。簡単な構成と信号データベース ファイルがあれば、記録されたデータや実際の車両内でライブ データを使用してすぐに作業を開始できます。
記録されたデータとライブ データのどちらで作業しているかに関係なく、同じ API を使用し、アプリケーションを一度作成してデスクトップと車両内でテストします。たとえば、決定論的な ECU テスト セットアップやグラフィカル ユーザー インターフェイスのプロトタイプ作成時に、以前に記録されたドライブ サイクルを再利用できます。作業に満足したら、真のシフト レフト精神で、コードがテストされていることを確認しながら、テスト リグまたは実際の車両に持ち込むことができます。
当社のコラボレーション プラットフォームRemotiveCloudと組み合わせることで、複数の仮想化された RemotiveBrokers を使用して開発作業を迅速に拡大できます。
3 行のコードで RemotiveBroker を起動します。
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
無料の 3 分間のデモを試すか、Github でAPI 、簡単なサンプル、 ProtoPie 統合などのコンテンツをチェックして、デスクトップでブートストラップ RemotiveBrokerを実行するためのリポジトリにアクセスしてください。
RemotiveBroker は、ほとんどの設定に適合する柔軟な開発ツールです。pub/sub gRPC API を介して車両信号データを公開します。.dbx、.xml (fibex)、.ldf、.arxml によって有効化される、CAN、Flexray、LIN、車載イーサネットなどの最も一般的な車両ネットワークをサポートしています。また、E2E 保護も実証されています。
ラッパーとスタブの公開リポジトリがあります。誰でも、好きな言語でラッパーをプル リクエストとして送信し、gRPC の proto ファイルを使って始めることができます。私たちの目標は、ラッパーとスタブ/クライアントを誰もが利用できるようにすることです。
シンプルな構成であれば、RemotiveBroker は gRPC API を公開して制御できるようにします。gRPC は幅広い言語をサポートしているため、Node.js、Ruby、C#、Kotlin など、お好みの言語を使用できます。gRPC は HTTP/2 とバイナリ メッセージ形式を活用しているため、ネットワーク帯域幅を削減し、レイテンシを短縮できます。これにより、RemotiveBroker は高速 CAN、CAN-FD、FlexRay の場合のように、大量のデータをリアルタイムで送信できます。
アプリケーションの構築をさらに容易にするために、 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)
私たちはウェブクライアントで 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 は常に進化しています。
開発者にとって役立つコンテンツを見逃さないように、 GitHubとLinkedInでフォローしてください。
次に何を開発すべきかについての希望や考えがあれば、遠慮なくお知らせください。