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
Tags:
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por