Conheça a API gRPC do RemotiveBroker e como ela simplifica a prototipagem, construção e teste de software automotivo. Crie software da maneira que desejar e na linguagem de programação de sua preferência. Tornamos as coisas mais fáceis com um wrapper Python e os stubs gRPC disponíveis em um repositório público em nosso GitHub.
Quer fazer um protótipo rápido usando Python? Interessado em Ferrugem? A API gRPC do RemotiveBroker pode ser usada para ler e gravar dados de sinais de veículos no idioma de sua escolha. Isso significa que você pode usar as ferramentas de sua preferência para criar rapidamente aplicativos que dependem de dados reais de sinais de veículos. Dada uma configuração simples e um arquivo de banco de dados de sinais, você pode começar a trabalhar imediatamente com dados gravados ou dentro de um veículo físico com dados em tempo real.
Use a mesma API independentemente de estar trabalhando com dados gravados ou ao vivo, escreva seu aplicativo uma vez e teste-o em seu desktop e dentro de um veículo! Você pode reutilizar ciclos de acionamento gravados anteriormente, por exemplo, em uma configuração determinística de testes de ECU ou ao criar protótipos de interfaces gráficas de usuário. Quando estiver satisfeito com seu trabalho, você poderá, com um verdadeiro espírito de mudança para a esquerda, levá-lo para uma plataforma de teste ou veículo físico sabendo que o código foi testado.
Emparelhado com nossa plataforma de colaboração, RemotiveCloud , você pode ampliar rapidamente seus esforços de desenvolvimento com vários RemotiveBrokers virtualizados!
Inicie um RemotiveBroker com três linhas de código:
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
Experimente nossa demonstração gratuita de 3 minutos ou confira algumas de nossas coisas no Github, por exemplo, APIs , amostras simples , integração com ProtoPie ) e acesse o repositório para executar o bootstrap RemotiveBroker em seu desktop .
O RemotiveBroker é uma ferramenta de desenvolvedor flexível que se adapta à maioria das configurações. ele expõe dados de sinal do veículo por meio de uma API gRPC pub/sub. Oferecemos suporte às redes veiculares mais comuns, como CAN, Flexray, LIN e Ethernet automotiva – habilitadas por .dbx, .xml (fibex), .ldf e .arxml. Também comprovamos a proteção E2E.
Temos um repositório público para nossos wrappers e stubs. Qualquer pessoa pode enviar uma solicitação pull com um wrapper em seu idioma favorito. Comece com nossos arquivos proto gRPC. Nossa ambição é ter wrappers e stubs/clientes disponíveis para todos.
Dada uma configuração simples, o RemotiveBroker irá expor uma API gRPC que coloca você no controle. Com o amplo suporte a linguagens que o gRPC possui você pode usar o que preferir, por exemplo, Node.js, Ruby, C# ou Kotlin. O gRPC aproveita HTTP/2 e um formato de mensagem binária, o que ajuda a reduzir a largura de banda da rede e diminuir a latência. Isso permite que nosso RemotiveBroker envie grandes quantidades de dados em tempo real, como no caso de CAN e CAN-FD ou FlexRay de alta velocidade.
Temos uma API wrapper Python para um subconjunto da API RemotiveBroker para tornar ainda mais fácil a construção de aplicativos. Também está disponível para fácil instalação por meio do Python Package Index. Essa API wrapper facilita a execução de operações comuns, como conectar-se a um RemotiveBroker e configurar assinaturas de dados de sinais de veículos.
Conecte-se a um RemotiveBroker e configure uma assinatura de sinal:
# 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)
Como estamos trabalhando com gRPC-web em nossos clientes web, temos stubs/clientes Typescript e Javascript disponíveis para grpc-web. Também está disponível via npm/yarn . Embora não seja tão útil quanto uma API wrapper adequada, os stubs/clientes são necessários ao trabalhar com gRPC. No entanto, apenas olhar os stubs é útil ao explorar a API.
Assine a distribuição de frequência de quadros:
// Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)
Nossas ferramentas e APIs estão em constante evolução.
Siga-nos no GitHub e no LinkedIn para não perder mais conteúdo útil para desenvolvedores.
Se você tem desejos ou pensamentos sobre o que devemos desenvolver a seguir, não seja um estranho!