--- 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)