Go Down

Topic: [Dúvida] *Protocolo* de comunicação (Read 3428 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. ;)
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up