paint-brush
Произведите революцию в разработке автомобильного программного обеспечения с помощью gRPC API RemotiveBrokerк@remotivelabs
283 чтения

Произведите революцию в разработке автомобильного программного обеспечения с помощью gRPC API RemotiveBroker

к RemotiveLabs3m2024/04/16
Read on Terminal Reader

Слишком долго; Читать

API RemotiveBroker gRPC позволяет разработчикам эффективно создавать и тестировать автомобильное программное обеспечение. Он поддерживает несколько языков программирования и предоставляет простую оболочку Python и заглушки gRPC через общедоступный репозиторий GitHub. Этот API позволяет считывать и записывать данные сигналов автомобиля, применимые как к настройкам живых, так и записанных данных. Процесс начинается всего с трех строк кода для настройки RemotiveBroker с использованием Docker. Кроме того, платформа интегрируется с RemotiveCloud для масштабирования усилий по разработке, поддержки общих автомобильных сетей и использования HTTP/2 для снижения задержек и пропускной способности сети. В статье также упоминаются доступные заглушки TypeScript и JavaScript для gRPC-web и поощряется вклад сообщества посредством запросов на включение.
featured image - Произведите революцию в разработке автомобильного программного обеспечения с помощью gRPC API RemotiveBroker
RemotiveLabs HackerNoon profile picture
0-item
1-item


Познакомьтесь с API gRPC RemotiveBroker и узнайте, как он упрощает создание прототипов, создание и тестирование автомобильного программного обеспечения. Создавайте программное обеспечение так, как вы хотите, и на языке программирования по вашему выбору. Мы упрощаем задачу с помощью оболочки Python и заглушек gRPC, доступных в общедоступном репозитории на нашем GitHub.

Делайте все с помощью нашего API gRPC

Хотите создать быстрый прототип с помощью Python? Вас интересует Раст? API RemotiveBroker gRPC можно использовать для чтения и записи данных сигналов транспортного средства на выбранном вами языке. Это означает, что вы можете использовать предпочитаемые вами инструменты для быстрого создания приложений, которые зависят от реальных данных сигналов транспортных средств. Имея простую конфигурацию и файл базы данных сигналов, вы можете сразу приступить к работе с записанными данными или внутри физического транспортного средства с живыми данными.


Используйте один и тот же API независимо от того, работаете ли вы с записанными или реальными данными, напишите свое приложение один раз и протестируйте его на своем рабочем столе и в автомобиле! Вы можете повторно использовать ранее записанные ездовые циклы, например, при детерминированном тестировании ЭБУ или при создании прототипов графических пользовательских интерфейсов. Как только вы будете удовлетворены своей работой, вы можете, в истинном духе сдвига влево, перенести ее на испытательный стенд или на физическое транспортное средство, зная, что код был протестирован.


В сочетании с нашей платформой для совместной работы RemotiveCloud вы можете быстро масштабировать свои усилия по разработке с помощью нескольких виртуализированных RemotiveBrokers!


Начните с трех строк кода

Запустите RemotiveBroker с помощью трех строк кода:


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


Попробуйте нашу бесплатную 3-минутную демонстрацию или ознакомьтесь с некоторыми нашими материалами на Github, например API , простыми примерами , интеграцией ProtoPie ) и перейдите в репозиторий для запуска загрузочного RemotiveBroker на рабочем столе .


Что такое RemotiveBroker?

RemotiveBroker — это гибкий инструмент разработчика, который подходит для большинства систем. он предоставляет данные сигнала транспортного средства через API-интерфейс gRPC публикации/подписки. Мы поддерживаем наиболее распространенные автомобильные сети, такие как CAN, Flexray, LIN и Automotive Ethernet, поддерживаемые форматами .dbx, .xml (fibex), .ldf и .arxml. Мы также доказали защиту E2E.


Сделайте это еще проще с помощью оболочек API и заглушек gRPC.

У нас есть общедоступный репозиторий для наших оберток и заглушек. Любой желающий может отправить запрос на включение с оболочкой на своем любимом языке. Начните работу с нашими файлами прототипов gRPC. Наша цель — сделать оболочки и заглушки/клиенты доступными для всех.


Преимущества gRPC

Учитывая простую конфигурацию, RemotiveBroker предоставит API-интерфейс gRPC, который позволит вам контролировать ситуацию. Благодаря широкой языковой поддержке gRPC вы можете использовать то, что предпочитаете, например Node.js, Ruby, C# или Kotlin. gRPC использует HTTP/2 и формат двоичных сообщений, что помогает уменьшить пропускную способность сети и уменьшить задержку. Это позволяет нашему RemotiveBroker отправлять большие объемы данных в режиме реального времени, как в случае высокоскоростных CAN & CAN-FD или FlexRay.


Python-обертка

У нас есть API-оболочка Python для подмножества API RemotiveBroker , что еще больше упрощает создание приложений. Он также доступен для простой установки через индекс пакетов 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 в наших веб-клиентах, у нас есть заглушки/клиенты Typescript и Javascript, доступные для grpc-web. Он также доступен через 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 , чтобы не пропустить более полезный контент для разработчиков.

Если у вас есть пожелания или мысли о том, что нам следует развивать дальше, не будьте чужаком!