Démarrage Rapide¶
Cette section guide à travers le lancement du backend en conditions réelles, l'accès à l'interface de contrôle et le débogage.
1. Préparation Matérielle et Configuration (Avant Lancement)¶
Le système manipule physiquement les cartes réseau. Il est donc impératif de configurer l'attribution avant de démarrer :
- Brancher les adaptateurs Wi-Fi : Connecter toutes les clés USB/Adaptateurs réseau qui serviront à piloter les TELLO, tout en gardant une interface réseau active principale pour l'accès local.
- Attendre le nommage par udev/systemd : Au branchement, le noyau Linux donne un nom temporaire puis renomme l'interface. Entrer la commande
ip a(ouip link) dans le terminal et patienter jusqu'à ce que les interfaces soient stabilisées. - Récupérer le nom de l'interface : Identifier le nom de l'interface finale pour chaque clé branchée (par ex
wlan1,wlx...). C'est ce nom logique qui sera utilisé, et non le lien matérielphyX. - Appliquer la Configuration JSON : Reporter ces identifiants réseau dans le fichier
drones.json(Voir Configuration).
2. Démarrer l'Application Backend¶
Comme expliqué dans la section Architecture, le projet réalise une re-programmation des ressources (namespaces réseau netns). Il requiert l'utilisateur root pour modifier le kernel.
Depuis un terminal, en se plaçant idéalement dans le répertoire où se trouve le fichier JSON :
Pour analyser en détail les communications avec les drones, il est possible de lancer le mode "Debug" :
Comportement à l'exécution (Ports, Sockets et Base de données)¶
Le système démarrera et mettra à disposition :
- Le Serveur Web Frontend / API sur le port ouvert
0.0.0.0:8000. - Le Serveur Vidéo d'analyse sur le port ouvert
0.0.0.0:1984. - Sockets locaux : Des fichiers de type
/tmp/drone_video_{id}.sockpeuvent être générés pour l'IPC et survivent à la session. - Base de données : Un fichier
db.sqlitesera automatiquement créé dans le répertoire courant (là où la commande a été lancée) s'il n'existe pas encore. Il sert à stocker l'état et l'historique de la flotte.
Alerte de Stabilité (Kernel Panic) !
Pendant l'exécution de drone-control, les interfaces Wi-Fi sont accaparées et englobées par les namespaces virtuels de l'application. Lors de nos tests, nous avons eu plusieurs cas inexpliqués de Kernel Panic lorsque les clés USB Wi-Fi ont été débranchées pendant l'exécution du programme. Pour éviter cela, il ne faut jamais débrancher physiquement une clé USB Wi-Fi lorsque le programme tourne.
3. Accéder au Tableau de Bord (Dashboard)¶
Le Frontend a été directement embarqué dans le code du Backend via Vite pour faciliter son déploiement de production.
Ouvrir simplement un navigateur web local (sur le même PC ou sur le parc informatique) à l'adresse suivante :
L'interface de l'application (basée sur React 19 et gérée en temps réel par WebSockets) s'affichera instantanément.
4. Arrêter et Nettoyer la Flotte¶
Pour stopper proprement le dispositif, retourner sur le terminal tournant avec sudo et utiliser le raccourci classique :
Ctrl + C
La fermeture via Ctrl+C est entièrement et proprement gérée par l'application :
- Il met fin aux connexions web en cours et termine les relais vidéo.
- Crucial : il détruira les namespaces virtuels et restituera les adaptateurs Wi-Fi à l'hôte principal Linux (rendant désormais possible le débranchement physique en toute sécurité).
Remarque pour les Développeurs (Mode Dev)¶
Pour développer des fonctionnalités, il est possible de faire tourner le backend et le frontend séparément pour bénéficier du HMR (Hot Module Replacement) :
- Lancer le Frontend de test :
- Lancer le Backend :
Préciser les extra appropriés avec
uv run: