Académique Documents
Professionnel Documents
Culture Documents
Mémoire de recherche :
LA NINTENDO WIIMOTE : SYMBOLE
DE L’EVOLUTION DES IHM
Avant d’entrer dans le vif du sujet, je tiens tout d’abord à remercier toutes les
personnes avec lesquelles j’ai pu dialoguer ou qui ont contribué à l’élaboration de ce
mémoire, et plus particulièrement Ivo FLAMMER, mon directeur de mémoire, de la
société XiLabs pour son encadrement technique et sa disponibilité. Son intérêt pour
le sujet, ses remarques et ses conseils m’ont permis de terminer ce mémoire et de
toujours rester cohérent et explicite dans mes propos.
D’une façon plus générale je remercie toutes les personnes qui ont rédigé les
écrits en rapport avec la Wiimote (articles, blogs, recherches, rapports, forums de
discussions, etc.) et tous les développeurs des applications et API. J’ai en effet pu
effectuer mes analyses et réaliser ce mémoire grâce à ces nombreuses informations.
Les IHM actuelles ne répondent donc pas à tous les besoins des utilisateurs. Je
tenterais de définir un besoin non encore couvert et je développerai un logiciel pour y
répondre en insistant sur les attentes des utilisateurs, à savoir l’esthétisme,
l’ergonomie et la simplicité. Cet aspect sera défini et développé dans la dernière
partie.
User Interfaces (UI's) connect the user with the machine. They are the only
direct contact of the user with the machine. This crucial position of the UI’s is why
they play a major role in today’s design efforts. UI’s have strongly evolved in the last
years and one might ask if today’s interfaces now really meet the expectations of the
users.
This thesis objective in its first part is to describe the UI development in general
and to analyze its recent trend during the last years. Technological advances have
led to trivialization of sophisticated interfaces. In parallel, these new interfaces also
changed the user expectations towards them. The release of the Nintendo console
Wii is a perfect example of this evolution, the evolution of the interface as well as the
evolution of the user’s expectations.
Today’s UI’s still don’t completely meet all the users needs. Consequently, in
the third part of this thesis, we will develop a software application fulfilling such an
un-covered need. This demo program will focus on today’s users expectations:
attractive visual design, ergonomics and simplicity.
Remerciements .............................................................................................................................. p 2
1. Résumé/abstract ........................................................................................................................ p 3
Dans une situation économique tendue depuis ces dernières années, les
différents acteurs du marché (entreprises et ménages) axent leurs priorités sur la
diminution des coûts, notamment par la recherche de solutions alternatives. A
contrario, les technologies évoluent. La Recherche et Développement (R&D) et
l’industrialisation ont permis une diminution conséquente du prix des technologies et
la miniaturisation du matériel.
Cette très petite télécommande, construite à très bas prix et fournie avec la
console peut être considérée comme un « bijou de technologies » grâce aux
multiples capteurs et la caméra infrarouge qu’elle contient. Ce potentiel exploité
uniquement pour le côté ludique (jeu vidéo) par Nintendo à poussé de nombreux
ingénieurs (et bricoleurs) à se pencher sur cet outil et à imaginer les diverses
possibilités non encore exploitées qu’offre cette manette.
Tous ces faits soulèvent un certain nombre de questions. Quelles peuvent être
réellement les attentes présentes et futures du marché en matière d’interactions
entre les utilisateurs et les Systèmes Informatiques ? Comment et pourquoi ont-elles
évolué ? Les Interfaces homme/machine actuelles répondent-elles réellement à ces
besoins ?
Les Interfaces Homme Machines sont devenues au fil du temps un enjeu crucial
dans le succès ou l’échec du lancement d’un produit (tout particulièrement les jeux
vidéo, les logiciels de bureautique, de supervision et les sites internet marchands).
Elles sont en effet le seul élément reliant l’utilisateur à la machine. Il s’agit en
quelque sorte de la « partie émergée d’un iceberg ». Ce chapitre propose de
découvrir dans un premier temps comment et pourquoi elles ont évolué. Ensuite,
nous nous focaliserons sur le fonctionnement et les diverses utilisations de la
Wiimote de Nintendo.
Deux grands types d’interfaces peuvent être distingués. D’une part, il existe les
environnements graphiques qui sont des ensembles de dessins, figures et formes
qui sont affichés sur un écran qui permettent de visualiser ce que l'ordinateur fait.
D’autre part, il existe les IHM en ligne de commande, ce sont les plus anciennes des
interfaces conversationnelles développées sur des ordinateurs. La « conversation »
entre l’homme et l’ordinateur s’effectue en mode texte, c'est-à-dire que l’utilisateur
entre des commandes qui sont interprétées par l’ordinateur et ce dernier affiche du
texte à l’écran correspondant au résultat de l'exécution de ces commandes.
Concernant leur évolution dans le temps, les IHM ont débuté leur apparition en
même temps que les premières machines mécaniques (notamment la première
machine à calculer, inventée par Blaise PASCAL en 1642). Elles ont cependant
commencé à évoluer dans les années 1970 avec le développement des technologies
utilisant l’électricité, rendant ainsi possible la démocratisation des ordinateurs.
Jean-Luc Saouli, PDG de Lyria, éditeur d’IHM souligne d’ailleurs dans un article
(le lien vers l’article est donné au chapitre 9 de ce document) paru le 22 Septembre
2006 sur le site journaldunet.com : « L'interface homme-machine est la partie visible
d'une application informatique, le sommet de l'iceberg en quelque sorte. C'est par ce
biais que l'utilisateur va rentrer en contact avec l'application et c'est pour cette raison
qu'elle se doit d'être particulièrement réussie ».
Voici un tableau récapitulatif des différents types d’IHM, proposé sous la forme
d’une arborescence :
Le succès attendu par Nintendo fût immédiat et inespéré car la société s’est
retrouvée immédiatement en rupture de stock.
La société Nintendo n’a pas souhaité communiquer les chiffres des ventes de la
console. Cependant, à ce jour (Juillet 2009) selon le site internet spécialisé
vgchartz.com, la Wii aurait enregistré un peu moins de 50 Millions de consoles
vendues à travers le monde, obtenant environ 48 % des parts de marché des
consoles de salon (contre 30 Millions pour la Xbox 360, soit environ 30 % de parts de
marché et 22 Millions de consoles Playstation 3, soit 22 % du total des ventes de
consoles de salon). La console s’est vendue à 23 Millions d’exemplaires aux Etats-
Unis, 8 Millions au Japon et 18 Millions en Europe.
Les plus grands succès de la console sont par exemple le jeu « Wii Sports »,
vendu avec la console. Ce jeu propose au joueur de s’initier à différentes épreuves
sportives (bowling, tennis, boxe, golf et baseball) en utilisant un petit personnage
préalablement modelé à son effigie. Ce jeu phare démontre toutes les capacités de
la Wiimote en utilisant au mieux tous les différents capteurs de mouvements.
Un autre succès est le jeu « Wii Play » vendu avec une manette supplémentaire
et proposant une douzaine de mini jeux (tennis de table, jeu de tir, billard…) pour
l’initiation au jeu multi-joueurs.
Le troisième grand succès de la Wii est le jeu « Wii Fit », vendu avec
l’accessoire « Wii Balance Board ». Ce jeu permet, grâce à la balance fournie
d’inviter le joueur à améliorer ses conditions physiques par de nombreuses activités
comme le jogging, le yoga, la danse, des exercices de gymnastique ou encore des
mini jeux d’équilibre, afin de pouvoir, à long terme, corriger sa posture physique et
éviter les maux de dos. Tous les résultats sont ainsi enregistrés et comparés dans le
temps, permettant de visualiser la progression des joueurs au fil des mois.
Nintendo cherche donc par le gameplay innovant de ses jeux, à viser toutes les
catégories de la population et non plus uniquement les adolescents et les dits
« gamers » (en Français : « passionnés de jeux vidéo »).
La Wiimote n’est pas une révolution à proprement parler car des produits
similaires ont été commercialisés bien avant son apparition. C’est le cas notamment
de la manette gyroscopique « GyroPod » conçue par la société Gyration en 2001.
Cette manette sans fil est semblable à celle de la Playstation, intègre deux
gyroscopes (un au niveau de chaque main) et une partie peut se désolidariser (la
partie située au niveau de la main droite) afin de permettre au joueur de pouvoir
effectuer des mouvements différents avec ses deux mains. Malgré cela, elle n’a pas
rencontré un franc succès, probablement à cause de la taille et la notoriété de
l’Entreprise Gyration, le ciblage de ses clients ou encore sa politique de marketing
(Nintendo est en effet une firme multinationale déjà très connue du grand public et
ayant un service marketing conséquent).
Tout d’abord, la connexion avec la console (ou l’ordinateur) est sans fil
(transmission Bluetooth) afin de laisser une plus grande liberté de mouvement à
l’utilisateur. Elle est également dotée d’un haut parleur et d’un vibreur, afin
d’accentuer certaines actions dans les jeux et ainsi immerger encore plus l’utilisateur.
Une mémoire interne est également disponible (en plus de la mémoire de la
Lorsque l’on place une bille dans un cendrier, si l'un des côtés du cendrier est
surélevé, la bille ira taper sur le côté inverse. Des capteurs sont présents, afin de
pouvoir situer l’endroit où se situe la bille à chaque moment. Ces derniers permettent
également d’analyser la pression (grâce à des capteurs de pression) exercée par la
bille, afin de savoir avec quelle force la bille a percuté le bord.
Voici une photographie de la « Sensor Bar » de Nintendo qui doit être placée
sous ou sur le téléviseur (ou écran d’ordinateur) :
Lorsque la Wiimote est éloignée de la barre, la distance entre les deux points
rouges (en fait, ce sont les 5 leds à chaque extrémités qui sont regroupées et
interprétées comme une seule par la manette, le rayonnement d’une seule led étant
insuffisant pour permettre au joueur de s’éloigner) est faible. Lorsque l’utilisateur la
rapproche de la barre, ces deux points s’éloignent et la manette comprend qu’elle
s’est rapprochée et modifie ainsi la coordonnée Y. Le principe est le même pour les
deux autres coordonnées (Si les deux points restent de même taille mais se
déplacent vers la gauche ou la droite, le programme déduit que c’est la coordonnée
X qui est modifiée. S’ils se déplacent de haut en bas, c’est par conséquent la
coordonnée Z).
La position de la manette dans l’espace peut ainsi donc être calculée. C’est de
cette façon que la Wiimote peut également faire office de pointeur. Voici le schéma
récapitulatif des différentes coordonnées calculées par les capteurs :
Bien sûr, la Wiimote peut fonctionner sans la Sensor Bar mais seules les
coordonnées « Pitch », « Yaw » et « Roll » seront disponibles. Un dispositif peut être
conçu avec uniquement deux diodes infrarouges, afin de permettre à la manette de
calculer les coordonnées X, Y et Z. Cela démontre que la Wiimote interprète bien les
5 diodes comme une unique led. Néanmoins, le dispositif est par conséquent moins
précis et la portée est moindre, démontrant par cette occasion que les 4 autres
diodes de chaque coté ne sont pas superflues.
Tous ces projets ont facilité ou rendu possible l’utilisation de la Wiimote dans
de nombreux domaines professionnels.
Une application a également été conçue pour aider les personnes handicapées
(le projet « wii-help »). Hubert Wassner, un professeur d’informatique et des
étudiants de l’ESIEA (école d’Ingénieurs Parisienne) ont mis au point un système
utilisant la Wiimote permettant à une personne handicapée, pour qui l’utilisation
d’une souris est impossible, de pouvoir se servir d’un ordinateur du bout des doigts,
même avec une mobilité extrêmement réduite.
La Wiimote peut également être utilisée dans le domaine du Cinéma, des jeux
vidéo ou de la réalité virtuelle, utilisant la télécommande pour effectuer de la motion
capture ou encore afin de modéliser des mouvements en 3 dimensions.
La Wiimote peut également être utilisée dans une infinité d’autres domaines
comme dans l’armée ou dans le spectacle (vote du public par exemple), la liste ne
peut être exhaustive.
Une simple recherche sur internet permet rapidement de constater qu’il existe
une multitude d’API disponibles pour la programmation de la Wiimote.
Malheureusement, il n’existe pas encore de page qui les recense ou les compare.
Elles concernent les principaux langages de programmation. Cependant, le test de
quelques unes d’entre elles amène à déduire que certaines sont plus ou moins
Concernant les langages de bas niveau, les librairies ayant la plus forte
notoriété sont « cWiimote » (langage C) et « cgwiimote » (C++). Concernant les
langages de haut niveau, les API les plus connues sont « pyWiimote » (Python),
« wiimote_simple », « WiiRemoteJ » et « wiiusej » (les trois dernières concernent
JAVA). La plus connue et certainement l’une des plus abouties d’entre elles est
« WiimoteLib », elle utilise le Framework (en Français, « cadre de travail ») « .NET »
de Microsoft. La programmation pour cette dernière s’effectue en C#.
La liste de ces API n’est pas exhaustive, elle est cependant très longue et par
conséquent, seules celles citées dans le paragraphe précédent ont été étudiées et
testées dans le cadre de ce mémoire.
Tout cela a donc permis aux éditeurs de jeux vidéo de pouvoir développer et
proposer des jeux plus ludiques et innovants.
Une autre grande force de la console est son côté multijoueur combiné au
public ciblé. Nintendo a cherché (et réussi) à cibler un public extrêmement large et à
donner une nouvelle image de la console de salon. En effet, la console classique de
salon évoque malheureusement bien souvent l’image du joueur enfermé chez lui,
associable et totalement coupé du monde relationnel (appelé « hard gamer »). Cette
console se veut donc ouverte à tout public et surtout un public plus féminin (par
exemple avec le jeu Wii Fit évoqué dans les chapitres précédents) et plus âgé. Il
n’est en effet pas rare de trouver cette console dans les maisons de retraites ou de
voir des personnes âgées jouer à cette console avec leurs petits enfants.
Les données envoyées et reçues par la Wiimote ont donc la possibilité d’être
interceptées par un ordinateur. Nous pouvons au passage noter que ces données
sont cryptées (après de nombreuses recherches, il s’avère que le codage de
l’information est soumis à réglementation, cependant, aucun texte ne stipule que le
décryptage est un délit).
Article L613-3
Article L613-5
Modifié par LOI n°2008-518 du 3 juin 2008 - art. 22
« Bonjour,
Je suis actuellement en dernière année d'école d'ingénieur en informatique.
Cette année, je prépare une thèse sur les nouvelle IHM et je m'intéresse particulièrement à
la Wiimote.
J'ai effectué des recherches sur internet et j'ai pu constater la mise à disposition de
librairies C# et Java permettant d'utiliser une Wiimote sur PC.
Je souhaiterais par conséquent savoir si tout cela est légal, mais plus généralement, je
souhaiterais avoir des informations sur le cadre juridique de l'utilisation de la Wiimote
(standards bluetooth, matériel propriétaire...).
Je souhaiterais également, si cela est possible, obtenir de plus amples informations (fiches
techniques, études...) concernant votre produit.
Je vous remercie par avance, et en attendant votre retour, je vous souhaite bonne réception.
--
Cordialement.
-----------------------
Jérémy GOVI
jeremygovi@gmail.com »
Après de nombreux mails envoyés au service client (le même mail envoyé
plusieurs fois), j’ai finalement reçu une réponse de leur part. Voici leur réponse :
« bonjour,
Cordialement,
Le Webmaster
NINTENDO France
6 bd de l'Oise
Immeuble le Montaigne
95031 Cergy Pontoise Cedex
Standard/SAV : 01.34.35.46.00 »
Il est clair que ce mail ne répond pas à la question posée. On peut donc
conclure et confirmer que la société souhaite rester floue et silencieuse à propos de
la légalité des développements utilisant leur manette de jeu car les articles de loi
permettent en effet ce genre de détournement. D’ailleurs, l’intitulé de la réponse est
suffisamment explicite : « Rép. : [SPAM] Wiimote ».
Ensuite, nous avons vu dans la partie précédente qu’il existe un certain vide
juridique concernant l’utilisation de la Wiimote, incitant et rendant possible par cette
occasion l’utilisation de ce matériel et le développement de logiciels l’utilisant.
Nintendo conserve donc une volonté de se concentrer sur sa spécialité (le jeu
vidéo) alors qu’une grande diversité d’applications reste possible dans de nombreux
autres domaines.
Nintendo s’efforce de couvrir tous les besoins concernant le domaine des jeux
vidéo et y est relativement bien parvenu, même si dernièrement les sorties de jeux
tendent à se raréfier. La Wii serait apparemment victime d’une sorte d’essoufflement
car aucun Hit n’est sorti depuis plus d’un an.
Le logiciel que ce chapitre propose de développer est donc une sorte de copie
de « GlovePie », mais en version simpliste (ayant moins de fonctionnalités mais dont
l’utilisation est aisée), interagissant avec ce dernier et respectant les besoins cités
précédemment.
Les différentes classes sont réparties dans les packages correspondant à leur
fonction.
présentée ici, la classe « Clavier » contient uniquement les touches du clavier. Aucun
traitement n’est effectué dans cette dernière.
Bien entendu, la remontée des erreurs a été travaillée et soignée. Si une erreur
survient durant l’exécution de l’application, un message précis et une suggestion de
Un bouton « Exporter vers GlovePie » est présent juste en dessous des deux
boutons cités précédemment. En effet, l’application permet une interaction avec le
logiciel « GlovePie ». Il permet la sauvegarde de la configuration en créant
automatiquement des scripts dont le format est utilisable directement par
« GlovePie ».
Concernant la librairie WiimoteLib, après le test des quelques librairies les plus
connues, il s’avère que cette dernière est la seule qui fonctionne correctement. En
effet, étant développeur JAVA, mon premier reflexe a été de me tourner vers les
librairies créées pour ce langage. Cependant, certains bugs et incompatibilités ont
été mis rapidement en évidence (par exemple, l’API « WiiRemoteJ » est incompatible
avec le module Bluetooth « BlueSoleil » qui est très répandu).
l’interface graphique. Cela permet entre autres de pouvoir toucher un public plus
large.
http://wiimotekeybinder.googlecode.com.
Etant issu d’une formation orientée Réseaux et Systèmes, mon travail et mes
recherches concernant ce mémoire me permettent d’accomplir encore plus mes
aspirations et objectifs personnels, c'est-à-dire atteindre un maximum de polyvalence
dans les différents domaines de l’Informatique.
Les entreprises doivent par conséquent innover sans cesse pour satisfaire les
exigences des consommateurs. On constate depuis quelques années une plus
grande importance apportée à la Recherche & Développement des pays
industrialisés. Cette tendance est bien entendu générale, certains pays d’Europe
dont la France sont en effet « à la traîne » (cf. article sur l’évolution de la R&D référé
au chapitre 9).
D’une façon plus générale, les IHM sont promises à un bel avenir car de
nouveaux concepts sont étudiés chaque jour. Par exemple, le projet « Natal » de
Microsoft pour la Xbox est en cours de développement et permet une
reconnaissance des mouvements de l’utilisateur et des objets environnants. Une
version gratuite (« Cam-Trax ») est également en cours de développement pour
Windows, Mac et Linux et utilise une simple Webcam.
Pour conclure ce mémoire je précise que les différents types IHM sont très
nombreux. Concernant la Wiimote, le nombre d’applications possibles est, nous
l’avons vu tout au long de ce mémoire, quasi infini. Chacun des sujets abordés dans
ce mémoire est suffisamment vaste pour être le sujet d’une thèse ou d’un mémoire à
part entière. Il ne m’a donc été possible d’effectuer qu’un « survol » des différentes
technologies et applications, car l’approfondissement du sujet demanderait
énormément plus de temps.
Fonctionnement de la Wiimote :
http://www-igm.univ-mlv.fr/~dr/XPOSE2006/Wii-Laure_Vignot/wiimote.html#generalites
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WiimoteLib;
using System.Windows.Forms;
using System.Threading;
using WiimoteKeyBinder.Modele;
using WiimoteKeyBinder.Configuration;
namespace WiimoteKeyBinder.Controleurs
{
class ControleurWiimote
{
private int sleepTimeForButtonPressed = 0;
private Boolean connecte = false;
static ProgrammePrincipal programmePrincipal = new ProgrammePrincipal();
Thread threadProgrammePrincipal;
private Boolean programmePrincipalTourne = false;
private Wiimote wm = new Wiimote();
static ControleurWiimote instance = null;
private ControleurWiimote()
{
}
{
message = "Aucune Wiimote trouvée! Peut-être devez vous d'abord la connecter en bluetooth";
}
catch (WiimoteException ex)
{
message = "Erreur concernant la Wiimote. Il est impossible de lire les données provenant de la
Wiimote. Essayez de la déconnecter puis de la reconnecter";
}
catch (Exception ex)
{
message = "Erreur inattendue";
}
}
// sinon on déconnecte la wiimote
else
{
wm.SetLEDs(true, false, false, false);
// on la fait vibrer un peu
wm.SetRumble(true);
// on stoppe les vibrations
wm.SetRumble(false);
// on la déconnecte
wm.Disconnect();
connecte = !connecte;
}
// on retourne le message d'erreur si il y en a un
return message;
}
/// <summary>
/// retourne l'instance de wiimote (utilisé par le programme principal)
/// </summary>
/// <returns>l'instance de la wiimote</returns>
public Wiimote getWiimoteInstance()
{
return wm;
}
/// <summary>
/// fonction permettant de définir les actions à effectuer en fonction de l'état de la wiimote (ex: lorsque l'on
appuie sur une touche)
/// </summary>
/// <param name="aState">L'état de la wiimote</param>
public void priseEnMainActionDeLaWiimote(WiimoteState aState)
{
// si l'utilisateur a appuyé sur le bouton A...
if (aState.ButtonState.A)
{
// on récupère l'assignation enregistrée en mémoire
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonA);
// on l'envoie au controleur de clavier pour traitement
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("A");
}
else if (aState.ButtonState.B)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonB);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("B");
}
else if (aState.ButtonState.Up)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonHaut);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("haut");
}
else if (aState.ButtonState.Down)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonBas);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("bas");
}
else if (aState.ButtonState.Left)
{
Assignation tmp =
ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonGauche);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("gauche");
}
else if (aState.ButtonState.Right)
{
Assignation tmp =
ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonDroite);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("droite");
}
else if (aState.ButtonState.Minus)
{
Assignation tmp =
ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonMoins);
envoyerPourTraitementControleurClavier(tmp);
}
else if (aState.ButtonState.Home)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonHome);
envoyerPourTraitementControleurClavier(tmp);
}
else if (aState.ButtonState.Plus)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonPlus);
envoyerPourTraitementControleurClavier(tmp);
}
else if (aState.ButtonState.One)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonUn);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("1");
}
else if (aState.ButtonState.Two)
{
Assignation tmp = ControleurConfiguration.getInstance().recupererAssignation(TelecommandeWii.boutonDeux);
envoyerPourTraitementControleurClavier(tmp);
Console.WriteLine("2");
}
}
/// <summary>
/// fonction permettant au programme principal de tourner
/// </summary>
public void tourner()
{
// on vérifie qu'il ne tourne pas déja
if (!programmePrincipalTourne)
{
// on lance le thread
threadProgrammePrincipal = new Thread(new ThreadStart(programmePrincipal.tourner));
threadProgrammePrincipal.Start();
programmePrincipalTourne = true;
Console.WriteLine("thread demarré");
}
/// <summary>
/// fonction permettant d'arréter le programme principal
/// </summary>
/// <returns>true si il a été arrété correctement, sinon, false</returns>
public Boolean arreter()
{
// on vérifie d'abord qu'il tourne
if (threadProgrammePrincipal != null)
{
// on l'arrête
threadProgrammePrincipal.Abort();
programmePrincipalTourne = false;
Console.WriteLine("thread arrete");
return true;
}
return false;
}
/// <summary>
/// Cette fonction permet d'envoyer une assignation de touche au controleur clavier pour récupérer la touche
/// du clavier sur laquelle il doit appuyer
/// </summary>
/// <param name="tmp">une assignation de touche</param>
private void envoyerPourTraitementControleurClavier(Assignation tmp)
{
if (tmp != null)
{
String toucheClavier = tmp.getToucheClavier();
ControleurClavier.getInstance().appuyerSur(toucheClavier);
programmePrincipal.interrompre(sleepTimeForButtonPressed);
}
}
}
}