-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migra o template para CPP #46
base: develop
Are you sure you want to change the base?
Conversation
Ah, só uma coisa, existe uma branch antiga de migração, mas fui orientado na gaiola de simplesmente abrir outra (desculpa xin) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acho q tá td check, vc falou q compilou certinho então sucesso
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
inc/mcu.hpp
Outdated
|
||
namespace hal | ||
{ | ||
class mcu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isso aqui é só um comentário. Nn sei se vejo muito sentido nisso aqui ser uma classe nn. Se a ideia for encapsulamento, "mcu" poderia ser um namespace. Por outro lado, eu entendo que está seguindo um padrão e piriri pororó.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
po foi 100% pelo padrão
a ideia era manter como nas futuras libs, mcu ser uma classe no namespace hal
Co-authored-by: Bruno1406 <[email protected]>
Co-authored-by: Bruno1406 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Só deixei uma pergunta sobre padrões ali no CMake, mas fora isso parece tudo check
*****************************************/ | ||
|
||
extern "C" | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
O uncrustify deixa essa chave aqui mesmo? Estranho ahushuashuashu
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aisduhas de fato estranho, mas o make format nao mudou isso aí
void SystemClock_Config(void); | ||
} | ||
|
||
namespace hal { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Então, não sei sobre deixar esse namespace hal aqui, acho que pode deixar mais simples pro template. Não é porque existem namespaces que a gente tem que colocar vários, tem que saber dosar. Mas assim batata também.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah, na minha cabeça fazia sentido (principalmente considerando as libs), só botei pq nao vi pq nao botar sinceramente
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acho que eu gosto de um namespace hal, ele ajuda a segmentar o que é baixo do que é alto. Se algo tem escrito hal::
antes, a gente sabe que é uma abstração de algo bem baixo nível, coisa de função da ST.
} | ||
|
||
namespace hal { | ||
class mcu { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tenho alguns mixed feeling sobre deixar isso como classe no template. Tipo não é porque suporta classe que a gente tem que usar classe em tudo. O sleep e o init até fazem sentindo estarem numa classe assim, tanto que eles já tinham o prefixo do mcu_
, mas aí o led toggle deixa meio estranho. Como não tem muito também onde colocar, batata também ahushuauahas.
Esse e o comentário do namespace são meio batatas, é só pra pensarem quando tiverem as coisas de usar com moderação as features da linguagem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
o sleep e o init foram por esse motivo q vc citou, o led_toggle eu imaginei que se referia ao led da placa asudhasiudh no caso da bluepill é o C13, mas no código estar o A5 deixa mais esquisito mesmo asduihasiu
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Também tenho mixed feelings mas acho que tem que ficar como classe sim. Na minha opinião, numa alternativa sem classe, ficaria meeeio estranho de acessar, ficaria algo do tipo hal::sleep(50)
, daí ainda mais com RTOS, é um sleep do HAL? É um Sleep do RTOS? Sei lá asdhuadhuasd acho que hal::mcu::sleep(50)
é mais bonito. Posteriormente poderíamos ter um hal::rtos::sleep(50)
ou sei lá hal::rtos::publish(mensagem)
, enfim, daí vai, mas é tudo hal né
Co-authored-by: Lucas Haug <[email protected]>
Co-authored-by: Lucas Haug <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cara eu boto fé, achei bem legal do jeito que tá, com namespace pras coisinhas do HAL e tals.
Idealmente, essa abstração das funções do HAL viriam de uma lib?
void SystemClock_Config(void); | ||
} | ||
|
||
namespace hal { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acho que eu gosto de um namespace hal, ele ajuda a segmentar o que é baixo do que é alto. Se algo tem escrito hal::
antes, a gente sabe que é uma abstração de algo bem baixo nível, coisa de função da ST.
} | ||
|
||
namespace hal { | ||
class mcu { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Também tenho mixed feelings mas acho que tem que ficar como classe sim. Na minha opinião, numa alternativa sem classe, ficaria meeeio estranho de acessar, ficaria algo do tipo hal::sleep(50)
, daí ainda mais com RTOS, é um sleep do HAL? É um Sleep do RTOS? Sei lá asdhuadhuasd acho que hal::mcu::sleep(50)
é mais bonito. Posteriormente poderíamos ter um hal::rtos::sleep(50)
ou sei lá hal::rtos::publish(mensagem)
, enfim, daí vai, mas é tudo hal né
não sei se entendi o que vc quis dizer, é sobre as |
Revendo aqui, removi o |
Não revisei de novo agora, mas antes de dar merge de qualquer coisa, acho que seria bom fazer umas releases e atualizações. Primeiro diria pra finalizar a PR #37 e aí fazer uma release da main com a versão final do projeto com Makefile e depois fazer merge da main na develop com as coisas novas, aí diria pra fazer merge da develop na main com as coisas de CMakeLists e aí fazer outra release. Aí acho que dá pra ver de mergear essa PR na develop, só pra gente ter os estágios das coisas diferentes salvos em releases e as coisas não se misturarem de uma vez e a PR da develop pra main virar um monstro. |
Top top @LucasHaug, a ideia era mergear as coisas atuais pra develop e depois mandar pra main mesmo, mas não tinha pensado no release, vou fazer aqui sobre essa outra PR, ia comentar AGORA aqui na gaiola pra fechar ela, inclusive vi esse seu comentário aqui pq vim de lá kkkkk |
Com o recente movimento de migração dos códigos da equipe para C++ e a criação das libs, acho que faz total sentido migrarmos esse template aqui também, tanto para facilitar a criação de novos projetos quanto para os testes da lib mesmo
O que foi feito?
CMakeLists.txt
pra compilar em C++ (bem trivial)