Olá garagistas.

me deparei com a seguinte situação:
Arduino: enviando 5 inteiros no formato (NX, onde X = {1,2,3}):
N1220
N2325
N3326

Do outro lado uma aplicação rodando um thread que fica lendo o buffer da serial.
Desse buffer, para cada dado, removo os dois primeiros caracteres e tenho o valor desejado.
Meu problema reside no fato de que essa leitura é bem aleatória. Por exemplo, como retorno na função tenho:

N12333N2
N2666
N2
N233N2234
....
e em alguns momentos vem correto
N1220
N2325
N3326

Alguém já se deparou com isso, como sincronizar essa leitura?

obrigado

Exibições: 290

Responder esta

Respostas a este tópico

Bom dia Teodoro,  ela pode ser feita de varias maneiras, vou citar algumas e a aplicação deixo a seu critério, voce pode mudar a saída do arduino para sempre que ele tiver um valor menor que 1dezena ele acrescentar demais 0000 a frente o mesmo para centena e milhar em fim... outras opções é ja que tem um N indicando o inicio de cada entrada, vc cria um filtro em c que ao ler N vai receber apenas inteiros(restringindo a um maximo de 5 no seu caso), nisso quando receber o próximo char N ele deva refazer essa operação,em qualquer das soluções pode ser adaptada tanto na saída do arduino como na entrada do seu programa, bons projetos!

Oi TO, boa tarde.

Aparentemente o seu problema é de "Time Frame" da serial.

A leitura da serial é "lenta" e pode encavalar os dados.

Anexe um arquivo com o seu code, para que possamos avaliar como você está tratando 

o protocolo da serial.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço