Connexion UDP Simulateur/Serveur

Added by Joani Couma almost 9 years ago

J'ai enfin réussit à mettre en place la connexion UDP du simulateur vers un serveur de lecture de flux (serveur udp perso)

Compatible Windows/Linux

J'ai cependant un problème (dont il faudrait discuter demain) au niveau de l'écriture dans la socket depuis le simulateur...
Je souhaiterai utiliser dans un premier temps cette connexion afin d'envoyer les infos du drone (pos/vitesse/etc) vers mon serveur cependant je n'arrive pas à écrire dans le flux si j'utilise ma fonction a partir de la fonction de stepCallback de regulation() (là où sont a priori stockées toutes les informations du drone) je suppose que c'est à cause du mécanisme de callback de Raydium que je n'arrive pas à faire ça..
J'arrive à l'utiliser à partir de la fonction display()(qui est un callback également ...)

Donc 2 solutions soit réussir à faire fonctionner la fonction d'écriture dans la fonction de régulation, soit donner l'accès au reste du programme aux infos sur le drone ...

Je n'ai pas essayer d'envoyer des infos vers le simulateur car je suppose que je vais avoir le même problème (quoi que la fonction clavier() doit être accessible par mon implémentation de la connexion UDP.. je verrai demain !) mais j'aimerai comprendre pourquoi je n'arrive pas à écrire sur la socket à partir de regulation()

Je ne mets pas à disposition le code sur la forge ce soir, j'aimerai que cette fonctionnalité soit opérationnelle auparavant (et pourquoi pas pouvoir discuter de mon implémentation de l'udp demain matin... j'ai repris peu de code de la gestion UDP de l'année précédente)

Bonne soirée


Replies (5)

RE: Connexion UDP Simulateur/Serveur - Added by Joani Couma almost 9 years ago

Maintenant que le parseur est plus ou moins en place j'ai pensé qu'il serait intéressant de pouvoir récupérer toutes les valeurs des différents variables propre au drone plus facilement.

J'entends par là que je pense qu'il serait bon d'introduire une Structure propre au drone contenant toutes ces valeurs (du type vitesse / accélération / positions / rotations...) calculé avant l'envoie dans le réseaux.
L'avantage de cette méthode c'est que si l'on calcule ces informations, ensuite que l'on applique ces différentes valeur au modèle physique dans le simulateur, le travail au niveau réseau se résumé à

en mode réception :
lecture de la donnée reçu -> parsage -> modification de la valeur dans la structure -> application de la force

en mode emmission :
calcul dans le simulateur de la valeur -> application -> formatage -> écriture de la donnée

Si je parle de ça c'est pour décharger un certain nombre de calcul aux fonctions de parsage et d’envoi et de lecture sur le reseau des données dans le simulateur.

La création d'une structure est à discuter (La méthodologie "objet" n'est parfois pas la bonne méthode) mais personnellement je pense que c'est une nécessité du point de vue de l'accessibilité et de la compréhension du code (Selon le protocole que nous avons décider d'implémenter pour le moment) que ce soit au point de vue réseau que du point de vue simulateur.

Qu'en pensez vous ?

RE: Connexion UDP Simulateur/Serveur - Added by Sylvain Le Gouellec almost 9 years ago

je suis d'accord avec toi .
Je pense qu'une structure serait plus en adéquation avec le projet.
Ceci permettra de faciliter l'envoi des données.
De plus, la mise en place d'un protocole commun entre le simulateur et l'application Qt serait intéressant.

RE: Connexion UDP Simulateur/Serveur - Added by Jacques LAFFONT almost 9 years ago

Bonjour,

Je suis d'accord aussi avec un bémol, l'intégration des aspects objet avec un bibliothèque en C donc non objet.
C'est le premier point à résoudre, il faudrait faire des tests sur un projet type basique. La solution existe mais je ne l'ai jamais expérimentée.

RE: Connexion UDP Simulateur/Serveur - Added by Joani Couma almost 9 years ago

Un projet test sera réalisé assez rapidement pendant le w-e et déposé dans une branche sur la forge pour montrer le principe, si le contenu est accepté on se lance dans la mise en place de la structure drone et normalement pour lundi l'IHM et le drone communiqueront.

RE: Connexion UDP Simulateur/Serveur - Added by Joani Couma almost 9 years ago

En attendant que Sylvain LG implémente le parseur du côté de l'IHM j'ai réalisé un petit serveur udp Java qui s'occupe de l'interconnexion entre les différents logiciels périphériques (Pour l'instant uniquement utilisable en logiciel ihm/simulateur mais sera étendu pour l'application android et serait dans la théorie utilisable avec tout autre périphérique (je pense notamment au drone)), ce serveur ne sert que d'aiguillage des différentes trames entrantes/sortantes et sera très pratique pour des tests sans module wifi.

Ce serveur n'est pour l'instant compatible uniquement que du simulateur vers l'ihm et necessite de lancer l'ihm (ou le petit client java que j'ai réalisé pour des tests de réceptions) en premier suivi par l'IHM (l'algorithme multi client n'est qu'une ébauche encore et n'est pas encore multi-threadé).

Le concept même si il sera rendu plus ou moins obsolète lorsque le module wifi sera fonctionnel, reste pratique pour des test en local par les différents membres du projet

Ci-joint une ébauche d'interface du serveur Java

interface_serveur_mode.jpg - Interface serveur java (92.4 KB)

(1-5/5)