01
Contexte
Le projet part d’un besoin de simulation et de validation de flux de navigation sur système embarqué. L’enjeu principal était de construire une chaîne cohérente entre le traitement bas niveau des données, leur simulation, leur supervision et leur validation, tout en respectant les contraintes d’un environnement industriel.
02
Architecture
Le système s’organise autour de trois niveaux complémentaires, chacun porté par une stack dédiée : C++ embarqué → backend Python / FastAPI → interface React / TypeScript.
- Embarqué (C++) — une couche C++ sur microcontrôleur prend en charge l’acquisition, le traitement, la conversion et la génération de flux de navigation
- Backend (Python · FastAPI) — une couche intermédiaire assure le dialogue avec l’équipement embarqué, la supervision des échanges et la mise à disposition des données et commandes
- Interface web (React · TypeScript) — une interface de supervision permet de piloter le simulateur et d’observer l’état du système sans manipuler directement la couche embarquée
03
Mon rôle
Conception et développement de la solution de bout en bout, avec un travail couvrant plusieurs couches et disciplines.
- Développement embarqué en C++
- Gestion et transformation de plusieurs protocoles de navigation
- Simulation de données géospatiales
- Backend de supervision
- Interface web de pilotage
- Automatisation des tests et de la validation
04
Décisions d’ingénierie
Quelques choix structurants guident l’architecture du système.
- Séparer clairement logique protocolaire, matériel et supervision
- Supporter plusieurs protocoles de navigation dans une architecture commune
- Conserver un mode de simulation pour tester des scénarios sans dépendre en permanence d’une source physique
- Rendre la logique embarquée testable indépendamment de la cible matérielle
- Automatiser les validations afin de limiter les régressions lors des évolutions
05
Validation
La validation a été traitée comme une partie intégrante du développement, à chaque niveau du système. Elle est automatisée par couche : ctest pour le C++, pytest pour le backend et Vitest pour le frontend, orchestrés dans la chaîne CI avec Jenkins et Docker.
- Tests de la logique embarquée
- Tests backend
- Tests frontend
- Tests d’intégration entre les différentes couches
- Validation de scénarios de simulation et de flux de navigation
- Automatisation d’une partie de ces contrôles dans la chaîne de développement
06
Chaîne de bout en bout
NAVBOX relie une couche embarquée C++, un backend Python / FastAPI et une interface React / TypeScript dans une même chaîne de bout en bout. Le système couvre la simulation de flux de navigation, leur traitement, leur supervision et leur validation, avec une architecture modulaire et testable.