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를 설정하기 위한 단 세 줄의 코드로 시작됩니다. 또한 이 플랫폼은 개발 노력을 확장하고 일반 차량 네트워크를 지원하며 HTTP/2를 활용하여 지연 시간과 네트워크 대역폭을 줄이기 위해 RemotiveCloud와 통합됩니다. 또한 이 기사에서는 gRPC-web에 사용 가능한 TypeScript 및 JavaScript 스텁을 언급하고 끌어오기 요청을 통해 커뮤니티 기여를 장려합니다.
featured image - RemotiveBroker의 gRPC API로 자동차 소프트웨어 개발에 혁명을 일으키세요
RemotiveLabs HackerNoon profile picture
0-item
1-item


RemotiveBroker의 gRPC API와 이것이 자동차 소프트웨어 프로토타입 제작, 구축 및 테스트를 단순화하는 방법에 대해 알아보세요. 원하는 방식과 선택한 프로그래밍 언어 로 소프트웨어를 구축하세요. GitHub의 공개 저장소에서 제공되는 Python 래퍼와 gRPC 스텁을 사용하면 작업이 더 쉬워집니다.

gRPC API로 작업 수행

Python을 사용하여 빠른 프로토타입을 만들고 싶으십니까? 러스트에 관심이 있으세요? RemotiveBroker gRPC API를 사용하면 선택한 언어로 차량 신호 데이터를 읽고 쓸 수 있습니다. 즉, 선호하는 도구를 사용하여 실제 차량 신호 데이터에 의존하는 애플리케이션을 신속하게 구축할 수 있다는 의미입니다. 간단한 구성과 신호 데이터베이스 파일만 있으면 기록된 데이터로 즉시 작업을 시작하거나 실제 차량 내부에서 실시간 데이터로 작업을 시작할 수 있습니다.


기록된 데이터 또는 라이브 데이터로 작업하는지 여부에 관계없이 동일한 API를 사용하고, 애플리케이션을 한 번 작성하고 데스크톱과 차량 내부에서 테스트하세요! 예를 들어 결정론적 ECU 테스트 설정에서 또는 그래픽 사용자 인터페이스 프로토타입을 제작할 때 이전에 기록된 드라이브 사이클을 재사용할 수 있습니다. 작업에 만족하면 진정한 Shift-Left 정신으로 코드가 테스트되었음을 알고 테스트 장비나 실제 차량으로 가져갈 수 있습니다.


협업 플랫폼인 RemotiveCloud 와 함께 사용하면 여러 개의 가상화된 RemotiveBroker를 사용하여 개발 노력을 빠르게 확장할 수 있습니다!


세 줄의 코드로 시작하기

세 줄의 코드로 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 보호도 입증했습니다.


API 래퍼와 gRPC 스텁을 사용하면 더욱 쉬워집니다.

래퍼와 스텁을 위한 공개 저장소가 있습니다. 누구나 자신이 선호하는 언어로 래퍼를 사용하여 끌어오기 요청을 제출할 수 있습니다. gRPC proto 파일을 시작해 보세요. 우리의 목표는 모든 사람이 래퍼와 스텁/클라이언트를 사용할 수 있도록 하는 것입니다.


gRPC의 장점

간단한 구성을 통해 RemotiveBroker는 사용자가 제어할 수 있는 gRPC API를 노출합니다. gRPC의 광범위한 언어 지원을 통해 Node.js, Ruby, C# 또는 Kotlin과 같이 원하는 것을 사용할 수 있습니다. gRPC는 HTTP/2 및 바이너리 메시지 형식을 활용하므로 네트워크 대역폭을 줄이고 대기 시간을 줄이는 데 도움이 됩니다. 이를 통해 RemotiveBroker는 고속 CAN 및 CAN-FD 또는 FlexRay의 경우처럼 실시간으로 대량의 데이터를 전송할 수 있습니다.


파이썬 래퍼

RemotiveBroker API의 하위 집합에 대한 Python 래퍼 API가 있어 애플리케이션을 더욱 쉽게 구축할 수 있습니다. Python Package Index를 통해 쉽게 설치할 수도 있습니다. 이 래퍼 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 에서 팔로우하세요.

우리가 다음에 개발해야 할 것에 대한 소망이나 생각이 있다면 낯선 사람이 되지 마십시오!