Le simulateur FlightGear Open-source, gratuit, (pour Linux) comprend outre un serveur html, des serveurs de protocoles série (telnet, mais aussi "générique" qui nous intéresse ici). Encore faut-il définir ce protocole générique précisément. Il faut pour cela créer un fichier xml et le placer dans le répertoire de "protocol" de FlightGear.

Sous linux ça donne ça :

/usr/share/games/protocol/hardware4.xml


J'ai recopié le contenu de ce fichier au bas du code source. Il comprend deux parties, "output" et "input".

Ce n'est pas tout : pour que le programme FG tienne compte de ce fichier, il faut le lancer avec les deux options suivantes (les 2 options sont indispensables afin d'obtenir un fonctionnement bidirectionnel):

--generic=serial,in,10,/dev/ttyUSB0,38400,hardware4
--generic=serial,out,10,/dev/ttyUSB0,38400,hardware4


La vitesse de la liaison série (ici 38400 bauds) doit correspondre exactement à celle programmée dans l'ESP32, voir le code en C++
La partie "output" sert ici à publier, à destination de l'ESP : La partie "input" permet de régler à l'aide de deux encodeurs rotatifs pas à pas reliés à l'ESP, les consignes d'altitude et de cap du pilote automatique de FG. (avant de décoller, on doit aller dans la fenêtre de paramétrage de l'autopilot avec la touche de fonction F11, et sélectionner HDG et ALT. ensuite après prise d'altitude minimale, on peut lancer l'autopilot avec par exemple un bouton de la manette de jeux...)
(voir le code C++ ; j'en rajoute aussi régulièrement !)