paint-brush
Revolucione el desarrollo de software automotriz con la API gRPC de RemotiveBrokerpor@remotivelabs
269 lecturas

Revolucione el desarrollo de software automotriz con la API gRPC de RemotiveBroker

por RemotiveLabs3m2024/04/16
Read on Terminal Reader

Demasiado Largo; Para Leer

La API gRPC de RemotiveBroker permite a los desarrolladores crear y probar software automotriz de manera eficiente. Admite múltiples lenguajes de programación y proporciona un contenedor Python simple y códigos auxiliares de gRPC a través de un repositorio público de GitHub. Esta API permite leer y escribir datos de señales del vehículo, aplicables a configuraciones de datos tanto en vivo como grabados. El proceso comienza con solo tres líneas de código para configurar RemotiveBroker usando Docker. Además, la plataforma se integra con RemotiveCloud para escalar los esfuerzos de desarrollo, admitir redes de vehículos comunes y aprovechar HTTP/2 para reducir la latencia y el ancho de banda de la red. El artículo también menciona códigos auxiliares de TypeScript y JavaScript disponibles para gRPC-web y fomenta las contribuciones de la comunidad a través de solicitudes de extracción.
featured image - Revolucione el desarrollo de software automotriz con la API gRPC de RemotiveBroker
RemotiveLabs HackerNoon profile picture
0-item
1-item


Conozca la API gRPC de RemotiveBroker y cómo simplifica la creación de prototipos, la creación y las pruebas de software automotriz. Cree software de la manera que desee y en el lenguaje de programación de su elección. Hacemos las cosas más fáciles con un contenedor de Python y los códigos auxiliares de gRPC disponibles en un repositorio público en nuestro GitHub.

Haga todo lo que pueda con nuestra API gRPC

¿Quieres hacer un prototipo rápido usando Python? ¿Interesado en Rust? La API gRPC de RemotiveBroker se puede utilizar para leer y escribir datos de señales de vehículos en el idioma que elija. Esto significa que puede utilizar las herramientas que prefiera para crear rápidamente aplicaciones que dependan de datos reales de señales del vehículo. Con una configuración simple y un archivo de base de datos de señales, puede comenzar a trabajar de inmediato con datos registrados o dentro de un vehículo físico con datos en vivo.


Utilice la misma API independientemente de si está trabajando con datos grabados o en vivo, escriba su aplicación una vez y pruébela en su escritorio y dentro de un vehículo. Puede reutilizar ciclos de conducción registrados previamente, por ejemplo, en una configuración de prueba determinista de la ECU o al crear prototipos de interfaces gráficas de usuario. Una vez que esté satisfecho con su trabajo, puede, con un verdadero espíritu de cambio a la izquierda, llevarlo a un banco de pruebas o a un vehículo físico sabiendo que el código ha sido probado.


¡Junto con nuestra plataforma de colaboración, RemotiveCloud , puede ampliar rápidamente sus esfuerzos de desarrollo con múltiples RemotiveBrokers virtualizados!


Comience con tres líneas de código

Inicie un RemotiveBroker con tres líneas de código:


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


Pruebe nuestra demostración gratuita de 3 minutos o consulte algunas de nuestras cosas en Github (por ejemplo, API , muestras simples , integración de ProtoPie ) y vaya al repositorio para ejecutar Bootstrap RemotiveBroker en su escritorio .


¿Qué es un RemotiveBroker?

RemotiveBroker es una herramienta de desarrollo flexible que se adapta a la mayoría de las configuraciones. expone datos de señales del vehículo a través de una API gRPC pub/sub. Admitimos las redes de vehículos más comunes, como CAN, Flexray, LIN y Automotive Ethernet, habilitadas por .dbx, .xml (fibex), .ldf y .arxml. También probamos la protección E2E.


Hazlo aún más fácil con contenedores de API y apéndices de gRPC

Tenemos un repositorio público para nuestros contenedores y talones. Cualquiera puede enviar una solicitud de extracción con un contenedor en su idioma favorito y comenzar con nuestros archivos de protocolo gRPC. Nuestra ambición es tener envoltorios y stubs/clientes disponibles para todos.


Ventajas de gRPC

Dada una configuración simple, RemotiveBroker expondrá una API gRPC que le da el control. Con el amplio soporte de lenguajes que tiene gRPC, puedes usar el que prefieras, por ejemplo, Node.js, Ruby, C# o Kotlin. gRPC aprovecha HTTP/2 y un formato de mensaje binario, lo que ayuda a reducir el ancho de banda de la red y disminuir la latencia. Esto permite a nuestro RemotiveBroker enviar grandes cantidades de datos en tiempo real, como en el caso de CAN y CAN-FD o FlexRay de alta velocidad.


Envoltorio de Python

Tenemos una API contenedora de Python para un subconjunto de la API RemotiveBroker para facilitar aún más la creación de aplicaciones. También está disponible para una fácil instalación a través del índice de paquetes de Python. Esta API contenedora facilita la realización de operaciones comunes, como conectarse a un RemotiveBroker y configurar suscripciones de datos de señales de vehículos.


Conéctese a un RemotiveBroker y configure una suscripción de señal:

 # 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)


Clientes/stubs de TypeScript y Javascript

Dado que estamos trabajando con gRPC-web en nuestros clientes web, tenemos apéndices/clientes de Typecript y Javascript disponibles para grpc-web. También está disponible a través de npm/yarn . Si bien no es tan útil como una API contenedora adecuada, los códigos auxiliares/clientes son necesarios cuando se trabaja con gRPC. Sin embargo, basta con mirar los resguardos para explorar la API.


Suscríbase a la distribución de frecuencia de cuadros:

 // Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)


Nuestras herramientas y API están en constante evolución.

Síganos en GitHub y LinkedIn para no perderse más contenido útil para desarrolladores.

Si tiene deseos o ideas sobre lo que deberíamos desarrollar a continuación, ¡no sea un extraño!