Aller au contenu

Périphériques externes

VRmaze offre la possibilité d'interfacer divers périphériques externes de manière à pouvoir acquérir des données depuis un périphérique ou envoyer des ordres vers un périphérique.

Système de communication

VRmaze supporte la communication sur les ports COM virtuels et réseau TCP/UDP.

Méthodologie dans VRmaze

Dans VRmaze, la procédure générale est souvent la même. Nous partons dans l'idée que le protocole ne doit pas être adapté spécifiquement à un ordinateur pour fonctionner comme il faut. Le fait de brancher un périphérique sur un ordinateur lui affecte un port de communication virtuel (port COM) automatique qui peut être différent d'une machine à une autre.

VRmaze propose de stocker les informations de ports COM virtuels directement dans les préférences pour permettre une utilisation d'un périphérique sans modification du protocole. Le principe est le suivant : un protocole utilisant un périphérique externe va vérifier l'adresse du port de communication directement dans les préférences du logiciel et utiliser l'adresse pour établir la communication. En changeant d'ordinateur, le protocole utilisera l'adresse renseignée dans les préférences du second ordinateur, aucune modification du protocole ne sera ainsi nécessaire.

Communication réseau

Dans le cas d'une communication réseau, il n'y a pas forcément de préférences logicielles à configurer.

Entité de communication

Les nœuds permettant la communication ainsi que l'interaction avec des périphériques sont très souvent de type Entité et seront donc disponibles au niveau des listes d'entités.

Préférences spécifiques

Dans VRmaze, chaque type de périphérique dispose de ses propres préférences. Outre le port de communication, certains périphériques utilisent d'autres propriétés de préférence pour notamment stocker des données de calibration par exemple.

Cas du microphone

Le cas du microphone est un peu différent. Ce périphérique ne dispose pas de nœud de gestion, uniquement un nœud permettant l'enregistrement sous forme d'un DataRecord spécifique.

Communication

Dans VRmaze, la communication avec un périphérique est une conjonction de deux nœuds. Le premier nœud gère la communication en ouvrant et fermant le port COM virtuel. Le second nœud utilise les données fournies par le premier nœud pour produire une interaction, enregistrer une donnée ou envoyer un nouvel ordre au périphérique. Ce second nœud n'interagit jamais directement avec le périphérique, il passe toujours par le nœud gérant la communication. L'intérêt réside dans le fait qu'il peut ainsi y avoir plus d'un nœud utilisant les données issues d'un périphérique tout comme il peut y avoir plus d'un nœud envoyant des ordres au périphérique sans devoir à chaque fois ouvrir la communication et la fermer.

Ouverture de communication

Que ce soit en port de communication virtuel ou en port réseau, la réception de données en provenance d'un périphérique ne peut se faire qu'avec une seule ouverture de port, il n'est pas possible d'ouvrir un port de communication deux fois en même temps, il est donc nécessaire de n'avoir qu'un seul nœud de gestion activé à un moment donné.

Activation d'un nœud de gestion

Le nœud de gestion doit être placé à un endroit stratégique dans l'arbre du protocole. Si la communication doit être ouverte tout au long du protocole, ce nœud doit se trouver en enfant direct du protocole. Pour une communication dans une expérimentation uniquement, le nœud doit se trouver soit au niveau du protocole (cela ne gênera pas les autres expérimentations) ou plus proprement en tant qu'enfant direct de l'expérimentation. Il est aussi possible de placer le gestionnaire directement en tant qu'enfant d'un essai, mais cela est plus rare et souvent moins efficace.

Stockage des résultats ou envoi de nouveaux ordres

Dans VRmaze, le stockage des résultats sous forme de DataRecords s'effectue obligatoirement dans un nœud d'essai. Les nœuds stockant les résultats disposent nativement de leur propre système de sauvegarde avec des trackers spécifiques. La méthodologie de communication avec le nœud de gestion est la suivante : le nœud de stockage s'enregistre auprès du nœud de gestion et par la suite, à chaque nouvelle donnée reçu par le nœud de gestion, ce dernier envoi à tous les nœuds enregistrés la nouvelle donnée. La nouvelle donnée reçu, le nœud de stockage prend en charge cette nouvelle valeur et effectue son action en correspondance.

Concernant l'envoi de nouveau ordre, la méthodologie est un peu différente. Le gestionnaire spécifique, capable d'envoyer de nouvelles commandes, défini au niveau de son code source, un ensemble de méthodes pouvant être appelée par le nœud d'interaction. Ce nœud d'interaction ne gère pas le contenu de l'ordre directement, il appelle juste la fonction voulue du gestionnaire de communication. À l'appel d'une fonction du gestionnaire, ce dernier traduit l'ordre en commande interprétable par le périphérique et lui envoi.