---
# System prepended metadata

title: Team informartique
tags: [EVOLUTEK]

---

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

