Go Down

Topic: [Dúvida] *Protocolo* de comunicação (Read 4615 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