wiki:Spacemouse

LA SPACEMOUSE


Photo de la Spacemouse


Prérequis

La Spacemouse se connecte en USB.
Pour la faire marcher nous allons utiliser le petit logiciel 3DConnexion. Le package libmotif3 est nécessaire pour l'utilisation de la librairie libXm.so.3.


Installation de la Spacemouse

Pour faire l'installation du driver il faut dans le répertoire du logiciel : /3DConnexion, lancer le install.sh, puis répondre à chacune des questions, qui vont permettre l'installation du driver selon la configuration de la machine utilisée.

sudo sh install.sh

L'installation de votre driver pour la Spacemouse est terminée mais celle-ci ne peut fonctionner que lorsque ce dernier est lancé.

Les personnes possédant le package mouseemu pourront utiliser leur Spacemouse dès le démarrage de leur machine et sans lancer le driver, mais la Spacemouse ne sera dans ce cas là qu'un émulateur de souris. Si vous essayez de lancer une application 3D la Spacemouse ne sera pas utilisable, il faudra au préalable lancer le driver.

Il faut refaire l'installation de la Spacemouse à chaque redémarrage de la machine, celle-ci n'est pas permanente.


Tests de l'installation

Pour lancer le driver :

sudo /etc/3DxWare/daemon/3dxsrv -d usb &

S'ouvre alors un logiciel qui va vous permettre de régler les paramètres de la Spacemouse. Il faut garder ce logiciel ouvert pour que la Spacemouse puisse fonctionner dans les applications 3D, c'est pourquoi à la fin de la ligne de commande pour lancer le driver nous avons mis le '&', pour le lancer en arrière plan.

Pour fermer le driver :

sudo /etc/3DxWare/daemon/3dxsrv -d usb -exit

Pour vérifier que l'installation a bien été réalisée, nous pouvons la tester avec les applications xcube et xvalues, qui se trouvent dans le répertoire : /tmp, après installation du driver.


Fonctionnement

La Spacemouse fonctionne en envoyant des évènement lorsque la valeur de l'un de ses axes ou l'un de ses boutons change. Ces évènements sont du type MagellanEvent, pour les traiter il faut donc les récupérer pour obtenir la valeur de l'axe ou du bouton voulu.
Par exemple pour un axe :

fprintf(stderr,"x = %+5.0lf \n", MagellanEvent.MagellanData[ MagellanX ]);


Pour un bouton :

fprintf(stderr,"Button pressed [%c] \n", MagellanEvent.MagellanButton ==  9 ? '*');

Retour au Wiki

Attachments