---
title: "Refonte HL"
date: "07-03-2024"
link: "https://hackmd.io/UkgD0xHFSZy6O4W6jdiczw"
tags: EVOLUTEK
---
# Refonte HL
## Cahier des charges
* Ne pas dépendre de Cellaserv pour les matchs
* Respecter une norme
* Mettre en place des outils CI/CD
* Avoir de la doc
* Refondre le gros du code en monolithique
* Pouvoir facilement remplacer des modules
* Thread (pour plus de simplicité)
* Rendre le monitoring facile
* Rendre le dévelopement UI facile
* Penser à la simu en amont
* Abstraction / config de composants
* Gérer nos dépendances intelligement
## Jamboard
https://jamboard.google.com/d/19Sq1SFVA224_8cxgEyiRaELxN4Xps7rSXI4p3LAsfNc/edit?usp=sharing
## Modules (thread)
* AI (gestion de la stratégie)
* New Trajman (gestion trajectoire)
* Action (gestion des séquences d'action)
* Client (communication extérieure au robot)
* Modules de com hw (Serial / CAN etc..)
* Robot
## Drivers :
* Problème d'utilisation des libs externes (Adafruit, etc...)
* Difficile de faire un gestionnaire globale pour ces drivers
* Appel direct pour les calls non bloquants (moins de ? (100) ms)
## Robot
* Utilitaire de synchronisation entre les modules
* Gestion de la config
* Communcation inter-module
* Gestion d'events
* Gestion de requests
## Intéraction inter-module
* Event :
* Envoyé par un module
* Reçu par ceux qui ont subscibe
* Contient des données
* Pas de retours
* Request :
* Demande de la part d'un module à un autre
* Nécessite un retour
* Deux types : Async et Bloquant (avec timeout possible)
* En Async : juste un ack puis synchronisation par events (équivalent Event Waiter)