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 explicationsDonc 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++ :
Node :
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 ***
Le probleme reside ICI, certaines variables tel que (event.blink >0) fonctionne parfaitement la variable passe de 0 � 1 en fonction de l'etat !!
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'); } });
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 passehaha )
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
Partager