Brasilino icon indicating copy to clipboard operation
Brasilino copied to clipboard

paraCada (foreach)

Open renlopes opened this issue 6 years ago • 17 comments

Como requisitado no issue #21 essa é uma tentativa de implementar o paraCada (foreach) na biblioteca. Testes de compilação foram positivos no UNO, MEGA e NANO.

  • PS: Necessita de testes práticos.
  • PS2: Pode causar instabilidades se não usada com cuidado pelo consumo de recursos de memória. Talvez explicar tal fato na documentação pode ser relevante.

renlopes avatar Apr 23 '18 02:04 renlopes

Haha, vou precisar desenterrar minhas skills de C para poder analisar esse código, já vi logo de cara que algumas coisas do código eu simplesmente não sei o que fazem, então vou pesquisar e te perguntar algumas coisas por aqui também, certo?

Uma outra coisa, talvez esse código assuste um pouco algum inciante (Ou até mesmo para gente com certa experiência) então talvez seja válido colocar num local não tão a vista, e de preferência com um aviso de que o código a seguir é complexo. Talvez seja válido colocar esse pedaço de código até em um header a parte, algo do tipo "ComandosAvancados.h"

Contudo a contribuição do foreach é algo importante e que sempre quisemos ter no Brasilino, conforme mapeado na #21 então iremos analisar com bastante carinho e considerar a melhor forma de adicionarmos isto, aproveito e marco o @ErickSimoes como reviwer também.

OtacilioN avatar Apr 23 '18 11:04 OtacilioN

Em teoria o header (biblioteca) já seria transparente ao usuário. Ele só precisa saber como usar as funções.

renlopes avatar Apr 23 '18 12:04 renlopes

Sim, para o uso já seria transparente sim, mas é interessante que a Brasilino também seja facilmente "entendível" e "modificável" por qualquer um, inclusive iniciante, para que os mesmos possam contribuir.

OtacilioN avatar Apr 23 '18 12:04 OtacilioN

Não vejo problema quanto a isso. Estou mais preocupado quanto a capacidade dos controladores aceitarem esse alto nivel já que não estou com meios de teste. Ao menos a compilação na ide correu sem erros pros sockets citados.

renlopes avatar Apr 23 '18 13:04 renlopes

Oi @alessonrenato!

Que ótima sua contribuição!

Como @OtacilioN comentou, você fez uso de recursos bem avançados (e isso é ótimo). Na época que eu tentei desenvolver essa feature senti dificuldades exatamente por isso. Vou precisar olhar com calma pra tentar entender e avaliar essa questão levantada por Otacílio.

Em breve vou descrever alguns parâmetros de testes para conseguirmos ter certeza que está tudo certo na maior quantidade de plataformas possíveis.

Muito obrigado!

ErickSimoes avatar Apr 23 '18 21:04 ErickSimoes

Eu observei que não foram implementados exemplos do uso do paraCada. Esses exemplos são muito importantes para os usuários da biblioteca, pois serve como referência, e servirá também como código de testes para validarmos a implementação.

Outro ponto importante é que, tanto para fins didáticos, como boa prática de implementação do projeto, os commits de correção sejam "escondidos", mesclando-os com o commit que ele pretende corrigir. Exemplo, todos os commits depois de 'foreach' são correções dele, como 'localisation: FOREACH-paraCada', 'indentacao e comentarios ' e todos os seguintes. Eles devem ser mesclados no primeiro, já que não adicionam novas funcionalidades.

Quanto aos testes, tendo sido feitas as correções a cima, recomendo testarmos nessas plataformas:

  • [ ] Arduino Uno (ATmega328P)
  • [ ] Arduino Nano (ATmega328)
  • [ ] Arduino Mega (ATmega2560)
  • [ ] Arduino Due (AT91SAM3X8E)
  • [ ] Arduino Leonardo (ATmega32u4)
  • [ ] Franzininho (ATtiny85)

Tendo sido feitos os testes, adicionamos o paraCada na documentação e ele estará pronto para o mundo.

ErickSimoes avatar May 06 '18 21:05 ErickSimoes

@OtacilioN @ErickSimoes implementei as alterações pedidas, necessita de novos testes.

renlopes avatar Feb 12 '19 05:02 renlopes

Oi @alessonrenato!

Vamos realizar os testes!

ErickSimoes avatar Feb 15 '19 09:02 ErickSimoes

@ErickSimoes fiz algumas correções e ajustes no arquivo de exemplo para colocar na pasta Basicos, também recoloquei um commit que tinha atropelado do repositorio original após os rebases.

renlopes avatar Feb 16 '19 22:02 renlopes

@OtacilioN @ErickSimoes atualizei o PR pra a versão atual do Upstream e corrigi um erro no arquivo de exemplo.

renlopes avatar Mar 10 '19 02:03 renlopes

@OtacilioN @ErickSimoes alguma atualização?

renlopes avatar May 13 '19 12:05 renlopes

@OtacilioN @ErickSimoes vcs ainda querem a funcionalidade?

renlopes avatar Nov 01 '19 00:11 renlopes

Olá @alessonrenato, foi implantada uma Action que realiza o compile para as placas suportadas por este repositório, creio que se você atualizar esta PR com a branch master será possível finalizar a implantação do comando paraCada().

SteffanoP avatar Apr 07 '21 20:04 SteffanoP

Faz tanto tempo que esse PR segue pendente de revisão pelos mantenedores que nem sei se tenho habilidade pra portar esse código de baixo nível hoje mais. Não trabalho mais tanto com compilações de código e precisaria relembrar muitos conceitos. Eu lembro que ja na época escrevi todo código com arduíno CLI no konsole e VIM porque já não gostava da IDE. Usei ele pra fazer testes nas plataformas da época e fisicamente testei no UNO, NANO e MEGA que eram as que eu tinha acesso. Não estavam populares plataformas ESP ainda. Enfim. Se alguém se interessar em atualizar e por os créditos pode ficar a vontade.

renlopes avatar Apr 07 '21 21:04 renlopes

Faz tanto tempo que esse PR segue pendente de revisão pelos mantenedores que nem sei se tenho habilidade pra portar esse código de baixo nível hoje mais. Não trabalho mais tanto com compilações de código e precisaria relembrar muitos conceitos. Eu lembro que ja na época escrevi todo código com arduíno CLI no konsole e VIM porque já não gostava da IDE. Usei ele pra fazer testes nas plataformas da época e fisicamente testei no UNO, NANO e MEGA que eram as que eu tinha acesso. Não estavam populares plataformas ESP ainda. Enfim. Se alguém se interessar em atualizar e por os créditos pode ficar a vontade.

@alessonrenato Você se importa se eu criar uma nova Pull Request, e trazendo o commit 922df92 para ela?

A ideia é que, dessa forma, eu consigo criar um Merge commit da branch master atual junto com o commit 922df92. Porém você também pode fazer isso sem grandes dificuldades.

SteffanoP avatar Apr 11 '21 22:04 SteffanoP

Pode fazer, sem problemas. Atualmente não to usando as ferramentas do Git.

renlopes avatar Apr 11 '21 23:04 renlopes

@alessonrenato criei uma nova Pull Request (#74), mantive o commit (922df92), para continuar a implementação com a versão mais recente do repositório. No momento que você autorizar, irei abrir a Pull Request para Revisão dos mantenedores/colaboradores. Também estarei aberto para suas opiniões, caso queira continuar com a implementação, tal como de comentários da comunidade.

SteffanoP avatar Apr 12 '21 00:04 SteffanoP