Bonjour tout le monde !
Alors voila bient�t 2 semaine que je suis bloqu� dans mon projet.
Je vous pr�viens de suite, j'ai un mal fou � clarifier mes explications Donc je vais essayer d��tre le plus cours et pr�cis possible afin de ne pas vous perdre !!

0 - Projet :

Tout d'habord mon projet est un projet scolaire, mon but est de : controler un Ar Drone 2.0 (PARROT) avec un casque Emotiv Epoc+ (par la pens�e).
Le Drone est cod� en NodeJS MAIS le casque est cod� en C++.

1 - Demarche:

La structure du projet est du type :

Casque -> Serveur Node (envoie donn�e)
Serveur Node -> Drone (envoie ordre)
Serveur Node -> Client(html) (envoie donn�e)
Donc on suit l'etat du drone via une page html.

Apres de nombreux essais... La meilleur solution trouv� est :
J'utilise node-gyp pour transformer ma partie C++ en lib de NODE. Ensuite Je recupere les donn�e en NODE puis les traites normalement en NODE (Dans le plus parfait des mondes )

2- Problemes
Apr�s d�j� un TR�S TR�S long moment pour comprendre comment marche node-gyp, j'ai finalement r�ussi � transformer mon programme c++ en lib pour Node !!

ILLUSTRATION SIMPLIFIER :

C++ :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
*** codes ***
mentalCommandAction = static_cast<int>(IS_MentalCommandGetCurrentAction(eState));
mentalCommandActionPower = IS_MentalCommandGetCurrentActionPower(eState);
*** codes ***
Node :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
var Epoc = require('bindings')('index');
 
Epoc.connect(function(event) {
 
	if(event.blink > 0){
		console.log('blink');
	}
	if(event.mentalCommandAction > 1){
		console.log(event.mentalCommandActionPower);
	}
	if(event.laugh > 0){
		console.log('laugh');
	}
 
	if(event.smile > 0){
		console.log('smile');
	}
});
Le probleme reside ICI, certaines variables tel que (event.blink >0) fonctionne parfaitement la variable passe de 0 � 1 en fonction de l'etat !!
En revanche , mentalCommandAction(Power) reste CONSTAMMENT � 0 !!!!!!!!!!
Et alors le plus drole est que si je fait tourn�e exctement les MEMES programmes en c++ ou en node, c'est toujours pareil !!! Les variable tels que mentalAction, time, ... reste � 0 ou une valeur constante !! Et d'autre fonctionnent sans problemes

(Bon je crois que c'est bon j'ai perdu tout le monde je vais faire un vid�o pour r�ellement montrer ce qui se passe haha )

3 - SOLUTIONS ENVISAGEES
Plusieurs solutions sont envisageable :

  • Je pense a un probleme de convertion de donn�e ente c++ et js ? Mais cela est peu probable car normalement les valeur de mentalCommandAction sont 1,2,4,8,16,32.. et mentalCommandActionPower de 0 � 1
  • La fonction EMIT par le casque n'est pas acceptable en JS donc il renvoi une erreur a al fonction (0) et c'est pour cela que j'ai ABSOLUEMENT toujours 0 ?


EDIT :
Voici les videos :
La premiere montre que ca marche tres bien en c++, puis on vois sur la deuxieme que certaines variables ne repondent pas comme il le faut :/
https://youtu.be/R1c0z5MESsU
https://youtu.be/a0ZWGErEn48

CODE SOURCE c++ : https://github.com/XavG/EpocUtils2.0
CODE SOURCE NodeJS : https://github.com/XavG/node-epocjs

EDIT2: N'hesitez surtout pas � me dire si certaines chose ne vont pas, des fichiers manquant (j�esp�re pas) ou autres.

Voila je suis COMPLETEMENT PERDU !!! Je vais tenter de vous faire un videu puis de relire mon post pour l'eclaircir un peu
Merci d'avance,

Xavier