-
Notifications
You must be signed in to change notification settings - Fork 0
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
Feature/cpp migration #2
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: n-honda2 <n-honda2@users.noreply.github.com> Co-authored-by: Vanderson Santos <VanderSant@users.noreply.github.com>
Boa brunao, eu vou revisar com mais calma, mas so um disclaimer sobre isso aqui:
isso ja acontece no thundervolt hoje. A gnt nao compila código diferente para diferentes tipos de imu. A gnt pega o whoAmI em tempo de execução mesmo |
Salve!! Abrindo essa PR aqui como draft, para os interessados já irem revisando. Antes de mais nada, gostaria de dar um contexto sobre os obtivos desta refatoração da lib:
1- Fazer uma primeira experiência de desenvolvimento software de embarcados em C++ na equipe;
2- Investigar como é a integração de C++ e C no contexto de embarcados, incluindo o processo de build;
3- Alterar a Lib de forma que não seja mais necessário que cada projeto faça mudanças diretamente nela para funcionar, agora tudo pode ser configurado pelos adapters;
4- Comportar os 3 modelos de IMU da família LSM6DS utilizados hoje na equipe, de forma que não seja sequer necessário saber em tempo de compilação qual o modelo presente no seu robô (isso é particularmente importante para o Thundervolt)
5- Adicionar a possibilidade de usar o sensor em FIFO mode e fazer as interrupções de data ready funcionarem.
No momento em que escrevo essa descrição aqui, já montei toda a estrutura de classes para que os objetivos 3 e 4 sejam possíveis, testei se está tudo compilando no repositório do Rozeta (foram necessárias só 2 unidades de alteração no CMakeLists.txt do Rozeta), e já implementei 1 dos 3 modelos (com FIFO mode funcional, mas falta testar as interrupções). Ainda falta testar tudo e implementar os outros 2 modelos.