RemotiveBroker의 gRPC API와 이것이 자동차 소프트웨어 프로토타입 제작, 구축 및 테스트를 단순화하는 방법에 대해 알아보세요. 원하는 방식과 선택한 프로그래밍 언어 로 소프트웨어를 구축하세요. GitHub의 공개 저장소에서 제공되는 Python 래퍼와 gRPC 스텁을 사용하면 작업이 더 쉬워집니다.
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 보호도 입증했습니다.
래퍼와 스텁을 위한 공개 저장소가 있습니다. 누구나 자신이 선호하는 언어로 래퍼를 사용하여 끌어오기 요청을 제출할 수 있습니다. gRPC proto 파일을 시작해 보세요. 우리의 목표는 모든 사람이 래퍼와 스텁/클라이언트를 사용할 수 있도록 하는 것입니다.
간단한 구성을 통해 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)
웹 클라이언트에서 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 에서 팔로우하세요.
우리가 다음에 개발해야 할 것에 대한 소망이나 생각이 있다면 낯선 사람이 되지 마십시오!