Go Down

Topic: [Dúvida] *Protocolo* de comunicação (Read 5448 times) previous topic - next topic

bubulindo

Após umas merecidas férias pelos Algarves, cá estou com muita pena minha pois esta discussão tornou-se interessante.

@Marcelo, tens de compreender as limitações do Arduino. Ele pode facilmente enviar o resultado em JSON ou XML, mas vais ver que isso te vai trazer dores de cabeça e vai comer imenso código sem tornar o sistema mais robusto ou rápido. Claro que isto pode facilitar as coisas no lado do PC, mas tendo em conta a diferença de poder de processamento, eu escolheria libertar o Arduino do maior peso possível.

O teu problema está aqui...

Code: [Select]
Serial.readBytesUntil('\n', buffer, SERIAL_BUFFER_MAX_SIZE);

Porque é que lês o máximo? Em vez do número de bytes disponíveis? Provavelmente a função manda-te os bytes que ela tem no buffer. A definição do readbytesUntil está no ficheiro Stream.cpp. Lá podes perceber o que acontece... nota que o flush não apaga o buffer. Ele apenas iguala o apontador de escrita e leitura do buffer.

E porque é que usas o readBytesUntil dentro dum loop? Isso não confunde as coisas?

Como eu e mais gente referiu isto dá uma trabalheira e é algo que nunca fica perfeito... mas é muito bom para aprender comunicações, programação e microcontroladores. Vai colocando aqui o progresso.

Acerca do void, creio que o Marcelo se estaria a referir a um void * para uma função?

@LegendBR, esse é um link muito bom. ;)
This... is a hobby.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy