OBD Dados do veículo

Leia RPM fornecido pelo veículo, temperatura do líquido refrigerante, temperatura do óleo, combustível e outros parâmetros através de um adaptador Bluetooth compatível. Este artigo explica as condições de leitura, configuração de parâmetros, atualização de dados e regras para utilização de leituras em instrumentos e disparos.

Parâmetros do veículo e resultados de leitura

OBD é usado para ler dados fornecidos pelo controlador do veículo. O controlador do veículo, também denominado ECU, é responsável pelo motor, transmissão e demais sistemas; CapDrive envia solicitações a esses controladores através do adaptador e converte os dados recebidos em leituras.

Um "parâmetro" no aplicativo é um dado a ser lido e exibido, como velocidade do motor (RPM), temperatura do líquido refrigerante ou status. Ele contém solicitações de leitura, fórmulas de conversão e unidades. Parâmetros numéricos podem ser usados ​​para números, progresso ou curvas; os parâmetros de status podem ser exibidos como D, P, etc. por meio de mapeamento de texto.

Por exemplo, o parâmetro de temperatura do líquido refrigerante pode ser obtido usando a solicitação 0105 para obter um byte de dados A e convertido de acordo com A - 40. Se o valor decimal do byte retornado for 123, o resultado será 83 °C. O método de conexão, definição de solicitação e regras de conversão devem estar corretos para obter leituras utilizáveis.

Quais parâmetros o veículo suporta dependem do modelo, ano, sistema de energia e status do controlador. Somente os valores realmente fornecidos pelo veículo podem ser lidos, e a modificação do nome ou das unidades não aumenta as capacidades de dados do próprio veículo.

Escopo de suporte e condições de uso

A conexão do veículo OBD requer CapDrive Plus, Adaptador Bluetooth de baixa energia (BLE) com suporte para instruções ELM327 e permissões de Bluetooth no iPhone. Os adaptadores Bluetooth clássico e Wi-Fi não são suportados atualmente.

Somente depois que o adaptador for conectado à interface OBD do veículo e ligado conforme exigido pelo veículo o aplicativo poderá se comunicar com o veículo. Certos parâmetros exigem que o veículo esteja em um estado específico, como o controlador ligado, o motor funcionando ou o sistema correspondente operacional. A inclusão de "Bluetooth" no nome de um adaptador não prova por si só que ele está em conformidade com BLE e a diretiva.

A leitura de OBD, Não há necessidade de começar uma jornada primeiro, pode ser visualizada e testada na lista de parâmetros ou no editor de parâmetros. O início da viagem do celular não determina se o veículo retornará a temperatura do líquido refrigerante, velocidade (RPM) e outros parâmetros.

CapDrive suporta configuração de solicitações de leitura para serviços hexadecimais 01, 21, 22. Para uso normal, pode ser usada a predefinição correspondente ao veículo; o endereço de solicitação específico e a fórmula estão sujeitos à definição de parâmetros predefinidos ou do veículo.

Gerenciamento de conexão e dispositivos

Entrada: Mais (…) → Conexão OBD do veículo. A página do dispositivo exibe adaptadores próximos e dispositivos salvos, e a configuração dos parâmetros do adaptador é salva nas configurações do dispositivo.

Primeira conexão e reconexão

Ao conectar pela primeira vez, o aplicativo estabelecerá comunicação Bluetooth, inicializará o adaptador, identificará o protocolo do veículo e consultará o veículo para relatar os parâmetros padrão suportados. Após sucesso, os parâmetros padrão inicializáveis ​​serão adicionados à lista de dispositivos. Se os parâmetros padrão possuem valores no estado atual depende dos resultados reais da leitura.

Quando um dispositivo existente for reconectado, ele continuará a usar a configuração original, incluindo parâmetros modificados e listas ativamente limpas. Depois de excluir um parâmetro, reconectar não o adicionará novamente. Quando são necessárias leituras suplementares, parâmetros novos ou predefinidos podem ser importados.

Fonte de dados atual

O "dispositivo atual" refere-se ao adaptador que fornece dados do veículo ao CapDrive. Apenas um dispositivo pode ser usado como fonte de dados atual por vez. Os parâmetros e configurações de cada dispositivo são salvos de forma independente; ao mudar para outro dispositivo, as referências de parâmetros do dispositivo anterior não serão utilizadas automaticamente.

A desconexão mantém a configuração. Ignorar dispositivo removerá a configuração e o cache do dispositivo. Quando precisar migrar parâmetros, você pode exportar a configuração e depois importá-la para o dispositivo de destino; para instrumentos personalizados, você deve selecionar novamente os parâmetros no dispositivo de destino.

Predefinições de parâmetros e arquivos de configuração

O padrão é um conjunto de configurações de leitura de parâmetros já escritas, eliminando a necessidade de preenchimento de solicitações e fórmulas item por item. A predefinição padrão OBD-II fornece parâmetros padrão e a predefinição do modelo do veículo fornece definições de parâmetros para o modelo de veículo correspondente. Ao selecionar um modelo predefinido, você deve verificar o ano do modelo e a versão de potência.

Importar para dispositivo especificado

Abra a biblioteca de configuração na parte inferior da lista de parâmetros do dispositivo. Baixar no App entrará na interface de importação do dispositivo; baixar o arquivo JSON através do navegador pode selecionar Importar configuração no menu de configurações do dispositivo.

A lista de importação está desmarcada por padrão e apenas os parâmetros explicitamente selecionados são salvos. Você pode primeiro verificar o nome e a leitura atual e depois verificar a configuração através da engrenagem à direita. Fechar a interface de importação não salvará rascunhos não confirmados.

Duplicatas e atualizações de configuração

Os parâmetros que já possuem o mesmo método de leitura, regra de decodificação e unidade de saída serão marcados como duplicados e continuarão a usar o identificador de parâmetro original. Apenas modificar o nome de exibição não torna o mesmo parâmetro um novo item de leitura.

Uma solicitação pode fornecer vários parâmetros, como duas temperaturas na mesma resposta; o mesmo nome também pode vir de controladores ou fórmulas diferentes, portanto, as duplicatas não podem ser julgadas apenas pelo nome. Itens com regras de solicitação ou decodificação modificadas são importados como novos parâmetros e não substituem itens antigos apenas pelo nome.

Quando importado para outro adaptador, a referência de parâmetro do próprio dispositivo de destino é estabelecida. A instrumentação personalizada deve selecionar novamente os parâmetros correspondentes do dispositivo de destino na ligação de entrada; mantenha o identificador de entrada inalterado e não há necessidade de modificar o código.

Restrições de arquivo

A configuração usa JSON, o identificador de formato é capdrive.obd e appVersion é a versão necessária do aplicativo; o número da versão atual do aplicativo é gravado durante a exportação. Quando a versão for insuficiente, você será solicitado a atualizar. Um único arquivo pode ter até 5 MiB e conter até 3.000 parâmetros. O arquivo salva a configuração de leitura e não contém a conexão Bluetooth do dispositivo, nem garante que todos os itens estarão legíveis no veículo alvo.

Predefinições OBD

Configuração e decodificação de parâmetros

Abra o editor através da engrenagem à direita dos parâmetros. A seguir descrevemos os campos na ordem “o que ler do veículo → como converter → como determinar a validade”. Testar leitura usa a configuração atual no editor para verificar os resultados; após clicar em Salvar, as modificações passam a ser a configuração salva do dispositivo.

Nome e frequência de atualização

O nome é usado para identificar os parâmetros do veículo. Os identificadores internos são gerenciados automaticamente pelo app e não são preenchidos no editor de parâmetros, nem são solicitados PID; as predefinições exportadas não carregam identificadores nativos do dispositivo. O script do instrumento usa seu próprio identificador de entrada definido e seleciona os parâmetros do veículo por meio da ligação de entrada.

Intervalo de leitura (segundos) é preenchido em segundos e o intervalo é 0.3–99999. Por exemplo, 1 segundo significa que o intervalo de consulta de destino é de 1 segundo. A atualização real também é afetada pela resposta do veículo, outras solicitações e requisitos de leitura atuais. Itens visíveis na lista de parâmetros, seleção de instrumentos e uso de dados de viagem criam requisitos de leitura; simplesmente importar parâmetros não faz com que toda a lista seja sempre pesquisada em uma frequência fixa. Os parâmetros que compartilham a mesma solicitação podem ser reutilizados em uma resposta.

solicitar configurações

Campo Significado e método de preenchimento
Servir Categoria da solicitação, usando número hexadecimal. Por exemplo, o serviço solicitado para 0105 é 01.
PID O número do item de dados neste serviço. Por exemplo, PID de 0105 é 05; 01 e 21 usam PID de dois dígitos e 22 usa PID de quatro dígitos.
Solicitar CAN ID O endereço do controlador do veículo que recebe a solicitação. Quando deixado em branco, o protocolo utiliza endereçamento funcional; os padrões correspondentes geralmente devem manter o endereço original.
Resposta à filtragem CAN ID Especifique qual resposta do controlador será usada para evitar a seleção da fonte errada quando vários controladores retornarem dados.
Endereço de destino estendido, endereço de recebimento estendido Configuração adicional de endereçamento de comunicação para uso por protocolos de veículos que o requeiram.
Parâmetros de tempo limite de resposta A configuração de tempo limite hexadecimal usada pelo adaptador, não preenchida em segundos; é uma configuração diferente do intervalo de leitura.
Controle de fluxo CAN personalizado Utilizado para solicitações que requerem configuração específica de controle de fluxo, conforme definido pelo veículo correspondente.

Fórmulas de conversão, ordem de bytes e unidades

A resposta do veículo geralmente é composta por bytes de dados. A representa o primeiro byte de dados, B representa o segundo e assim por diante, excluindo o cabeçalho do protocolo. Uma fórmula oferece suporte a operações aritméticas, bit a bit, comparações, operações lógicas e expressões condicionais; não é um script que pode chamar funções JavaScript arbitrárias.

Por exemplo, a temperatura do líquido refrigerante usa A - 40; a velocidade padrão do motor (RPM) usa (A * 256 + B) / 4. Se A = 26, B = 248, o último obtém 1726 rpm. A fórmula de um parâmetro deve ser consistente com o significado dos bytes retornados pela solicitação.

Endianness dita como os campos multibyte são interpretados: big-endian coloca o byte de ordem superior primeiro, little-endian coloca o byte de ordem inferior primeiro. O App executa a fórmula numérica após a ordem de processamento configurada, e a fórmula não deve trocar bytes repetidamente.

A unidade do resultado da fórmula precisa ser diferenciada da unidade de exibição. Modificar o nome da unidade personalizada altera apenas o rótulo e não modifica o valor da fórmula; ao selecionar uma unidade de exibição compatível para uma quantidade física padrão existente, o App pode realizar a conversão correspondente. Verifique as unidades originais usadas na fórmula para evitar conversões repetidas.

Condições de leitura e intervalo válido

Configuração Efeito real
Número mínimo de bytes de resposta Exclua retornos de comprimento insuficiente para evitar que o cálculo continue quando faltarem bytes.
Leia as condições A condição é avaliada nos bytes de resposta brutos, como A != 0. Esta leitura não está disponível quando o resultado é zero, faltam bytes ou o cálculo falhou.
valor mínimo, valor máximo Fixe os resultados numéricos. Por exemplo, quando o intervalo válido é configurado como 0–100, 120 será exibido como 100. O valor máximo precisa ser maior que o valor mínimo; se o valor mínimo não for definido, será tratado como zero. Definir apenas o valor mínimo não limitará a amplitude separadamente.
Limite inferior efetivo, limite superior efetivo Os resultados inválidos são excluídos, assim como os próprios limites. Por exemplo, quando o limite superior é 100, os resultados maiores ou iguais a 100 não estão disponíveis.

A resposta passa nas verificações de comprimento e condição de leitura antes de ser decodificada. O resultado digital é limitado primeiro e depois os limites superiores e inferiores efetivos são verificados; nenhuma leitura é emitida quando um valor finito não pode ser obtido. A condição de leitura usa a resposta bruta antes da conversão da ordem de bytes.

mapeamento de texto

O mapeamento de texto exibe um valor obtido por uma fórmula como texto, como 1 → D. A chave suporta decimais e números negativos e deve ser um valor finito exclusivo. 1.5 e 1.50 representam o mesmo item. Literal pode ser uma string vazia.

Quando o mapeamento é atingido, a string correspondente é retornada; quando não é atingido, um número é retornado quando Retornar o número original quando não houver correspondência é ativado e null é retornado quando é desativado. Essa configuração incomparável se aplica quando existe um mapeamento. O texto atingido não continuará a realizar o recorte digital.

Portanto, o mesmo parâmetro pode retornar um número, texto ou valor nulo, e o código de instrumentação deve tratar o tipo real do parâmetro. Quando ocorre a situação “alguns valores podem ser exibidos e outros desaparecem”, você deve verificar se o mapeamento corresponde e se as configurações não correspondem.

Salvar e mensagem de erro

Configurações inválidas indicarão os campos e motivos, e então salvarão ou testarão após a correção. PID dos serviços 01 e 21 é um número hexadecimal de dois dígitos, 22 é de quatro dígitos; CAN ID tem 3 ou 8 dígitos e os parâmetros de endereço estendido e tempo limite têm dois dígitos. O intervalo de leitura é de 0.3–99999 segundos, o número mínimo de bytes de resposta é um número inteiro de 0–4096 e a fórmula e as condições de leitura têm até 1.024 UTF-8 bytes cada. O valor deve ser limitado, o valor mínimo não pode ser maior que o valor máximo e o limite inferior válido deve ser menor que o limite superior válido; a chave de mapeamento de texto não pode ser repetida.

Substituição de dados de viagem

Substituir dados da viagem faz com que a leitura base use o parâmetro OBD especificado. Por exemplo, ao especificar um parâmetro de velocidade do veículo como "Velocidade", o campo de velocidade base, os medidores integrados associados e os registros de viagem podem usar esta leitura do veículo.

Alvos alternativos incluem velocidade, G longitudinal, G lateral, inclinação e rotação. Aceita km/h ou mph para velocidade, g ou m/s² para aceleração e graus ou radianos para ângulo. O aplicativo converterá as unidades conforme necessário para o alvo.

A substituição exige que os parâmetros sejam fornecidos com números, unidades e intervalos apropriados. Parâmetros com mapeamento de texto não podem ser usados ​​para substituição de traços; os resultados originais fora da faixa de configuração também serão rejeitados e os valores limite após a limitação não serão considerados como medições de curso válidas.

Use esta fonte quando houver leituras OBD válidas; retorne aos dados móveis quando as leituras estiverem faltando, expirarem ou forem inválidas. Esta leitura base ainda pode estar vazia quando a fonte móvel também estiver indisponível. A importação de parâmetros comum não especifica automaticamente destinos de substituição.

Parâmetros como temperatura do líquido refrigerante, velocidade de rotação (RPM), etc. podem ser exibidos separadamente no instrumento personalizado, e suas referências OBD podem ser usadas diretamente sem configurar a substituição do curso.

Acesso personalizado ao instrumento

Clique na engrenagem ao lado de Ajustes do instrumento → Vínculos de entrada para inserir Configuração de parâmetros e adicionar uma entrada Dados OBD, por exemplo, o identificador coolant. Retorne à ligação de entrada e selecione o parâmetro Coolant Temperature em Devices para isso. O script lê $data.current.coolant; o UUID dos parâmetros do veículo não precisa ser escrito no código.

As leituras incluem value e unit, por exemplo { value: 83, unit: '°C' }. Mapeamentos de valores para texto também podem retornar strings, o tipo deve ser verificado antes da formatação do número. Quando não está vinculado, toda a entrada é null; quando está vinculado, mas não há leitura temporária, value é null e unit ainda ocupa a unidade de configuração.

Após importar trabalhos de outras pessoas ou alterar o adaptador, religue a entrada existente para continuar usando o código. O tipo esperado é usado para dicas, o valor de retorno do veículo não é convertido. A visualização usa entrada analógica, e o dispositivo atual e Testar leitura devem ser verificados ao confirmar os dados reais do veículo.

Dados do instrumento

Validade de dados e diagnóstico de falhas

Status de leitura

A conexão é válida, a resposta é recebida e a leitura é válida são três condições diferentes. A resposta pode não produzir um valor utilizável devido a comprimento insuficiente, condições de leitura insatisfeitas, fórmula inválida ou falha no mapeamento de texto.

As leituras de tempo de execução têm uma data de validade. Após a desconexão, falha na leitura ou expiração dos dados, a substituição do instrumento e do disparo não deve continuar a usar o valor antigo como os dados válidos atuais. A lista de parâmetros pode reter a última leitura bem-sucedida para fins de demonstração que não equivale a uma saída ativa válida; o resultado da solicitação atual pode ser verificado usando Testar leitura.

Zero é um valor válido e um valor nulo significa que não há leituras disponíveis no momento. A string vazia no mapa de texto é o resultado do texto correspondente, que também é diferente do teste ausente.

Localizar por nível de falha

Desempenho Escopo de inspeção correspondente
Não foi possível descobrir o dispositivo Alimentado por adaptador, tipo BLE, Bluetooth para iPhone e permissões de aplicativos.
O Bluetooth está conectado, mas a inicialização falhou Suporte de comando do adaptador, status de comunicação do veículo e identificação de protocolo.
A lista de parâmetros está vazia A configuração salva do dispositivo atual, os resultados da primeira consulta de capacidade e se a lista foi limpa ativamente. A reconexão não restaurará automaticamente os itens excluídos.
Não há leitura válida para um único parâmetro Endereço de consulta e PID, comprimento da resposta, condições de leitura, fórmula de decodificação, intervalo e mapeamento de texto.
O valor existe, mas o significado ou unidade é anormal. Predefinir se o modelo de carro aplicável, a ordem de bytes, a fórmula e a unidade são consistentes.
A lista mostra o valor antigo, o medidor não tem valor Se a leitura atual expirou ou não foi lida; o cache de exibição da lista não significa que os dados em tempo real sejam válidos.
Existem leituras válidas, mas o medidor personalizado não exibe O dispositivo atual, parâmetros selecionados, expressões e a manipulação de números, literais e valores nulos pelo código.
A substituição do itinerário não entrou em vigor Destinos de substituição, tipos de valores de parâmetros, compatibilidade de unidades e intervalos e validade de leitura.

O feedback do problema pode incluir as seguintes informações para diferenciar entre problemas de conectividade, problemas de configuração e problemas de exibição:

  • Modelo, ano, versão de potência e modelo do adaptador.
  • Nomes atuais de dispositivos, predefinições e parâmetros.
  • Teste os resultados da leitura ou erros específicos.
  • Isso afeta todos os parâmetros ou parâmetros individuais e se o problema ocorre na lista de parâmetros, na substituição do desarme ou no instrumento personalizado.

Documentos relacionados