LOCUSTE : Unité de contrôle principale
Le project Locuste se divise en 4 grandes sections :
- Automate (Drone Automata) PYTHON (https://github.com/DaemonToolz/locuste.drone.automata)
- Unité de contrôle (Brain) GOLANG (https://github.com/DaemonToolz/locuste.service.brain)
- Unité de planification de vol / Ordonanceur (Scheduler) GOLANG (https://github.com/DaemonToolz/locuste.service.osm)
- Interface graphique (UI) ANGULAR (https://github.com/DaemonToolz/locuste.dashboard.ui)
Tout le système est embarqué sur une carte Raspberry PI 4B+, Raspbian BUSTER.
- Golang 1.11.2
- Angular 9
- Python 3.7
- Dépendance forte avec la SDK OLYMPE PARROT : (https://developer.parrot.com/docs/olympe/, https://github.com/Parrot-Developers/olympe)
Détail des choix techniques pour la partie Unité de Contrôle :
- [Golang] - Rédaction rapide et simple de programmes orientés web, multithreading et multiprocessing intégré au langage
- [RPC] - Une des méthodes de communication les plus rapide
- [SocketIO] - Elément facile intégré avec Angular, Node et Python
- [ZMQ] - Système de messaging simple et rapide
Evolutions à venir :
- Scission du serveur de socket en deux serveurs distincts afin de mieux répartir la charge (Opérateurs / Automates Python)
- Ajout de versions en GOLANG (intégration PIC)
- Intégration NGINX Reverse Proxy
- Scission des projets en modules plus petits et partagés